diff --git a/README.md b/README.md
index dac5f29ccbe8d9bdee6c1622f20c092ee33d6f71..fc2c32b090546193a5a96342cd375b1648db5104 100644
--- a/README.md
+++ b/README.md
@@ -13,29 +13,37 @@ Interactive atlas viewer is built with [Angular (v6.0)](https://angular.io/) and
 
 - node > 6
 - npm > 4
-- a compiled [nehuba](https://github.com/HumanBrainProject/nehuba)
 
+### Develop Interactive Viewer
 
-### Installing
+To run a dev server, run:
 
 ```
-/* in exported_nehuba (compiled nehuba) */
-npm link
-
-/* in HOME */
-
 git clone https://github.com/HumanBrainProject/interactive-viewer
 cd interactive-viewer
 npm i
-npm link exported_nehuba
+npm run dev-server
 ```
 
-To run a dev server, run:
+### Develop Plugins
 
+To develop plugins for the interactive viewer, run:
 ```
-npm run dev-server
+git clone https://github.com/HumanBrainProject/interactive-viewer
+cd interactive-viewer
+npm i
+PLUGINDEV=true npm run dev-plugin
 ```
 
+The contents inside the folder in `./src/plugin_examples` will be automatically fetched by the dev instance of the interactive-viewer on load. 
+
+[plugin readme](src/plugin_examples/README.md)
+
+[plugin api](src/plugin_examples/plugin_api.md)
+
+[plugin migration guide](src/plugin_examples/migrationGuide.md)
+
+
 ## Deployment
 
 `package.json` provide with two ways of building the interactive atlas viewer, `JIT` or `AOT` compilation. In general, `AOT` compilation produces a smaller package and has better performance. 
diff --git a/package.json b/package.json
index 56fd60bec8540f7e7062790a3d27718b87759bc1..d2ec0040bfe61071929e66017d509e6fa3ed2cc6 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
     "build-aot": "webpack --config webpack.aot.js",
     "build-min": "webpack --config webpack.prod.js",
     "build": "webpack --config webpack.dev.js",
+    "dev-plugin" : "PLUGINDEV=true npm run dev-server & node ./src/plugin_examples/server.js",
     "dev-server": "webpack-dev-server --config webpack.dev.js --mode development",
     "serve-plugins": "node src/plugin_examples/server.js",
     "test": "echo \"Error: no test specified\" && exit 1"
diff --git a/src/atlasViewer/atlasViewer.dataService.service.ts b/src/atlasViewer/atlasViewer.dataService.service.ts
index a9f0423179d256375ba1bbbaf92cfb6e65267804..cd1704da81d25a68bc8a577f9248ac408080eecf 100644
--- a/src/atlasViewer/atlasViewer.dataService.service.ts
+++ b/src/atlasViewer/atlasViewer.dataService.service.ts
@@ -18,7 +18,11 @@ export class AtlasViewerDataService implements OnDestroy{
     //   .then(res=>res.json())
     //   .then(json=>resolve(json))
     //   .catch(err=>reject(err))
-    
+    if(PLUGINDEV){
+      
+    }else{
+      resolve([])
+    }
     Promise.all([
       fetch('http://localhost:10080/jugex/manifest.json').then(res=>res.json()),
       fetch('http://localhost:10080/testPlugin/manifest.json').then(res=>res.json())
diff --git a/src/atlasViewerExports/export.module.ts b/src/atlasViewerExports/export.module.ts
index 2952924ea15241874fb4de01162f70ac5ed46356..de4d4be5fba5a0cd4295cccdabb0a5a4c555c3d5 100644
--- a/src/atlasViewerExports/export.module.ts
+++ b/src/atlasViewerExports/export.module.ts
@@ -32,7 +32,7 @@ import { ComponentsModule } from "../components/components.module";
   ],
   entryComponents : [
     SampleBoxUnit,
-
+    
     ReadmoreComponent,
     MarkdownDom,
     TreeComponent,
diff --git a/src/main-aot.ts b/src/main-aot.ts
index 8e71149acdd48b969b932ecdc8b2e9b1501dfa58..18aa382344de00f76cb45b4461e77911fce37074 100644
--- a/src/main-aot.ts
+++ b/src/main-aot.ts
@@ -3,4 +3,8 @@ import 'zone.js'
 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
 import { MainModule } from './main.module';
 
+const requireAll = (r:any) => {r.keys().forEach(r)}
+requireAll(require.context('./res/ext', false, /\.json$/))
+requireAll(require.context('./res/images', true, /\.jpg|\.png/))
+
 platformBrowserDynamic().bootstrapModule(MainModule)
\ No newline at end of file
diff --git a/src/plugin_examples/plugin_README.md b/src/plugin_examples/README.md
similarity index 100%
rename from src/plugin_examples/plugin_README.md
rename to src/plugin_examples/README.md
diff --git a/src/plugin_examples/server.js b/src/plugin_examples/server.js
index ce14bf6949c65e7d7ebbabe6885371957f4785d5..22860450b096371c5238a8db27d7305815c7e24f 100644
--- a/src/plugin_examples/server.js
+++ b/src/plugin_examples/server.js
@@ -1,14 +1,29 @@
 const express = require('express')
+const fs = require('fs')
+const path = require('path')
 
 const app = express()
 
-const cors = (req,res,next)=>{
+const cors = (req, res, next)=>{
   res.setHeader('Access-Control-Allow-Origin','*')
   next()
 }
 
+app.get('/allPluginManifests', cors, (req, res) => {
+  try{
+    res.status(200).send(JSON.stringify(
+      fs.readdirSync(__dirname)
+        .filter(file => fs.statSync(path.join(__dirname, file)).isDirectory())
+        .filter(dir => fs.existsSync(path.join(__dirname, dir, 'manifest.json')))
+        .map(dir => JSON.parse(fs.readFileSync(path.join(__dirname, dir, 'manifest.json'), 'utf-8')))
+    ))
+  }catch(e){
+    res.status(500).send(JSON.stringify(e))
+  }
+})
+
 app.use(cors,express.static(__dirname))
 
-app.listen(10080,()=>{
+app.listen(10080, () => {
   console.log(`listening on 10080, serving ${__dirname}`)
 })
\ No newline at end of file
diff --git a/src/ui/nehubaContainer/nehubaViewer/nehubaViewer.component.ts b/src/ui/nehubaContainer/nehubaViewer/nehubaViewer.component.ts
index d47c0da23611cf5ff7b657c939af1996b980cf15..6163d3e1ec2964fae521f51a0a71b047f252078d 100644
--- a/src/ui/nehubaContainer/nehubaViewer/nehubaViewer.component.ts
+++ b/src/ui/nehubaContainer/nehubaViewer/nehubaViewer.component.ts
@@ -1,7 +1,7 @@
 import { Component, AfterViewInit, OnDestroy, Output, EventEmitter, ElementRef } from "@angular/core";
-import * as export_nehuba from 'export_nehuba'
+import * as export_nehuba from 'third_party/export_nehuba/main.bundle.js'
 
-import 'export_nehuba/dist/min/chunk_worker.bundle.js'
+import 'third_party/export_nehuba/chunk_worker.bundle.js'
 import { getActiveColorMapFragmentMain } from "../nehubaContainer.component";
 
 @Component({
diff --git a/third_party/export_nehuba/chunk_worker.bundle.js b/third_party/export_nehuba/chunk_worker.bundle.js
new file mode 100644
index 0000000000000000000000000000000000000000..122f1e5aefe8d8f988e5a345ac80d1e954345c08
--- /dev/null
+++ b/third_party/export_nehuba/chunk_worker.bundle.js
@@ -0,0 +1,696 @@
+/*
+
+ Copyright 2016 Google Inc.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Copyright 2017 Google Inc.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Copyright 2015 Mozilla Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(m,e,l){m!=Array.prototype&&m!=Object.prototype&&(m[e]=l.value)};$jscomp.getGlobal=function(m){return"undefined"!=typeof window&&window===m?m:"undefined"!=typeof global&&null!=global?global:m};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
+$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(m){return $jscomp.SYMBOL_PREFIX+(m||"")+$jscomp.symbolCounter_++};
+$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var m=$jscomp.global.Symbol.iterator;m||(m=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[m]&&$jscomp.defineProperty(Array.prototype,m,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(m){var e=0;return $jscomp.iteratorPrototype(function(){return e<m.length?{done:!1,value:m[e++]}:{done:!0}})};
+$jscomp.iteratorPrototype=function(m){$jscomp.initSymbolIterator();m={next:m};m[$jscomp.global.Symbol.iterator]=function(){return this};return m};$jscomp.makeIterator=function(m){$jscomp.initSymbolIterator();$jscomp.initSymbol();$jscomp.initSymbolIterator();var e=m[Symbol.iterator];return e?e.call(m):$jscomp.arrayIterator(m)};$jscomp.arrayFromIterator=function(m){for(var e,l=[];!(e=m.next()).done;)l.push(e.value);return l};$jscomp.arrayFromIterable=function(m){return m instanceof Array?m:$jscomp.arrayFromIterator($jscomp.makeIterator(m))};
+$jscomp.owns=function(m,e){return Object.prototype.hasOwnProperty.call(m,e)};$jscomp.polyfill=function(m,e,l,g){if(e){l=$jscomp.global;m=m.split(".");for(g=0;g<m.length-1;g++){var f=m[g];f in l||(l[f]={});l=l[f]}m=m[m.length-1];g=l[m];e=e(g);e!=g&&null!=e&&$jscomp.defineProperty(l,m,{configurable:!0,writable:!0,value:e})}};
+$jscomp.polyfill("WeakMap",function(m){function e(a){$jscomp.owns(a,g)||$jscomp.defineProperty(a,g,{value:{}})}function l(a){var b=Object[a];b&&(Object[a]=function(a){e(a);return b(a)})}if(function(){if(!m||!Object.seal)return!1;try{var a=Object.seal({}),b=Object.seal({}),d=new m([[a,2],[b,3]]);if(2!=d.get(a)||3!=d.get(b))return!1;d.delete(a);d.set(b,4);return!d.has(a)&&4==d.get(b)}catch(q){return!1}}())return m;var g="$jscomp_hidden_"+Math.random().toString().substring(2);l("freeze");l("preventExtensions");
+l("seal");var f=0,c=function(a){this.id_=(f+=Math.random()+1).toString();if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};c.prototype.set=function(a,b){e(a);if(!$jscomp.owns(a,g))throw Error("WeakMap key fail: "+a);a[g][this.id_]=b;return this};c.prototype.get=function(a){return $jscomp.owns(a,g)?a[g][this.id_]:void 0};c.prototype.has=function(a){return $jscomp.owns(a,g)&&$jscomp.owns(a[g],this.id_)};c.prototype.delete=
+function(a){return $jscomp.owns(a,g)&&$jscomp.owns(a[g],this.id_)?delete a[g][this.id_]:!1};return c},"es6","es3");$jscomp.MapEntry=function(){};
+$jscomp.polyfill("Map",function(m){if(!$jscomp.ASSUME_NO_NATIVE_MAP&&function(){if(!m||!m.prototype.entries||"function"!=typeof Object.seal)return!1;try{var a=Object.seal({x:4}),d=new m($jscomp.makeIterator([[a,"s"]]));if("s"!=d.get(a)||1!=d.size||d.get({x:4})||d.set({x:4},"t")!=d||2!=d.size)return!1;var c=d.entries(),h=c.next();if(h.done||h.value[0]!=a||"s"!=h.value[1])return!1;h=c.next();return h.done||4!=h.value[0].x||"t"!=h.value[1]||!c.next().done?!1:!0}catch(k){return!1}}())return m;$jscomp.initSymbol();
+$jscomp.initSymbolIterator();var e=new WeakMap,l=function(a){this.data_={};this.head_=c();this.size=0;if(a){a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};l.prototype.set=function(a,d){var b=g(this,a);b.list||(b.list=this.data_[b.id]=[]);b.entry?b.entry.value=d:(b.entry={next:this.head_,previous:this.head_.previous,head:this.head_,key:a,value:d},b.list.push(b.entry),this.head_.previous.next=b.entry,this.head_.previous=b.entry,this.size++);return this};l.prototype.delete=
+function(a){a=g(this,a);return a.entry&&a.list?(a.list.splice(a.index,1),a.list.length||delete this.data_[a.id],a.entry.previous.next=a.entry.next,a.entry.next.previous=a.entry.previous,a.entry.head=null,this.size--,!0):!1};l.prototype.clear=function(){this.data_={};this.head_=this.head_.previous=c();this.size=0};l.prototype.has=function(a){return!!g(this,a).entry};l.prototype.get=function(a){return(a=g(this,a).entry)&&a.value};l.prototype.entries=function(){return f(this,function(a){return[a.key,
+a.value]})};l.prototype.keys=function(){return f(this,function(a){return a.key})};l.prototype.values=function(){return f(this,function(a){return a.value})};l.prototype.forEach=function(a,d){for(var b=this.entries(),c;!(c=b.next()).done;)c=c.value,a.call(d,c[1],c[0],this)};l.prototype[Symbol.iterator]=l.prototype.entries;var g=function(b,d){var c=d&&typeof d;"object"==c||"function"==c?e.has(d)?c=e.get(d):(c=""+ ++a,e.set(d,c)):c="p_"+d;var h=b.data_[c];if(h&&$jscomp.owns(b.data_,c))for(b=0;b<h.length;b++){var k=
+h[b];if(d!==d&&k.key!==k.key||d===k.key)return{id:c,list:h,index:b,entry:k}}return{id:c,list:h,index:-1,entry:void 0}},f=function(a,d){var b=a.head_;return $jscomp.iteratorPrototype(function(){if(b){for(;b.head!=a.head_;)b=b.previous;for(;b.next!=b.head;)return b=b.next,{done:!1,value:d(b)};b=null}return{done:!0,value:void 0}})},c=function(){var a={};return a.previous=a.next=a.head=a},a=0;return l},"es6","es3");
+$jscomp.iteratorFromArray=function(m,e){$jscomp.initSymbolIterator();m instanceof String&&(m+="");var l=0,g={next:function(){if(l<m.length){var f=l++;return{value:e(f,m[f]),done:!1}}g.next=function(){return{done:!0,value:void 0}};return g.next()}};g[Symbol.iterator]=function(){return g};return g};$jscomp.polyfill("Array.prototype.values",function(m){return m?m:function(){return $jscomp.iteratorFromArray(this,function(e,l){return l})}},"es6","es3");
+$jscomp.polyfill("Number.isNaN",function(m){return m?m:function(e){return"number"===typeof e&&isNaN(e)}},"es6","es3");$jscomp.polyfill("Number.isFinite",function(m){return m?m:function(e){return"number"!==typeof e?!1:!isNaN(e)&&Infinity!==e&&-Infinity!==e}},"es6","es3");$jscomp.polyfill("Array.prototype.keys",function(m){return m?m:function(){return $jscomp.iteratorFromArray(this,function(e){return e})}},"es6","es3");
+$jscomp.polyfill("Number.isInteger",function(m){return m?m:function(e){return Number.isFinite(e)?e===Math.floor(e):!1}},"es6","es3");$jscomp.polyfill("Array.from",function(m){return m?m:function(e,l,g){$jscomp.initSymbolIterator();l=null!=l?l:function(a){return a};var f=[],c=e[Symbol.iterator];if("function"==typeof c)for(e=c.call(e);!(c=e.next()).done;)f.push(l.call(g,c.value));else{c=e.length;for(var a=0;a<c;a++)f.push(l.call(g,e[a]))}return f}},"es6","es3");
+$jscomp.checkStringArgs=function(m,e,l){if(null==m)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(e instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return m+""};
+$jscomp.polyfill("String.prototype.startsWith",function(m){return m?m:function(e,l){var g=$jscomp.checkStringArgs(this,e,"startsWith");e+="";var f=g.length,c=e.length;l=Math.max(0,Math.min(l|0,g.length));for(var a=0;a<c&&l<f;)if(g[l++]!=e[a++])return!1;return a>=c}},"es6","es3");$jscomp.polyfill("Math.log2",function(m){return m?m:function(e){return Math.log(e)/Math.LN2}},"es6","es3");
+$jscomp.polyfill("String.prototype.repeat",function(m){return m?m:function(e){var l=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279<e)throw new RangeError("Invalid count value");e|=0;for(var g="";e;)if(e&1&&(g+=l),e>>>=1)l+=l;return g}},"es6","es3");
+$jscomp.polyfill("Set",function(m){if(!$jscomp.ASSUME_NO_NATIVE_SET&&function(){if(!m||!m.prototype.entries||"function"!=typeof Object.seal)return!1;try{var e=Object.seal({x:4}),g=new m($jscomp.makeIterator([e]));if(!g.has(e)||1!=g.size||g.add(e)!=g||1!=g.size||g.add({x:4})!=g||2!=g.size)return!1;var f=g.entries(),c=f.next();if(c.done||c.value[0]!=e||c.value[1]!=e)return!1;c=f.next();return c.done||c.value[0]==e||4!=c.value[0].x||c.value[1]!=c.value[0]?!1:f.next().done}catch(a){return!1}}())return m;
+$jscomp.initSymbol();$jscomp.initSymbolIterator();var e=function(e){this.map_=new Map;if(e){e=$jscomp.makeIterator(e);for(var g;!(g=e.next()).done;)this.add(g.value)}this.size=this.map_.size};e.prototype.add=function(e){this.map_.set(e,e);this.size=this.map_.size;return this};e.prototype.delete=function(e){e=this.map_.delete(e);this.size=this.map_.size;return e};e.prototype.clear=function(){this.map_.clear();this.size=0};e.prototype.has=function(e){return this.map_.has(e)};e.prototype.entries=function(){return this.map_.entries()};
+e.prototype.values=function(){return this.map_.values()};e.prototype.keys=e.prototype.values;e.prototype[Symbol.iterator]=e.prototype.values;e.prototype.forEach=function(e,g){var f=this;this.map_.forEach(function(c){return e.call(g,c,c,f)})};return e},"es6","es3");$jscomp.FORCE_POLYFILL_PROMISE=!1;
+$jscomp.polyfill("Promise",function(m){function e(){this.batch_=null}function l(a){return a instanceof f?a:new f(function(b,d){b(a)})}if(m&&!$jscomp.FORCE_POLYFILL_PROMISE)return m;e.prototype.asyncExecute=function(a){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(a);return this};e.prototype.asyncExecuteBatch_=function(){var a=this;this.asyncExecuteFunction(function(){a.executeBatch_()})};var g=$jscomp.global.setTimeout;e.prototype.asyncExecuteFunction=function(a){g(a,
+0)};e.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var a=this.batch_;this.batch_=[];for(var b=0;b<a.length;++b){var d=a[b];delete a[b];try{d()}catch(q){this.asyncThrow_(q)}}}this.batch_=null};e.prototype.asyncThrow_=function(a){this.asyncExecuteFunction(function(){throw a;})};var f=function(a){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var b=this.createResolveAndReject_();try{a(b.resolve,b.reject)}catch(d){b.reject(d)}};f.prototype.createResolveAndReject_=
+function(){function a(a){return function(c){d||(d=!0,a.call(b,c))}}var b=this,d=!1;return{resolve:a(this.resolveTo_),reject:a(this.reject_)}};f.prototype.resolveTo_=function(a){if(a===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(a instanceof f)this.settleSameAsPromise_(a);else{a:switch(typeof a){case "object":var b=null!=a;break a;case "function":b=!0;break a;default:b=!1}b?this.resolveToNonPromiseObj_(a):this.fulfill_(a)}};f.prototype.resolveToNonPromiseObj_=function(a){var b=
+void 0;try{b=a.then}catch(d){this.reject_(d);return}"function"==typeof b?this.settleSameAsThenable_(b,a):this.fulfill_(a)};f.prototype.reject_=function(a){this.settle_(2,a)};f.prototype.fulfill_=function(a){this.settle_(1,a)};f.prototype.settle_=function(a,b){if(0!=this.state_)throw Error("Cannot settle("+a+", "+b|"): Promise already settled in state"+this.state_);this.state_=a;this.result_=b;this.executeOnSettledCallbacks_()};f.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var a=
+this.onSettledCallbacks_,b=0;b<a.length;++b)a[b].call(),a[b]=null;this.onSettledCallbacks_=null}};var c=new e;f.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};f.prototype.settleSameAsThenable_=function(a,b){var d=this.createResolveAndReject_();try{a.call(b,d.resolve,d.reject)}catch(q){d.reject(q)}};f.prototype.then=function(a,b){function d(a,b){return"function"==typeof a?function(b){try{c(a(b))}catch(n){h(n)}}:b}var c,h,k=new f(function(a,
+b){c=a;h=b});this.callWhenSettled_(d(a,c),d(b,h));return k};f.prototype.catch=function(a){return this.then(void 0,a)};f.prototype.callWhenSettled_=function(a,b){function d(){switch(q.state_){case 1:a(q.result_);break;case 2:b(q.result_);break;default:throw Error("Unexpected state: "+q.state_);}}var q=this;null==this.onSettledCallbacks_?c.asyncExecute(d):this.onSettledCallbacks_.push(function(){c.asyncExecute(d)})};f.resolve=l;f.reject=function(a){return new f(function(b,d){d(a)})};f.race=function(a){return new f(function(b,
+d){for(var c=$jscomp.makeIterator(a),h=c.next();!h.done;h=c.next())l(h.value).callWhenSettled_(b,d)})};f.all=function(a){var b=$jscomp.makeIterator(a),d=b.next();return d.done?l([]):new f(function(a,c){function h(b){return function(d){u[b]=d;p--;0==p&&a(u)}}var u=[],p=0;do u.push(void 0),p++,l(d.value).callWhenSettled_(h(u.length-1),c),d=b.next();while(!d.done)})};return f},"es6","es3");
+$jscomp.polyfill("Object.assign",function(m){return m?m:function(e,l){for(var g=1;g<arguments.length;g++){var f=arguments[g];if(f)for(var c in f)$jscomp.owns(f,c)&&(e[c]=f[c])}return e}},"es6","es3");$jscomp.polyfill("Array.prototype.entries",function(m){return m?m:function(){return $jscomp.iteratorFromArray(this,function(e,l){return[e,l]})}},"es6","es3");
+$jscomp.polyfill("Array.prototype.fill",function(m){return m?m:function(e,l,g){var f=this.length||0;0>l&&(l=Math.max(0,f+l));if(null==g||g>f)g=f;g=Number(g);0>g&&(g=Math.max(0,f+g));for(l=Number(l||0);l<g;l++)this[l]=e;return this}},"es6","es3");
+$jscomp.polyfill("Array.prototype.copyWithin",function(m){return m?m:function(e,l,g){var f=this.length;e=Number(e);l=Number(l);g=Number(null!=g?g:f);if(e<l)for(g=Math.min(g,f);l<g;)l in this?this[e++]=this[l++]:(delete this[e++],l++);else for(g=Math.min(g,f+l-e),e+=g-l;g>l;)--g in this?this[--e]=this[g]:delete this[e];return this}},"es6","es3");
+(function(m,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports.exportNehubaFn=e():m.exportNehubaFn=e()})("undefined"!==typeof self?self:this,function(){return function(m){function e(g){if(l[g])return l[g].exports;var f=l[g]={i:g,l:!1,exports:{}};m[g].call(f.exports,f,f.exports,e);f.l=!0;return f.exports}var l={};e.m=m;e.c=l;e.d=function(g,f,c){e.o(g,f)||Object.defineProperty(g,f,{configurable:!1,
+enumerable:!0,get:c})};e.n=function(g){var f=g&&g.__esModule?function(){return g["default"]}:function(){return g};e.d(f,"a",f);return f};e.o=function(g,f){return Object.prototype.hasOwnProperty.call(g,f)};e.p="";return e(e.s=46)}([function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?
+a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a,b){u.set(a,b)}function b(a,b,d){d=void 0===d?{}:d;null!=b&&a.initializeSharedObject(b,d.id)}e.f=a;e.e=function(b,c){a(b,function(a){var b=this,h=a.id,k=new d.b;a=c.call(this,
+a,k);this.set(h,{promise:a,cancellationToken:k});a.then(function(a){var d=a.value;a=a.transfers;b.delete(h);b.invoke("rpc.promise.response",{id:h,value:d},a)},function(a){b.delete(h);b.invoke("rpc.promise.response",{id:h,error:a.message,errorName:a.name})})})};l.d(e,"a",function(){return n});l.d(e,"b",function(){return v});e.d=b;l.d(e,"c",function(){return I});e.h=function(a){return function(b){b.prototype.RPC_TYPE_ID=a}};e.g=function(a){return function(b){if(void 0!==a)b.prototype.RPC_TYPE_ID=a;
+else if(a=b.prototype.RPC_TYPE_ID,void 0===a)throw Error("RPC_TYPE_ID should have already been defined");t.set(a,b)}};var d=l(7);m=l(17);var q=function F(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return F(a,b,d)}else{if("value"in c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}},h=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;
+"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),k=!("undefined"!==typeof Window&&self instanceof Window),u=new Map,p=function(a){function b(a,d){g(this,b);var c=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,d));c.name=a;c.message=d;return c}c(b,a);return b}(Error);a("rpc.promise.cancel",function(a){this.get(a.id).cancellationToken.cancel()});a("rpc.promise.response",function(a){var b=a.id,c=this.get(b),h=c.resolve;
+c=c.reject;this.delete(b);a.hasOwnProperty("value")?h(a.value):a.errorName===d.a.name?c(d.a):c(new p(a.errorName,a.error))});var x=k?-1:0,n=function(){function a(b){var d=this;g(this,a);this.target=b;this.objects=new Map;this.nextId=x;b.onmessage=function(a){a=a.data;u.get(a.functionName).call(d,a)}}h(a,[{key:"set",value:function(a,b){this.objects.set(a,b)}},{key:"delete",value:function(a){this.objects.delete(a)}},{key:"get",value:function(a){return this.objects.get(a)}},{key:"getRef",value:function(a){var b=
+this.get(a.id);b.referencedGeneration=a.gen;b.addRef();return b}},{key:"invoke",value:function(a,b,d){b.functionName=a;this.target.postMessage(b,d)}},{key:"promiseInvoke",value:function(a,b,c,h){var k=this;c=void 0===c?d.e:c;return Object(d.d)(c,function(d,c,n){var r=b.id=k.newId();k.set(r,{resolve:d,reject:c});k.invoke(a,b,h);n.add(function(){k.invoke("rpc.promise.cancel",{id:r})})})}},{key:"newId",value:function(){return k?this.nextId--:this.nextId++}},{key:"numObjects",get:function(){return this.objects.size}}]);
+return a}(),v=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.rpc=null;a.rpcId=null;return a}c(b,a);h(b,[{key:"initializeSharedObject",value:function(a,b){b=void 0===b?a.newId():b;this.rpc=a;this.rpcId=b;this.isOwner=!1;a.set(b,this)}},{key:"initializeCounterpart",value:function(a,b){b=void 0===b?{}:b;this.initializeSharedObject(a);this.referencedGeneration=this.unreferencedGeneration=0;this.isOwner=!0;b.id=this.rpcId;b.type=this.RPC_TYPE_ID;
+a.invoke("SharedObject.new",b)}},{key:"dispose",value:function(){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"dispose",this).call(this)}},{key:"addCounterpartRef",value:function(){return{id:this.rpcId,gen:++this.referencedGeneration}}},{key:"refCountReachedZero",value:function(){!0===this.isOwner?this.referencedGeneration===this.unreferencedGeneration&&this.ownerDispose():!1===this.isOwner?this.rpc.invoke("SharedObject.refCountReachedZero",{id:this.rpcId,gen:this.referencedGeneration}):
+q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"refCountReachedZero",this).call(this)}},{key:"ownerDispose",value:function(){var a=this.rpc,d=this.rpcId;q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"refCountReachedZero",this).call(this);a.delete(d);a.invoke("SharedObject.dispose",{id:d})}},{key:"counterpartRefCountReachedZero",value:function(a){this.unreferencedGeneration=a;0===this.refCount&&a===this.referencedGeneration&&this.ownerDispose()}}]);return b}(m.a),I=function(a){function d(a,
+c){c=void 0===c?{}:c;g(this,d);var h=f(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));b(h,a,c);return h}c(d,a);return d}(v);a("SharedObject.dispose",function(a){a=this.get(a.id);if(0!==a.refCount)throw Error("Attempted to dispose object with non-zero reference count.");a.disposed();this.delete(a.rpcId);a.rpcId=null;a.rpc=null});a("SharedObject.refCountReachedZero",function(a){this.get(a.id).counterpartRefCountReachedZero(a.gen)});var t=new Map;a("SharedObject.new",function(a){--(new (t.get(a.type))(this,
+a)).refCount})},function(m,e,l){function g(a,d){var b=Math.abs(a[d]),c=Math.abs(a[d+1]),k=Math.abs(a[d+2]),u=Math.max(b,c,k);1E-4>b/u&&(a[d]=0);1E-4>c/u&&(a[d+1]=0);1E-4>k/u&&(a[d+2]=0)}function f(b){b=b.and(a[0]);for(var d=1;d<a.length;++d)b=b.xor(b.rshift(Math.pow(2,d))).and(a[d]);return b}e.h=function(a){return a[0]*a[1]*a[2]};e.m=function(a){return a[0]+","+a[1]+","+a[2]};e.j=function(a){g(a,0);g(a,4);g(a,8)};e.k=function(a,d,c){var b=d[0],k=d[1];d=d[2];a[0]=c[0]*b+c[4]*k+c[8]*d;a[1]=c[1]*b+c[5]*
+k+c[9]*d;a[2]=c[2]*b+c[6]*k+c[10]*d;return a};e.b=function(a,d){var b=d[0],c=d[1],k=d[2],u=d[4],p=d[5],x=d[6],n=d[8],v=d[9];d=d[10];a[0]=Math.sqrt(b*b+c*c+k*k);a[1]=Math.sqrt(u*u+p*p+x*x);a[2]=Math.sqrt(n*n+v*v+d*d);return a};e.a=function(a){if(a.high)throw Error("Fragment ids >= 2^32 not supported yet");var b=f(a.rshift(0)),q=f(a.rshift(1));a=f(a.rshift(2));return c.c.clone([b.low,q.low,a.low])};var c=l(31);m=l(6);l.d(e,"g",function(){return c.a});l.d(e,"i",function(){return c.b});l.d(e,"l",function(){return c.c});
+l=c.a.create();e.c=l;l=[c.c.fromValues(1,0,0),c.c.fromValues(0,1,0),c.c.fromValues(0,0,1)];e.d=l;l=c.c.fromValues(0,0,0);e.f=l;c.c.fromValues(1,1,1);l=c.c.fromValues(Infinity,Infinity,Infinity);e.e=l;c.b.create();var a=[new m.a(1227133513,306783378),new m.a(3272356035,818089008),new m.a(251719695,4027515120),new m.a(4278190335,16711680),new m.a(65535,16711680),new m.a(2097151,0)]},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function a(a){var b=a.downloadCancellationToken=
+new h.b;a.source.download(a,b).then(function(){a.downloadCancellationToken===b&&(a.downloadCancellationToken=void 0,a.downloadSucceeded())},function(d){a.downloadCancellationToken===b&&(a.downloadCancellationToken=void 0,a.downloadFailed(d),console.log("Error retrieving chunk "+a+": "+d))})}function b(a){return new w(new n.a(a),u.a)}function d(a,b,d,c,h,k){for(;1>b.availableItems||b.availableSize<a;){var r=h.next().value;if(void 0===r)return!1;var n=r.priorityTier;if(n<d||n===d&&r.priority>=c)return!1;
+k(r)}return!0}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"Chunk",function(){return F});l.d(e,"ChunkSourceBase",function(){return B});l.d(e,"ChunkSource",function(){return H});l.d(e,"ChunkQueueManager",function(){return K});l.d(e,"ChunkManager",function(){return r});e.WithParameters=function(a,b){a=function(a){function b(a){for(var d=[],h=0;h<arguments.length;++h)d[h-0]=arguments[h];c(this,b);var k;h=g(this,(k=b.__proto__||Object.getPrototypeOf(b)).call.apply(k,[].concat([this],$jscomp.arrayFromIterable(d))));
+h.parameters=d[1].parameters;return h}f(b,a);return b}(a);return a=N([Object(I.h)(b.RPC_ID)],a)};e.withChunkManager=function(a){return function(a){function b(a){for(var d=[],h=0;h<arguments.length;++h)d[h-0]=arguments[h];c(this,b);var k;h=g(this,(k=b.__proto__||Object.getPrototypeOf(b)).call.apply(k,[].concat([this],$jscomp.arrayFromIterable(d))));h.chunkManager=d[0].get(d[1].chunkManager);return h}f(b,a);return b}(a)};var q=l(8),h=l(7);m=l(17);var k=l(48),u=l(49),p=l(30),x=l(55),n=l(56),v=l(14),
+I=l(0),t=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),N=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,k=3>h?b:null===c?c=Object.getOwnPropertyDescriptor(b,d):c,r;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)k=Reflect.decorate(a,b,d,c);else for(var n=a.length-1;0<=
+n;n--)if(r=a[n])k=(3>h?r(k):3<h?r(b,d,k):r(b,d))||k;return 3<h&&k&&Object.defineProperty(b,d,k),k},F=function(){function a(){c(this,a);this.key=this.source=this.prev1=this.next1=this.child1=this.prev0=this.next0=this.child0=null;this.state=q.e.NEW;this.error=null;this.newPriority=this.priority=0;this.newPriorityTier=this.priorityTier=q.d.RECENT;this.backendOnly=!1;this.downloadCancellationToken=void 0}t(a,[{key:"initialize",value:function(a){this.key=a;this.state=q.e.NEW;this.priority=Number.NEGATIVE_INFINITY;
+this.priorityTier=q.d.RECENT;this.newPriority=Number.NEGATIVE_INFINITY;this.newPriorityTier=q.d.RECENT;this.error=null}},{key:"updatePriorityProperties",value:function(){this.priorityTier=this.newPriorityTier;this.priority=this.newPriority;this.newPriorityTier=q.d.RECENT;this.newPriority=Number.NEGATIVE_INFINITY}},{key:"dispose",value:function(){this.error=this.source=null}},{key:"downloadFailed",value:function(a){this.error=a;this.queueManager.updateChunkState(this,q.e.FAILED)}},{key:"downloadSucceeded",
+value:function(){this.queueManager.updateChunkState(this,q.e.SYSTEM_MEMORY_WORKER)}},{key:"freeSystemMemory",value:function(){}},{key:"serialize",value:function(a,b){a.id=this.key;a.source=this.source.rpcId;a["new"]=!0}},{key:"toString",value:function(){return this.key}},{key:"chunkManager",get:function(){return this.source.chunkManager}},{key:"queueManager",get:function(){return this.source.chunkManager.queueManager}}],[{key:"priorityLess",value:function(a,b){return a.priority<b.priority}},{key:"priorityGreater",
+value:function(a,b){return a.priority>b.priority}}]);return a}(),B=function(a){function b(a){c(this,b);var d=g(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.chunkManager=a;d.chunks=new Map;d.freeChunks=[];return d}f(b,a);t(b,[{key:"getNewChunk_",value:function(a){var b=this.freeChunks,d=b.length;if(0<d)return a=b[d-1],b.length=d-1,a.source=this,a;b=new a;b.source=this;return b}},{key:"addChunk",value:function(a){var b=this.chunks;0===b.size&&this.addRef();b.set(a.key,a)}},{key:"removeChunk",
+value:function(a){var b=this.chunks,d=this.freeChunks;b.delete(a.key);a.dispose();d[d.length]=a;0===b.size&&this.dispose()}}]);return b}(I.b),H=function(a){function b(a,d){c(this,b);var h=a.get(d.chunkManager);h=g(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,h));Object(I.d)(h,a,d);return h}f(b,a);return b}(B),w=function(){function a(b,d){c(this,a);this.heapOperations=b;this.linkedListOperations=d;this.heapRoots=[null,null];this.recentHead=new F;d.initializeHead(this.recentHead)}t(a,[{key:"add",
+value:function(a){var b=a.priorityTier;if(b===q.d.RECENT)this.linkedListOperations.insertAfter(this.recentHead,a);else{var d=this.heapRoots;d[b]=this.heapOperations.meld(d[b],a)}}},{key:"candidates",value:function(){function a(a,y){for(;;)switch(b){case 0:if(e.heapOperations.compare!==F.priorityLess){b=1;break}A=e;I=A.linkedListOperations;g=A.recentHead;case 3:f=I.back(g);if(null!=f){b=5;break}b=4;break;case 5:return b=7,{value:f,done:!1};case 7:if(void 0===y){b=8;break}b=-1;throw y;case 8:case 6:b=
+3;break;case 4:v=e,x=v.heapRoots,w=q.d.LAST_ORDERED_TIER;case 9:if(!(w>=q.d.FIRST_ORDERED_TIER)){b=11;break}case 12:u=x[w];if(null!=u){b=14;break}b=13;break;case 14:return b=16,{value:u,done:!1};case 16:if(void 0===y){b=17;break}b=-1;throw y;case 17:case 15:b=12;break;case 13:case 10:--w;b=9;break;case 11:b=2;break;case 1:p=e.heapRoots,n=q.d.FIRST_ORDERED_TIER;case 18:if(!(n<=q.d.LAST_ORDERED_TIER)){b=20;break}case 21:r=p[n];if(null!=r){b=23;break}b=22;break;case 23:return b=25,{value:r,done:!1};
+case 25:if(void 0===y){b=26;break}b=-1;throw y;case 26:case 24:b=21;break;case 22:case 19:++n;b=18;break;case 20:k=e,h=k.linkedListOperations,c=k.recentHead;case 27:d=h.front(c);if(null!=d){b=29;break}b=28;break;case 29:return b=31,{value:d,done:!1};case 31:if(void 0===y){b=32;break}b=-1;throw y;case 32:case 30:b=27;break;case 28:case 2:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,c,h,k,r,n,p,u,w,x,v,f,g,I,A,e=this,t={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,
+b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();t[Symbol.iterator]=function(){return this};return t}},{key:"delete",value:function(a){var b=a.priorityTier;if(b===q.d.RECENT)this.linkedListOperations.pop(a);else{var d=this.heapRoots;d[b]=this.heapOperations.remove(d[b],a)}}}]);return a}(),A=function(a){function b(a,d){c(this,b);var h=g(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));h.itemLimit=a;h.sizeLimit=d;h.currentSize=0;h.currentItems=0;h.capacityChanged=
+new v.a;h.registerDisposer(a.changed.add(h.capacityChanged.dispatch));h.registerDisposer(d.changed.add(h.capacityChanged.dispatch));return h}f(b,a);t(b,[{key:"adjust",value:function(a,b){this.currentItems-=a;this.currentSize-=b}},{key:"availableSize",get:function(){return this.sizeLimit.value-this.currentSize}},{key:"availableItems",get:function(){return this.itemLimit.value-this.currentItems}}]);return b}(m.a),K=function(h){function r(a,d){c(this,r);var h=g(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,
+a,d));h.queuedPromotionQueue=b(F.priorityGreater);h.downloadEvictionQueue=b(F.priorityLess);h.systemMemoryEvictionQueue=new w(new x.a(F.priorityLess),k.a);h.gpuMemoryPromotionQueue=b(F.priorityGreater);h.gpuMemoryEvictionQueue=b(F.priorityLess);h.updatePending=null;h.numQueued=0;h.numFailed=0;var n=function(b){b=h.registerDisposer(new A(a.get(b.itemLimit),a.get(b.sizeLimit)));b.capacityChanged.add(function(){return h.scheduleUpdate()});return b};h.gpuMemoryCapacity=n(d.gpuMemoryCapacity);h.systemMemoryCapacity=
+n(d.systemMemoryCapacity);h.downloadCapacity=n(d.downloadCapacity);return h}f(r,h);t(r,[{key:"scheduleUpdate",value:function(){null===this.updatePending&&(this.updatePending=setTimeout(this.process.bind(this),0))}},{key:"chunkQueuesForChunk",value:function(a){function b(b,r){for(;;)switch(d){case 0:h=!1;c=a.state;if(!h&&c!==q.e.QUEUED){d=2;break}h=!0;d=3;return{value:k.queuedPromotionQueue,done:!1};case 3:if(void 0===r){d=4;break}d=-1;throw r;case 4:d=1;break;case 2:if(!h&&c!==q.e.DOWNLOADING){d=
+5;break}h=!0;d=6;return{value:k.downloadEvictionQueue,done:!1};case 6:if(void 0===r){d=7;break}d=-1;throw r;case 7:return d=8,{value:k.systemMemoryEvictionQueue,done:!1};case 8:if(void 0===r){d=9;break}d=-1;throw r;case 9:d=1;break;case 5:if(h||c===q.e.SYSTEM_MEMORY_WORKER)h=!0;if(!h&&c!==q.e.SYSTEM_MEMORY){d=10;break}h=!0;d=11;return{value:k.systemMemoryEvictionQueue,done:!1};case 11:if(void 0===r){d=12;break}d=-1;throw r;case 12:if(a.priorityTier===q.d.RECENT||a.backendOnly){d=13;break}d=14;return{value:k.gpuMemoryPromotionQueue,
+done:!1};case 14:if(void 0===r){d=15;break}d=-1;throw r;case 15:case 13:d=1;break;case 10:if(!h&&c!==q.e.GPU_MEMORY){d=16;break}h=!0;d=17;return{value:k.systemMemoryEvictionQueue,done:!1};case 17:if(void 0===r){d=18;break}d=-1;throw r;case 18:return d=19,{value:k.gpuMemoryEvictionQueue,done:!1};case 19:if(void 0===r){d=20;break}d=-1;throw r;case 20:d=1;break;case 16:case 1:d=-1;default:return{value:void 0,done:!0}}}var d=0,c,h,k=this,r={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,
+a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();r[Symbol.iterator]=function(){return this};return r}},{key:"adjustCapacitiesForChunk",value:function(a,b){b=b?-1:1;switch(a.state){case q.e.FAILED:this.numFailed-=b;break;case q.e.QUEUED:this.numQueued-=b;break;case q.e.DOWNLOADING:this.downloadCapacity.adjust(b,0);this.systemMemoryCapacity.adjust(b,0);break;case q.e.SYSTEM_MEMORY:case q.e.SYSTEM_MEMORY_WORKER:this.systemMemoryCapacity.adjust(b,b*a.systemMemoryBytes);
+break;case q.e.GPU_MEMORY:this.systemMemoryCapacity.adjust(b,b*a.systemMemoryBytes),this.gpuMemoryCapacity.adjust(b,b*a.gpuMemoryBytes)}}},{key:"removeChunkFromQueues_",value:function(a){for(var b=$jscomp.makeIterator(this.chunkQueuesForChunk(a)),d=b.next();!d.done;d=b.next())d.value.delete(a)}},{key:"addChunkToQueues_",value:function(a){if(a.state===q.e.QUEUED&&a.priorityTier===q.d.RECENT)return a.source.removeChunk(a),this.adjustCapacitiesForChunk(a,!1),!1;for(var b=$jscomp.makeIterator(this.chunkQueuesForChunk(a)),
+d=b.next();!d.done;d=b.next())d.value.add(a);return!0}},{key:"performChunkPriorityUpdate",value:function(a){a.priorityTier===a.newPriorityTier&&a.priority===a.newPriority?(a.newPriorityTier=q.d.RECENT,a.newPriority=Number.NEGATIVE_INFINITY):(this.removeChunkFromQueues_(a),a.updatePriorityProperties(),a.state===q.e.NEW&&(a.state=q.e.QUEUED,this.adjustCapacitiesForChunk(a,!0)),this.addChunkToQueues_(a))}},{key:"updateChunkState",value:function(a,b){b!==a.state&&(this.adjustCapacitiesForChunk(a,!1),
+this.removeChunkFromQueues_(a),a.state=b,this.adjustCapacitiesForChunk(a,!0),this.addChunkToQueues_(a),this.scheduleUpdate())}},{key:"processGPUPromotions_",value:function(){function a(a){b.freeChunkGPUMemory(a);a.source.chunkManager.queueManager.updateChunkState(a,q.e.SYSTEM_MEMORY)}for(var b=this,c=this.gpuMemoryPromotionQueue.candidates(),h=this.gpuMemoryEvictionQueue.candidates(),k=this.gpuMemoryCapacity;;){var r=c.next().value;if(void 0===r)break;else{if(!d(r.gpuMemoryBytes,k,r.priorityTier,
+r.priority,h,a))break;this.copyChunkToGPU(r);this.updateChunkState(r,q.e.GPU_MEMORY)}}}},{key:"freeChunkGPUMemory",value:function(a){this.rpc.invoke("Chunk.update",{id:a.key,state:q.e.SYSTEM_MEMORY,source:a.source.rpcId})}},{key:"freeChunkSystemMemory",value:function(a){a.state===q.e.SYSTEM_MEMORY_WORKER?a.freeSystemMemory():this.rpc.invoke("Chunk.update",{id:a.key,state:q.e.EXPIRED,source:a.source.rpcId})}},{key:"copyChunkToGPU",value:function(a){var b=this.rpc;if(a.state===q.e.SYSTEM_MEMORY)b.invoke("Chunk.update",
+{id:a.key,source:a.source.rpcId,state:q.e.GPU_MEMORY});else{var d={},c=[];a.serialize(d,c);d.state=q.e.GPU_MEMORY;b.invoke("Chunk.update",d,c)}}},{key:"processQueuePromotions_",value:function(){for(var b=this,c=this,h=function(a){switch(a.state){case q.e.DOWNLOADING:var d=a.downloadCancellationToken;a.downloadCancellationToken=void 0;d.cancel();break;case q.e.GPU_MEMORY:c.freeChunkGPUMemory(a);case q.e.SYSTEM_MEMORY_WORKER:case q.e.SYSTEM_MEMORY:c.freeChunkSystemMemory(a)}b.updateChunkState(a,q.e.QUEUED)},
+r=this.queuedPromotionQueue.candidates(),k=this.downloadEvictionQueue.candidates(),n=this.systemMemoryEvictionQueue.candidates(),p=this.downloadCapacity,u=this.systemMemoryCapacity;;){var w=r.next();if(w.done)break;w=w.value;var x=w.priorityTier,v=w.priority;if(!d(0,p,x,v,k,h))break;if(!d(0,u,x,v,n,h))break;this.updateChunkState(w,q.e.DOWNLOADING);a(w)}}},{key:"process",value:function(){this.updatePending&&(this.updatePending=null,this.processGPUPromotions_(),this.processQueuePromotions_(),this.logStatistics())}},
+{key:"logStatistics",value:function(){}},{key:"invalidateSourceCache",value:function(a){for(var b=$jscomp.makeIterator(a.chunks.values()),d=b.next();!d.done;d=b.next()){d=d.value;switch(d.state){case q.e.DOWNLOADING:var c=d.downloadCancellationToken;d.downloadCancellationToken=void 0;c.cancel();break;case q.e.SYSTEM_MEMORY_WORKER:d.freeSystemMemory()}this.updateChunkState(d,q.e.QUEUED)}this.rpc.invoke("Chunk.update",{source:a.rpcId});this.scheduleUpdate()}}]);return r}(I.c);K=N([Object(I.g)(q.b)],
+K);var r=function(a){function b(a,d){c(this,b);var h=g(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,d));h.existingTierChunks=[];h.newTierChunks=[];h.updatePending=null;h.recomputeChunkPriorities=new v.a;h.recomputeChunkPrioritiesLate=new v.a;h.memoize=new p.a;h.queueManager=a.get(d.chunkQueueManager).addRef();for(a=q.d.FIRST_TIER;a<=q.d.LAST_TIER;++a)a!==q.d.RECENT&&(h.existingTierChunks[a]=[]);return h}f(b,a);t(b,[{key:"scheduleUpdateChunkPriorities",value:function(){null===this.updatePending&&
+(this.updatePending=setTimeout(this.recomputeChunkPriorities_.bind(this),0))}},{key:"recomputeChunkPriorities_",value:function(){this.updatePending=null;this.recomputeChunkPriorities.dispatch();this.recomputeChunkPrioritiesLate.dispatch();this.updateQueueState([q.d.VISIBLE])}},{key:"requestChunk",value:function(a,b,d){a.newPriorityTier===q.d.RECENT&&this.newTierChunks.push(a);a.newPriorityTier=b;a.newPriority=d}},{key:"updateQueueState",value:function(a){var b=this.existingTierChunks,d=this.queueManager;
+a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var h=b[c.value],r=$jscomp.makeIterator(h);for(c=r.next();!c.done;c=r.next())c=c.value,c.newPriorityTier===q.d.RECENT&&d.performChunkPriorityUpdate(c);h.length=0}a=this.newTierChunks;h=$jscomp.makeIterator(a);for(c=h.next();!c.done;c=h.next())c=c.value,d.performChunkPriorityUpdate(c),b[c.priorityTier].push(c);a.length=0;this.queueManager.scheduleUpdate()}}]);return b}(I.c);r=N([Object(I.g)(q.a)],r);Object(I.f)(q.c,function(a){a=this.get(a.id);
+a.chunkManager.queueManager.invalidateSourceCache(a)})},function(m,e,l){l.d(e,"a",function(){return g});e.b=1E-6;var g="undefined"!==typeof Float32Array?Float32Array:Array;e.c=Math.random},function(m,e,l){m="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Int32Array;e.assign=function(c){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var b=a.shift();if(b){if("object"!==typeof b)throw new TypeError(b+"must be non-object");for(var d in b)Object.prototype.hasOwnProperty.call(b,
+d)&&(c[d]=b[d])}}return c};e.shrinkBuf=function(c,a){if(c.length===a)return c;if(c.subarray)return c.subarray(0,a);c.length=a;return c};var g={arraySet:function(c,a,b,d,q){if(a.subarray&&c.subarray)c.set(a.subarray(b,b+d),q);else for(var h=0;h<d;h++)c[q+h]=a[b+h]},flattenChunks:function(c){var a,b;var d=b=0;for(a=c.length;d<a;d++)b+=c[d].length;var q=new Uint8Array(b);d=b=0;for(a=c.length;d<a;d++){var h=c[d];q.set(h,b);b+=h.length}return q}},f={arraySet:function(c,a,b,d,q){for(var h=0;h<d;h++)c[q+
+h]=a[b+h]},flattenChunks:function(c){return[].concat.apply([],c)}};e.setTyped=function(c){c?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,g)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,f))};e.setTyped(m)},function(m,e,l){function g(a){if("object"===typeof a){if(null===a)return"null";if(Array.isArray(a)){var b="[",d=a.length,c=0;if(c<d)for(b+=g(a[c]);++c<d;)b+=",",b+=g(a[c]);return b+"]"}b="{";d=Object.keys(a).sort();c=0;var u=d.length;if(c<u){var p=d[c];b+=JSON.stringify(p);
+for(b=b+":"+g(a[p]);++c<u;)b+=",",p=d[c],b+=JSON.stringify(p),b+=":",b+=g(a[p])}return b+"}"}return JSON.stringify(a)}function f(d){for(var c="";0<d.length;){var h=d.match(a);if(null===h){var k=d;h=d=""}else{k=d.substr(0,h.index);d=d.substr(h.index+h[0].length);var u=h[1];if(void 0!==u){if(h=u,2<=h.length&&"'"===h.charAt(0)&&"'"===h.charAt(h.length-1)){h=h.substr(1,h.length-2);for(u='"';0<h.length;){var p=h.match(b);if(null===p){u+=h;break}u+=p[1];u+="\\";u+='"';h=h.substr(p.index+p[0].length)}h=
+u+'"'}}else h=h[2]}c+=k.replace(/\(/g,"[").replace(/\)/g,"]").replace("True","true").replace("False","false").replace(/,\s*([\}\]])/g,"$1");c+=h}return c}e.c=g;e.b=function(a){return JSON.parse(f(a))};e.a=function(a,b){if(!Array.isArray(a))throw Error("Expected array, but received: "+JSON.stringify(a)+".");return a.map(b)};e.e=function(a){if("object"!==typeof a||null==a||Array.isArray(a))throw Error("Expected JSON object, but received: "+JSON.stringify(a)+".");return a};e.g=function(a){if("string"!==
+typeof a)throw Error("Expected string, but received: "+JSON.stringify(a)+".");return a};e.f=function(a,b,c){a=a.hasOwnProperty(b)?a[b]:void 0;try{return c(a)}catch(k){throw Error("Error parsing "+JSON.stringify(b)+" property: "+k.message);}};e.d=function(a){var b=c.l.create(),d=b.length;if(!Array.isArray(a)||a.length!==d)throw Error("Expected length "+d+" array, but received: "+JSON.stringify(a)+".");for(var k=0;k<d;++k){var u=b,p=k;var x=a[k];b:{var n=typeof x;if("number"===n||"string"===n)if(n=
+parseFloat(""+x),!Number.isNaN(n)){x=n;break b}throw Error("Expected floating-point number, but received: "+JSON.stringify(x)+".");}if(!Number.isFinite(x))throw Error("Expected finite floating-point number, but received: "+x+".");u[p]=x}return b};e.h=function(a){if(!Array.isArray(a))throw Error("Expected array, received: "+JSON.stringify(a)+".");for(var b=$jscomp.makeIterator(a),d=b.next();!d.done;d=b.next())if(d=d.value,"string"!==typeof d)throw Error("Expected string, received: "+JSON.stringify(d)+
+".");return a};var c=l(1),a=new RegExp(/('(?:[^'\\]|(?:\\.))*')/.source+"|"+/("(?:[^'\\]|(?:\\.))*")/.source),b=/^((?:[^"'\\]|(?:\\.))*)"/},function(m,e,l){l.d(e,"a",function(){return q});var g=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),f=new Uint32Array(2),c=[];for(m=2;36>=m;++m){e=Math.floor(32/Math.log2(m));
+l=Math.pow(m,e);var a=Math.floor(e/2),b=Math.pow(m,a);a=Math.pow(m,e-a);var d="^[0-"+String.fromCharCode(48+Math.min(9,m-1));10<m&&(d+="a-"+String.fromCharCode(97+m-11),d+="A-"+String.fromCharCode(65+m-11));d+="]{1,"+Math.ceil(64/Math.log2(m))+"}$";c[m]={lowDigits:e,lowBase:l,lowBase1:b,lowBase2:a,pattern:new RegExp(d)}}var q=function(){function a(b,d){b=void 0===b?0:b;d=void 0===d?0:d;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.low=b;this.high=d}g(a,[{key:"clone",
+value:function(){return new a(this.low,this.high)}},{key:"assign",value:function(a){this.low=a.low;this.high=a.high}},{key:"toString",value:function(a){a=void 0===a?10:a;var b=this.low,d=this.high;if(0===d)return b.toString(a);d*=4294967296;var h=c[a],k=h.lowBase;h=h.lowDigits;var q=d%k;d=Math.floor(d/k);b+=q;d+=Math.floor(b/k);b=(b%k).toString(a);return d.toString(a)+"0".repeat(h-b.length)+b}},{key:"tryParseString",value:function(a,b){b=void 0===b?10:b;var d=c[b],h=d.lowDigits,k=d.lowBase,u=d.lowBase1,
+q=d.lowBase2;if(!d.pattern.test(a))return!1;if(a.length<=h)return this.low=parseInt(a,b),this.high=0,!0;h=a.length-h;d=parseInt(a.substr(h),b);a=parseInt(a.substr(0,h),b);k=Math.floor(a*k/4294967296);u=d+a%4294967296*u%4294967296*q%4294967296;4294967296<u&&(++k,u-=4294967296);if(u>>>0!==u||k>>>0!==k)return!1;this.low=u;this.high=k;return!0}},{key:"parseString",value:function(a,b){if(!this.tryParseString(a,void 0===b?10:b))throw Error("Failed to parse string as uint64 value: "+JSON.stringify(a)+".");
+return this}},{key:"valid",value:function(){var a=this.low,b=this.high;return a>>>0===a&&b>>>0===b}},{key:"toJSON",value:function(){return this.toString()}},{key:"lshift",value:function(b){b&=63;if(0==b)return this.clone();var d=this.low,c=this.high;return 32>b?new a(d<<b,c<<b|d>>>32-b):new a(0,d<<b-32)}},{key:"rshift",value:function(b){b&=63;if(0==b)return this.clone();var d=this.low,c=this.high;return 32>b?new a(d>>>b|c<<32-b,c>>b):new a(c>>b-32,0<=c?0:-1)}},{key:"or",value:function(b){return new a(this.low|
+b.low,this.high|b.high)}},{key:"xor",value:function(b){return new a(this.low^b.low,this.high^b.high)}},{key:"and",value:function(b){return new a(this.low&b.low,this.high&b.high)}}],[{key:"less",value:function(a,b){return a.high<b.high||a.high===b.high&&a.low<b.low}},{key:"compare",value:function(a,b){return a.high-b.high||a.low-b.low}},{key:"equal",value:function(a,b){return a.low===b.low&&a.high===b.high}},{key:"min",value:function(b,d){return a.less(b,d)?b:d}},{key:"random",value:function(){crypto.getRandomValues(f);
+return new a(f[0],f[1])}},{key:"parseString",value:function(b,d){d=void 0===d?10:d;return(new a).parseString(b,d)}}]);return a}();q.ZERO=new q(0,0)},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof
+b))throw new TypeError("Cannot call a class as a function");}l.d(e,"b",function(){return d});l.d(e,"c",function(){return q});e.d=function(a,c){return new Promise(function(h,k){if(a===b)c(h,k,b);else{var p=new d,n=a.add(function(){p.cancel()});c(function(a){n();h(a)},function(a){n();k(a)},p)}})};var c=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&
+a(b.prototype,d);c&&a(b,c);return b}}();m=new (function(){function a(){f(this,a);this.name="CancellationError";this.message="CANCELED"}c(a,[{key:"toString",value:function(){return"CANCELED"}}]);return a}());e.a=m;var a=function(){},b={isCanceled:!1,add:function(){return a},remove:a};e.e=b;var d=function(){function b(){f(this,b)}c(b,[{key:"cancel",value:function(){var a=this.handlers;if(null!==a&&(this.handlers=null,void 0!==a)){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value,
+b()}}},{key:"add",value:function(b){var d=this,c=this.handlers;if(null===c)return b(),a;void 0===c&&(c=this.handlers=new Set);c.add(b);return function(){d.remove(b)}}},{key:"remove",value:function(a){var b=this.handlers;null!=b&&b.delete(a)}},{key:"isCanceled",get:function(){return null===this.handlers}}]);return b}(),q=function(a){function d(){f(this,d);var a=(d.__proto__||Object.getPrototypeOf(d)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.consumers=new Set;return a}g(d,a);c(d,[{key:"addConsumer",value:function(a){var d=this;a=void 0===a?b:a;var c=this.consumers;c.has(a)||a.isCanceled||(c.add(a),a.add(function(){c.delete(a);0===c.size&&d.cancel()}))}}]);return d}(d)},function(m,e,l){l.d(e,"e",function(){return g});l.d(e,"d",function(){return f});var g;(function(c){c[c.GPU_MEMORY=0]="GPU_MEMORY";c[c.SYSTEM_MEMORY=1]="SYSTEM_MEMORY";c[c.SYSTEM_MEMORY_WORKER=2]="SYSTEM_MEMORY_WORKER";
+c[c.DOWNLOADING=3]="DOWNLOADING";c[c.QUEUED=4]="QUEUED";c[c.NEW=5]="NEW";c[c.FAILED=6]="FAILED";c[c.EXPIRED=7]="EXPIRED"})(g||(g={}));var f;(function(c){c[c.FIRST_TIER=0]="FIRST_TIER";c[c.FIRST_ORDERED_TIER=0]="FIRST_ORDERED_TIER";c[c.VISIBLE=0]="VISIBLE";c[c.PREFETCH=1]="PREFETCH";c[c.LAST_ORDERED_TIER=1]="LAST_ORDERED_TIER";c[c.RECENT=2]="RECENT";c[c.LAST_TIER=2]="LAST_TIER"})(f||(f={}));e.f=1E13;e.b="ChunkQueueManager";e.a="ChunkManager";e.c="ChunkSource.invalidate"},function(m,e,l){function g(a,
+b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,d){for(var c=0;3>c;++c)a[c]=Number.POSITIVE_INFINITY,b[c]=Number.NEGATIVE_INFINITY;d=$jscomp.makeIterator(d);
+for(c=d.next();!c.done;c=d.next()){var h=c.value.spec;c=h.lowerChunkBound;h=h.upperChunkBound;for(var r=0;3>r;++r)a[r]=Math.min(a[r],c[r]),b[r]=Math.max(b[r],h[r])}}function a(a,b,d,c){for(var h=v.FULLY_INSIDE,r=0;3>r;++r){var n=a[r];var k=b[r],w=d[r],p=c[r];n=n>=p||k<=w?v.FULLY_OUTSIDE:n>=w&&k<=p?v.FULLY_INSIDE:v.PARTIALLY_INSIDE;switch(n){case v.FULLY_OUTSIDE:return n;case v.PARTIALLY_INSIDE:h=n}}return h}function b(a,b){var d=b.length,c=0;if(1<d)for(var h=0,r=0;r<d;++r){var k=b[r].spec.chunkLayout;
+var p=k.size;k=k.globalToLocalSpatialVector(n,a);for(var u=0,q=0,x=1,v=0;3>v;++v){var f=p[v];x*=f;f*=k[v];u=Math.min(u,f);q=Math.max(q,f)}p=x/(q-u);p>h&&(h=p,c=r)}return b[c]}function d(a){var b=a.voxelSize,d=void 0===a.lowerVoxelBound?p.f:a.lowerVoxelBound,c=a.upperVoxelBound,h=void 0===a.maxVoxelsPerChunkLog2?18:a.maxVoxelsPerChunkLog2;a=void 0===a.transform?p.c:a.transform;a=Object(p.b)(p.l.create(),a);b=p.l.multiply(a,a,b);a=p.l.fromValues(1,1,1);if(void 0===c)var r=p.e;else{r=p.l.create();for(var n=
+0;3>n;++n)r[n]=Math.pow(2,Math.floor(Math.log2(c[n]-d[n])))}for(d=0;d<h;++d){c=Infinity;n=-1;for(var k=0;3>k;++k)if(!(a[k]>=r[k])){var u=a[k]*b[k];u<c&&(c=u,n=k)}c=n;if(-1===c)break;a[c]*=2}return a}l.d(e,"c",function(){return t});e.g=d;e.f=function(a,b){b=b.transform;return void 0===b?void 0===a?p.c:a:void 0===a?b:p.g.multiply(p.g.create(),b,a)};e.e=function(a){if(void 0!==a.chunkDataSizes)return a.chunkDataSizes;var b=void 0===a.chunkLayoutPreference?N.ISOTROPIC:a.chunkLayoutPreference;switch(b){case N.ISOTROPIC:return[d(a)];
+case N.FLAT:b=[];for(var c=0;3>c;++c){var h=c;var k=a.lowerVoxelBound;var r=a.upperVoxelBound,u=c,q=a.voxelSize,x=a.maxVoxelsPerChunkLog2,v=a.transform;p.l.subtract(n,void 0===r?p.e:r,void 0===k?p.f:k);n[u]=1;k=d({voxelSize:q,upperVoxelBound:n,maxVoxelsPerChunkLog2:x,transform:v});b[h]=k}b.push(d(a));return b}throw Error("Invalid chunk layout preference: "+b+".");};l.d(e,"d",function(){return F});var q=l(57),h=l(18),k=l(58),u=l(10),p=l(1);m=l(0);l.d(e,"a",function(){return u.b});var x=function(){function a(a,
+b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),n=p.l.create(),v;(function(a){a[a.FULLY_OUTSIDE=0]="FULLY_OUTSIDE";a[a.FULLY_INSIDE=1]="FULLY_INSIDE";a[a.PARTIALLY_INSIDE=2]="PARTIALLY_INSIDE"})(v||(v={}));var I=[p.l.create(),p.l.create(),p.l.create(),p.l.create()],t=function(d){function u(){g(this,u);var a=(u.__proto__||Object.getPrototypeOf(u)).call(this);
+if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.width=-1;a.height=-1;a.hasViewportToData=!1;a.hasValidViewport=!1;a.viewportToData=p.g.create();a.viewportAxes=[p.l.create(),p.l.create(),p.l.create()];a.previousViewportAxes=[p.l.create(),p.l.create()];a.centerDataPosition=p.l.create();a.viewportPlaneDistanceToOrigin=0;a.visibleChunkLayouts=new Map;a.visibleLayers=new Map;a.visibleSourcesStale=!0;
+a.pixelSize=0;p.g.identity(a.viewportToData);return a}f(u,d);x(u,[{key:"onViewportChanged",value:function(){}},{key:"maybeSetHasValidViewport",value:function(){!this.hasValidViewport&&-1!==this.width&&-1!==this.height&&this.hasViewportToData&&(this.hasValidViewport=!0,this.onHasValidViewport());if(this.hasValidViewport)this.onViewportChanged()}},{key:"onHasValidViewport",value:function(){}},{key:"setViewportSize",value:function(a,b){return a!==this.width||b!==this.height?(this.width=a,this.height=
+b,this.maybeSetHasValidViewport(),!0):!1}},{key:"setViewportToDataMatrix",value:function(a){if(this.hasViewportToData&&p.g.equals(this.viewportToData,a))return!1;this.hasViewportToData=!0;var b=this.viewportToData;p.g.copy(b,a);Object(p.j)(b);p.l.transformMat4(this.centerDataPosition,p.f,a);a=0;for(var d=this.viewportAxes,c=this.previousViewportAxes,h=0;3>h;++h){var n=d[h];Object(p.k)(n,p.d[h],b);0===h&&(a=p.l.length(n));p.l.normalize(n,n)}this.viewportAxes=d;this.previousViewportAxes=c;if(!Object(k.a)(a,
+this.pixelSize)||.95>p.l.dot(d[0],c[0])||.95>p.l.dot(d[1],c[1]))p.l.copy(c[0],d[0]),p.l.copy(c[1],d[1]),this.visibleSourcesStale=!0,this.pixelSize=a;this.viewportPlaneDistanceToOrigin=p.l.dot(this.centerDataPosition,this.viewportAxes[2]);this.onViewportToDataMatrixChanged();this.maybeSetHasValidViewport();return!0}},{key:"onViewportToDataMatrixChanged",value:function(){}},{key:"updateVisibleSources",value:function(){if(this.visibleSourcesStale){this.visibleSourcesStale=!1;var a=1.1*this.pixelSize,
+d=this.visibleChunkLayouts,c=this.viewportAxes[2],h=this.visibleLayers;d.clear();var n={};h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;n={smallestVoxelSize:n.smallestVoxelSize,visibleSources:n.visibleSources},k=h.next()){k=$jscomp.makeIterator(k.value);var p=k.next().value;n.visibleSources=k.next().value;n.visibleSources.length=0;k=p.sources;var u=k.length;p=void 0;n.smallestVoxelSize=k[0][0].spec.voxelSize;var q=function(b){return function(d){for(var c=0;3>c;++c){var h=d[c];if(h>a&&h>b.smallestVoxelSize[c])return!0}return!1}}(n),
+x=function(a){return function(b,c){a.visibleSources[a.visibleSources.length++]=b;var h=b.spec.chunkLayout,r=d.get(h);void 0===r&&(r=new Map,d.set(h,r));r.set(b,c)}}(n);for(p=u-1;;){u=b(c,k[p]);x(u,p);if(0===p||!q(u.spec.voxelSize))break;--p}n.visibleSources.reverse()}}}},{key:"computeVisibleChunks",value:function(b,d){var k=this;this.updateVisibleSources();for(var r=this.width,u=this.height,w=this.viewportToData,q=0;3>q;++q)I[0][q]=-p.d[0][q]*r/2-p.d[1][q]*u/2,I[1][q]=-p.d[0][q]*r/2+p.d[1][q]*u/2,
+I[2][q]=p.d[0][q]*r/2-p.d[1][q]*u/2,I[3][q]=p.d[0][q]*r/2+p.d[1][q]*u/2;for(r=0;4>r;++r)p.l.transformMat4(I[r],I[r],w);var x=p.l.create(),f=p.l.create(),g=p.l.create(),e=p.l.create(),A=p.l.create(),t=p.l.create(),y=[],l=[];this.visibleChunkLayouts.forEach(function(r,u){function q(){for(var a=0,b=0,d=0;3>d;++d){var c=t[d],h=x[d],r=f[d]-h,n=A[d]*r;a+=c*(h+n);b+=c*(h+r-n)}return a<B?!1:b<=B}function w(b){function c(){K=Object(h.b)(y,0,I,function(b){var d=b.spec;switch(a(x,f,d.lowerChunkBound,d.upperChunkBound)){case v.PARTIALLY_INSIDE:return!0;
+case v.FULLY_INSIDE:l.push(b);default:return!1}})}if(0!==l.length||0!==K){for(var r=1,n=0;3>n;++n)r*=Math.max(0,f[n]-x[n]);if(0!==r&&q())if(1===r)d(u,G,x,l);else{for(var k;;)if(r=x[b],n=f[b],k=n-r,1===k)b=(b+1)%3;else break;k=r+Math.floor(.5*k);var p=(b+1)%3,g=l.length;f[b]=k;var I=K;c();w(p);l.length=g;K=I;f[b]=n;x[b]=k;c();w(p);x[b]=r;l.length=g;K=I}}}var G=b(u);c(g,e,r.keys());p.l.set(x,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY);p.l.set(f,Number.NEGATIVE_INFINITY,
+Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);u.globalToLocalSpatialVector(t,k.viewportAxes[2]);for(var z=0;3>z;++z)A[z]=0<t[z]?1:0;var B=p.l.dot(u.globalToLocalGrid(n,k.centerDataPosition),t);for(z=0;4>z;++z)for(var N=u.globalToLocalGrid(n,I[z]),H=0;3>H;++H)x[H]=Math.min(x[H],Math.floor(N[H])),f[H]=Math.max(f[H],Math.floor(N[H])+1);p.l.max(x,x,g);p.l.min(f,f,e);l.length=0;y.length=0;r=$jscomp.makeIterator(r.keys());for(z=r.next();!z.done;z=r.next())switch(z=z.value,N=z.spec,a(x,f,N.lowerChunkBound,
+N.upperChunkBound)){case v.FULLY_INSIDE:l.push(z);break;case v.PARTIALLY_INSIDE:y.push(z)}var K=y.length;w(0)})}}]);return u}(m.b),N;(function(a){a[a.ISOTROPIC=0]="ISOTROPIC";a[a.FLAT=1]="FLAT"})(N||(N={}));var F=function H(a){g(this,H);var b=void 0===a.lowerVoxelBound?p.f:a.lowerVoxelBound,d=a.upperVoxelBound,c=a.chunkDataSize,h=a.voxelSize,n=a.transform,k=void 0===a.baseVoxelOffset?p.f:a.baseVoxelOffset,u=void 0===a.lowerClipBound?p.l.multiply(p.l.create(),h,b):a.lowerClipBound,w=void 0===a.upperClipBound?
+p.l.multiply(p.l.create(),h,d):a.upperClipBound;this.voxelSize=h;this.chunkDataSize=c;this.chunkLayout=q.a.get(p.l.multiply(p.l.create(),a.chunkDataSize,h),n);this.lowerClipBound=u;this.upperClipBound=w;this.lowerVoxelBound=b;this.upperVoxelBound=d;this.baseVoxelOffset=k;a=this.lowerChunkBound=p.l.create();h=this.upperChunkBound=p.l.create();for(n=0;3>n;++n)a[n]=Math.floor(b[n]/c[n]),h[n]=Math.floor((d[n]-1)/c[n]+1)};e.b="SliceView"},function(m,e,l){l.d(e,"b",function(){return g});var g;(function(f){f[f.UINT8=
+0]="UINT8";f[f.UINT16=1]="UINT16";f[f.UINT32=2]="UINT32";f[f.UINT64=3]="UINT64";f[f.FLOAT32=4]="FLOAT32"})(g||(g={}));m=[];e.a=m;m[g.UINT8]=1;m[g.UINT16]=2;m[g.UINT32]=4;m[g.UINT64]=8;m[g.FLOAT32]=4},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,
+b):a.__proto__=b)}l.d(e,"a",function(){return q});e.b=function(a,c){c=void 0===c?"GET":c;var h=new XMLHttpRequest;h[d]=c;h[b]=a;h.open(c,a);return h};e.c=function(a,k,u){u=void 0===u?"GET":u;var h=new XMLHttpRequest;if(Array.isArray(a)){var q=a.length;q=1===q?0:Math.abs(Object(c.a)(k))%q;a=a[q]+k}else a+=k;h[d]=u;h[b]=a;h.open(u,a);return h};e.e=function(a,b,d){d=void 0===d?f.e:d;a.responseType=b;return new Promise(function(b,c){var h=function(){a.abort()};d.add(h);a.onloadend=function(){var n=this.status;
+d.remove(h);200<=n&&300>n?b(this.response):c(q.fromXhr(a))};a.send()})};e.d=function(a,b,d,c){c=void 0===c?f.e:c;a.responseType=d;a.setRequestHeader("Content-Type","application/json");return new Promise(function(d,h){var n=function(){a.abort()};c.add(n);a.onloadend=function(){var b=this.status;c.remove(n);200<=b&&300>b?d(this.response):h(q.fromXhr(a))};a.send(JSON.stringify(b))})};var f=l(7),c=l(66),a=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;
+c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}();$jscomp.initSymbol();var b=Symbol("url");$jscomp.initSymbol();var d=Symbol("method"),q=function(c){function h(a,b,d,c){if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");var n=a+" "+JSON.stringify(b)+" resulted in HTTP error "+d;c&&(n+=": "+c);n+=".";var k=(h.__proto__||Object.getPrototypeOf(h)).call(this,n);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+k=!k||"object"!==typeof k&&"function"!==typeof k?this:k;k.name="HttpError";k.message=n;k.method=a;k.url=b;k.code=d;k.statusMessage=c;return k}g(h,c);a(h,null,[{key:"fromXhr",value:function(a){return new h(a[d],a[b],a.status,a.statusText)}}]);return h}(Error)},function(m,e,l){l.d(e,"b",function(){return g});e.c=function(c,a,b){b=void 0===b?f:b;if(a!==b)for(c=new Uint8Array(c.buffer,c.byteOffset,c.byteLength),a=0,b=c.length;a<b;a+=2){var d=c[a];c[a]=c[a+1];c[a+1]=d}};e.d=function(c,a,b){b=void 0===
+b?f:b;if(a!==b)for(c=new Uint8Array(c.buffer,c.byteOffset,c.byteLength),a=0,b=c.length;a<b;a+=4){var d=c[a];c[a]=c[a+3];c[a+3]=d;d=c[a+1];c[a+1]=c[a+2];c[a+2]=d}};var g;(function(c){c[c.LITTLE=0]="LITTLE";c[c.BIG=1]="BIG"})(g||(g={}));var f=function(){var c=Uint16Array.of(4386);return 17===(new Uint8Array(c.buffer))[0]?g.BIG:g.LITTLE}();e.a=f},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"a",function(){return k});m=l(22);var a=l(36),b=l(1);l=l(0);var d=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=
+b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),q=function p(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return p(a,b,d)}else{if("value"in c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}};e=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,n=3>h?b:
+null===c?c=Object.getOwnPropertyDescriptor(b,d):c,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)n=Reflect.decorate(a,b,d,c);else for(var q=a.length-1;0<=q;q--)if(k=a[q])n=(3>h?k(n):3<h?k(b,d,n):k(b,d))||n;return 3<h&&n&&Object.defineProperty(b,d,n),n};var h=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.source=null;return a}c(b,a);d(b,[{key:"initializeVolumeChunk",value:function(a,d){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"initializeVolumeChunk",this).call(this,a,d);a=this.source;this.gpuMemoryBytes=this.systemMemoryBytes=a.spec.chunkBytes;this.data=null}},{key:"serialize",value:function(a,d){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"serialize",this).call(this,a,d);a=a.data=this.data;d.push(a.buffer);this.data=null}},{key:"downloadSucceeded",value:function(){this.systemMemoryBytes=this.gpuMemoryBytes=this.data.byteLength;q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",
+this).call(this)}},{key:"freeSystemMemory",value:function(){this.data=null}}]);return b}(m.SliceViewChunk),k=function(k){function q(b,d){g(this,q);b=f(this,(q.__proto__||Object.getPrototypeOf(q)).call(this,b,d));b.spec=a.c.fromObject(d.spec);return b}c(q,k);d(q,[{key:"getChunk",value:function(a){var d=Object(b.m)(a),c=this.chunks.get(d);void 0===c&&(c=this.getNewChunk_(h),c.initializeVolumeChunk(d,a),this.addChunk(c));return c}}]);return q}(m.SliceViewChunkSource);m=function(a){function b(){g(this,
+b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}c(b,a);return b}(m.RenderLayer);m=e([Object(l.g)(a.b)],m)},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof
+b))throw new TypeError("Cannot call a class as a function");}l.d(e,"b",function(){return a});l.d(e,"a",function(){return b});var c=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),a=function(){function a(){f(this,a);this.handlers=new Set;this.count=0;var b=this;this.dispatch=function(){var a=this,d=arguments;
+++b.count;b.handlers.forEach(function(b){b.apply(a,d)})}}c(a,[{key:"add",value:function(a){var b=this;this.handlers.add(a);return function(){return b.remove(a)}}},{key:"remove",value:function(a){return this.handlers.delete(a)}},{key:"dispose",value:function(){this.handlers=void 0}}]);return a}(),b=function(a){function b(){f(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||
+"object"!==typeof a&&"function"!==typeof a?this:a}g(b,a);return b}(a)},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&
+(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}e.c=function(a){return function(a){function b(a){for(var d=[],c=0;c<arguments.length;++c)d[c-0]=arguments[c];if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var q,p=g(this,(q=b.__proto__||Object.getPrototypeOf(b)).call.apply(q,[].concat([this],$jscomp.arrayFromIterable(d))));p.visibility=d[0].get(d[1].visibility);p.registerDisposer(p.visibility.changed.add(function(){return p.chunkManager.scheduleUpdateChunkPriorities()}));
+return p}f(b,a);return b}(a)};e.b=function(a){return a===Number.POSITIVE_INFINITY?c.d.VISIBLE:c.d.PREFETCH};e.a=function(a){return a===Number.POSITIVE_INFINITY?0:a*c.f};l(59);var c=l(8)},function(m,e,l){e.a=function(c,a){Object(g.a)(c,Object(f.a)(new Uint8Array(a),c.chunkDataSize,c.source.spec.numChannels))};var g=l(25),f=l(79)},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&
+b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(a,b,d,c){a.addEventListener(b,d,c);return function(){return a.removeEventListener(b,d,c)}}l.d(e,"a",function(){return b});l.d(e,"b",function(){return d});var a=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||
+!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),b=function(){function b(){f(this,b);this.refCount=1}a(b,[{key:"addRef",value:function(){++this.refCount;return this}},{key:"dispose",value:function(){0===--this.refCount&&this.refCountReachedZero()}},{key:"refCountReachedZero",value:function(){this.disposed();var a=this.disposers;if(null!=a){for(var b=a.length;0<b;--b){var d=a[b-1];"object"===typeof d?
+d.dispose():d.call(this)}this.disposers=void 0}this.wasDisposed=!0}},{key:"disposed",value:function(){}},{key:"registerDisposer",value:function(a){var b=this.disposers;null==b?this.disposers=[a]:b.push(a);return a}},{key:"unregisterDisposer",value:function(a){var b=this.disposers;if(null!=b){var d=b.indexOf(a);-1!==d&&b.splice(d,1)}return a}},{key:"registerEventListener",value:function(a,b,d,p){this.registerDisposer(c(a,b,d,p))}},{key:"registerCancellable",value:function(a){this.registerDisposer(function(){a.cancel()});
+return a}}]);return b}(),d=function(a){function b(a){f(this,b);var d=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");d=!d||"object"!==typeof d&&"function"!==typeof d?this:d;d.value=a;return d}g(b,a);return b}(b)},function(m,e,l){e.b=function(g,f,c,a){for(;f<c;){var b=g[f];a(b)?++f:(--c,g[f]=g[c],g[c]=b)}return c};e.a=function(g,f){var c=g.length,a=Array(c);f=a[0]=void 0===f?1:f;for(var b=1;b<c;++b)f*=
+g[b-1],a[b]=f;return a};e.c=function(g,f,c){for(var a=new g.constructor(g.length),b=0;b<f*c;b+=c)for(var d=0;d<c;d++)a[d*f+b/c]=g[b+d];return a}},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a,b){for(var d=u.l.create(),c=u.l.create(),r=u.l.create(),h=new Float32Array(a.length),n=new Float32Array(a.length/3),k=b.length,p=0;p<k;p+=3)for(var q=0;3>q;++q)n[b[p+q]]+=1;for(p=0;p<k;p+=3){q=3*b[p];for(var w=3*b[p+1],f=3*b[p+2],v=0;3>v;++v)c[v]=a[w+v]-a[q+v],r[v]=a[f+v]-a[w+v];u.l.cross(d,c,r);u.l.normalize(d,
+d);for(q=0;3>q;++q)for(f=b[p+q],w=1/n[f],f*=3,v=0;3>v;++v)h[f+v]+=w*d[v]}a=h.length;for(b=0;b<a;b+=3)d=h.subarray(b,3),u.l.normalize(d,d);return h}function b(a,b,d,c,r,h,n,p){var q=new Float32Array(d,r,3*h);Object(k.d)(q,c);void 0===n&&(n=r+12*h);var w;void 0!==p&&(w=p*b);d=void 0===w?new Uint32Array(d,n):new Uint32Array(d,n,w);if(0!==d.length%b)throw Error("Number of indices is not a multiple of "+b+": "+d.length+".");Object(k.d)(d,c);a.vertexPositions=q;a.indices=d}e.c=function(a,b,d){Object(p.e)(b);
+a.fragmentIds=Object(p.f)(b,d,p.h)};e.b=a;e.e=b;e.d=function(d,c,h,n,r,k,p){b(d,3,c,h,n,r,k,p);d.vertexNormals=a(d.vertexPositions,d.indices)};l.d(e,"a",function(){return B});var d=l(2),q=l(8);m=l(68);e=l(35);var h=l(23),k=l(12),u=l(1),p=l(5),x=l(6),n=l(15);l=l(0);var v=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);
+return b}}(),I=function w(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return w(a,b,d)}else{if("value"in c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}},t=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,r=3>h?b:null===c?c=Object.getOwnPropertyDescriptor(b,d):c,n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(a,b,d,c);else for(var k=a.length-
+1;0<=k;k--)if(n=a[k])r=(3>h?n(r):3<h?n(b,d,r):n(b,d))||r;return 3<h&&r&&Object.defineProperty(b,d,r),r},N=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.backendOnly=!0;a.objectId=new x.a;return a}c(b,a);v(b,[{key:"initializeManifestChunk",value:function(a,d,c){I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initialize",this).call(this,a);this.objectId.assign(d);c&&(this.clipBounds=c)}},{key:"freeSystemMemory",value:function(){this.fragmentIds=
+null}},{key:"downloadSucceeded",value:function(){this.systemMemoryBytes=100;I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",this).call(this);this.priorityTier<q.d.RECENT&&this.source.chunkManager.scheduleUpdateChunkPriorities()}},{key:"toString",value:function(){return this.objectId.toString()}}]);return b}(d.Chunk),F=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.manifestChunk=null;a.fragmentId=null;a.vertexPositions=
+null;a.indices=null;a.vertexNormals=null;return a}c(b,a);v(b,[{key:"initializeFragmentChunk",value:function(a,d,c){I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initialize",this).call(this,a);this.manifestChunk=d;this.fragmentId=c}},{key:"freeSystemMemory",value:function(){this.fragmentId=this.vertexPositions=this.indices=this.vertexNormals=this.manifestChunk=null}},{key:"serialize",value:function(a,d){I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"serialize",this).call(this,
+a,d);a.objectKey=this.manifestChunk.key;var c=this.vertexPositions,h=this.indices,r=this.vertexNormals;a.vertexPositions=c;a.indices=h;a.vertexNormals=r;a=c.buffer;d.push(a);h=h.buffer;h!==a&&d.push(h);r=r.buffer;r!==a&&r!==h&&d.push(r);this.vertexPositions=this.indices=this.vertexNormals=null}},{key:"downloadSucceeded",value:function(){this.systemMemoryBytes=this.gpuMemoryBytes=this.vertexPositions.byteLength+this.indices.byteLength+this.vertexNormals.byteLength;I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"downloadSucceeded",this).call(this)}}]);return b}(d.Chunk),B=function(a){function b(a,d){g(this,b);var c=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,d));return(c.fragmentSource=c.registerDisposer(a.getRef(d.fragmentSource))).meshSource=c}c(b,a);v(b,[{key:"getChunk",value:function(a,b){var d=Object(h.b)(a,b),c=this.chunks.get(d);void 0===c&&(c=this.getNewChunk_(N),c.initializeManifestChunk(d,a,b),this.addChunk(c));return c}},{key:"getFragmentChunk",value:function(a,b){var d=a.key+"/"+
+b,c=this.fragmentSource,h=c.chunks.get(d);void 0===h&&(h=c.getNewChunk_(F),h.initializeFragmentChunk(d,a,b),c.addChunk(h));return h}}]);return b}(d.ChunkSource);d=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.meshSource=null;return a}c(b,a);v(b,[{key:"download",value:function(a,b){return this.meshSource.downloadFragment(a,b)}}]);return b}(d.ChunkSource);d=t([Object(l.g)(m.a)],d);e=function(a){function b(a,d){g(this,b);var c=f(this,
+(b.__proto__||Object.getPrototypeOf(b)).call(this,a,d));c.source=c.registerDisposer(a.getRef(d.source));c.registerDisposer(c.chunkManager.recomputeChunkPriorities.add(function(){c.updateChunkPriorities()}));return c}c(b,a);v(b,[{key:"updateChunkPriorities",value:function(){var a=this,b=this.visibility.value;if(b!==Number.NEGATIVE_INFINITY){var d=Object(n.b)(b),c=Object(n.a)(b),k=this.source,p=this.chunkManager;Object(h.a)(this,function(b){b=k.getChunk(b,a.clipBounds.value);p.requestChunk(b,d,c+100);
+if(b.state===q.e.SYSTEM_MEMORY_WORKER)for(var h=$jscomp.makeIterator(b.fragmentIds),n=h.next();!n.done;n=h.next())n=k.getFragmentChunk(b,n.value),p.requestChunk(n,d,c+50)})}}}]);return b}(e.a);e=t([Object(l.g)(m.b)],e)},function(m,e,l){function g(f,c,a,b,d,q,h){for(var k=new Map,u=Array(3),p=2,x=0;3>x;++x){var n=u[x]=Math.ceil(b[x]/c[x]);p*=n}x=u[0];n=u[1];u=u[2];var v=b[0],g=b[1];b=b[2];var e=c[0],l=c[1],F=c[2],B=f.length,H=B,w=[0,0,0];f.resize(B+p);p=q[0];for(var A=q[1],m=q[2],r=0;r<u;++r){w[2]=
+Math.min(F,b-r*F);for(var z=0;z<n;++z){w[1]=Math.min(l,g-z*l);for(var G=0;G<x;++G){w[0]=Math.min(e,v-G*e);var D=f.length-B,C=$jscomp.makeIterator(h(a,d+(r*F*m+z*l*A+G*e*p),q,c,w,B,k,f)),E=C.next().value;C=C.next().value;var O=f.data;O[H++]=C|E<<24;O[H++]=D}}}}e.c=function(f,c,a,b,d,q,h,k,u){if(1===d)var p=0;else for(p=1;1<<p<d;)p*=2;var x=Math.ceil(p*b/32),n=f.length,v=x,g=!1,e=Array.prototype.join.call(q.subarray(0,d*u),",");b=a.get(e);void 0===b&&(g=!0,v+=d*u,b=n+x-c,a.set(e,b));f.resize(n+v);f=
+f.data;if(0<p)switch(p){case 1:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,v|=k[h[c+1]]<<1,v|=k[h[c+2]]<<2,v|=k[h[c+3]]<<3,v|=k[h[c+4]]<<4,v|=k[h[c+5]]<<5,v|=k[h[c+6]]<<6,v|=k[h[c+7]]<<7,v|=k[h[c+8]]<<8,v|=k[h[c+9]]<<9,v|=k[h[c+10]]<<10,v|=k[h[c+11]]<<11,v|=k[h[c+12]]<<12,v|=k[h[c+13]]<<13,v|=k[h[c+14]]<<14,v|=k[h[c+15]]<<15,v|=k[h[c+16]]<<16,v|=k[h[c+17]]<<17,v|=k[h[c+18]]<<18,v|=k[h[c+19]]<<19,v|=k[h[c+20]]<<20,v|=k[h[c+21]]<<21,v|=k[h[c+22]]<<22,v|=k[h[c+23]]<<23,v|=k[h[c+24]]<<24,v|=k[h[c+25]]<<25,
+v|=k[h[c+26]]<<26,v|=k[h[c+27]]<<27,v|=k[h[c+28]]<<28,v|=k[h[c+29]]<<29,v|=k[h[c+30]]<<30,v|=k[h[c+31]]<<31,f[n+a]=v,c+=32;break;case 2:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,v|=k[h[c+1]]<<2,v|=k[h[c+2]]<<4,v|=k[h[c+3]]<<6,v|=k[h[c+4]]<<8,v|=k[h[c+5]]<<10,v|=k[h[c+6]]<<12,v|=k[h[c+7]]<<14,v|=k[h[c+8]]<<16,v|=k[h[c+9]]<<18,v|=k[h[c+10]]<<20,v|=k[h[c+11]]<<22,v|=k[h[c+12]]<<24,v|=k[h[c+13]]<<26,v|=k[h[c+14]]<<28,v|=k[h[c+15]]<<30,f[n+a]=v,c+=16;break;case 4:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,v|=k[h[c+
+1]]<<4,v|=k[h[c+2]]<<8,v|=k[h[c+3]]<<12,v|=k[h[c+4]]<<16,v|=k[h[c+5]]<<20,v|=k[h[c+6]]<<24,v|=k[h[c+7]]<<28,f[n+a]=v,c+=8;break;case 8:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,v|=k[h[c+1]]<<8,v|=k[h[c+2]]<<16,v|=k[h[c+3]]<<24,f[n+a]=v,c+=4;break;case 16:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,v|=k[h[c+1]]<<16,f[n+a]=v,c+=2;break;case 32:for(c=a=0;a<x;++a)v=0,v|=k[h[c+0]]<<0,f[n+a]=v,c+=1}if(g)for(h=n+x,k=0,d*=u;k<d;++k)f[h++]=q[k];return[p,b]};e.a=g;e.b=function(f,c,a,b,d,q,h){var k=f.length,u=b[3];f.resize(k+
+u);for(var p=0;p<u;++p)f.data[k+p]=f.length,g(f,c,a,b,d+q[3]*p,q,h)}},function(m,e,l){e.a=function(b,d,q){q=void 0===q?c.a:q;var h=b.source.spec,k=h.dataType,u=Object(a.h)(b.chunkDataSize),p=f.a[k];h=u*p*h.numChannels;if(h!==d.byteLength)throw Error("Raw-format chunk is "+d.byteLength+" bytes, "+("but "+u+" * "+p+" = "+h+" bytes are expected."));switch(k){case f.b.UINT8:d=new Uint8Array(d);break;case f.b.UINT16:d=new Uint16Array(d);Object(c.c)(d,q);break;case f.b.UINT32:case f.b.UINT64:d=new Uint32Array(d);
+Object(c.d)(d,q);break;case f.b.FLOAT32:d=new Float32Array(d);Object(c.d)(d,q);break;default:throw Error("Unexpected data type: "+k+".");}Object(g.a)(b,d)};var g=l(25),f=l(10),c=l(12),a=l(1)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&
+null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"SliceView",function(){return v});l.d(e,"SliceViewChunk",function(){return I});l.d(e,"SliceViewChunkSource",function(){return t});l.d(e,"RenderLayer",function(){return N});
+m=l(2);e=l(9);var a=l(1),b=l(14),d=l(15);l=l(0);var q=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),h=function B(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return B(a,b,d)}else{if("value"in c)return c.value;b=c.get;
+return void 0===b?void 0:b.call(d)}},k=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,n=3>h?b:null===c?c=Object.getOwnPropertyDescriptor(b,d):c,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)n=Reflect.decorate(a,b,d,c);else for(var p=a.length-1;0<=p;p--)if(k=a[p])n=(3>h?k(n):3<h?k(b,d,n):k(b,d))||n;return 3<h&&n&&Object.defineProperty(b,d,n),n},u=a.l.create(),p=a.l.create(),x=a.l.create(),n=function(a){function b(a,d){g(this,b);var c=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));
+c.initializeSharedObject(a,d.id);return c}c(b,a);return b}(e.c),v=function(b){function n(a,b){g(this,n);var d=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,a,b));d.handleLayerChanged=function(){d.hasValidViewport&&d.chunkManager.scheduleUpdateChunkPriorities()};d.registerDisposer(d.chunkManager.recomputeChunkPriorities.add(function(){d.updateVisibleChunks()}));return d}c(n,b);q(n,[{key:"onViewportChanged",value:function(){this.chunkManager.scheduleUpdateChunkPriorities()}},{key:"updateVisibleChunks",
+value:function(){var b=this,c=this.centerDataPosition,h=this.chunkManager,n=this.visibility.value;if(n!==Number.NEGATIVE_INFINITY){var k=Object(d.b)(n),p=Object(d.a)(n);p+=-1E12;this.computeVisibleChunks(function(a){a.globalToLocalSpatial(x,c);return b.visibleChunkLayouts.get(a)},function(b,d,c,n){a.l.multiply(u,c,b.size);b=-a.l.distance(x,u);n=$jscomp.makeIterator(n);for(var r=n.next();!r.done;r=n.next()){var q=r.value;r=d.get(q);q=q.getChunk(c);h.requestChunk(q,k,p+b+1E9*r)}})}}},{key:"removeVisibleLayer",
+value:function(a){this.visibleLayers.delete(a);a.layerChanged.remove(this.handleLayerChanged);this.visibleSourcesStale=!0;this.hasValidViewport&&this.chunkManager.scheduleUpdateChunkPriorities()}},{key:"disposed",value:function(){for(var a=$jscomp.makeIterator(this.visibleLayers.keys()),b=a.next();!b.done;b=a.next())this.removeVisibleLayer(b.value);h(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"disposed",this).call(this)}}]);return n}(Object(d.c)(Object(m.withChunkManager)(n)));v=k([Object(l.g)(e.b)],
+v);Object(l.f)("SliceView.updateView",function(a){var b=this.get(a.id);a.width&&b.setViewportSize(a.width,a.height);a.viewportToData&&b.setViewportToDataMatrix(a.viewportToData)});Object(l.f)("SliceView.addVisibleLayer",function(a){var b=this.get(a.id);a=this.get(a.layerId);b.visibleLayers.set(a,[]);a.layerChanged.add(b.handleLayerChanged);b.visibleSourcesStale=!0;b.hasValidViewport&&b.chunkManager.scheduleUpdateChunkPriorities()});Object(l.f)("SliceView.removeVisibleLayer",function(a){var b=this.get(a.id);
+a=this.get(a.layerId);b.removeVisibleLayer(a)});var I=function(b){function d(){g(this,d);var b=f(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));b.source=null;b.chunkGridPosition=a.l.create();return b}c(d,b);q(d,[{key:"initializeVolumeChunk",value:function(b,c){h(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"initialize",this).call(this,b);a.l.copy(this.chunkGridPosition,c);this.chunkDataSize=null}},{key:"serialize",value:function(a,b){h(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),
+"serialize",this).call(this,a,b);b=this.chunkDataSize;b!==this.source.spec.chunkDataSize&&(a.chunkDataSize=b);a.chunkGridPosition=this.chunkGridPosition}},{key:"downloadSucceeded",value:function(){h(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"downloadSucceeded",this).call(this)}},{key:"freeSystemMemory",value:function(){}},{key:"toString",value:function(){return this.source.toString()+":"+Object(a.m)(this.chunkGridPosition)}}]);return d}(m.Chunk),t=function(b){function d(a,b){g(this,
+d);return f(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,a,b))}c(d,b);q(d,[{key:"computeChunkBounds",value:function(b){var d=this.spec,c=d.upperVoxelBound;d=d.chunkDataSize;for(var h=a.l.multiply(u,b.chunkGridPosition,d),n=!1,k=0;3>k;++k)(p[k]=Math.min(c[k],h[k]+d[k])-h[k])!==d[k]&&(n=!0);a.l.add(h,h,this.spec.baseVoxelOffset);b.chunkDataSize=n?a.l.clone(p):d;return h}}]);return d}(m.ChunkSource),N=function(a){function d(a,c){g(this,d);var h=f(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,
+a,c));h.layerChanged=new b.a;var n=h.sources=[];c=$jscomp.makeIterator(c.sources);for(var k=c.next();!k.done;k=c.next()){var p=k.value;k=[];n.push(k);p=$jscomp.makeIterator(p);for(var q=p.next();!q.done;q=p.next())q=a.get(q.value),h.registerDisposer(q.addRef()),k.push(q)}return h}c(d,a);return d}(l.c)},function(m,e,l){e.b=function(g,f){return g.low+","+g.high+(f?"_"+f.center.toString()+"_"+f.size.toString():"")};e.a=function(g,f){var c=g.segmentEquivalences;g=$jscomp.makeIterator(g.visibleSegments);
+for(var a=g.next();!a.done;a=g.next())if(a=a.value,c.disjointSets.isMinElement(a))for(var b=$jscomp.makeIterator(c.setElements(a)),d=b.next();!d.done;d=b.next())f(d.value,a)}},function(m,e,l){e.a=function(g,f){g.data=new Uint32Array(f)}},function(m,e,l){e.a=function(d,q){var h=d.source.spec;if(h.compressedSegmentationBlockSize){var k=h.dataType;a.clear();var u=d.chunkDataSize;b[0]=u[0];b[1]=u[1];b[2]=u[2];b[3]=h.numChannels;switch(k){case g.a.UINT32:Object(f.a)(a,h.compressedSegmentationBlockSize,
+q,b);break;case g.a.UINT64:Object(c.a)(a,h.compressedSegmentationBlockSize,q,b);break;default:throw Error("Unsupported data type for compressed segmentation: "+g.a[k]);}d.data=new Uint32Array(a.view)}else d.data=q};var g=l(9),f=l(76),c=l(77),a=new (l(78).a)(2E4),b=Array(4)},function(m,e,l){e=l(4).assign;var g=l(84),f=l(87);l=l(42);var c={};e(c,g,f,l);m.exports=c},function(m,e,l){m.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory",
+"-5":"buffer error","-6":"incompatible version"}},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,
+{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"a",function(){return p});m=l(2);var a=l(8),b=l(7),d=l(11),q=l(103),h=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),k=function n(a,b,d){null===a&&(a=Function.prototype);
+var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return n(a,b,d)}else{if("value"in c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}},u=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.backendOnly=!0;return a}c(b,a);h(b,[{key:"initialize",value:function(a){k(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initialize",this).call(this,a);this.requesters=new Set}},{key:"downloadSucceeded",
+value:function(){k(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",this).call(this);var a=this.requesters,d=this.data;this.requesters=void 0;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c.value.resolve(d)}},{key:"downloadFailed",value:function(a){k(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadFailed",this).call(this,a);var d=this.requesters;this.requesters=void 0;d=$jscomp.makeIterator(d);for(var c=d.next();!c.done;c=d.next())c.value.reject(a)}},
+{key:"freeSystemMemory",value:function(){this.data=void 0}}]);return b}(m.Chunk),p=function(n){function k(a,b){g(this,k);var d=f(this,(k.__proto__||Object.getPrototypeOf(k)).call(this,a));d.decodeFile=b;d.registerDisposer(a);d.registerDisposer(d.chunkManager.recomputeChunkPrioritiesLate.add(function(){d.updateChunkPriorities()}));return d}c(k,n);h(k,[{key:"updateChunkPriorities",value:function(){for(var a=this.chunkManager,b=$jscomp.makeIterator(this.chunks.values()),d=b.next();!d.done;d=b.next()){d=
+d.value;var c=d.requesters;if(void 0!==c){c=$jscomp.makeIterator(c);for(var h=c.next();!h.done;h=c.next())h=h.value.getPriority(),a.requestChunk(d,h.priorityTier,h.priority)}}}},{key:"download",value:function(a,b){var c=this;return Object(d.e)(Object(d.b)(a.key),"arraybuffer",b).then(function(b){a.data=c.decodeFile(b)})}},{key:"getData",value:function(d,c,h){var n=this,k=this.chunks.get(d);void 0===k&&(k=this.getNewChunk_(u),k.initialize(d),this.addChunk(k));return Object(b.d)(h,function(d,h,p){switch(k.state){case a.e.FAILED:h(k.error);
+return;case a.e.SYSTEM_MEMORY_WORKER:d(k.data);return}var q={resolve:d,reject:h,getPriority:c};k.requesters.add(q);p.add(function(){var a=k.requesters;void 0!==a&&(a.delete(q),n.chunkManager.scheduleUpdateChunkPriorities());h(b.a)});n.chunkManager.scheduleUpdateChunkPriorities()})}}],[{key:"get",value:function(a,b){return a.memoize.get("getFileSource:"+Object(q.a)(b),function(){return new k(a,b)})}},{key:"getData",value:function(a,b,d,c,h){a=k.get(a,b);d=a.getData(d,c,h);a.dispose();return d}}]);
+return k}(m.ChunkSourceBase)},function(m,e,l){var g=g||{};g.Utils=g.Utils||{};g.Utils.crcTable=null;g.Utils.GUNZIP_MAGIC_COOKIE1=31;g.Utils.GUNZIP_MAGIC_COOKIE2=139;g.Utils.getStringAt=function(f,c,a){for(var b="",d;c<a;c+=1)d=f.getUint8(c),0!==d&&(b+=String.fromCharCode(d));return b};g.Utils.getByteAt=function(f,c){return f.getInt8(c)};g.Utils.getShortAt=function(f,c,a){return f.getInt16(c,a)};g.Utils.getIntAt=function(f,c,a){return f.getInt32(c,a)};g.Utils.getFloatAt=function(f,c,a){return f.getFloat32(c,
+a)};g.Utils.getDoubleAt=function(f,c,a){return f.getFloat64(c,a)};g.Utils.getLongAt=function(f,c,a){var b,d=[],q=0;for(b=0;8>b;b+=1)d[b]=g.Utils.getByteAt(f,c+b,a);for(b=d.length-1;0<=b;b--)q=256*q+d[b];return q};g.Utils.toArrayBuffer=function(f){var c;var a=new ArrayBuffer(f.length);var b=new Uint8Array(a);for(c=0;c<f.length;c+=1)b[c]=f[c];return a};g.Utils.isString=function(f){return"string"===typeof f||f instanceof String};g.Utils.formatNumber=function(f,c){f=g.Utils.isString(f)?Number(f):f;f=
+c?f.toPrecision(5):f.toPrecision(7);return parseFloat(f)};g.Utils.makeCRCTable=function(){for(var f,c=[],a=0;256>a;a++){f=a;for(var b=0;8>b;b++)f=f&1?3988292384^f>>>1:f>>>1;c[a]=f}return c};g.Utils.crc32=function(f){for(var c=g.Utils.crcTable||(g.Utils.crcTable=g.Utils.makeCRCTable()),a=-1,b=0;b<f.byteLength;b++)a=a>>>8^c[(a^f.getUint8(b))&255];return(a^-1)>>>0};"undefined"!==typeof m&&m.exports&&(m.exports=g.Utils)},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"a",function(){return q});var c=l(17),a=l(5),b=function k(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,d)}else{if("value"in
+c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}},d=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),q=function(k){function q(){f(this,q);var a=(q.__proto__||Object.getPrototypeOf(q)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!a||"object"!==typeof a&&"function"!==typeof a?this:a}g(q,k);d(q,[{key:"get",value:function(d,c){"string"!==typeof d&&(d=Object(a.c)(d));return b(q.prototype.__proto__||Object.getPrototypeOf(q.prototype),"get",this).call(this,d,c)}},{key:"getUncounted",value:function(a,b){return this.get(a,function(){return new c.b(b())}).value}}]);return q}(function(){function a(){f(this,a);this.map=new Map}d(a,[{key:"get",value:function(a,b){var d=this.map,c=d.get(a);void 0===c?(c=b(),c.registerDisposer(function(){d.delete(a)}),
+d.set(a,c)):c.addRef();return c}}]);return a}())},function(m,e,l){l(3);l(50);l(51);l(32);var g=l(52),f=l(53);l(54);var c=l(33);l(34);l.d(e,"a",function(){return g});l.d(e,"b",function(){return f});l.d(e,"c",function(){return c})},function(m,e,l){e.a=function(){var f=new g.a(9);f[0]=1;f[1]=0;f[2]=0;f[3]=0;f[4]=1;f[5]=0;f[6]=0;f[7]=0;f[8]=1;return f};var g=l(3)},function(m,e,l){function g(){var a=new x.a(3);a[0]=0;a[1]=0;a[2]=0;return a}function f(a){var b=a[0],d=a[1];a=a[2];return Math.sqrt(b*b+d*
+d+a*a)}function c(a,b,d){var c=new x.a(3);c[0]=a;c[1]=b;c[2]=d;return c}function a(a,b,d){a[0]=b[0]-d[0];a[1]=b[1]-d[1];a[2]=b[2]-d[2];return a}function b(a,b,d){a[0]=b[0]*d[0];a[1]=b[1]*d[1];a[2]=b[2]*d[2];return a}function d(a,b,d){a[0]=b[0]/d[0];a[1]=b[1]/d[1];a[2]=b[2]/d[2];return a}function q(a,b){var d=b[0]-a[0],c=b[1]-a[1];a=b[2]-a[2];return Math.sqrt(d*d+c*c+a*a)}function h(a,b){var d=b[0]-a[0],c=b[1]-a[1];a=b[2]-a[2];return d*d+c*c+a*a}function k(a){var b=a[0],d=a[1];a=a[2];return b*b+d*
+d+a*a}function u(a,b){var d=b[0],c=b[1],h=b[2];d=d*d+c*c+h*h;0<d&&(d=1/Math.sqrt(d),a[0]=b[0]*d,a[1]=b[1]*d,a[2]=b[2]*d);return a}function p(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}Object.defineProperty(e,"__esModule",{value:!0});e.create=g;e.clone=function(a){var b=new x.a(3);b[0]=a[0];b[1]=a[1];b[2]=a[2];return b};e.length=f;e.fromValues=c;e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];return a};e.set=function(a,b,d,c){a[0]=b;a[1]=d;a[2]=c;return a};e.add=function(a,b,d){a[0]=b[0]+d[0];a[1]=
+b[1]+d[1];a[2]=b[2]+d[2];return a};e.subtract=a;e.multiply=b;e.divide=d;e.ceil=function(a,b){a[0]=Math.ceil(b[0]);a[1]=Math.ceil(b[1]);a[2]=Math.ceil(b[2]);return a};e.floor=function(a,b){a[0]=Math.floor(b[0]);a[1]=Math.floor(b[1]);a[2]=Math.floor(b[2]);return a};e.min=function(a,b,d){a[0]=Math.min(b[0],d[0]);a[1]=Math.min(b[1],d[1]);a[2]=Math.min(b[2],d[2]);return a};e.max=function(a,b,d){a[0]=Math.max(b[0],d[0]);a[1]=Math.max(b[1],d[1]);a[2]=Math.max(b[2],d[2]);return a};e.round=function(a,b){a[0]=
+Math.round(b[0]);a[1]=Math.round(b[1]);a[2]=Math.round(b[2]);return a};e.scale=function(a,b,d){a[0]=b[0]*d;a[1]=b[1]*d;a[2]=b[2]*d;return a};e.scaleAndAdd=function(a,b,d,c){a[0]=b[0]+d[0]*c;a[1]=b[1]+d[1]*c;a[2]=b[2]+d[2]*c;return a};e.distance=q;e.squaredDistance=h;e.squaredLength=k;e.negate=function(a,b){a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];return a};e.inverse=function(a,b){a[0]=1/b[0];a[1]=1/b[1];a[2]=1/b[2];return a};e.normalize=u;e.dot=p;e.cross=function(a,b,d){var c=b[0],h=b[1];b=b[2];var k=d[0],
+n=d[1];d=d[2];a[0]=h*d-b*n;a[1]=b*k-c*d;a[2]=c*n-h*k;return a};e.lerp=function(a,b,d,c){var h=b[0],k=b[1];b=b[2];a[0]=h+c*(d[0]-h);a[1]=k+c*(d[1]-k);a[2]=b+c*(d[2]-b);return a};e.hermite=function(a,b,d,c,h,k){var q=k*k,n=q*(2*k-3)+1,p=q*(k-2)+k,f=q*(k-1);k=q*(3-2*k);a[0]=b[0]*n+d[0]*p+c[0]*f+h[0]*k;a[1]=b[1]*n+d[1]*p+c[1]*f+h[1]*k;a[2]=b[2]*n+d[2]*p+c[2]*f+h[2]*k;return a};e.bezier=function(a,b,d,c,h,k){var q=1-k,n=q*q,p=k*k,f=n*q;n*=3*k;q*=3*p;k*=p;a[0]=b[0]*f+d[0]*n+c[0]*q+h[0]*k;a[1]=b[1]*f+d[1]*
+n+c[1]*q+h[1]*k;a[2]=b[2]*f+d[2]*n+c[2]*q+h[2]*k;return a};e.random=function(a,b){b=b||1;var d=2*x.c()*Math.PI,c=2*x.c()-1,h=Math.sqrt(1-c*c)*b;a[0]=Math.cos(d)*h;a[1]=Math.sin(d)*h;a[2]=c*b;return a};e.transformMat4=function(a,b,d){var c=b[0],h=b[1];b=b[2];var k=d[3]*c+d[7]*h+d[11]*b+d[15];k=k||1;a[0]=(d[0]*c+d[4]*h+d[8]*b+d[12])/k;a[1]=(d[1]*c+d[5]*h+d[9]*b+d[13])/k;a[2]=(d[2]*c+d[6]*h+d[10]*b+d[14])/k;return a};e.transformMat3=function(a,b,d){var c=b[0],h=b[1];b=b[2];a[0]=c*d[0]+h*d[3]+b*d[6];
+a[1]=c*d[1]+h*d[4]+b*d[7];a[2]=c*d[2]+h*d[5]+b*d[8];return a};e.transformQuat=function(a,b,d){var c=b[0],h=b[1],k=b[2];b=d[0];var q=d[1],p=d[2];d=d[3];var n=d*c+q*k-p*h,f=d*h+p*c-b*k,u=d*k+b*h-q*c;c=-b*c-q*h-p*k;a[0]=n*d+c*-b+f*-p-u*-q;a[1]=f*d+c*-q+u*-b-n*-p;a[2]=u*d+c*-p+n*-q-f*-b;return a};e.rotateX=function(a,b,d,c){var h=[],k=[];h[0]=b[0]-d[0];h[1]=b[1]-d[1];h[2]=b[2]-d[2];k[0]=h[0];k[1]=h[1]*Math.cos(c)-h[2]*Math.sin(c);k[2]=h[1]*Math.sin(c)+h[2]*Math.cos(c);a[0]=k[0]+d[0];a[1]=k[1]+d[1];a[2]=
+k[2]+d[2];return a};e.rotateY=function(a,b,d,c){var h=[],k=[];h[0]=b[0]-d[0];h[1]=b[1]-d[1];h[2]=b[2]-d[2];k[0]=h[2]*Math.sin(c)+h[0]*Math.cos(c);k[1]=h[1];k[2]=h[2]*Math.cos(c)-h[0]*Math.sin(c);a[0]=k[0]+d[0];a[1]=k[1]+d[1];a[2]=k[2]+d[2];return a};e.rotateZ=function(a,b,d,c){var h=[],k=[];h[0]=b[0]-d[0];h[1]=b[1]-d[1];h[2]=b[2]-d[2];k[0]=h[0]*Math.cos(c)-h[1]*Math.sin(c);k[1]=h[0]*Math.sin(c)+h[1]*Math.cos(c);k[2]=h[2];a[0]=k[0]+d[0];a[1]=k[1]+d[1];a[2]=k[2]+d[2];return a};e.angle=function(a,b){a=
+c(a[0],a[1],a[2]);b=c(b[0],b[1],b[2]);u(a,a);u(b,b);b=p(a,b);return 1<b?0:-1>b?Math.PI:Math.acos(b)};e.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]};e.equals=function(a,b){var d=a[0],c=a[1];a=a[2];var h=b[0],k=b[1];b=b[2];return Math.abs(d-h)<=x.b*Math.max(1,Math.abs(d),Math.abs(h))&&Math.abs(c-k)<=x.b*Math.max(1,Math.abs(c),Math.abs(k))&&Math.abs(a-b)<=x.b*Math.max(1,Math.abs(a),Math.abs(b))};var x=l(3);e.sub=
+a;e.mul=b;e.div=d;e.dist=q;e.sqrDist=h;e.len=f;e.sqrLen=k;m=function(){var a=g();return function(b,d,c,h,k,q){d||(d=3);c||(c=0);for(h=h?Math.min(h*d+c,b.length):b.length;c<h;c+=d)a[0]=b[c],a[1]=b[c+1],a[2]=b[c+2],k(a,a,q),b[c]=a[0],b[c+1]=a[1],b[c+2]=a[2];return b}}();e.forEach=m},function(m,e,l){function g(){var c=new f.a(4);c[0]=0;c[1]=0;c[2]=0;c[3]=0;return c}e.b=function(c){var a=new f.a(4);a[0]=c[0];a[1]=c[1];a[2]=c[2];a[3]=c[3];return a};e.g=function(c,a,b,d){var q=new f.a(4);q[0]=c;q[1]=a;
+q[2]=b;q[3]=d;return q};e.c=function(c,a){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c};e.l=function(c,a,b,d,q){c[0]=a;c[1]=b;c[2]=d;c[3]=q;return c};e.a=function(c,a,b){c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c};e.k=function(c,a,b){c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c};e.h=function(c){var a=c[0],b=c[1],d=c[2];c=c[3];return Math.sqrt(a*a+b*b+d*d+c*c)};e.m=function(c){var a=c[0],b=c[1],d=c[2];c=c[3];return a*a+b*b+d*d+c*c};e.j=function(c,a){var b=
+a[0],d=a[1],q=a[2];a=a[3];var h=b*b+d*d+q*q+a*a;0<h&&(h=1/Math.sqrt(h),c[0]=b*h,c[1]=d*h,c[2]=q*h,c[3]=a*h);return c};e.d=function(c,a){return c[0]*a[0]+c[1]*a[1]+c[2]*a[2]+c[3]*a[3]};e.i=function(c,a,b,d){var q=a[0],h=a[1],k=a[2];a=a[3];c[0]=q+d*(b[0]-q);c[1]=h+d*(b[1]-h);c[2]=k+d*(b[2]-k);c[3]=a+d*(b[3]-a);return c};e.f=function(c,a){return c[0]===a[0]&&c[1]===a[1]&&c[2]===a[2]&&c[3]===a[3]};e.e=function(c,a){var b=c[0],d=c[1],q=c[2];c=c[3];var h=a[0],k=a[1],u=a[2];a=a[3];return Math.abs(b-h)<=
+f.b*Math.max(1,Math.abs(b),Math.abs(h))&&Math.abs(d-k)<=f.b*Math.max(1,Math.abs(d),Math.abs(k))&&Math.abs(q-u)<=f.b*Math.max(1,Math.abs(q),Math.abs(u))&&Math.abs(c-a)<=f.b*Math.max(1,Math.abs(c),Math.abs(a))};var f=l(3);(function(){var c=g();return function(a,b,d,q,h,k){b||(b=4);d||(d=0);for(q=q?Math.min(q*b+d,a.length):a.length;d<q;d+=b)c[0]=a[d],c[1]=a[d+1],c[2]=a[d+2],c[3]=a[d+3],h(c,c,k),a[d]=c[0],a[d+1]=c[1],a[d+2]=c[2],a[d+3]=c[3];return a}})()},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"a",function(){return c});l(69);l(71);m=l(2);e=l(15);l=l(0);var c=function(a){function b(a,c){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");
+var d=g(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c));d.visibleSegments=a.get(c.visibleSegments);d.clipBounds=a.get(c.clipBounds);d.segmentEquivalences=a.get(c.segmentEquivalences);a=function(){d.chunkManager.scheduleUpdateChunkPriorities()};d.registerDisposer(d.visibleSegments.changed.add(a));d.registerDisposer(d.segmentEquivalences.changed.add(a));d.registerDisposer(d.clipBounds.changed.add(a));return d}f(b,a);return b}(Object(e.c)(Object(m.withChunkManager)(l.c)))},function(m,e,
+l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"d",function(){return d});l.d(e,"c",function(){return q});var f=l(9),c=l(10),a=l(1);l.d(e,"a",function(){return c.b});var b=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=
+b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),d;(function(a){a[a.UNKNOWN=0]="UNKNOWN";a[a.IMAGE=1]="IMAGE";a[a.SEGMENTATION=2]="SEGMENTATION"})(d||(d={}));var q=function(h){function k(b){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");var d=(k.__proto__||Object.getPrototypeOf(k)).call(this,b);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+d=!d||"object"!==typeof d&&"function"!==typeof d?this:d;var h=d.dataType=b.dataType,q=d.numChannels=b.numChannels;d.chunkBytes=Object(a.h)(b.chunkDataSize)*c.a[h]*q;d.compressedSegmentationBlockSize=b.compressedSegmentationBlockSize;return d}g(k,h);b(k,[{key:"toObject",value:function(){return{transform:this.chunkLayout.transform,numChannels:this.numChannels,chunkDataSize:this.chunkDataSize,voxelSize:this.voxelSize,dataType:this.dataType,lowerVoxelBound:this.lowerVoxelBound,upperVoxelBound:this.upperVoxelBound,
+lowerClipBound:this.lowerClipBound,upperClipBound:this.upperClipBound,baseVoxelOffset:this.baseVoxelOffset,compressedSegmentationBlockSize:this.compressedSegmentationBlockSize}}}],[{key:"make",value:function(a){return new k(Object.assign({},a,{transform:Object(f.f)(a.transform,a.volumeSourceOptions)}))}},{key:"fromObject",value:function(a){return new k(a)}},{key:"withDefaultCompression",value:function(a){var b=a.compressedSegmentationBlockSize,h=a.dataType,q=a.voxelSize,u=a.transform,g=a.lowerVoxelBound,
+e=a.upperVoxelBound;u=Object(f.f)(u,a.volumeSourceOptions);void 0!==b||a.volumeType!==d.SEGMENTATION||h!==c.b.UINT32&&h!==c.b.UINT64||(b=Object(f.g)({voxelSize:q,transform:u,lowerVoxelBound:g,upperVoxelBound:e,maxVoxelsPerChunkLog2:9}));return new k(Object.assign({},a,{compressedSegmentationBlockSize:b,transform:u}))}},{key:"getDefaults",value:function(a){var b=Object.assign({},a,{transform:Object(f.f)(a.transform,a.volumeSourceOptions)});return(void 0===a.chunkDataSizes?Object(f.e)(b):a.chunkDataSizes).map(function(b){return k.withDefaultCompression(Object.assign({},
+a,{chunkDataSize:b}))})}}]);return k}(f.d);e.b="volume/RenderLayer"},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"NDStoreVolumeChunkSource",function(){return u});
+m=l(2);e=l(81);var f=l(16),c=l(82),a=l(21),b=l(13),d=l(11);l=l(0);var q=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),h=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,k=3>h?b:null===c?c=Object.getOwnPropertyDescriptor(b,d):c,q;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)k=
+Reflect.decorate(a,b,d,c);else for(var p=a.length-1;0<=p;p--)if(q=a[p])k=(3>h?q(k):3<h?q(b,d,k):q(b,d))||k;return 3<h&&k&&Object.defineProperty(b,d,k),k},k=new Map;k.set("npz",c.a);k.set("jpeg",f.a);k.set("raw",a.a);var u=function(a){function b(){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==
+typeof a&&"function"!==typeof a?this:a;a.chunkDecoder=k.get(a.parameters.encoding);return a}g(b,a);q(b,[{key:"download",value:function(a,b){for(var c=this,h=this.parameters,k=h.urlPrefix+"/"+h.key+"/"+h.channel+"/"+(h.encoding+"/"+h.resolution),q=this.computeChunkBounds(a),p=a.chunkDataSize,f=0;3>f;++f)k+="/"+q[f]+","+(q[f]+p[f]);h.neariso&&(k+="/neariso/");return Object(d.e)(Object(d.c)(h.baseUrls,k),"arraybuffer",b).then(function(b){return c.chunkDecoder(a,b)})}}]);return b}(Object(m.WithParameters)(b.a,
+e.a));u=h([Object(l.g)()],u)},function(m,e,l){m.exports=function(g,f,c,a){var b=g&65535|0;g=g>>>16&65535|0;for(var d;0!==c;){d=2E3<c?2E3:c;c-=d;do b=b+f[a++]|0,g=g+b|0;while(--d);b%=65521;g%=65521}return b|g<<16|0}},function(m,e,l){var g=function(){for(var f,c=[],a=0;256>a;a++){f=a;for(var b=0;8>b;b++)f=f&1?3988292384^f>>>1:f>>>1;c[a]=f}return c}();m.exports=function(f,c,a,b){a=b+a;for(f^=-1;b<a;b++)f=f>>>8^g[(f^c[b])&255];return f^-1}},function(m,e,l){function g(b,q){if(65537>q&&(b.subarray&&a||
+!b.subarray&&c))return String.fromCharCode.apply(null,f.shrinkBuf(b,q));for(var d="",k=0;k<q;k++)d+=String.fromCharCode(b[k]);return d}var f=l(4),c=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(d){c=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(d){a=!1}var b=new f.Buf8(256);for(m=0;256>m;m++)b[m]=252<=m?6:248<=m?5:240<=m?4:224<=m?3:192<=m?2:1;b[254]=b[254]=1;e.string2buf=function(a){var b,d,c=a.length,u=0;for(b=0;b<c;b++){var p=a.charCodeAt(b);if(55296===(p&64512)&&b+1<c){var g=
+a.charCodeAt(b+1);56320===(g&64512)&&(p=65536+(p-55296<<10)+(g-56320),b++)}u+=128>p?1:2048>p?2:65536>p?3:4}var n=new f.Buf8(u);for(b=d=0;d<u;b++)p=a.charCodeAt(b),55296===(p&64512)&&b+1<c&&(g=a.charCodeAt(b+1),56320===(g&64512)&&(p=65536+(p-55296<<10)+(g-56320),b++)),128>p?n[d++]=p:(2048>p?n[d++]=192|p>>>6:(65536>p?n[d++]=224|p>>>12:(n[d++]=240|p>>>18,n[d++]=128|p>>>12&63),n[d++]=128|p>>>6&63),n[d++]=128|p&63);return n};e.buf2binstring=function(a){return g(a,a.length)};e.binstring2buf=function(a){for(var b=
+new f.Buf8(a.length),d=0,c=b.length;d<c;d++)b[d]=a.charCodeAt(d);return b};e.buf2string=function(a,c){var d,k=c||a.length,q=Array(2*k);for(c=d=0;c<k;){var p=a[c++];if(128>p)q[d++]=p;else{var f=b[p];if(4<f)q[d++]=65533,c+=f-1;else{for(p&=2===f?31:3===f?15:7;1<f&&c<k;)p=p<<6|a[c++]&63,f--;1<f?q[d++]=65533:65536>p?q[d++]=p:(p-=65536,q[d++]=55296|p>>10&1023,q[d++]=56320|p&1023)}}}return g(q,d)};e.utf8border=function(a,c){var d;c=c||a.length;c>a.length&&(c=a.length);for(d=c-1;0<=d&&128===(a[d]&192);)d--;
+return 0>d||0===d?c:d+b[a[d]]>c?d:c}},function(m,e,l){m.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}},function(m,e,l){m.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,
+Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(m,e,l){var g=g||{};g.Utils=g.Utils||l(29);g.NIFTI1=g.NIFTI1||function(){this.littleEndian=!1;this.dim_info=0;this.dims=[];this.slice_code=this.slice_end=this.slice_start=this.numBitsPerVoxel=this.datatypeCode=this.intent_code=this.intent_p3=this.intent_p2=this.intent_p1=0;this.pixDims=[];this.vox_offset=0;this.scl_slope=1;this.toffset=
+this.slice_duration=this.cal_min=this.cal_max=this.xyzt_units=this.scl_inter=0;this.intent_name=this.aux_file=this.description="";this.qoffset_z=this.qoffset_y=this.qoffset_x=this.quatern_d=this.quatern_c=this.quatern_b=this.sform_code=this.qform_code=0;this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];this.magic=0;this.isHDR=!1;this.extensionFlag=[0,0,0,0];this.extensionCode=this.extensionSize=0};g.NIFTI1.TYPE_NONE=0;g.NIFTI1.TYPE_BINARY=1;g.NIFTI1.TYPE_UINT8=2;g.NIFTI1.TYPE_INT16=4;g.NIFTI1.TYPE_INT32=
+8;g.NIFTI1.TYPE_FLOAT32=16;g.NIFTI1.TYPE_COMPLEX64=32;g.NIFTI1.TYPE_FLOAT64=64;g.NIFTI1.TYPE_RGB24=128;g.NIFTI1.TYPE_INT8=256;g.NIFTI1.TYPE_UINT16=512;g.NIFTI1.TYPE_UINT32=768;g.NIFTI1.TYPE_INT64=1024;g.NIFTI1.TYPE_UINT64=1280;g.NIFTI1.TYPE_FLOAT128=1536;g.NIFTI1.TYPE_COMPLEX128=1792;g.NIFTI1.TYPE_COMPLEX256=2048;g.NIFTI1.XFORM_UNKNOWN=0;g.NIFTI1.XFORM_SCANNER_ANAT=1;g.NIFTI1.XFORM_ALIGNED_ANAT=2;g.NIFTI1.XFORM_TALAIRACH=3;g.NIFTI1.XFORM_MNI_152=4;g.NIFTI1.SPATIAL_UNITS_MASK=7;g.NIFTI1.TEMPORAL_UNITS_MASK=
+56;g.NIFTI1.UNITS_UNKNOWN=0;g.NIFTI1.UNITS_METER=1;g.NIFTI1.UNITS_MM=2;g.NIFTI1.UNITS_MICRON=3;g.NIFTI1.UNITS_SEC=8;g.NIFTI1.UNITS_MSEC=16;g.NIFTI1.UNITS_USEC=24;g.NIFTI1.UNITS_HZ=32;g.NIFTI1.UNITS_PPM=40;g.NIFTI1.UNITS_RADS=48;g.NIFTI1.MAGIC_COOKIE=348;g.NIFTI1.STANDARD_HEADER_SIZE=348;g.NIFTI1.MAGIC_NUMBER_LOCATION=344;g.NIFTI1.MAGIC_NUMBER=[110,43,49];g.NIFTI1.MAGIC_NUMBER2=[110,105,49];g.NIFTI1.EXTENSION_HEADER_SIZE=8;g.NIFTI1.prototype.readHeader=function(f){f=new DataView(f);var c=g.Utils.getIntAt(f,
+0,this.littleEndian),a,b;c!==g.NIFTI1.MAGIC_COOKIE&&(this.littleEndian=!0,c=g.Utils.getIntAt(f,0,this.littleEndian));if(c!==g.NIFTI1.MAGIC_COOKIE)throw Error("This does not appear to be a NIFTI file!");this.dim_info=g.Utils.getByteAt(f,39);for(a=0;8>a;a+=1)c=40+2*a,this.dims[a]=g.Utils.getShortAt(f,c,this.littleEndian);this.intent_p1=g.Utils.getFloatAt(f,56,this.littleEndian);this.intent_p2=g.Utils.getFloatAt(f,60,this.littleEndian);this.intent_p3=g.Utils.getFloatAt(f,64,this.littleEndian);this.intent_code=
+g.Utils.getShortAt(f,68,this.littleEndian);this.datatypeCode=g.Utils.getShortAt(f,70,this.littleEndian);this.numBitsPerVoxel=g.Utils.getShortAt(f,72,this.littleEndian);this.slice_start=g.Utils.getShortAt(f,74,this.littleEndian);for(a=0;8>a;a+=1)c=76+4*a,this.pixDims[a]=g.Utils.getFloatAt(f,c,this.littleEndian);this.vox_offset=g.Utils.getFloatAt(f,108,this.littleEndian);this.scl_slope=g.Utils.getFloatAt(f,112,this.littleEndian);this.scl_inter=g.Utils.getFloatAt(f,116,this.littleEndian);this.slice_end=
+g.Utils.getShortAt(f,120,this.littleEndian);this.slice_code=g.Utils.getByteAt(f,122);this.xyzt_units=g.Utils.getByteAt(f,123);this.cal_max=g.Utils.getFloatAt(f,124,this.littleEndian);this.cal_min=g.Utils.getFloatAt(f,128,this.littleEndian);this.slice_duration=g.Utils.getFloatAt(f,132,this.littleEndian);this.toffset=g.Utils.getFloatAt(f,136,this.littleEndian);this.description=g.Utils.getStringAt(f,148,228);this.aux_file=g.Utils.getStringAt(f,228,252);this.qform_code=g.Utils.getShortAt(f,252,this.littleEndian);
+this.sform_code=g.Utils.getShortAt(f,254,this.littleEndian);this.quatern_b=g.Utils.getFloatAt(f,256,this.littleEndian);this.quatern_c=g.Utils.getFloatAt(f,260,this.littleEndian);this.quatern_d=g.Utils.getFloatAt(f,264,this.littleEndian);this.qoffset_x=g.Utils.getFloatAt(f,268,this.littleEndian);this.qoffset_y=g.Utils.getFloatAt(f,272,this.littleEndian);this.qoffset_z=g.Utils.getFloatAt(f,276,this.littleEndian);for(a=0;3>a;a+=1)for(b=0;4>b;b+=1)c=280+4*(4*a+b),this.affine[a][b]=g.Utils.getFloatAt(f,
+c,this.littleEndian);this.affine[3][0]=0;this.affine[3][1]=0;this.affine[3][2]=0;this.affine[3][3]=1;this.intent_name=g.Utils.getStringAt(f,328,344);this.magic=g.Utils.getStringAt(f,344,348);this.isHDR=this.magic===g.NIFTI1.MAGIC_NUMBER2;f.byteLength>g.NIFTI1.MAGIC_COOKIE&&(this.extensionFlag[0]=g.Utils.getByteAt(f,348),this.extensionFlag[1]=g.Utils.getByteAt(f,349),this.extensionFlag[2]=g.Utils.getByteAt(f,350),this.extensionFlag[3]=g.Utils.getByteAt(f,351),this.extensionFlag[0]&&(this.extensionSize=
+this.getExtensionSize(f),this.extensionCode=this.getExtensionCode(f)))};g.NIFTI1.prototype.toFormattedString=function(){var f=g.Utils.formatNumber;var c=""+("Dim Info = "+this.dim_info+"\n");c+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+"\n";c+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n";c+="Intent Code = "+this.intent_code+"\n";c+=
+"Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n";c+="Bits Per Voxel = "+this.numBitsPerVoxel+"\n";c+="Slice Start = "+this.slice_start+"\n";c+="Voxel Dimensions (1-8): "+f(this.pixDims[0])+", "+f(this.pixDims[1])+", "+f(this.pixDims[2])+", "+f(this.pixDims[3])+", "+f(this.pixDims[4])+", "+f(this.pixDims[5])+", "+f(this.pixDims[6])+", "+f(this.pixDims[7])+"\n";c+="Image Offset = "+this.vox_offset+"\n";c+="Data Scale:  Slope = "+f(this.scl_slope)+"  Intercept = "+
+f(this.scl_inter)+"\n";c+="Slice End = "+this.slice_end+"\n";c+="Slice Code = "+this.slice_code+"\n";c+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(g.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(g.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n";c+="Display Range:  Max = "+f(this.cal_max)+"  Min = "+f(this.cal_min)+"\n";c+="Slice Duration = "+this.slice_duration+"\n";c+="Time Axis Shift = "+this.toffset+"\n";c+='Description: "'+this.description+'"\n';c+=
+'Auxiliary File: "'+this.aux_file+'"\n';c+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n";c+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n";c+="Quaternion Parameters:  b = "+f(this.quatern_b)+"  c = "+f(this.quatern_c)+"  d = "+f(this.quatern_d)+"\n";c+="Quaternion Offsets:  x = "+this.qoffset_x+"  y = "+this.qoffset_y+"  z = "+this.qoffset_z+"\n";c+="S-Form Parameters X: "+f(this.affine[0][0])+", "+f(this.affine[0][1])+
+", "+f(this.affine[0][2])+", "+f(this.affine[0][3])+"\n";c+="S-Form Parameters Y: "+f(this.affine[1][0])+", "+f(this.affine[1][1])+", "+f(this.affine[1][2])+", "+f(this.affine[1][3])+"\n";c+="S-Form Parameters Z: "+f(this.affine[2][0])+", "+f(this.affine[2][1])+", "+f(this.affine[2][2])+", "+f(this.affine[2][3])+"\n";c+='Intent Name: "'+this.intent_name+'"\n';this.extensionFlag[0]&&(c+="Extension: Size = "+this.extensionSize+"  Code = "+this.extensionCode+"\n");return c};g.NIFTI1.prototype.getDatatypeCodeString=
+function(f){return f===g.NIFTI1.TYPE_UINT8?"1-Byte Unsigned Integer":f===g.NIFTI1.TYPE_INT16?"2-Byte Signed Integer":f===g.NIFTI1.TYPE_INT32?"4-Byte Signed Integer":f===g.NIFTI1.TYPE_FLOAT32?"4-Byte Float":f===g.NIFTI1.TYPE_FLOAT64?"8-Byte Float":f===g.NIFTI1.TYPE_RGB24?"RGB":f===g.NIFTI1.TYPE_INT8?"1-Byte Signed Integer":f===g.NIFTI1.TYPE_UINT16?"2-Byte Unsigned Integer":f===g.NIFTI1.TYPE_UINT32?"4-Byte Unsigned Integer":f===g.NIFTI1.TYPE_INT64?"8-Byte Signed Integer":f===g.NIFTI1.TYPE_UINT64?"8-Byte Unsigned Integer":
+"Unknown"};g.NIFTI1.prototype.getTransformCodeString=function(f){return f===g.NIFTI1.XFORM_SCANNER_ANAT?"Scanner":f===g.NIFTI1.XFORM_ALIGNED_ANAT?"Aligned":f===g.NIFTI1.XFORM_TALAIRACH?"Talairach":f===g.NIFTI1.XFORM_MNI_152?"MNI":"Unknown"};g.NIFTI1.prototype.getUnitsCodeString=function(f){return f===g.NIFTI1.UNITS_METER?"Meters":f===g.NIFTI1.UNITS_MM?"Millimeters":f===g.NIFTI1.UNITS_MICRON?"Microns":f===g.NIFTI1.UNITS_SEC?"Seconds":f===g.NIFTI1.UNITS_MSEC?"Milliseconds":f===g.NIFTI1.UNITS_USEC?"Microseconds":
+f===g.NIFTI1.UNITS_HZ?"Hz":f===g.NIFTI1.UNITS_PPM?"PPM":f===g.NIFTI1.UNITS_RADS?"Rads":"Unknown"};g.NIFTI1.prototype.getQformMat=function(){return this.convertNiftiQFormToNiftiSForm(this.quatern_b,this.quatern_c,this.quatern_d,this.qoffset_x,this.qoffset_y,this.qoffset_z,this.pixDims[1],this.pixDims[2],this.pixDims[3],this.pixDims[0])};g.NIFTI1.prototype.convertNiftiQFormToNiftiSForm=function(f,c,a,b,d,q,h,k,u,p){var g=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],n=a;g[3][0]=g[3][1]=g[3][2]=0;g[3][3]=
+1;a=1-(f*f+c*c+n*n);1E-7>a?(a=1/Math.sqrt(f*f+c*c+n*n),f*=a,c*=a,n*=a,a=0):a=Math.sqrt(a);h=0<h?h:1;k=0<k?k:1;u=0<u?u:1;0>p&&(u=-u);g[0][0]=(a*a+f*f-c*c-n*n)*h;g[0][1]=2*(f*c-a*n)*k;g[0][2]=2*(f*n+a*c)*u;g[1][0]=2*(f*c+a*n)*h;g[1][1]=(a*a+c*c-f*f-n*n)*k;g[1][2]=2*(c*n-a*f)*u;g[2][0]=2*(f*n-a*c)*h;g[2][1]=2*(c*n+a*f)*k;g[2][2]=(a*a+n*n-c*c-f*f)*u;g[0][3]=b;g[1][3]=d;g[2][3]=q;return g};g.NIFTI1.prototype.convertNiftiSFormToNEMA=function(f){var c,a,b,d;var q=[[0,0,0],[0,0,0],[0,0,0]];var h=[[0,0,0],
+[0,0,0],[0,0,0]];var k=f[0][0];var g=f[0][1];var p=f[0][2];var e=f[1][0];var n=f[1][1];var l=f[1][2];var I=f[2][0];var t=f[2][1];var m=f[2][2];f=Math.sqrt(k*k+e*e+I*I);if(0===f)return null;k/=f;e/=f;I/=f;f=Math.sqrt(g*g+n*n+t*t);if(0===f)return null;g/=f;n/=f;t/=f;f=k*g+e*n+I*t;if(1E-4<Math.abs(f)){g-=f*k;n-=f*e;t-=f*I;f=Math.sqrt(g*g+n*n+t*t);if(0===f)return null;g/=f;n/=f;t/=f}f=Math.sqrt(p*p+l*l+m*m);0===f?(p=e*t-I*n,l=I*g-t*k,m=k*n-e*g):(p/=f,l/=f,m/=f);f=k*p+e*l+I*m;if(1E-4<Math.abs(f)){p-=f*
+k;l-=f*e;m-=f*I;f=Math.sqrt(p*p+l*l+m*m);if(0===f)return null;p/=f;l/=f;m/=f}f=g*p+n*l+t*m;if(1E-4<Math.abs(f)){p-=f*g;l-=f*n;m-=f*t;f=Math.sqrt(p*p+l*l+m*m);if(0===f)return null;p/=f;l/=f;m/=f}q[0][0]=k;q[0][1]=g;q[0][2]=p;q[1][0]=e;q[1][1]=n;q[1][2]=l;q[2][0]=I;q[2][1]=t;q[2][2]=m;I=this.nifti_mat33_determ(q);if(0===I)return null;var F=-666;k=e=n=l=1;g=2;p=3;for(t=1;3>=t;t+=1)for(m=1;3>=m;m+=1)if(t!==m)for(c=1;3>=c;c+=1)if(t!==c&&m!==c)for(h[0][0]=h[0][1]=h[0][2]=h[1][0]=h[1][1]=h[1][2]=h[2][0]=
+h[2][1]=h[2][2]=0,a=-1;1>=a;a+=2)for(b=-1;1>=b;b+=2)for(d=-1;1>=d;d+=2)h[0][t-1]=a,h[1][m-1]=b,h[2][c-1]=d,f=this.nifti_mat33_determ(h),0<f*I&&(f=this.nifti_mat33_mul(h,q),f=f[0][0]+f[1][1]+f[2][2],f>F&&(F=f,k=t,g=m,p=c,e=a,n=b,l=d));q=h=f=I=t=m=0;switch(k*e){case 1:q="X";I="+";break;case -1:q="X";I="-";break;case 2:q="Y";I="+";break;case -2:q="Y";I="-";break;case 3:q="Z";I="+";break;case -3:q="Z",I="-"}switch(g*n){case 1:h="X";t="+";break;case -1:h="X";t="-";break;case 2:h="Y";t="+";break;case -2:h=
+"Y";t="-";break;case 3:h="Z";t="+";break;case -3:h="Z",t="-"}switch(p*l){case 1:f="X";m="+";break;case -1:f="X";m="-";break;case 2:f="Y";m="+";break;case -2:f="Y";m="-";break;case 3:f="Z";m="+";break;case -3:f="Z",m="-"}return q+h+f+I+t+m};g.NIFTI1.prototype.nifti_mat33_mul=function(f,c){var a=[[0,0,0],[0,0,0],[0,0,0]],b,d;for(b=0;3>b;b+=1)for(d=0;3>d;d+=1)a[b][d]=f[b][0]*c[0][d]+f[b][1]*c[1][d]+f[b][2]*c[2][d];return a};g.NIFTI1.prototype.nifti_mat33_determ=function(f){var c=f[0][0];var a=f[0][1];
+var b=f[0][2];var d=f[1][0];var q=f[1][1];var h=f[1][2];var k=f[2][0];var g=f[2][1];f=f[2][2];return c*q*f-c*g*h-d*a*f+d*g*b+k*a*h-k*q*b};g.NIFTI1.prototype.getExtensionLocation=function(){return g.NIFTI1.MAGIC_COOKIE+4};g.NIFTI1.prototype.getExtensionSize=function(f){return g.Utils.getIntAt(f,this.getExtensionLocation(),this.littleEndian)};g.NIFTI1.prototype.getExtensionCode=function(f){return g.Utils.getIntAt(f,this.getExtensionLocation()+4,this.littleEndian)};"undefined"!==typeof m&&m.exports&&
+(m.exports=g.NIFTI1)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,
+enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a,b){b=b.match(B);if(null===b||void 0===b[1])throw Error('Data source URL must have the form "<protocol>://<path>".');var d=b[1];a=a.get(d);if(void 0===a)throw Error("Unsupported data source: "+JSON.stringify(d)+".");return[a,b[2],d]}function b(b,d,c,h){var k=$jscomp.makeIterator(a(N,d));d=k.next().value;k=k.next().value;return d.getMesh(b,k,c,h)}function d(b,d,c,h){var k=$jscomp.makeIterator(a(F,
+d));d=k.next().value;k=k.next().value;return d.getMeshVertexAttributes(b,k,c,h)}function q(a){var b=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,b=Math.min(b,c),d=Math.max(d,c);return[b,d]}function h(a,c,h,k){for(var r=[b(a,c.meshSourceUrl,h,k)],p=$jscomp.makeIterator(c.attributeSourceUrls),f=p.next();!f.done;f=p.next())r.push(d(a,f.value,h,k));return Promise.all(r).then(function(a){function b(a,b,d){for(var c=a.length,
+k=0;k<c;++k){var r=a[k],p=b[k],f=d,n=$jscomp.makeIterator(q(p)),g=n.next().value;n=n.next().value;h.info.vertexAttributes.push({name:r.name,source:f,numComponents:r.numComponents,dataType:r.dataType,min:g,max:n});h.vertexAttributes.push(p)}}var d=a[0],h={info:{numVertices:d.info.numVertices,numTriangles:d.info.numTriangles,vertexAttributes:[]},vertexPositions:d.vertexPositions,indices:d.indices,vertexNormals:d.vertexNormals,vertexAttributes:[]};b(d.info.vertexAttributes,d.vertexAttributes);c.attributeSourceUrls.forEach(function(c,
+h){h=a[h+1];if(h.numVertices!==d.info.numVertices)throw Error("Vertex attribute source "+JSON.stringify(c)+" specifies attributes for "+(h.numVertices+" vertices, but mesh has "+d.info.numVertices+" vertices."));b(h.attributeInfo,h.attributes,c)});return h})}e.a=function(a,b){N.set(a,b)};e.b=function(a,b){F.set(a,b)};m=l(2);var k=l(8),u=l(19),p=l(109),x=l(5),n=l(15);l=l(0);var v=function(){function a(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in
+c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}return function(b,d,c){d&&a(b.prototype,d);c&&a(b,c);return b}}(),I=function A(a,b,d){null===a&&(a=Function.prototype);var c=Object.getOwnPropertyDescriptor(a,b);if(void 0===c){if(a=Object.getPrototypeOf(a),null!==a)return A(a,b,d)}else{if("value"in c)return c.value;b=c.get;return void 0===b?void 0:b.call(d)}};e=this&&this.__decorate||function(a,b,d,c){var h=arguments.length,k=3>h?b:null===c?c=Object.getOwnPropertyDescriptor(b,d):c,r;if("object"===
+typeof Reflect&&"function"===typeof Reflect.decorate)k=Reflect.decorate(a,b,d,c);else for(var q=a.length-1;0<=q;q--)if(r=a[q])k=(3>h?r(k):3<h?r(b,d,k):r(b,d))||k;return 3<h&&k&&Object.defineProperty(b,d,k),k};var t=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.data=null;return a}c(b,a);v(b,[{key:"freeSystemMemory",value:function(){this.data=null}},{key:"serialize",value:function(a,d){I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"serialize",this).call(this,a,d);var c=this.data,h=c.vertexPositions,k=c.indices,r=c.vertexNormals;c=c.vertexAttributes;a.vertexPositions=h;a.indices=k;a.vertexNormals=r;a.vertexAttributes=c;a=new Set;a.add(h.buffer);a.add(k.buffer);a.add(r.buffer);h=$jscomp.makeIterator(c);for(k=h.next();!k.done;k=h.next())a.add(k.value.buffer);d.push.apply(d,[].concat($jscomp.arrayFromIterable(a)));this.data=null}},{key:"downloadSucceeded",value:function(){var a=this.data,d=a.vertexAttributes;a=this.gpuMemoryBytes=
+a.vertexPositions.byteLength+a.indices.byteLength+a.vertexNormals.byteLength;d=$jscomp.makeIterator(d);for(var c=d.next();!c.done;c=d.next())a+=c.value.byteLength;this.systemMemoryBytes=this.gpuMemoryBytes=a;I(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",this).call(this)}}]);return b}(m.Chunk),N=new Map,F=new Map,B=/^(?:([a-zA-Z-+_]+):\/\/)?(.*)$/,H=function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}c(b,
+a);v(b,[{key:"getChunk",value:function(){var a=p.b,b=this.chunks.get(a);void 0===b&&(b=this.getNewChunk_(t),b.initialize(a),this.addChunk(b));return b}},{key:"download",value:function(a,b){var d=this;return h(this.chunkManager,this.parameters,function(){return{priorityTier:a.priorityTier,priority:a.priority}},b).then(function(b){if(Object(x.c)(b.info)!==Object(x.c)(d.parameters.info))throw Error("Mesh info has changed.");void 0===b.vertexNormals&&(b.vertexNormals=Object(u.b)(b.vertexPositions,b.indices));
+a.data=b})}}]);return b}(Object(m.WithParameters)(m.ChunkSource,p.d));H=e([Object(l.g)()],H);m=function(a){function b(a,d){g(this,b);var c=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,d));c.source=c.registerDisposer(a.getRef(d.source));c.registerDisposer(c.chunkManager.recomputeChunkPriorities.add(function(){c.updateChunkPriorities()}));return c}c(b,a);v(b,[{key:"updateChunkPriorities",value:function(){var a=this.visibility.value;if(a!==Number.NEGATIVE_INFINITY){var b=Object(n.b)(a);
+a=Object(n.a)(a);var d=this.chunkManager,c=this.source.getChunk();d.requestChunk(c,b,a+50)}}}]);return b}(Object(n.c)(Object(m.withChunkManager)(l.c)));m=e([Object(l.g)(p.c)],m);Object(l.e)(p.a,function(a,b){var d=this.getRef(a.chunkManager);try{return h(d,a.parameters,function(){return{priorityTier:k.d.VISIBLE,priority:1E3}},b).then(function(a){return{value:a.info}})}finally{d.dispose()}})},function(m,e,l){e.a=function(f){f=f instanceof ArrayBuffer?new Uint8Array(f):new Uint8Array(f.buffer,f.byteOffset,
+f.byteLength);var c=new Uint8Array(f.buffer,f.byteOffset,f.byteLength);return 2<c.length&&31===c[0]&&139===c[1]?Object(g.inflate)(f):f};var g=l(26);l.n(g)},function(m,e,l){l(47);l(2);l(22);l(61);l(37);l(92);l(94);l(99);l(100);l(102);l(107);m.exports=l(110)},function(m,e,l){Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"rpc",function(){return g});var g=new (l(0).a)(self)},function(m,e,l){var g=function(){function f(c,a){for(var b=0;b<a.length;b++){var d=a[b];d.enumerable=d.enumerable||!1;
+d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(c,d.key,d)}}return function(c,a,b){a&&f(c.prototype,a);b&&f(c,b);return c}}();m=function(){function f(){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");}g(f,null,[{key:"insertAfter",value:function(c,a){var b=c.next0;a.next0=b;a.prev0=c;c.next0=a;b.prev0=a}},{key:"insertBefore",value:function(c,a){var b=c.prev0;a.prev0=b;a.next0=c;c.prev0=a;b.next0=a}},{key:"front",value:function(c){var a=c.next0;
+return a===c?null:a}},{key:"back",value:function(c){var a=c.prev0;return a===c?null:a}},{key:"pop",value:function(c){var a=c.next0,b=c.prev0;a.prev0=b;b.next0=a;c.next0=null;c.prev0=null;return c}},{key:"iterator",value:function(c){function a(a,k){for(;;)switch(b){case 0:d=c.next0;case 1:if(d===c){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===k){b=5;break}b=-1;throw k;case 5:case 2:d=d.next0;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,q={next:function(b){return a(b,
+void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();q[Symbol.iterator]=function(){return this};return q}},{key:"reverseIterator",value:function(c){function a(a,k){for(;;)switch(b){case 0:d=c.prev0;case 1:if(d===c){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===k){b=5;break}b=-1;throw k;case 5:case 2:d=d.prev0;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,q={next:function(b){return a(b,
+void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();q[Symbol.iterator]=function(){return this};return q}},{key:"initializeHead",value:function(c){c.next0=c.prev0=c}}]);return f}();e.a=m},function(m,e,l){var g=function(){function f(c,a){for(var b=0;b<a.length;b++){var d=a[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(c,d.key,d)}}return function(c,a,b){a&&f(c.prototype,
+a);b&&f(c,b);return c}}();m=function(){function f(){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");}g(f,null,[{key:"insertAfter",value:function(c,a){var b=c.next1;a.next1=b;a.prev1=c;c.next1=a;b.prev1=a}},{key:"insertBefore",value:function(c,a){var b=c.prev1;a.prev1=b;a.next1=c;c.prev1=a;b.next1=a}},{key:"front",value:function(c){var a=c.next1;return a===c?null:a}},{key:"back",value:function(c){var a=c.prev1;return a===c?null:a}},{key:"pop",value:function(c){var a=
+c.next1,b=c.prev1;a.prev1=b;b.next1=a;c.next1=null;c.prev1=null;return c}},{key:"iterator",value:function(c){function a(a,k){for(;;)switch(b){case 0:d=c.next1;case 1:if(d===c){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===k){b=5;break}b=-1;throw k;case 5:case 2:d=d.next1;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,q={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();
+q[Symbol.iterator]=function(){return this};return q}},{key:"reverseIterator",value:function(c){function a(a,k){for(;;)switch(b){case 0:d=c.prev1;case 1:if(d===c){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===k){b=5;break}b=-1;throw k;case 5:case 2:d=d.prev1;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,q={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();
+q[Symbol.iterator]=function(){return this};return q}},{key:"initializeHead",value:function(c){c.next1=c.prev1=c}}]);return f}();e.a=m},function(m,e,l){l(3)},function(m,e,l){l(3)},function(m,e,l){function g(a,b,d){var c=b[0],h=b[1],k=b[2],f=b[3],p=b[4],g=b[5],n=b[6],e=b[7],l=b[8],t=b[9],m=b[10],F=b[11],B=b[12],H=b[13],w=b[14];b=b[15];var A=d[0],K=d[1],r=d[2],z=d[3];a[0]=A*c+K*p+r*l+z*B;a[1]=A*h+K*g+r*t+z*H;a[2]=A*k+K*n+r*m+z*w;a[3]=A*f+K*e+r*F+z*b;A=d[4];K=d[5];r=d[6];z=d[7];a[4]=A*c+K*p+r*l+z*B;a[5]=
+A*h+K*g+r*t+z*H;a[6]=A*k+K*n+r*m+z*w;a[7]=A*f+K*e+r*F+z*b;A=d[8];K=d[9];r=d[10];z=d[11];a[8]=A*c+K*p+r*l+z*B;a[9]=A*h+K*g+r*t+z*H;a[10]=A*k+K*n+r*m+z*w;a[11]=A*f+K*e+r*F+z*b;A=d[12];K=d[13];r=d[14];z=d[15];a[12]=A*c+K*p+r*l+z*B;a[13]=A*h+K*g+r*t+z*H;a[14]=A*k+K*n+r*m+z*w;a[15]=A*f+K*e+r*F+z*b;return a}function f(a,b,d){a[0]=b[0]-d[0];a[1]=b[1]-d[1];a[2]=b[2]-d[2];a[3]=b[3]-d[3];a[4]=b[4]-d[4];a[5]=b[5]-d[5];a[6]=b[6]-d[6];a[7]=b[7]-d[7];a[8]=b[8]-d[8];a[9]=b[9]-d[9];a[10]=b[10]-d[10];a[11]=b[11]-
+d[11];a[12]=b[12]-d[12];a[13]=b[13]-d[13];a[14]=b[14]-d[14];a[15]=b[15]-d[15];return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=function(){var a=new c.a(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.clone=function(a){var b=new c.a(16);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=
+a[15];return b};e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];a[9]=b[9];a[10]=b[10];a[11]=b[11];a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a};e.fromValues=function(a,b,d,q,h,k,f,p,g,n,e,l,t,m,F,B){var u=new c.a(16);u[0]=a;u[1]=b;u[2]=d;u[3]=q;u[4]=h;u[5]=k;u[6]=f;u[7]=p;u[8]=g;u[9]=n;u[10]=e;u[11]=l;u[12]=t;u[13]=m;u[14]=F;u[15]=B;return u};e.set=function(a,b,d,c,h,k,f,p,g,n,e,l,t,m,F,B,H){a[0]=b;a[1]=d;a[2]=c;a[3]=h;a[4]=
+k;a[5]=f;a[6]=p;a[7]=g;a[8]=n;a[9]=e;a[10]=l;a[11]=t;a[12]=m;a[13]=F;a[14]=B;a[15]=H;return a};e.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.transpose=function(a,b){if(a===b){var d=b[1],c=b[2],h=b[3],k=b[6],f=b[7],p=b[11];a[1]=b[4];a[2]=b[8];a[3]=b[12];a[4]=d;a[6]=b[9];a[7]=b[13];a[8]=c;a[9]=k;a[11]=b[14];a[12]=h;a[13]=f;a[14]=p}else a[0]=b[0],a[1]=b[4],a[2]=b[8],a[3]=b[12],a[4]=b[1],a[5]=b[5],
+a[6]=b[9],a[7]=b[13],a[8]=b[2],a[9]=b[6],a[10]=b[10],a[11]=b[14],a[12]=b[3],a[13]=b[7],a[14]=b[11],a[15]=b[15];return a};e.invert=function(a,b){var d=b[0],c=b[1],h=b[2],k=b[3],f=b[4],p=b[5],g=b[6],n=b[7],e=b[8],l=b[9],t=b[10],m=b[11],F=b[12],B=b[13],H=b[14];b=b[15];var w=d*p-c*f,A=d*g-h*f,K=d*n-k*f,r=c*g-h*p,z=c*n-k*p,G=h*n-k*g,D=e*B-l*F,C=e*H-t*F,E=e*b-m*F,O=l*H-t*B,M=l*b-m*B,Q=t*b-m*H,J=w*Q-A*M+K*O+r*E-z*C+G*D;if(!J)return null;J=1/J;a[0]=(p*Q-g*M+n*O)*J;a[1]=(h*M-c*Q-k*O)*J;a[2]=(B*G-H*z+b*r)*
+J;a[3]=(t*z-l*G-m*r)*J;a[4]=(g*E-f*Q-n*C)*J;a[5]=(d*Q-h*E+k*C)*J;a[6]=(H*K-F*G-b*A)*J;a[7]=(e*G-t*K+m*A)*J;a[8]=(f*M-p*E+n*D)*J;a[9]=(c*E-d*M-k*D)*J;a[10]=(F*z-B*K+b*w)*J;a[11]=(l*K-e*z-m*w)*J;a[12]=(p*C-f*O-g*D)*J;a[13]=(d*O-c*C+h*D)*J;a[14]=(B*A-F*r-H*w)*J;a[15]=(e*r-l*A+t*w)*J;return a};e.adjoint=function(a,b){var d=b[0],c=b[1],h=b[2],k=b[3],f=b[4],p=b[5],g=b[6],n=b[7],e=b[8],l=b[9],t=b[10],m=b[11],F=b[12],B=b[13],H=b[14];b=b[15];a[0]=p*(t*b-m*H)-l*(g*b-n*H)+B*(g*m-n*t);a[1]=-(c*(t*b-m*H)-l*(h*
+b-k*H)+B*(h*m-k*t));a[2]=c*(g*b-n*H)-p*(h*b-k*H)+B*(h*n-k*g);a[3]=-(c*(g*m-n*t)-p*(h*m-k*t)+l*(h*n-k*g));a[4]=-(f*(t*b-m*H)-e*(g*b-n*H)+F*(g*m-n*t));a[5]=d*(t*b-m*H)-e*(h*b-k*H)+F*(h*m-k*t);a[6]=-(d*(g*b-n*H)-f*(h*b-k*H)+F*(h*n-k*g));a[7]=d*(g*m-n*t)-f*(h*m-k*t)+e*(h*n-k*g);a[8]=f*(l*b-m*B)-e*(p*b-n*B)+F*(p*m-n*l);a[9]=-(d*(l*b-m*B)-e*(c*b-k*B)+F*(c*m-k*l));a[10]=d*(p*b-n*B)-f*(c*b-k*B)+F*(c*n-k*p);a[11]=-(d*(p*m-n*l)-f*(c*m-k*l)+e*(c*n-k*p));a[12]=-(f*(l*H-t*B)-e*(p*H-g*B)+F*(p*t-g*l));a[13]=d*(l*
+H-t*B)-e*(c*H-h*B)+F*(c*t-h*l);a[14]=-(d*(p*H-g*B)-f*(c*H-h*B)+F*(c*g-h*p));a[15]=d*(p*t-g*l)-f*(c*t-h*l)+e*(c*g-h*p);return a};e.determinant=function(a){var b=a[0],d=a[1],c=a[2],h=a[3],k=a[4],f=a[5],p=a[6],g=a[7],n=a[8],e=a[9],l=a[10],t=a[11],m=a[12],F=a[13],B=a[14];a=a[15];return(b*f-d*k)*(l*a-t*B)-(b*p-c*k)*(e*a-t*F)+(b*g-h*k)*(e*B-l*F)+(d*p-c*f)*(n*a-t*m)-(d*g-h*f)*(n*B-l*m)+(c*g-h*p)*(n*F-e*m)};e.multiply=g;e.translate=function(a,b,d){var c=d[0],h=d[1];d=d[2];if(b===a)a[12]=b[0]*c+b[4]*h+b[8]*
+d+b[12],a[13]=b[1]*c+b[5]*h+b[9]*d+b[13],a[14]=b[2]*c+b[6]*h+b[10]*d+b[14],a[15]=b[3]*c+b[7]*h+b[11]*d+b[15];else{var k=b[0];var f=b[1];var p=b[2];var g=b[3];var n=b[4];var e=b[5];var l=b[6];var t=b[7];var m=b[8];var F=b[9];var B=b[10];var H=b[11];a[0]=k;a[1]=f;a[2]=p;a[3]=g;a[4]=n;a[5]=e;a[6]=l;a[7]=t;a[8]=m;a[9]=F;a[10]=B;a[11]=H;a[12]=k*c+n*h+m*d+b[12];a[13]=f*c+e*h+F*d+b[13];a[14]=p*c+l*h+B*d+b[14];a[15]=g*c+t*h+H*d+b[15]}return a};e.scale=function(a,b,d){var c=d[0],h=d[1];d=d[2];a[0]=b[0]*c;
+a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*h;a[5]=b[5]*h;a[6]=b[6]*h;a[7]=b[7]*h;a[8]=b[8]*d;a[9]=b[9]*d;a[10]=b[10]*d;a[11]=b[11]*d;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a};e.rotate=function(a,b,d,f){var h=f[0],k=f[1];f=f[2];var q=Math.sqrt(h*h+k*k+f*f);if(Math.abs(q)<c.b)return null;q=1/q;h*=q;k*=q;f*=q;var p=Math.sin(d);var g=Math.cos(d);var n=1-g;d=b[0];q=b[1];var e=b[2];var l=b[3];var t=b[4];var m=b[5];var F=b[6];var B=b[7];var H=b[8];var w=b[9];var A=b[10];var K=b[11];var r=
+h*h*n+g;var z=k*h*n+f*p;var G=f*h*n-k*p;var D=h*k*n-f*p;var C=k*k*n+g;var E=f*k*n+h*p;var O=h*f*n+k*p;h=k*f*n-h*p;k=f*f*n+g;a[0]=d*r+t*z+H*G;a[1]=q*r+m*z+w*G;a[2]=e*r+F*z+A*G;a[3]=l*r+B*z+K*G;a[4]=d*D+t*C+H*E;a[5]=q*D+m*C+w*E;a[6]=e*D+F*C+A*E;a[7]=l*D+B*C+K*E;a[8]=d*O+t*h+H*k;a[9]=q*O+m*h+w*k;a[10]=e*O+F*h+A*k;a[11]=l*O+B*h+K*k;b!==a&&(a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);return a};e.rotateX=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[4],k=b[5],f=b[6],p=b[7],g=b[8],n=b[9],
+e=b[10],l=b[11];b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[4]=h*d+g*c;a[5]=k*d+n*c;a[6]=f*d+e*c;a[7]=p*d+l*c;a[8]=g*d-h*c;a[9]=n*d-k*c;a[10]=e*d-f*c;a[11]=l*d-p*c;return a};e.rotateY=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[0],k=b[1],f=b[2],p=b[3],g=b[8],n=b[9],e=b[10],l=b[11];b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=h*d-g*c;a[1]=k*d-n*c;a[2]=f*d-e*c;a[3]=p*d-l*c;a[8]=
+h*c+g*d;a[9]=k*c+n*d;a[10]=f*c+e*d;a[11]=p*c+l*d;return a};e.rotateZ=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[0],k=b[1],f=b[2],p=b[3],g=b[4],n=b[5],e=b[6],l=b[7];b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=h*d+g*c;a[1]=k*d+n*c;a[2]=f*d+e*c;a[3]=p*d+l*c;a[4]=g*d-h*c;a[5]=n*d-k*c;a[6]=e*d-f*c;a[7]=l*d-p*c;return a};e.fromTranslation=function(a,b){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;
+a[11]=0;a[12]=b[0];a[13]=b[1];a[14]=b[2];a[15]=1;return a};e.fromScaling=function(a,b){a[0]=b[0];a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b[1];a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=b[2];a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromRotation=function(a,b,d){var f=d[0],h=d[1];d=d[2];var k=Math.sqrt(f*f+h*h+d*d);if(Math.abs(k)<c.b)return null;k=1/k;f*=k;h*=k;d*=k;k=Math.sin(b);b=Math.cos(b);var g=1-b;a[0]=f*f*g+b;a[1]=h*f*g+d*k;a[2]=d*f*g-h*k;a[3]=0;a[4]=f*h*g-d*k;a[5]=h*h*g+b;a[6]=d*h*g+f*k;a[7]=0;a[8]=
+f*d*g+h*k;a[9]=h*d*g-f*k;a[10]=d*d*g+b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromXRotation=function(a,b){var d=Math.sin(b);b=Math.cos(b);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b;a[6]=d;a[7]=0;a[8]=0;a[9]=-d;a[10]=b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromYRotation=function(a,b){var d=Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=0;a[2]=-d;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=d;a[9]=0;a[10]=b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromZRotation=function(a,b){var d=
+Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=d;a[2]=0;a[3]=0;a[4]=-d;a[5]=b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromRotationTranslation=function(a,b,d){var c=b[0],h=b[1],k=b[2],f=b[3],p=c+c,g=h+h,n=k+k;b=c*p;var e=c*g;c*=n;var l=h*g;h*=n;k*=n;p*=f;g*=f;f*=n;a[0]=1-(l+k);a[1]=e+f;a[2]=c-g;a[3]=0;a[4]=e-f;a[5]=1-(b+k);a[6]=h+p;a[7]=0;a[8]=c+g;a[9]=h-p;a[10]=1-(b+l);a[11]=0;a[12]=d[0];a[13]=d[1];a[14]=d[2];a[15]=1;return a};e.getTranslation=function(a,b){a[0]=
+b[12];a[1]=b[13];a[2]=b[14];return a};e.getScaling=function(a,b){var d=b[0],c=b[1],h=b[2],k=b[4],f=b[5],p=b[6],g=b[8],n=b[9];b=b[10];a[0]=Math.sqrt(d*d+c*c+h*h);a[1]=Math.sqrt(k*k+f*f+p*p);a[2]=Math.sqrt(g*g+n*n+b*b);return a};e.getRotation=function(a,b){var d=b[0]+b[5]+b[10];0<d?(d=2*Math.sqrt(d+1),a[3]=.25*d,a[0]=(b[6]-b[9])/d,a[1]=(b[8]-b[2])/d,a[2]=(b[1]-b[4])/d):b[0]>b[5]&b[0]>b[10]?(d=2*Math.sqrt(1+b[0]-b[5]-b[10]),a[3]=(b[6]-b[9])/d,a[0]=.25*d,a[1]=(b[1]+b[4])/d,a[2]=(b[8]+b[2])/d):b[5]>b[10]?
+(d=2*Math.sqrt(1+b[5]-b[0]-b[10]),a[3]=(b[8]-b[2])/d,a[0]=(b[1]+b[4])/d,a[1]=.25*d,a[2]=(b[6]+b[9])/d):(d=2*Math.sqrt(1+b[10]-b[0]-b[5]),a[3]=(b[1]-b[4])/d,a[0]=(b[8]+b[2])/d,a[1]=(b[6]+b[9])/d,a[2]=.25*d);return a};e.fromRotationTranslationScale=function(a,b,d,c){var h=b[0],k=b[1],f=b[2],p=b[3],g=h+h,n=k+k,q=f+f;b=h*g;var e=h*n;h*=q;var l=k*n;k*=q;f*=q;g*=p;n*=p;p*=q;q=c[0];var m=c[1];c=c[2];a[0]=(1-(l+f))*q;a[1]=(e+p)*q;a[2]=(h-n)*q;a[3]=0;a[4]=(e-p)*m;a[5]=(1-(b+f))*m;a[6]=(k+g)*m;a[7]=0;a[8]=
+(h+n)*c;a[9]=(k-g)*c;a[10]=(1-(b+l))*c;a[11]=0;a[12]=d[0];a[13]=d[1];a[14]=d[2];a[15]=1;return a};e.fromRotationTranslationScaleOrigin=function(a,b,d,c,h){var k=b[0],f=b[1],p=b[2],g=b[3],n=k+k,q=f+f,e=p+p;b=k*n;var l=k*q;k*=e;var m=f*q;f*=e;p*=e;n*=g;q*=g;g*=e;e=c[0];var F=c[1];c=c[2];var B=h[0],H=h[1];h=h[2];a[0]=(1-(m+p))*e;a[1]=(l+g)*e;a[2]=(k-q)*e;a[3]=0;a[4]=(l-g)*F;a[5]=(1-(b+p))*F;a[6]=(f+n)*F;a[7]=0;a[8]=(k+q)*c;a[9]=(f-n)*c;a[10]=(1-(b+m))*c;a[11]=0;a[12]=d[0]+B-(a[0]*B+a[4]*H+a[8]*h);a[13]=
+d[1]+H-(a[1]*B+a[5]*H+a[9]*h);a[14]=d[2]+h-(a[2]*B+a[6]*H+a[10]*h);a[15]=1;return a};e.fromQuat=function(a,b){var c=b[0],f=b[1],h=b[2];b=b[3];var k=c+c,g=f+f,p=h+h;c*=k;var e=f*k;f*=g;var n=h*k,l=h*g;h*=p;k*=b;g*=b;b*=p;a[0]=1-f-h;a[1]=e+b;a[2]=n-g;a[3]=0;a[4]=e-b;a[5]=1-c-h;a[6]=l+k;a[7]=0;a[8]=n+g;a[9]=l-k;a[10]=1-c-f;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.frustum=function(a,b,c,f,h,k,g){var d=1/(c-b),e=1/(h-f),n=1/(k-g);a[0]=2*k*d;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=2*k*e;a[6]=0;a[7]=
+0;a[8]=(c+b)*d;a[9]=(h+f)*e;a[10]=(g+k)*n;a[11]=-1;a[12]=0;a[13]=0;a[14]=g*k*2*n;a[15]=0;return a};e.perspective=function(a,b,c,f,h){b=1/Math.tan(b/2);var d=1/(f-h);a[0]=b/c;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=(h+f)*d;a[11]=-1;a[12]=0;a[13]=0;a[14]=2*h*f*d;a[15]=0;return a};e.perspectiveFromFieldOfView=function(a,b,c,f){var d=Math.tan(b.upDegrees*Math.PI/180),k=Math.tan(b.downDegrees*Math.PI/180),g=Math.tan(b.leftDegrees*Math.PI/180);b=Math.tan(b.rightDegrees*Math.PI/
+180);var p=2/(g+b),e=2/(d+k);a[0]=p;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=e;a[6]=0;a[7]=0;a[8]=-((g-b)*p*.5);a[9]=(d-k)*e*.5;a[10]=f/(c-f);a[11]=-1;a[12]=0;a[13]=0;a[14]=f*c/(c-f);a[15]=0;return a};e.ortho=function(a,b,c,f,h,k,g){var d=1/(b-c),e=1/(f-h),n=1/(k-g);a[0]=-2*d;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=-2*e;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=2*n;a[11]=0;a[12]=(b+c)*d;a[13]=(h+f)*e;a[14]=(g+k)*n;a[15]=1;return a};e.lookAt=function(a,b,d,f){var h=b[0],k=b[1];b=b[2];var g=f[0];var p=f[1];var e=f[2];var n=
+d[0];f=d[1];var q=d[2];if(Math.abs(h-n)<c.b&&Math.abs(k-f)<c.b&&Math.abs(b-q)<c.b)return mat4.identity(a);d=h-n;f=k-f;n=b-q;var l=1/Math.sqrt(d*d+f*f+n*n);d*=l;f*=l;n*=l;q=p*n-e*f;e=e*d-g*n;g=g*f-p*d;(l=Math.sqrt(q*q+e*e+g*g))?(l=1/l,q*=l,e*=l,g*=l):g=e=q=0;p=f*g-n*e;var t=n*q-d*g;var m=d*e-f*q;(l=Math.sqrt(p*p+t*t+m*m))?(l=1/l,p*=l,t*=l,m*=l):m=t=p=0;a[0]=q;a[1]=p;a[2]=d;a[3]=0;a[4]=e;a[5]=t;a[6]=f;a[7]=0;a[8]=g;a[9]=m;a[10]=n;a[11]=0;a[12]=-(q*h+e*k+g*b);a[13]=-(p*h+t*k+m*b);a[14]=-(d*h+f*k+n*b);
+a[15]=1;return a};e.targetTo=function(a,b,c,f){var d=b[0],k=b[1];b=b[2];var g=f[0],p=f[1],e=f[2];f=d-c[0];var n=k-c[1];c=b-c[2];var q=f*f+n*n+c*c;0<q&&(q=1/Math.sqrt(q),f*=q,n*=q,c*=q);q=p*c-e*n;e=e*f-g*c;g=g*n-p*f;a[0]=q;a[1]=e;a[2]=g;a[3]=0;a[4]=n*g-c*e;a[5]=c*q-f*g;a[6]=f*e-n*q;a[7]=0;a[8]=f;a[9]=n;a[10]=c;a[11]=0;a[12]=d;a[13]=k;a[14]=b;a[15]=1;return a};e.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+
+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};e.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2)+Math.pow(a[9],2)+Math.pow(a[10],2)+Math.pow(a[11],2)+Math.pow(a[12],2)+Math.pow(a[13],2)+Math.pow(a[14],2)+Math.pow(a[15],2))};e.add=function(a,b,c){a[0]=b[0]+c[0];a[1]=b[1]+c[1];a[2]=b[2]+c[2];a[3]=b[3]+c[3];a[4]=b[4]+c[4];a[5]=b[5]+c[5];a[6]=b[6]+c[6];a[7]=
+b[7]+c[7];a[8]=b[8]+c[8];a[9]=b[9]+c[9];a[10]=b[10]+c[10];a[11]=b[11]+c[11];a[12]=b[12]+c[12];a[13]=b[13]+c[13];a[14]=b[14]+c[14];a[15]=b[15]+c[15];return a};e.subtract=f;e.multiplyScalar=function(a,b,c){a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*c;a[5]=b[5]*c;a[6]=b[6]*c;a[7]=b[7]*c;a[8]=b[8]*c;a[9]=b[9]*c;a[10]=b[10]*c;a[11]=b[11]*c;a[12]=b[12]*c;a[13]=b[13]*c;a[14]=b[14]*c;a[15]=b[15]*c;return a};e.multiplyScalarAndAdd=function(a,b,c,f){a[0]=b[0]+c[0]*f;a[1]=b[1]+c[1]*f;a[2]=b[2]+
+c[2]*f;a[3]=b[3]+c[3]*f;a[4]=b[4]+c[4]*f;a[5]=b[5]+c[5]*f;a[6]=b[6]+c[6]*f;a[7]=b[7]+c[7]*f;a[8]=b[8]+c[8]*f;a[9]=b[9]+c[9]*f;a[10]=b[10]+c[10]*f;a[11]=b[11]+c[11]*f;a[12]=b[12]+c[12]*f;a[13]=b[13]+c[13]*f;a[14]=b[14]+c[14]*f;a[15]=b[15]+c[15]*f;return a};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&&a[8]===b[8]&&a[9]===b[9]&&a[10]===b[10]&&a[11]===b[11]&&a[12]===b[12]&&a[13]===b[13]&&a[14]===b[14]&&a[15]===
+b[15]};e.equals=function(a,b){var d=a[0],f=a[1],h=a[2],k=a[3],g=a[4],p=a[5],e=a[6],n=a[7],l=a[8],m=a[9],t=a[10],N=a[11],F=a[12],B=a[13],H=a[14];a=a[15];var w=b[0],A=b[1],K=b[2],r=b[3],z=b[4],G=b[5],D=b[6],C=b[7],E=b[8],O=b[9],M=b[10],Q=b[11],J=b[12],y=b[13],L=b[14];b=b[15];return Math.abs(d-w)<=c.b*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(f-A)<=c.b*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(h-K)<=c.b*Math.max(1,Math.abs(h),Math.abs(K))&&Math.abs(k-r)<=c.b*Math.max(1,Math.abs(k),Math.abs(r))&&
+Math.abs(g-z)<=c.b*Math.max(1,Math.abs(g),Math.abs(z))&&Math.abs(p-G)<=c.b*Math.max(1,Math.abs(p),Math.abs(G))&&Math.abs(e-D)<=c.b*Math.max(1,Math.abs(e),Math.abs(D))&&Math.abs(n-C)<=c.b*Math.max(1,Math.abs(n),Math.abs(C))&&Math.abs(l-E)<=c.b*Math.max(1,Math.abs(l),Math.abs(E))&&Math.abs(m-O)<=c.b*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(t-M)<=c.b*Math.max(1,Math.abs(t),Math.abs(M))&&Math.abs(N-Q)<=c.b*Math.max(1,Math.abs(N),Math.abs(Q))&&Math.abs(F-J)<=c.b*Math.max(1,Math.abs(F),Math.abs(J))&&
+Math.abs(B-y)<=c.b*Math.max(1,Math.abs(B),Math.abs(y))&&Math.abs(H-L)<=c.b*Math.max(1,Math.abs(H),Math.abs(L))&&Math.abs(a-b)<=c.b*Math.max(1,Math.abs(a),Math.abs(b))};var c=l(3);e.mul=g;e.sub=f},function(m,e,l){function g(){var a=new d.a(4);a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a}function f(a,b,c){c*=.5;var d=Math.sin(c);a[0]=d*b[0];a[1]=d*b[1];a[2]=d*b[2];a[3]=Math.cos(c);return a}function c(a,b,c){var d=b[0],h=b[1],k=b[2];b=b[3];var f=c[0],g=c[1],p=c[2];c=c[3];a[0]=d*c+b*f+h*p-k*g;a[1]=h*c+b*g+k*
+f-d*p;a[2]=k*c+b*p+d*g-h*f;a[3]=b*c-d*f-h*g-k*p;return a}function a(a,b,c,d){var h=b[0],k=b[1],f=b[2];b=b[3];var g=c[0],p=c[1],e=c[2];c=c[3];var n=h*g+k*p+f*e+b*c;0>n&&(n=-n,g=-g,p=-p,e=-e,c=-c);if(1E-6<1-n){var q=Math.acos(n);var l=Math.sin(q);n=Math.sin((1-d)*q)/l;d=Math.sin(d*q)/l}else n=1-d;a[0]=n*h+d*g;a[1]=n*k+d*p;a[2]=n*f+d*e;a[3]=n*b+d*c;return a}function b(a,b){var c=b[0]+b[4]+b[8];if(0<c)c=Math.sqrt(c+1),a[3]=.5*c,c=.5/c,a[0]=(b[5]-b[7])*c,a[1]=(b[6]-b[2])*c,a[2]=(b[1]-b[3])*c;else{var d=
+0;b[4]>b[0]&&(d=1);b[8]>b[3*d+d]&&(d=2);var h=(d+1)%3,k=(d+2)%3;c=Math.sqrt(b[3*d+d]-b[3*h+h]-b[3*k+k]+1);a[d]=.5*c;c=.5/c;a[3]=(b[3*h+k]-b[3*k+h])*c;a[h]=(b[3*h+d]+b[3*d+h])*c;a[k]=(b[3*k+d]+b[3*d+k])*c}return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=g;e.identity=function(a){a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a};e.setAxisAngle=f;e.getAxisAngle=function(a,b){var c=2*Math.acos(b[3]),d=Math.sin(c/2);0!=d?(a[0]=b[0]/d,a[1]=b[1]/d,a[2]=b[2]/d):(a[0]=1,a[1]=0,a[2]=0);return c};e.multiply=
+c;e.rotateX=function(a,b,c){c*=.5;var d=b[0],h=b[1],k=b[2];b=b[3];var f=Math.sin(c);c=Math.cos(c);a[0]=d*c+b*f;a[1]=h*c+k*f;a[2]=k*c-h*f;a[3]=b*c-d*f;return a};e.rotateY=function(a,b,c){c*=.5;var d=b[0],h=b[1],k=b[2];b=b[3];var f=Math.sin(c);c=Math.cos(c);a[0]=d*c-k*f;a[1]=h*c+b*f;a[2]=k*c+d*f;a[3]=b*c-h*f;return a};e.rotateZ=function(a,b,c){c*=.5;var d=b[0],h=b[1],k=b[2];b=b[3];var f=Math.sin(c);c=Math.cos(c);a[0]=d*c+h*f;a[1]=h*c-d*f;a[2]=k*c+b*f;a[3]=b*c-k*f;return a};e.calculateW=function(a,b){var c=
+b[0],d=b[1];b=b[2];a[0]=c;a[1]=d;a[2]=b;a[3]=Math.sqrt(Math.abs(1-c*c-d*d-b*b));return a};e.slerp=a;e.invert=function(a,b){var c=b[0],d=b[1],h=b[2];b=b[3];var k=c*c+d*d+h*h+b*b;k=k?1/k:0;a[0]=-c*k;a[1]=-d*k;a[2]=-h*k;a[3]=b*k;return a};e.conjugate=function(a,b){a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=b[3];return a};e.fromMat3=b;e.fromEuler=function(a,b,c,d){var h=.5*Math.PI/180;b*=h;c*=h;d*=h;h=Math.sin(b);b=Math.cos(b);var k=Math.sin(c);c=Math.cos(c);var f=Math.sin(d);d=Math.cos(d);a[0]=h*c*d-b*k*
+f;a[1]=b*k*d+h*c*f;a[2]=b*c*f-h*k*d;a[3]=b*c*d+h*k*f;return a};e.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};var d=l(3),q=l(32),h=l(33);m=l(34);e.clone=m.b;e.fromValues=m.g;e.copy=m.c;e.set=m.l;e.add=m.a;e.mul=c;e.scale=m.k;e.dot=m.d;e.lerp=m.i;l=m.h;e.length=l;e.len=l;l=m.m;e.squaredLength=l;e.sqrLen=l;var k=m.j;e.normalize=k;e.exactEquals=m.f;e.equals=m.e;m=function(){var a=h.create(),b=h.fromValues(1,0,0),c=h.fromValues(0,1,0);return function(d,g,e){var p=h.dot(g,e);if(-.999999>
+p)return h.cross(a,b,g),1E-6>h.len(a)&&h.cross(a,c,g),h.normalize(a,a),f(d,a,Math.PI),d;if(.999999<p)return d[0]=0,d[1]=0,d[2]=0,d[3]=1,d;h.cross(a,g,e);d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=1+p;return k(d,d)}}();e.rotationTo=m;m=function(){var b=g(),c=g();return function(d,h,k,f,g,e){a(b,h,g,e);a(c,k,f,e);a(d,b,c,2*e*(1-e));return d}}();e.sqlerp=m;m=function(){var a=q.a();return function(c,d,h,f){a[0]=h[0];a[3]=h[1];a[6]=h[2];a[1]=f[0];a[4]=f[1];a[7]=f[2];a[2]=-d[0];a[5]=-d[1];a[8]=-d[2];return k(c,
+b(c,a))}}();e.setAxes=m},function(m,e,l){function g(){var c=new f.a(2);c[0]=0;c[1]=0;return c}var f=l(3);(function(){var c=g();return function(a,b,d,f,h,k){b||(b=2);d||(d=0);for(f=f?Math.min(f*b+d,a.length):a.length;d<f;d+=b)c[0]=a[d],c[1]=a[d+1],h(c,c,k),a[d]=c[0],a[d+1]=c[1];return a}})()},function(m,e,l){var g=function(){function f(c,a){for(var b=0;b<a.length;b++){var d=a[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(c,d.key,d)}}return function(c,
+a,b){a&&f(c.prototype,a);b&&f(c,b);return c}}();m=function(){function f(c){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");this.compare=c}g(f,[{key:"meld",value:function(c,a){if(null===a)return c;if(null===c)return a;var b=this.compare;b(a,c)&&(b=c,c=a,a=b);b=c.child0;a.next0=b;a.prev0=c;null!==b&&(b.prev0=a);c.child0=a;return c}},{key:"combineChildren",value:function(c){var a=c.child0;if(null===a)return null;for(c=null;;){var b=a.next0;if(null===b)var d=null;else d=
+b.next0,a=this.meld(a,b);a.next0=c;c=a;if(null===d)break;a=d}d=c;for(c=c.next0;null!==c;)a=c.next0,d=this.meld(d,c),c=a;d.prev0=null;d.next0=null;return d}},{key:"removeMin",value:function(c){var a=this.combineChildren(c);c.next0=null;c.prev0=null;c.child0=null;return a}},{key:"remove",value:function(c,a){if(c===a)return this.removeMin(c);var b=a.prev0,d=a.next0;b.child0===a?b.child0=d:b.next0=d;null!==d&&(d.prev0=b);c=this.meld(c,this.combineChildren(a));a.next0=null;a.prev0=null;a.child0=null;return c}},
+{key:"entries",value:function(c){function a(a,e){for(;;)switch(b){case 0:if(null===c){b=1;break}k=c.child0;b=2;return{value:c,done:!1};case 2:if(void 0===e){b=3;break}b=-1;throw e;case 3:case 4:if(null===k){b=5;break}h=k.next0;f=$jscomp.makeIterator(g.entries(k));case 6:if((d=f.next(a)).done){b=7;break}b=8;return{value:d.value,done:!1};case 8:if(void 0===e){b=9;break}b=-1;throw e;case 9:b=6;break;case 7:k=h;b=4;break;case 5:case 1:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,f,h,k,g=this,
+e={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();e[Symbol.iterator]=function(){return this};return e}},{key:"removedEntries",value:function(c){function a(a,e){for(;;)switch(b){case 0:if(null===c){b=1;break}k=c.child0;c.child0=null;c.next0=null;c.prev0=null;b=2;return{value:c,done:!1};case 2:if(void 0===e){b=3;break}b=-1;throw e;case 3:case 4:if(null===k){b=5;break}h=k.next0;k.child0=
+null;k.next0=null;k.prev0=null;f=$jscomp.makeIterator(g.entries(k));case 6:if((d=f.next(a)).done){b=7;break}b=8;return{value:d.value,done:!1};case 8:if(void 0===e){b=9;break}b=-1;throw e;case 9:b=6;break;case 7:k=h;b=4;break;case 5:case 1:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,f,h,k,g=this,e={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();e[Symbol.iterator]=function(){return this};
+return e}}]);return f}();e.a=m},function(m,e,l){var g=function(){function f(c,a){for(var b=0;b<a.length;b++){var d=a[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(c,d.key,d)}}return function(c,a,b){a&&f(c.prototype,a);b&&f(c,b);return c}}();m=function(){function f(c){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");this.compare=c}g(f,[{key:"meld",value:function(c,a){if(null===a)return c;if(null===c)return a;var b=
+this.compare;b(a,c)&&(b=c,c=a,a=b);b=c.child1;a.next1=b;a.prev1=c;null!==b&&(b.prev1=a);c.child1=a;return c}},{key:"combineChildren",value:function(c){var a=c.child1;if(null===a)return null;for(c=null;;){var b=a.next1;if(null===b)var d=null;else d=b.next1,a=this.meld(a,b);a.next1=c;c=a;if(null===d)break;a=d}d=c;for(c=c.next1;null!==c;)a=c.next1,d=this.meld(d,c),c=a;d.prev1=null;d.next1=null;return d}},{key:"removeMin",value:function(c){var a=this.combineChildren(c);c.next1=null;c.prev1=null;c.child1=
+null;return a}},{key:"remove",value:function(c,a){if(c===a)return this.removeMin(c);var b=a.prev1,d=a.next1;b.child1===a?b.child1=d:b.next1=d;null!==d&&(d.prev1=b);c=this.meld(c,this.combineChildren(a));a.next1=null;a.prev1=null;a.child1=null;return c}},{key:"entries",value:function(c){function a(a,e){for(;;)switch(b){case 0:if(null===c){b=1;break}k=c.child1;b=2;return{value:c,done:!1};case 2:if(void 0===e){b=3;break}b=-1;throw e;case 3:case 4:if(null===k){b=5;break}h=k.next1;f=$jscomp.makeIterator(g.entries(k));
+case 6:if((d=f.next(a)).done){b=7;break}b=8;return{value:d.value,done:!1};case 8:if(void 0===e){b=9;break}b=-1;throw e;case 9:b=6;break;case 7:k=h;b=4;break;case 5:case 1:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,f,h,k,g=this,e={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();e[Symbol.iterator]=function(){return this};return e}},{key:"removedEntries",value:function(c){function a(a,
+e){for(;;)switch(b){case 0:if(null===c){b=1;break}k=c.child1;c.child1=null;c.next1=null;c.prev1=null;b=2;return{value:c,done:!1};case 2:if(void 0===e){b=3;break}b=-1;throw e;case 3:case 4:if(null===k){b=5;break}h=k.next1;k.child1=null;k.next1=null;k.prev1=null;f=$jscomp.makeIterator(g.entries(k));case 6:if((d=f.next(a)).done){b=7;break}b=8;return{value:d.value,done:!1};case 8:if(void 0===e){b=9;break}b=-1;throw e;case 9:b=6;break;case 7:k=h;b=4;break;case 5:case 1:b=-1;default:return{value:void 0,
+done:!0}}}var b=0,d,f,h,k,g=this,e={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();e[Symbol.iterator]=function(){return this};return e}}]);return f}();e.a=m},function(m,e,l){l.d(e,"a",function(){return c});var g=l(1),f=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,
+d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}(),c=function(){function a(b,c){c=void 0===c?g.c:c;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.size=g.l.clone(b);this.transform=g.g.clone(c);this.invTransform=g.g.invert(g.g.create(),c)}f(a,[{key:"toObject",value:function(a){a.size=this.size;a.transform=this.transform}},{key:"localSpatialToGlobal",value:function(a,c){return g.l.transformMat4(a,c,this.transform)}},{key:"globalToLocalSpatial",
+value:function(a,c){return g.l.transformMat4(a,c,this.invTransform)}},{key:"globalToLocalGrid",value:function(a,c){this.globalToLocalSpatial(a,c);g.l.divide(a,a,this.size);return a}},{key:"localSpatialVectorToGlobal",value:function(a,c){return Object(g.k)(a,c,this.transform)}},{key:"globalToLocalSpatialVector",value:function(a,c){return Object(g.k)(a,c,this.invTransform)}},{key:"assignLocalSpatialToGlobalMat4",value:function(a){return g.g.copy(a,this.transform)}}],[{key:"get",value:function(b,c){c=
+void 0===c?g.c:c;var d=a.cache,h=JSON.stringify([Array.from(b),Array.from(c)]),k=d.get(h);void 0===k&&(k=new a(b,c),d.set(h,k));return k}},{key:"fromObject",value:function(b){return a.get(b.size,b.transform)}}]);return a}();c.cache=new Map},function(m,e,l){e.a=function(g,f){return g===f?!0:1E-6>Math.abs(g-f)/Math.min(Math.abs(g),Math.abs(f))}},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);
+a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var f=l(60);m=l(0);var c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),a=function q(a,b,c){null===a&&(a=Function.prototype);var h=
+Object.getOwnPropertyDescriptor(a,b);if(void 0===h){if(a=Object.getPrototypeOf(a),null!==a)return q(a,b,c)}else{if("value"in h)return h.value;b=h.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,f){var h=arguments.length,k=3>h?b:null===f?f=Object.getOwnPropertyDescriptor(b,c):f,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)k=Reflect.decorate(a,b,c,f);else for(var e=a.length-1;0<=e;e--)if(g=a[e])k=(3>h?g(k):3<h?g(b,c,k):g(b,c))||k;return 3<h&&
+k&&Object.defineProperty(b,c,k),k};l=b=function(e){function h(a,b){b=void 0===b?{}:b;if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");var c=(h.__proto__||Object.getPrototypeOf(h)).call(this,a,b);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.updatingValue_=!1;void 0!==a&&(c.base=new f.a(b.value),c.setupChangedHandler());return c}g(h,e);c(h,[{key:"initializeCounterpart",
+value:function(b,c){c=void 0===c?{}:c;c.value=this.value;a(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"initializeCounterpart",this).call(this,b,c)}},{key:"setupChangedHandler",value:function(){var a=this;this.registerDisposer(this.base.changed.add(function(){if(a.updatingValue_)a.updatingValue_=!1;else{var b=a.rpc;null!==b&&b.invoke("SharedWatchableValue.changed",{id:a.rpcId,value:a.value})}}))}},{key:"value",get:function(){return this.base.value},set:function(a){this.base.value=a}},
+{key:"changed",get:function(){return this.base.changed}}],[{key:"makeFromExisting",value:function(a,c){var h=new b;h.base=c;h.setupChangedHandler();h.initializeCounterpart(a);return h}},{key:"make",value:function(a,c){return b.makeFromExisting(a,new f.a(c))}}]);return h}(m.c);l=b=e([Object(m.g)("SharedWatchableValue")],l);Object(m.f)("SharedWatchableValue.changed",function(a){var b=this.get(a.id);b.updatingValue_=!0;b.base.value=a.value;b.updatingValue_=!1});var b},function(m,e,l){function g(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"a",function(){return b});var c=l(14),a=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function b(a){f(this,b);this.value_=a;this.changed=new c.a}a(b,[{key:"value",get:function(){return this.value_},set:function(a){a!==this.value_&&(this.value_=a,this.changed.dispatch())}}]);return b}();(function(b){function c(a,b,d){d=void 0===d?a:d;f(this,c);a=(c.__proto__||Object.getPrototypeOf(c)).call(this,a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.validator=b;a.defaultValue=d;return a}g(c,b);a(c,[{key:"toJSON",value:function(){if(this.value_!==this.defaultValue)return this.value_}},{key:"reset",value:function(){this.value=this.defaultValue}},{key:"restoreState",value:function(a){if(void 0!==a){var b=this.validator;try{this.value=b(a);return}catch(u){}}this.value=this.defaultValue}}]);return c})(b)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a,b){a&&
+(b.change_spec={change_stack_id:a.changeStackId},a.timeStamp&&(b.change_spec.time_stamp=a.timeStamp),a.skipEquivalences&&(b.change_spec.skip_equivalences=a.skipEquivalences))}function b(a,b){return Object(u.WithParameters)(Object(p.a)()(a),b)}function d(a,b){Object(v.c)(a,b,"fragmentKey");a.clipBounds&&(a.fragmentIds=q(a.fragmentIds,a.clipBounds));return a}function q(a,b){b;if(!a)return a;var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var f=B.l.clone([500,500,
+500]),k=d;var r=f;var g=new w.a;if(!g.tryParseString(k,16))throw Error("Couldn't parse fragmentId "+k+" as hex-encoded Uint64");if(g.high)throw Error("Fragment ids > 2^32 not supported yet");k=Object(B.a)(g);g=B.l.create();r=B.l.mul(g,k,r);k=B.l.create();B.l.scale(k,f,.5);g=B.l.create();B.l.add(g,r,k);h({center:g,size:f},b)&&c.push(d)}return c}function h(a,b){function c(a,b,c){return[].concat($jscomp.arrayFromIterable(a.map(function(a,d){return a+c*b[d]/2}).values()))}function d(a){return{min:B.l.clone(c(a.center,
+a.size,-1)),max:B.l.clone(c(a.center,a.size,1))}}a=d(a);b=d(b);return a.min[0]<=b.max[0]&&a.max[0]>=b.min[0]&&a.min[1]<=b.max[1]&&a.max[1]>=b.min[1]&&a.min[2]<=b.max[2]&&a.max[2]>=b.min[2]}function k(a,b){Object(H.e)(b);var c=Object(H.f)(b,"fragmentKey",H.h);b=Object(H.f)(b,"supervoxelId",H.h);if(c.length!==b.length)throw Error("Expected fragmentKey and supervoxelId arrays to have the same length.");a.fragmentIds=b.map(function(a,b){return a+"\x00"+c[b]});a.clipBounds&&(a.fragmentIds=q(a.fragmentIds,
+a.clipBounds))}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"BrainmapsVolumeChunkSource",function(){return z});l.d(e,"BrainmapsMeshSource",function(){return G});l.d(e,"BrainmapsSkeletonSource",function(){return D});var u=l(2),p=l(62),x=l(65),n=l(67),v=l(19),I=l(74);m=l(24);e=l(16);var t=l(21),N=l(13),F=l(12),B=l(1),H=l(5),w=l(6);l=l(0);var A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),K=this&&this.__decorate||function(a,b,c,d){var h=arguments.length,f=3>h?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var r=a.length-1;0<=r;r--)if(k=a[r])f=(3>h?k(f):3<h?k(b,c,f):k(b,c))||f;return 3<h&&f&&Object.defineProperty(b,c,f),f},r=new Map([[n.c.RAW,t.a],[n.c.JPEG,e.a],[n.c.COMPRESSED_SEGMENTATION,m.a]]),
+z=function(b){function d(){g(this,d);var a=f(this,(d.__proto__||Object.getPrototypeOf(d)).apply(this,arguments));a.chunkDecoder=r.get(a.parameters.encoding);return a}c(d,b);A(d,[{key:"applyEncodingParams",value:function(a){var b=this.parameters.encoding;switch(b){case n.c.RAW:a.subvolume_format="RAW";break;case n.c.JPEG:a.subvolume_format="SINGLE_IMAGE";a.image_format_options={image_format:"JPEG",jpeg_quality:70};break;case n.c.COMPRESSED_SEGMENTATION:a.subvolume_format="RAW";a.image_format_options=
+{compressed_segmentation_block_size:Object(B.m)(this.spec.compressedSegmentationBlockSize)};break;default:throw Error("Invalid encoding: "+b);}}},{key:"download",value:function(b,c){var d=this,h=this.parameters,f=this.computeChunkBounds(b),k=b.chunkDataSize;var r="/v1/volumes/"+h.volumeId+"/subvolume:binary";f={geometry:{corner:Object(B.m)(f),size:Object(B.m)(k),scale:h.scaleIndex}};this.applyEncodingParams(f);a(h.changeSpec,f);r={method:"POST",payload:JSON.stringify(f),path:r,responseType:"arraybuffer"};
+return Object(x.a)(h.instance,this.credentialsProvider,r,c).then(function(a){return d.chunkDecoder(b,a)})}}]);return d}(b(N.a,n.d));z=K([Object(l.g)()],z);var G=function(b){function h(){g(this,h);var a=f(this,(h.__proto__||Object.getPrototypeOf(h)).apply(this,arguments));a.manifestDecoder=void 0!==a.parameters.changeSpec?k:d;var b=a.parameters.changeSpec;b=void 0!==b?"&header.changeStackId="+b.changeStackId+"&return_supervoxel_ids=true":"";a.listFragmentsParams=b;return a}c(h,b);A(h,[{key:"download",
+value:function(a,b){var c=this,d=this.parameters;return Object(x.a)(d.instance,this.credentialsProvider,{method:"GET",path:"/v1/objects/"+d.volumeId+"/meshes/"+(d.meshName+":listfragments?object_id="+a.objectId)+this.listFragmentsParams,responseType:"json"},b).then(function(b){return c.manifestDecoder(a,b)})}},{key:"downloadFragment",value:function(b,c){var d=this.parameters,h=b.fragmentId;if(void 0!==d.changeSpec){var f=h.indexOf("\x00");var k=h.substring(0,f);h=h.substring(f+1)}else k=b.manifestChunk.objectId.toString();
+f="/v1/objects/"+d.volumeId+("/meshes/"+d.meshName)+"/fragment:binary";k={fragment_key:h,object_id:k};a(d.changeSpec,k);k={method:"POST",path:f,payload:JSON.stringify(k),responseType:"arraybuffer"};return Object(x.a)(d.instance,this.credentialsProvider,k,c).then(function(a){var c=new DataView(a),d=c.getUint32(0,!0);if(0!==c.getUint32(4,!0))throw Error("The number of vertices should not exceed 2^32-1.");Object(v.d)(b,a,F.b.LITTLE,8,d)})}}]);return h}(b(v.a,n.a));G=K([Object(l.g)()],G);var D=function(b){function d(){g(this,
+d);return f(this,(d.__proto__||Object.getPrototypeOf(d)).apply(this,arguments))}c(d,b);A(d,[{key:"download",value:function(b,c){var d=this.parameters,h={object_id:""+b.objectId},f="/v1/objects/"+d.volumeId+("/meshes/"+d.meshName)+"/skeleton:binary";a(d.changeSpec,h);h={method:"POST",path:f,payload:JSON.stringify(h),responseType:"arraybuffer"};return Object(x.a)(d.instance,this.credentialsProvider,h,c).then(function(a){var c=new DataView(a),d=c.getUint32(0,!0);if(0!==c.getUint32(4,!0))throw Error("The number of vertices should not exceed 2^32-1.");
+var h=c.getUint32(8,!0);if(0!==c.getUint32(12,!0))throw Error("The number of edges should not exceed 2^32-1.");Object(I.b)(b,a,F.b.LITTLE,16,d,void 0,h)})}}]);return d}(b(I.a,n.b));D=K([Object(l.g)()],D)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}e.a=function(){return function(a){return function(a){function b(a){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];g(this,b);var h;d=f(this,(h=b.__proto__||Object.getPrototypeOf(b)).call.apply(h,[].concat([this],
+$jscomp.arrayFromIterable(c))));d.credentialsProvider=d.rpc.getRef(c[1].credentialsProvider);return d}c(b,a);return b}(a)}};var a=l(63),b=l(64);m=l(0);e=this&&this.__decorate||function(a,b,c,f){var d=arguments.length,h=3>d?b:null===f?f=Object.getOwnPropertyDescriptor(b,c):f,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)h=Reflect.decorate(a,b,c,f);else for(var g=a.length-1;0<=g;g--)if(k=a[g])h=(3>d?k(h):3<d?k(b,c,h):k(b,c))||h;return 3<d&&h&&Object.defineProperty(b,c,h),h};l=
+function(d){function e(){g(this,e);var c=f(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments));c.get=Object(a.a)(function(a,d){return c.rpc.promiseInvoke(b.a,{providerId:c.rpcId,invalidCredentials:a},d)});return c}c(e,d);return e}(m.c);l=e([Object(m.g)(b.b)],l)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||
+"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}e.a=function(b){var c,d,h;return function(f,k){if(void 0!==d&&(void 0===c||void 0===f||c.generation!==f.generation))return void 0===c&&h.addConsumer(k),
+d;c=void 0;h=new a.c;return d=b(f,h).then(function(a){c=a;h=void 0;return a},function(a){h.isCanceled&&(d=h=void 0);throw a;})}};var a=l(7);m=l(17);var b=l(30),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();(function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments))}c(b,a);return b})(m.a);var q=function(){function a(){g(this,a);this.providers=new Map}d(a,[{key:"register",value:function(a,b){this.providers.set(a,b)}},{key:"getCredentialsProvider",value:function(a,b){var c=this.providers.get(a);if(void 0===c)throw Error("No registered credentials provider: "+JSON.stringify(a));return c(b)}}]);return a}();(function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,new q))}c(b,a);d(b,[{key:"register",value:function(a,
+b){this.base.register(a,b)}}]);return b})(function(a){function h(a){g(this,h);var c=f(this,(h.__proto__||Object.getPrototypeOf(h)).call(this));c.base=a;c.memoize=new b.a;return c}c(h,a);d(h,[{key:"getCredentialsProvider",value:function(a,b){var c=this;return this.memoize.get({key:a,parameters:b},function(){return c.registerDisposer(c.base.getCredentialsProvider(a,b).addRef())})}}]);return h}(m.a))},function(m,e,l){e.b="CredentialsProvider";e.a="CredentialsProvider.get"},function(m,e,l){e.a=function(c,
+a,b,d){d=void 0===d?g.e:d;var e=void 0;return new Promise(function(h,k){function l(g){null!==e&&(e=Object(f.c)(c.serverUrls,b.path,b.method),e.responseType=b.responseType,e.setRequestHeader("Authorization",g.credentials.tokenType+" "+g.credentials.accessToken),e.onloadend=function(){if(null!==e){var b=this.status;200<=b&&300>b?(d.remove(p),h(this.response)):401===b?a.get(g,d).then(l):504===b||503===b?a.get(void 0,d).then(l):(d.remove(p),k(f.a.fromXhr(this)))}},e.send(b.payload))}var p=function(){var a=
+e;e=null;null!=a&&a.abort();k(g.a)};d.add(p);a.get(void 0,d).then(l)})};var g=l(7),f=l(11)},function(m,e,l){e.a=function(g){for(var f=0,c=g.length,a=0;a<c;++a)f=31*f+g.charCodeAt(a)|0;return f}},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,
+b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"c",function(){return c});l.d(e,"d",function(){return a});l.d(e,"a",function(){return b});l.d(e,"b",function(){return d});var c;(function(a){a[a.RAW=0]="RAW";a[a.JPEG=1]="JPEG";a[a.COMPRESSED_SEGMENTATION=2]="COMPRESSED_SEGMENTATION"})(c||(c={}));var a=function h(){f(this,h)};a.RPC_ID="brainmaps/VolumeChunkSource";var b=function k(){f(this,k)};b.RPC_ID="brainmaps/MeshSource";var d=
+function(a){function b(){f(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}g(b,a);return b}(b);d.RPC_ID="brainmaps/SkeletonSource"},function(m,e,l){e.b="mesh/MeshLayer";e.a="mesh/FragmentSource"},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var f=l(70),c=l(5),a=l(14),b=l(6);m=l(0);var d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function p(a,b,c){null===
+a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return p(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var h=arguments.length,f=3>h?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(k=a[g])f=(3>h?k(f):3<h?
+k(b,c,f):k(b,c))||f;return 3<h&&f&&Object.defineProperty(b,c,f),f};l=function(h){function k(){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");var b=(k.__proto__||Object.getPrototypeOf(k)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");b=!b||"object"!==typeof b&&"function"!==typeof b?this:b;b.disjointSets=new f.a;b.changed=new a.a;return b}g(k,h);d(k,[{key:"disposed",value:function(){this.changed=
+this.disjointSets=void 0;q(k.prototype.__proto__||Object.getPrototypeOf(k.prototype),"disposed",this).call(this)}},{key:"link",value:function(a,b){if(this.disjointSets.link(a,b)){var c=this.rpc;c&&c.invoke("DisjointUint64Sets.add",{id:this.rpcId,al:a.low,ah:a.high,bl:b.low,bh:b.high});this.changed.dispatch()}}},{key:"get",value:function(a){return this.disjointSets.get(a)}},{key:"clear",value:function(){if(this.disjointSets.clear()){var a=this.rpc;a&&a.invoke("DisjointUint64Sets.clear",{id:this.rpcId});
+this.changed.dispatch()}}},{key:"setElements",value:function(a){return this.disjointSets.setElements(a)}},{key:"toJSON",value:function(){return this.disjointSets.toJSON()}},{key:"restoreState",value:function(a){var d=this;this.clear();if(void 0!==a){var h=[new b.a,new b.a];Object(c.a)(a,function(a){Object(c.a)(a,function(a,b){h[b%2].parseString(String(a),10);0!==b&&d.link(h[0],h[1])})})}}},{key:"size",get:function(){return this.disjointSets.size}}],[{key:"makeWithCounterpart",value:function(a){var b=
+new this;b.initializeCounterpart(a);return b}}]);return k}(m.c);l=e([Object(m.g)("DisjointUint64Sets")],l);var h=new b.a,k=new b.a;Object(m.f)("DisjointUint64Sets.add",function(a){var b=this.get(a.id);h.low=a.al;h.high=a.ah;k.low=a.bl;k.high=a.bh;b.disjointSets.link(h,k)&&b.changed.dispatch()});Object(m.f)("DisjointUint64Sets.clear",function(a){a=this.get(a.id);a.disjointSets.clear()&&a.changed.dispatch()})},function(m,e,l){function g(a){for(var b=a,c=a[d];c!==a;)a=c,c=a[d];for(a=b[d];c!==a;)b[d]=
+c,b=a,a=b[d];return c}function f(a){function b(b,f){for(;;)switch(c){case 0:h=!0,d=a;case 1:if(!h&&d===a){c=3;break}c=4;return{value:d,done:!1};case 4:if(void 0===f){c=5;break}c=-1;throw f;case 5:d=d[q];case 2:h=!1;c=1;break;case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,h,f={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();f[Symbol.iterator]=function(){return this};return f}
+l.d(e,"a",function(){return u});var c=l(6),a=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();$jscomp.initSymbol();var b=Symbol("disjoint_sets:rank");$jscomp.initSymbol();var d=Symbol("disjoint_sets:parent");$jscomp.initSymbol();var q=Symbol("disjoint_sets:next");$jscomp.initSymbol();var h=Symbol("disjoint_sets:prev");
+$jscomp.initSymbol();var k=Symbol("disjoint_sets:min"),u=function(){function e(){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");this.map=new Map;this.generation=0}$jscomp.initSymbol();$jscomp.initSymbolIterator();a(e,[{key:"get",value:function(a){var b=this.map.get(a.toString());return void 0===b?a:g(b)[k]}},{key:"isMinElement",value:function(a){var b=this.get(a);return b===a||c.a.equal(b,a)}},{key:"makeSet",value:function(a){var c=a.toString(),f=this.map,e=f.get(c);
+return void 0===e?(a=e=a.clone(),a[d]=a,a[b]=0,a[q]=a[h]=a,e[k]=e,f.set(c,e),e):g(e)}},{key:"link",value:function(a,f){a=this.makeSet(a);f=this.makeSet(f);if(a===f)return!1;this.generation++;var g=a;var e=f,l=g[b],p=e[b];l>p?e[d]=g:(g[d]=e,l===p&&(e[b]=p+1),g=e);e=a;l=f;p=e[h];var n=l[h];l[h]=p;p[q]=l;e[h]=n;n[q]=e;a=a[k];f=f[k];g[k]=c.a.less(a,f)?a:f;return!0}},{key:"setElements",value:function(a){function b(b,l){for(;;)switch(c){case 0:g=a.toString();k=e.map.get(g);if(void 0!==k){c=1;break}c=3;
+return{value:a,done:!1};case 3:if(void 0===l){c=4;break}c=-1;throw l;case 4:c=2;break;case 1:h=$jscomp.makeIterator(f(k));case 5:if((d=h.next(b)).done){c=6;break}c=7;return{value:d.value,done:!1};case 7:if(void 0===l){c=8;break}c=-1;throw l;case 8:c=5;break;case 6:case 2:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,h,k,g,e=this,l={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();
+l[Symbol.iterator]=function(){return this};return l}},{key:"clear",value:function(){var a=this.map;if(0===a.size)return!1;++this.generation;a.clear();return!0}},{key:"mappings",value:function(a){function b(b,l){for(;;)switch(c){case 0:a=void 0===a?Array(2):a,f=$jscomp.makeIterator(e.map.values()),h=f.next();case 1:if(h.done){c=3;break}d=h.value;a[0]=d;a[1]=g(d)[k];c=4;return{value:a,done:!1};case 4:if(void 0===l){c=5;break}c=-1;throw l;case 5:case 2:h=f.next();c=1;break;case 3:c=-1;default:return{value:void 0,
+done:!0}}}var c=0,d,h,f,e=this,l={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();l[Symbol.iterator]=function(){return this};return l}},{key:Symbol.iterator,value:function(){return this.mappings()}},{key:"toJSON",value:function(){for(var a=[],b=$jscomp.makeIterator(this.map.values()),h=b.next();!h.done;h=b.next()){var k=h.value;if(k[d]===k){h=[];k=$jscomp.makeIterator(f(k));for(var g=k.next();!g.done;g=
+k.next())h.push(g.value);h.sort(c.a.compare);a.push(h)}}a.sort(function(a,b){return c.a.compare(a[0],b[0])});return a.map(function(a){return a.map(function(a){return a.toString()})})}},{key:"size",get:function(){return this.map.size}}]);return e}()},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var f=l(72),c=l(14);m=l(0);var a=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function h(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return h(a,
+b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var h=arguments.length,f=3>h?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(k=a[g])f=(3>h?k(f):3<h?k(b,c,f):k(b,c))||f;return 3<h&&f&&Object.defineProperty(b,c,f),f};l=d=function(h){function k(){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");
+var a=(k.__proto__||Object.getPrototypeOf(k)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.hashTable=new f.a;a.changed=new c.b;return a}g(k,h);$jscomp.initSymbol();$jscomp.initSymbolIterator();a(k,[{key:"disposed",value:function(){b(k.prototype.__proto__||Object.getPrototypeOf(k.prototype),"disposed",this).call(this);this.changed=this.hashTable=void 0}},{key:"add_",value:function(a){return this.hashTable.add(a)}},
+{key:"add",value:function(a){if(this.add_(a)){var b=this.rpc;b&&b.invoke("Uint64Set.add",{id:this.rpcId,value:a});this.changed.dispatch(a,!0)}}},{key:"has",value:function(a){return this.hashTable.has(a)}},{key:Symbol.iterator,value:function(){return this.hashTable.keys()}},{key:"delete_",value:function(a){return this.hashTable.delete(a)}},{key:"delete",value:function(a){if(this.delete_(a)){var b=this.rpc;b&&b.invoke("Uint64Set.delete",{id:this.rpcId,value:a});this.changed.dispatch(a,!1)}}},{key:"clear",
+value:function(){if(this.hashTable.clear()){var a=this.rpc;a&&a.invoke("Uint64Set.clear",{id:this.rpcId});this.changed.dispatch(null,!1)}}},{key:"toJSON",value:function(){for(var a=[],b=$jscomp.makeIterator(this),c=b.next();!c.done;c=b.next())a.push(c.value.toString());a.sort();return a}},{key:"size",get:function(){return this.hashTable.size}}],[{key:"makeWithCounterpart",value:function(a){var b=new d;b.initializeCounterpart(a);return b}}]);return k}(m.c);l=d=e([Object(m.g)("Uint64Set")],l);Object(m.f)("Uint64Set.add",
+function(a){var b=this.get(a.id);b.add_(a.value)&&b.changed.dispatch()});Object(m.f)("Uint64Set.delete",function(a){var b=this.get(a.id);b.delete_(a.value)&&b.changed.dispatch()});Object(m.f)("Uint64Set.clear",function(a){a=this.get(a.id);a.hashTable.clear()&&a.changed.dispatch()});var d},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"a",function(){return x});var a=l(73),b=l(6),d=function F(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,
+b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return F(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},q=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),h=0,k=0,u=0,p=0;m=function(){function d(a){a=void 0===a?d.generateHashFunctions(3):a;c(this,d);this.loadFactor=
+.9;this.size=0;this.growFactor=1.2;this.maxHeight=8192;this.emptyHigh=this.emptyLow=4294967295;this.maxAttempts=this.maxRehashAttempts=5;this.maxWidth=4096/this.entryStride;this.generation=0;this.mungedEmptyKey=-1;this.hashFunctions=a;this.allocate(4,1)}q(d,[{key:"updateHashFunctions",value:function(a){this.hashFunctions=d.generateHashFunctions(a);this.mungedEmptyKey=-1}},{key:"tableWithMungedEmptyKey",value:function(a){for(var b=this.hashFunctions.length,c=Array(b),d=0;d<b;++d)c[d]=this.getHash(d,
+this.emptyLow,this.emptyHigh);d=this.mungedEmptyKey;if(-1===d)a:for(;;){d=16777216*Math.random()>>>0;for(var f=0;f<b;++f)for(var h=this.getHash(f,d,d),k=0;k<b;++k)if(c[k]===h)continue a;this.mungedEmptyKey=d;break}f=this.table;h=this.emptyLow;k=this.emptyHigh;for(var g=0;g<b;++g){var e=c[g];f[e]===h&&f[e+1]===k&&(f[e]=d,f[e+1]=d)}try{a(f)}finally{for(a=0;a<b;++a)g=c[a],f[g]===d&&f[g+1]===d&&(f[g]=h,f[g+1]=k)}}},{key:"getHash",value:function(a,b,c){a=this.hashFunctions[a];var d=this.width,f=this.height;
+d=a[0].compute(b,c)%d;b=a[1].compute(b,c)%f;return this.entryStride*(b*this.width+d)}},{key:"keys",value:function(a){function c(c,r){for(;;)switch(d){case 0:a=void 0===a?new b.a:a,m=t,n=m.emptyLow,p=m.emptyHigh,q=m.entryStride,l=t,e=l.table,g=0,k=e.length;case 1:if(!(g<k)){d=3;break}h=e[g];f=e[g+1];if(h===n&&f===p){d=4;break}a.low=h;a.high=f;d=5;return{value:a,done:!1};case 5:if(void 0===r){d=6;break}d=-1;throw r;case 6:case 4:case 2:g+=q;d=1;break;case 3:d=-1;default:return{value:void 0,done:!0}}}
+var d=0,f,h,k,g,e,l,q,p,n,m,t=this,B={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();B[Symbol.iterator]=function(){return this};return B}},{key:"indexOfPair",value:function(a,b){var c=this.table,d=this.emptyHigh;if(a===this.emptyLow&&b===d)return-1;d=0;for(var f=this.hashFunctions.length;d<f;++d){var h=this.getHash(d,a,b);if(c[h]===a&&c[h+1]===b)return h}return-1}},{key:"indexOf",value:function(a){return this.indexOfPair(a.low,
+a.high)}},{key:"chooseAnotherEmptyKey",value:function(){for(var a=this.emptyLow,b=this.emptyHigh,c=this.table,d=this.entryStride,f,h;f=4294967296*Math.random()>>>0,h=4294967296*Math.random()>>>0,f===a&&h===b||this.hasPair(f,h););this.emptyLow=f;this.emptyHigh=h;for(var k=0,g=c.length;k<g;k+=d)c[k]===a&&c[k+1]===b&&(c[k]=f,c[k+1]=h)}},{key:"has",value:function(a){return-1!==this.indexOf(a)}},{key:"hasPair",value:function(a,b){return-1!==this.indexOfPair(a,b)}},{key:"delete",value:function(a){a=this.indexOf(a);
+if(-1!==a){var b=this.table;b[a]=this.emptyLow;b[a+1]=this.emptyHigh;++this.generation;this.size--;return!0}return!1}},{key:"clearTable",value:function(){for(var a=this.table,b=this.entryStride,c=this.emptyLow,d=this.emptyHigh,f=a.length,h=0;h<f;h+=b)a[h]=c,a[h+1]=d}},{key:"clear",value:function(){if(0===this.size)return!1;this.size=0;++this.generation;this.clearTable();return!0}},{key:"swapPending",value:function(a,b){var c=h,d=k;this.storePending(a,b);a[b]=c;a[b+1]=d}},{key:"storePending",value:function(a,
+b){h=a[b];k=a[b+1]}},{key:"backupPending",value:function(){u=h;p=k}},{key:"restorePending",value:function(){h=u;k=p}},{key:"tryToInsert",value:function(){for(var a=0,b=this.emptyLow,c=this.emptyHigh,d=this.maxAttempts,f=this.table,g=this.hashFunctions.length,e=Math.floor(Math.random()*g);;){var l=this.getHash(e,h,k);this.swapPending(f,l);if(h===b&&k===c)return!0;if(++a===d)break;e=(e+Math.floor(Math.random()*(g-1))+1)%g}return!1}},{key:"allocate",value:function(a,b){var c=a*b;this.width=a;this.height=
+b;this.table=new Uint32Array(c*this.entryStride);this.maxAttempts=c;this.clearTable();this.capacity=c*this.loadFactor;this.mungedEmptyKey=-1}},{key:"rehash",value:function(a,b,c){this.allocate(b,c);this.updateHashFunctions(this.hashFunctions.length);b=this.emptyLow;c=this.emptyHigh;for(var d=this.entryStride,f=0,h=a.length;f<h;f+=d){var k=a[f+1];if(a[f]!==b||k!==c)if(this.storePending(a,f),!this.tryToInsert())return!1}return!0}},{key:"grow",value:function(a){for(var b=this.table,c=this.width,d=this.height,
+f=this.maxWidth,h=this.maxHeight;;){var k=c*d;c=Math.min(f,Math.ceil(a/this.height));c*d<a&&(d=Math.min(h,Math.ceil(a/c)));var g=c*d;if(g<a&&g===k)throw Error("Maximum table size exceeded");for(k=0;k<this.maxRehashAttempts;++k)if(this.rehash(b,c,d))return;a=Math.ceil(this.growFactor*a)}}},{key:"insertInternal",value:function(){++this.generation;h===this.emptyLow&&k===this.emptyHigh&&this.chooseAnotherEmptyKey();++this.size>this.capacity&&(this.backupPending(),this.grow(Math.ceil(this.growFactor*this.width*
+this.height)),this.restorePending());for(;!this.tryToInsert();)this.backupPending(),this.grow(this.width*this.height),this.restorePending()}}],[{key:"generateHashFunctions",value:function(b){b=void 0===b?3:b;for(var c=[],d=0;d<b;++d){var f=[a.a.generate(),a.a.generate()];c.push(f)}return c}}]);return d}();var x=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();q(b,[{key:"add",value:function(a){var b=
+a.low;a=a.high;if(this.hasPair(b,a))return!1;h=b;k=a;this.insertInternal();return!0}},{key:Symbol.iterator,value:function(){return this.keys()}}]);return b}(m);x.prototype.entryStride=2;var n=0,v=0,I=0,t=0;(function(a){function e(){c(this,e);return g(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}f(e,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();q(e,[{key:"set",value:function(a,b){var c=a.low;a=a.high;if(this.hasPair(c,a))return!1;h=c;k=a;n=b.low;v=b.high;this.insertInternal();
+return!0}},{key:"get",value:function(a,b){a=this.indexOf(a);if(-1===a)return!1;var c=this.table;b.low=c[a+2];b.high=c[a+3];return!0}},{key:"swapPending",value:function(a,b){var c=n,f=v;d(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"swapPending",this).call(this,a,b);a[b+2]=c;a[b+3]=f}},{key:"storePending",value:function(a,b){d(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"storePending",this).call(this,a,b);n=a[b+2];v=a[b+3]}},{key:"backupPending",value:function(){d(e.prototype.__proto__||
+Object.getPrototypeOf(e.prototype),"backupPending",this).call(this);I=n;t=v}},{key:"restorePending",value:function(){d(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"restorePending",this).call(this);n=I;v=t}},{key:Symbol.iterator,value:function(){return this.entries()}},{key:"entries",value:function(a){function c(c,r){for(;;)switch(d){case 0:a=void 0===a?[new b.a,new b.a]:a,L=u,y=L.emptyLow,t=L.emptyHigh,m=L.entryStride,n=u,p=n.table,q=$jscomp.makeIterator(a),l=q.next().value,e=q.next().value,
+g=0,k=p.length;case 1:if(!(g<k)){d=3;break}h=p[g];f=p[g+1];if(h===y&&f===t){d=4;break}l.low=h;l.high=f;e.low=p[g+2];e.high=p[g+3];d=5;return{value:a,done:!1};case 5:if(void 0===r){d=6;break}d=-1;throw r;case 6:case 4:case 2:g+=m;d=1;break;case 3:d=-1;default:return{value:void 0,done:!0}}}var d=0,f,h,k,g,e,l,q,p,n,m,t,y,L,u=this,W={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();W[Symbol.iterator]=
+function(){return this};return W}}]);return e})(m).prototype.entryStride=4},function(m,e,l){l.d(e,"a",function(){return f});var g=function(){function c(a,b){for(var c=0;c<b.length;c++){var f=b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(a,b,d){b&&c(a.prototype,b);d&&c(a,d);return a}}(),f=function(){function c(a,b,d,f){if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");this.a0=a;this.a1=
+b;this.b=d;this.c=f}g(c,[{key:"computeDotProduct",value:function(a,b){var c=this.a0,f=this.a1;return c[0]*(a&255)+c[1]*(a>>8&255)+c[2]*(a>>16&255)+c[3]*(a>>24&255)+(f[0]*(b&255)+f[1]*(b>>8&255)+f[2]*(b>>16&255)+f[3]*(b>>24&255))}},{key:"compute",value:function(a,b){var c=this.b,f=this.c;a=this.computeDotProduct(a,b);return(a+a*a%4093*f+c)%4093}},{key:"toString",value:function(){return"new HashFunction(Float32Array.of("+this.a0+"), "+("Float32Array.of("+this.a1+"), "+this.b+", "+this.c+")")}}],[{key:"generate",
+value:function(){function a(){return Math.floor(4093*Math.random())}return new c(Float32Array.of(a(),a(),a(),a()),Float32Array.of(a(),a(),a(),a()),a(),a())}}]);return c}()},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"a",function(){return n});e.b=function(b,c,d,f,h,k,g){Object(a.e)(b,2,c,d,f,h,k,g)};e=l(2);var a=l(19),b=l(35),d=l(23);m=l(75);var q=l(6),h=l(15);l=l(0);var k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=function I(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return I(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},p=this&&this.__decorate||function(a,b,c,d){var f=arguments.length,h=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)h=
+Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(k=a[g])h=(3>f?k(h):3<f?k(b,c,h):k(b,c))||h;return 3<f&&h&&Object.defineProperty(b,c,h),h},x=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.objectId=new q.a;a.vertexPositions=null;a.vertexAttributes=null;a.indices=null;return a}c(b,a);k(b,[{key:"initializeSkeletonChunk",value:function(a,c){u(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initialize",this).call(this,a);
+this.objectId.assign(c)}},{key:"freeSystemMemory",value:function(){this.vertexPositions=this.indices=null}},{key:"getVertexAttributeBytes",value:function(){var a=this.vertexPositions.byteLength,b=this.vertexAttributes;null!=b&&b.forEach(function(b){a+=b.byteLength});return a}},{key:"serialize",value:function(a,c){u(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"serialize",this).call(this,a,c);var d=this.vertexPositions,f=this.indices;a.indices=f;c.push(f.buffer);f=this.vertexAttributes;
+if(null!=f&&0<f.length){var h=new Uint8Array(this.getVertexAttributeBytes());h.set(new Uint8Array(d.buffer,d.byteOffset,d.byteLength));var k=a.vertexAttributeOffsets=new Uint32Array(f.length+1);k[0]=0;var g=d.byteLength;f.forEach(function(a,b){k[b+1]=g;h.set(new Uint8Array(a.buffer,a.byteOffset,a.byteLength),g);g+=a.byteLength});c.push(h.buffer);a.vertexAttributes=h}else a.vertexAttributes=new Uint8Array(d.buffer,d.byteOffset,d.byteLength),a.vertexAttributeOffsets=Uint32Array.of(0),d.buffer!==c[0]&&
+c.push(d.buffer);this.vertexPositions=this.indices=this.vertexAttributes=null}},{key:"downloadSucceeded",value:function(){this.systemMemoryBytes=this.gpuMemoryBytes=this.indices.byteLength+this.getVertexAttributeBytes();u(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",this).call(this)}}]);return b}(e.Chunk),n=function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}c(b,a);k(b,[{key:"getChunk",value:function(a){var b=
+Object(d.b)(a),c=this.chunks.get(b);void 0===c&&(c=this.getNewChunk_(x),c.initializeSkeletonChunk(b,a),this.addChunk(c));return c}}]);return b}(e.ChunkSource);e=function(a){function b(a,c){g(this,b);var d=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c));d.source=d.registerDisposer(a.getRef(c.source));d.registerDisposer(d.chunkManager.recomputeChunkPriorities.add(function(){d.updateChunkPriorities()}));return d}c(b,a);k(b,[{key:"updateChunkPriorities",value:function(){var a=this.visibility.value;
+if(a!==Number.NEGATIVE_INFINITY){var b=Object(h.b)(a),c=Object(h.a)(a),f=this.source,k=this.chunkManager;Object(d.a)(this,function(a){a=f.getChunk(a);k.requestChunk(a,b,c+60)})}}}]);return b}(b.a);e=p([Object(l.g)(m.a)],e)},function(m,e,l){e.a="skeleton/SkeletonLayer"},function(m,e,l){function g(c,g,e,l,n,m,I,t){var k=n[0],p=n[1],u=n[2];n=l[0];var v=l[1];l=l[2];var w=e[0],A=e[1],x=e[2];x-=A*p;A-=w*k;if(0===k*p*u)return[0,0];e=n*v*l+31;if(void 0===a||a.length<e)a=new Uint32Array(e),b=new Uint32Array(1*
+e),d=new Uint32Array(1*e),q=new Uint32Array(e),h=new Uint32Array(e);e=a.subarray(0,e);e.fill(0);for(var r=b,z=d,G=q,D=h,C=0,E=c[g]+1>>>0,O=0,M=n-k,Q=n*v-n*p,J=0;J<u;++J,g+=x,O+=Q)for(var y=0;y<p;++y,g+=A,O+=M)for(var L=0;L<k;++L,g+=w){var R=c[g];R!==E&&(E=r[1*C]=R,G[C]=C++);e[O++]=C}G.subarray(0,C).sort(function(a,b){return r[a]-r[b]});c=-1;k=r[1*G[0]]+1>>>0;for(p=0;p<C;++p)u=G[p],w=r[1*u],w!==k&&(++c,k=z[1*c]=w),D[u+1]=c;++c;return Object(f.c)(t,m,I,n*v*l,c,z,e,D,1)}e.a=function(a,b,d,h,e,l){e=void 0===
+e?0:e;l=void 0===l?Object(c.a)(h,1):l;return Object(f.b)(a,b,d,h,e,l,g)};var f=l(20),c=l(18),a,b,d,q,h},function(m,e,l){function g(c,g,e,l,n,m,I,t){var k=n[0],p=n[1],u=n[2];n=l[0];var v=l[1];l=l[2];var w=e[0],A=e[1],x=e[2];x-=A*p;A-=w*k;if(0===k*p*u)return[0,0];e=n*v*l+31;if(void 0===a||a.length<e)a=new Uint32Array(e),b=new Uint32Array(2*e),d=new Uint32Array(2*e),q=new Uint32Array(e),h=new Uint32Array(e);e=a.subarray(0,e);e.fill(0);for(var r=b,z=d,G=q,D=h,C=0,E=c[g]+1>>>0,O=0,M=0,Q=n-k,J=n*v-n*p,
+y=0;y<u;++y,g+=x,M+=J)for(var L=0;L<p;++L,g+=A,M+=Q)for(var R=0;R<k;++R,g+=w){var W=c[g],S=c[g+1];if(W!==E||S!==O)E=r[2*C]=W,O=r[2*C+1]=S,G[C]=C++;e[M++]=C}G.subarray(0,C).sort(function(a,b){var c=r[2*a],d=r[2*b];return r[2*a+1]-r[2*b+1]||c-d});c=-1;k=r[2*G[0]]+1>>>0;for(p=A=0;p<C;++p){u=G[p];x=2*u;w=r[x];x=r[x+1];if(w!==k||x!==A)++c,A=2*c,k=z[A]=w,A=z[A+1]=x;D[u+1]=c}++c;return Object(f.c)(t,m,I,n*v*l,c,z,e,D,2)}e.a=function(a,b,d,h,e,l){e=void 0===e?0:e;l=void 0===l?Object(c.a)(h,2):l;return Object(f.b)(a,
+b,d,h,e,l,g)};var f=l(20),c=l(18),a,b,d,q,h},function(m,e,l){l.d(e,"a",function(){return f});var g=function(){function c(a,b){for(var c=0;c<b.length;c++){var f=b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(a,b,d){b&&c(a.prototype,b);d&&c(a,d);return a}}(),f=function(){function c(a){a=void 0===a?16:a;if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");this.length=0;this.data=new Uint32Array(a)}
+g(c,[{key:"resize",value:function(a){var b=this.data;if(a>b.length){var c=new Uint32Array(Math.max(a,2*b.length));c.set(b.subarray(0,this.length));this.data=c}this.length=a}},{key:"shrinkToFit",value:function(){this.data=new Uint32Array(this.view)}},{key:"clear",value:function(){this.length=0}},{key:"appendArray",value:function(a){var b=this.length;this.resize(b+a.length);this.data.set(a,b)}},{key:"eraseRange",value:function(a,b){this.data.copyWithin(a,b,this.length);this.length-=b-a}},{key:"view",
+get:function(){var a=this.data;return new Uint32Array(a.buffer,a.byteOffset,this.length)}}]);return c}()},function(m,e,l){e.a=function(a,b,d){var e=new g.JpegDecoder;e.parse(a);if(e.width*e.height!==b[0]*b[1]*b[2])throw Error("JPEG data does not have the expected dimensions: "+("width="+e.width+", height="+e.height+", ")+("chunkDataSize="+c.l.str(b)));if(e.numComponents!==d)throw Error("JPEG data does not have the expected number of components: "+("components="+e.numComponents+", expected="+d));if(1===
+e.numComponents)return e.getData(e.width,e.height,!1);if(3===e.numComponents)return a=e.getData(e.width,e.height,!1),Object(f.c)(a,e.width*e.height,3);throw Error("JPEG data has an unsupported number of components: components="+e.numComponents);};var g=l(80);l.n(g);var f=l(18),c=l(1)},function(m,e,l){function g(c,a){if(0===c.indexOf("data:")){var b=c.indexOf("base64,")+7;c=atob(c.substring(b));b=new Uint8Array(c.length);for(var d=c.length-1;0<=d;d--)b[d]=c.charCodeAt(d);a(b.buffer)}else{var f=new XMLHttpRequest;
+f.open("GET",c,!0);f.responseType="arraybuffer";f.onload=function(){a(f.response)};f.send(null)}}e=function(){function c(){this._src=null;this._parser=new f.JpegImage;this.onload=null}c.prototype={get src(){return this._src},set src(a){this.load(a)},get width(){return this._parser.width},get height(){return this._parser.height},load:function(a){this._src=a;g(a,function(a){this.parse(new Uint8Array(a));if(this.onload)this.onload()}.bind(this))},parse:function(a){this._parser.parse(a)},getData:function(a,
+b){return this._parser.getData(a,b,!1)},copyToImageData:function(a){if(2===this._parser.numComponents||4<this._parser.numComponents)throw Error("Unsupported amount of components");var b=a.width,c=a.height,f=b*c*4;a=a.data;if(1===this._parser.numComponents){var h=this._parser.getData(b,c,!1);for(c=b=0;b<f;){var k=h[c++];a[b++]=k;a[b++]=k;a[b++]=k;a[b++]=255}}else for(h=this._parser.getData(b,c,!0),c=b=0;b<f;)a[b++]=h[c++],a[b++]=h[c++],a[b++]=h[c++],a[b++]=255}};return c}();var f;(function(c){function a(a){for(var b=
+1,c=0;a>b;)b<<=1,c++;return c}function b(a,b){return a[b]<<8|a[b+1]}function d(a,b){return(a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3])>>>0}function f(a,b,c){Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1});return c}var h=function(){function a(){}function b(a,b){for(var c=0,d=[],f,h,k=16;0<k&&!a[k-1];)k--;d.push({children:[],index:0});var g=d[0],e;for(f=0;f<k;f++){for(h=0;h<a[f];h++){g=d.pop();for(g.children[g.index]=b[c];0<g.index;)g=d.pop();g.index++;for(d.push(g);d.length<=
+f;)d.push(e={children:[],index:0}),g.children[g.index]=e.children,g=e;c++}f+1<k&&(d.push(e={children:[],index:0}),g.children[g.index]=e.children,g=e)}return d[0].children}function c(a,b,c,d,f,k,g,e,l){function r(){if(0<D)return D--,u>>D&1;u=a[b++];if(255===u){var c=a[b++];if(c)throw"unexpected marker: "+(u<<8|c).toString(16);}D=7;return u>>>7}function w(a){for(;;){a=a[r()];if("number"===typeof a)return a;if("object"!==typeof a)throw"invalid huffman sequence";}}function n(a){for(var b=0;0<a;)b=b<<
+1|r(),a--;return b}function p(a){if(1===a)return 1===r()?1:-1;var b=n(a);return b>=1<<a-1?b:b+(-1<<a)+1}function y(a,b){var c=w(a.huffmanTableDC);c=0===c?0:p(c);a.blockData[b]=a.pred+=c;for(c=1;64>c;){var d=w(a.huffmanTableAC),f=d&15;d>>=4;if(0===f){if(15>d)break;c+=16}else c+=d,a.blockData[b+h[c]]=p(f),c++}}function q(a,b){var c=w(a.huffmanTableDC);c=0===c?0:p(c)<<l;a.blockData[b]=a.pred+=c}function m(a,b){a.blockData[b]|=r()<<l}function G(a,b){if(0<C)C--;else for(var c=k;c<=g;){var d=w(a.huffmanTableAC),
+f=d&15;d>>=4;if(0===f){if(15>d){C=n(d)+(1<<d)-1;break}c+=16}else c+=d,a.blockData[b+h[c]]=p(f)*(1<<l),c++}}function z(a,b){for(var c=k,d=0,f;c<=g;){f=h[c];switch(v){case 0:d=w(a.huffmanTableAC);f=d&15;d>>=4;if(0===f)15>d?(C=n(d)+(1<<d),v=4):(d=16,v=1);else{if(1!==f)throw"invalid ACn encoding";x=p(f);v=d?2:3}continue;case 1:case 2:a.blockData[b+f]?a.blockData[b+f]+=r()<<l:(d--,0===d&&(v=2===v?3:0));break;case 3:a.blockData[b+f]?a.blockData[b+f]+=r()<<l:(a.blockData[b+f]=x<<l,v=0);break;case 4:a.blockData[b+
+f]&&(a.blockData[b+f]+=r()<<l)}c++}4===v&&(C--,0===C&&(v=0))}var t=c.mcusPerLine,A=b,u=0,D=0,C=0,v=0,x,B=d.length,I,E,H,K;e=c.progressive?0===k?0===e?q:m:0===e?G:z:y;var F=0;c=1===B?d[0].blocksPerLine*d[0].blocksPerColumn:t*c.mcusPerColumn;f||(f=c);for(var N,Hb;F<c;){for(I=0;I<B;I++)d[I].pred=0;C=0;if(1===B){var Z=d[0];for(K=0;K<f;K++)e(Z,64*((Z.blocksPerLine+1)*(F/Z.blocksPerLine|0)+F%Z.blocksPerLine)),F++}else for(K=0;K<f;K++){for(I=0;I<B;I++)for(Z=d[I],N=Z.h,Hb=Z.v,E=0;E<Hb;E++)for(H=0;H<N;H++)e(Z,
+64*((Z.blocksPerLine+1)*((F/t|0)*Z.v+E)+(F%t*Z.h+H)));F++}D=0;Z=a[b]<<8|a[b+1];if(65280>=Z)throw"marker was not found";if(65488<=Z&&65495>=Z)b+=2;else break}return b-A}function d(a,b){a=b.blocksPerLine;for(var c=b.blocksPerColumn,d=new Int16Array(64),f=0;f<c;f++)for(var h=0;h<a;h++){for(var k,g,e,l,w,n,p,y,q,m,t,S,u=64*((b.blocksPerLine+1)*f+h),A=d,v=b.quantizationTable,x=b.blockData,B=0;64>B;B+=8)k=x[u+B],y=x[u+B+1],p=x[u+B+2],n=x[u+B+3],w=x[u+B+4],l=x[u+B+5],e=x[u+B+6],g=x[u+B+7],k*=v[B],0===(y|
+p|n|w|l|e|g)?(k=5793*k+512>>10,A[B]=k,A[B+1]=k,A[B+2]=k,A[B+3]=k,A[B+4]=k,A[B+5]=k,A[B+6]=k,A[B+7]=k):(y*=v[B+1],p*=v[B+2],n*=v[B+3],w*=v[B+4],l*=v[B+5],e*=v[B+6],g*=v[B+7],S=5793*k+128>>8,t=5793*w+128>>8,m=p,q=e,w=2896*(y-g)+128>>8,g=2896*(y+g)+128>>8,n<<=4,l<<=4,S=S+t+1>>1,t=S-t,k=3784*m+1567*q+128>>8,m=1567*m-3784*q+128>>8,q=k,w=w+l+1>>1,l=w-l,g=g+n+1>>1,n=g-n,S=S+q+1>>1,q=S-q,t=t+m+1>>1,m=t-m,k=2276*w+3406*g+2048>>12,w=3406*w-2276*g+2048>>12,g=k,k=799*n+4017*l+2048>>12,n=4017*n-799*l+2048>>12,
+l=k,A[B]=S+g,A[B+7]=S-g,A[B+1]=t+l,A[B+6]=t-l,A[B+2]=m+n,A[B+5]=m-n,A[B+3]=q+w,A[B+4]=q-w);for(v=0;8>v;++v)k=A[v],y=A[v+8],p=A[v+16],n=A[v+24],w=A[v+32],l=A[v+40],e=A[v+48],g=A[v+56],0===(y|p|n|w|l|e|g)?(k=5793*k+8192>>14,k=-2040>k?0:2024<=k?255:k+2056>>4,x[u+v]=k,x[u+v+8]=k,x[u+v+16]=k,x[u+v+24]=k,x[u+v+32]=k,x[u+v+40]=k,x[u+v+48]=k,x[u+v+56]=k):(S=5793*k+2048>>12,t=5793*w+2048>>12,m=p,q=e,w=2896*(y-g)+2048>>12,g=2896*(y+g)+2048>>12,S=(S+t+1>>1)+4112,t=S-t,k=3784*m+1567*q+2048>>12,m=1567*m-3784*
+q+2048>>12,q=k,w=w+l+1>>1,l=w-l,g=g+n+1>>1,n=g-n,S=S+q+1>>1,q=S-q,t=t+m+1>>1,m=t-m,k=2276*w+3406*g+2048>>12,w=3406*w-2276*g+2048>>12,g=k,k=799*n+4017*l+2048>>12,n=4017*n-799*l+2048>>12,l=k,k=S+g,g=S-g,y=t+l,e=t-l,p=m+n,l=m-n,n=q+w,w=q-w,k=16>k?0:4080<=k?255:k>>4,y=16>y?0:4080<=y?255:y>>4,p=16>p?0:4080<=p?255:p>>4,n=16>n?0:4080<=n?255:n>>4,w=16>w?0:4080<=w?255:w>>4,l=16>l?0:4080<=l?255:l>>4,e=16>e?0:4080<=e?255:e>>4,g=16>g?0:4080<=g?255:g>>4,x[u+v]=k,x[u+v+8]=y,x[u+v+16]=p,x[u+v+24]=n,x[u+v+32]=w,
+x[u+v+40]=l,x[u+v+48]=e,x[u+v+56]=g)}return b.blockData}function f(a){return 0>=a?0:255<=a?255:a}var h=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);a.prototype={parse:function(a){function f(){var b=a[e]<<8|a[e+1];e+=2;return b}function k(){var b=f();b=a.subarray(e,e+b-2);e+=b.length;return b}function g(a){for(var b=Math.ceil(a.samplesPerLine/8/
+a.maxH),c=Math.ceil(a.scanLines/8/a.maxV),d=0;d<a.components.length;d++){x=a.components[d];var f=Math.ceil(Math.ceil(a.samplesPerLine/8)*x.h/a.maxH),h=Math.ceil(Math.ceil(a.scanLines/8)*x.v/a.maxV);x.blockData=new Int16Array(64*c*x.v*(b*x.h+1));x.blocksPerLine=f;x.blocksPerColumn=h}a.mcusPerLine=b;a.mcusPerColumn=c}var e=0,l=null,n=null,p=[],w=[],q=[];var m=f();if(65496!==m)throw"SOI not found";for(m=f();65497!==m;){switch(m){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var t=
+k();65504===m&&74===t[0]&&70===t[1]&&73===t[2]&&70===t[3]&&0===t[4]&&(l={version:{major:t[5],minor:t[6]},densityUnits:t[7],xDensity:t[8]<<8|t[9],yDensity:t[10]<<8|t[11],thumbWidth:t[12],thumbHeight:t[13],thumbData:t.subarray(14,14+3*t[12]*t[13])});65518===m&&65===t[0]&&100===t[1]&&111===t[2]&&98===t[3]&&101===t[4]&&0===t[5]&&(n={version:t[6],flags0:t[7]<<8|t[8],flags1:t[9]<<8|t[10],transformCode:t[11]});break;case 65499:m=f()+e-2;for(var u;e<m;){var y=a[e++],L=new Uint16Array(64);if(0===y>>4)for(t=
+0;64>t;t++)u=h[t],L[u]=a[e++];else if(1===y>>4)for(t=0;64>t;t++)u=h[t],L[u]=f();else throw"DQT: invalid table spec";p[y&15]=L}break;case 65472:case 65473:case 65474:if(v)throw"Only single frame JPEGs supported";f();var v={};v.extended=65473===m;v.progressive=65474===m;v.precision=a[e++];v.scanLines=f();v.samplesPerLine=f();v.components=[];v.componentIds={};t=a[e++];for(m=L=y=0;m<t;m++){u=a[e];var W=a[e+1]>>4;var S=a[e+1]&15;y<W&&(y=W);L<S&&(L=S);W=v.components.push({h:W,v:S,quantizationTable:p[a[e+
+2]]});v.componentIds[u]=W-1;e+=3}v.maxH=y;v.maxV=L;g(v);break;case 65476:u=f();for(m=2;m<u;){y=a[e++];L=new Uint8Array(16);for(t=W=0;16>t;t++,e++)W+=L[t]=a[e];S=new Uint8Array(W);for(t=0;t<W;t++,e++)S[t]=a[e];m+=17+W;(0===y>>4?q:w)[y&15]=b(L,S)}break;case 65501:f();var B=f();break;case 65498:f();u=a[e++];t=[];for(m=0;m<u;m++){y=v.componentIds[a[e++]];var x=v.components[y];y=a[e++];x.huffmanTableDC=q[y>>4];x.huffmanTableAC=w[y&15];t.push(x)}m=a[e++];u=a[e++];y=a[e++];m=c(a,e,v,t,B,m,u,y>>4,y&15);e+=
+m;break;case 65535:255!==a[e]&&e--;break;default:if(255===a[e-3]&&192<=a[e-2]&&254>=a[e-2])e-=3;else throw"unknown JPEG marker "+m.toString(16);}m=f()}this.width=v.samplesPerLine;this.height=v.scanLines;this.jfif=l;this.adobe=n;this.components=[];for(m=0;m<v.components.length;m++)x=v.components[m],this.components.push({output:d(v,x),scaleX:x.h/v.maxH,scaleY:x.v/v.maxV,blocksPerLine:x.blocksPerLine,blocksPerColumn:x.blocksPerColumn});this.numComponents=this.components.length},_getLinearizedBlockData:function(a,
+b){var c=this.width/a,d=this.height/b,f,h,k=this.components.length,g=a*b*k,e=new Uint8Array(g),l=new Uint32Array(a);for(h=0;h<k;h++){var n=this.components[h];var p=n.scaleX*c;var w=n.scaleY*d;var y=h;var q=n.output;var m=n.blocksPerLine+1<<3;for(f=0;f<a;f++)n=0|f*p,l[f]=(n&4294967288)<<3|n&7;for(p=0;p<b;p++)for(n=0|p*w,n=m*(n&4294967288)|(n&7)<<3,f=0;f<a;f++)e[y]=q[n+l[f]],y+=k}if(b=this.decodeTransform)for(h=0;h<g;)for(a=n=0;n<k;n++,h++,a+=2)e[h]=(e[h]*b[a]>>8)+b[a+1];return e},_isColorConversionNeeded:function(){return this.adobe&&
+this.adobe.transformCode?!0:3===this.numComponents?!0:!1},_convertYccToRgb:function(a){for(var b,c,d,h=0,k=a.length;h<k;h+=3)b=a[h],c=a[h+1],d=a[h+2],a[h]=f(b-179.456+1.402*d),a[h+1]=f(b+135.459-.344*c-.714*d),a[h+2]=f(b-226.816+1.772*c);return a},_convertYcckToRgb:function(a){for(var b,c,d,h,k=0,g=0,e=a.length;g<e;g+=4){b=a[g];c=a[g+1];d=a[g+2];h=a[g+3];var l=-122.67195406894+c*(-6.60635669420364E-5*c+4.37130475926232E-4*d-5.4080610064599E-5*b+4.8449797120281E-4*h-.154362151871126)+d*(-9.57964378445773E-4*
+d+8.17076911346625E-4*b-.00477271405408747*h+1.53380253221734)+b*(9.61250184130688E-4*b-.00266257332283933*h+.48357088451265)+h*(-3.36197177618394E-4*h+.484791561490776),n=107.268039397724+c*(2.19927104525741E-5*c-6.40992018297945E-4*d+6.59397001245577E-4*b+4.26105652938837E-4*h-.176491792462875)+d*(-7.78269941513683E-4*d+.00130872261408275*b+7.70482631801132E-4*h-.151051492775562)+b*(.00126935368114843*b-.00265090189010898*h+.25802910206845)+h*(-3.18913117588328E-4*h-.213742400323665);b=-20.810012546947+
+c*(-5.70115196973677E-4*c-2.63409051004589E-5*d+.0020741088115012*b-.00288260236853442*h+.814272968359295)+d*(-1.53496057440975E-5*d-1.32689043961446E-4*b+5.60833691242812E-4*h-.195152027534049)+b*(.00174418132927582*b-.00255243321439347*h+.116935020465145)+h*(-3.43531996510555E-4*h+.24165260232407);a[k++]=f(l);a[k++]=f(n);a[k++]=f(b)}return a},_convertYcckToCmyk:function(a){for(var b,c,d,h=0,k=a.length;h<k;h+=4)b=a[h],c=a[h+1],d=a[h+2],a[h]=f(434.456-b-1.402*d),a[h+1]=f(119.541-b+.344*c+.714*d),
+a[h+2]=f(481.816-b-1.772*c);return a},_convertCmykToRgb:function(a){for(var b,c,d,f,h=0,k=1/255/255,g=0,e=a.length;g<e;g+=4){b=a[g];c=a[g+1];d=a[g+2];f=a[g+3];var l=b*(-4.387332384609988*b+54.48615194189176*c+18.82290502165302*d+212.25662451639585*f-72734.4411664936)+c*(1.7149763477362134*c-5.6096736904047315*d-17.873870861415444*f-1401.7366389350734)+d*(-2.5217340131683033*d-21.248923337353073*f+4465.541406466231)-f*(21.86122147463605*f+48317.86113160301),n=b*(8.841041422036149*b+60.118027045597366*
+c+6.871425592049007*d+31.159100130055922*f-20220.756542821975)+c*(-15.310361306967817*c+17.575251261109482*d+131.35250912493976*f-48691.05921601825)+d*(4.444339102852739*d+9.8632861493405*f-6341.191035517494)-f*(20.737325471181034*f+47890.15695978492);b=b*(.8842522430003296*b+8.078677503112928*c+30.89978309703729*d-.23883238689178934*f-3616.812083916688)+c*(10.49593273432072*c+63.02378494754052*d+50.606957656360734*f-28620.90484698408)+d*(.03296041114873217*d+115.60384449646641*f-49363.43385999684)-
+f*(22.33816807309886*f+45932.16563550634);a[h++]=0<=l?255:-16581375>=l?0:255+l*k|0;a[h++]=0<=n?255:-16581375>=n?0:255+n*k|0;a[h++]=0<=b?255:-16581375>=b?0:255+b*k|0}return a},getData:function(a,b,c){if(4<this.numComponents)throw"Unsupported color mode";a=this._getLinearizedBlockData(a,b);if(3===this.numComponents)return this._convertYccToRgb(a);if(4===this.numComponents){if(this._isColorConversionNeeded())return c?this._convertYcckToRgb(a):this._convertYcckToCmyk(a);if(c)return this._convertCmykToRgb(a)}return a}};
+return a}();"use strict";var k=function(){function a(a,b,c){this.data=a;this.bp=b;this.dataEnd=c;this.chigh=a[b];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}var b=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},
+{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,
+switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,
+nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},
+{qe:22017,nmps:46,nlps:46,switchFlag:0}];a.prototype={byteIn:function(){var a=this.data,b=this.bp;255===a[b]?143<a[b+1]?(this.clow+=65280,this.ct=8):(b++,this.clow+=a[b]<<9,this.ct=7,this.bp=b):(b++,this.clow+=b<this.dataEnd?a[b]<<8:65280,this.ct=8,this.bp=b);65535<this.clow&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(a,c){var d=a[c]>>1,f=a[c]&1;d=b[d];var h=d.qe,k=this.a-h;if(this.chigh<h)k<h?(k=h,h=f,d=d.nmps):(k=h,h=1^f,1===d.switchFlag&&(f=h),d=d.nlps);else{this.chigh-=h;if(0!==
+(k&32768))return this.a=k,f;k<h?(h=1^f,1===d.switchFlag&&(f=h),d=d.nlps):(h=f,d=d.nmps)}do 0===this.ct&&this.byteIn(),k<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--;while(0===(k&32768));this.a=k;a[c]=d<<1|f;return h}};return a}();"use strict";var g=function(){function c(){this.failOnCorruptedImage=!1}function f(a,b,c){a=c.xcb_;c=c.ycb_;var d=1<<a,f=1<<c,h=b.tbx0>>a,k=b.tby0>>c,g=b.tbx1+d-1>>a,e=b.tby1+f-1>>c,r=b.resolution.precinctParameters,l=[],y=[],
+n,p;for(p=k;p<e;p++)for(n=h;n<g;n++){var q={cbx:n,cby:p,tbx0:d*n,tby0:f*p,tbx1:d*(n+1),tby1:f*(p+1)};q.tbx0_=Math.max(b.tbx0,q.tbx0);q.tby0_=Math.max(b.tby0,q.tby0);q.tbx1_=Math.min(b.tbx1,q.tbx1);q.tby1_=Math.min(b.tby1,q.tby1);var m=Math.floor((q.tbx0_-b.tbx0)/r.precinctWidthInSubband)+Math.floor((q.tby0_-b.tby0)/r.precinctHeightInSubband)*r.numprecinctswide;q.precinctNumber=m;q.subbandType=b.type;q.Lblock=3;if(!(q.tbx1_<=q.tbx0_||q.tby1_<=q.tby0_)){l.push(q);var w=y[m];void 0!==w?(n<w.cbxMin?w.cbxMin=
+n:n>w.cbxMax&&(w.cbxMax=n),p<w.cbyMin?w.cbxMin=p:p>w.cbyMax&&(w.cbyMax=p)):y[m]=w={cbxMin:n,cbyMin:p,cbxMax:n,cbyMax:p};q.precinct=w}}b.codeblockParameters={codeblockWidth:a,codeblockHeight:c,numcodeblockwide:g-h+1,numcodeblockhigh:e-k+1};b.codeblocks=l;b.precincts=y}function h(a,b,c){var d=[];a=a.subbands;for(var f=0,h=a.length;f<h;f++)for(var k=a[f].codeblocks,g=0,e=k.length;g<e;g++){var r=k[g];r.precinctNumber===b&&d.push(r)}return{layerNumber:c,codeblocks:d}}function g(a){var b=a.tiles[a.currentTile.index],
+c=b.codingStyleDefaultParameters.layersCount,d=a.SIZ.Csiz,f=0;for(a=0;a<d;a++)f=Math.max(f,b.components[a].codingStyleParameters.decompositionLevelsCount);var k=0,g=0,e=0,r=0;this.nextPacket=function(){for(;k<c;k++){for(;g<=f;g++){for(;e<d;e++){var a=b.components[e];if(!(g>a.codingStyleParameters.decompositionLevelsCount)){a=a.resolutions[g];for(var l=a.precinctParameters.numprecincts;r<l;)return a=h(a,r,k),r++,a;r=0}}e=0}g=0}throw Error("JPX Error: Out of packets");}}function e(a){var b=a.tiles[a.currentTile.index],
+c=b.codingStyleDefaultParameters.layersCount,d=a.SIZ.Csiz,f=0;for(a=0;a<d;a++)f=Math.max(f,b.components[a].codingStyleParameters.decompositionLevelsCount);var k=0,g=0,e=0,r=0;this.nextPacket=function(){for(;k<=f;k++){for(;g<c;g++){for(;e<d;e++){var a=b.components[e];if(!(k>a.codingStyleParameters.decompositionLevelsCount)){a=a.resolutions[k];for(var l=a.precinctParameters.numprecincts;r<l;)return a=h(a,r,g),r++,a;r=0}}e=0}g=0}throw Error("JPX Error: Out of packets");}}function l(a){var b=a.tiles[a.currentTile.index],
+c=b.codingStyleDefaultParameters.layersCount,d=a.SIZ.Csiz,f,k,g,e=0;for(g=0;g<d;g++)e=Math.max(e,b.components[g].codingStyleParameters.decompositionLevelsCount);var r=new Int32Array(e+1);for(k=0;k<=e;++k){for(g=a=0;g<d;++g){var l=b.components[g].resolutions;k<l.length&&(a=Math.max(a,l[k].precinctParameters.numprecincts))}r[k]=a}var n=g=k=f=0;this.nextPacket=function(){for(;k<=e;k++){for(;n<r[k];n++){for(;g<d;g++){var a=b.components[g];if(!(k>a.codingStyleParameters.decompositionLevelsCount||(a=a.resolutions[k],
+n>=a.precinctParameters.numprecincts))){for(;f<c;)return a=h(a,n,f),f++,a;f=0}}g=0}n=0}throw Error("JPX Error: Out of packets");}}function p(a){var b=a.tiles[a.currentTile.index],c=b.codingStyleDefaultParameters.layersCount,d=a.SIZ.Csiz,f=r(b),k=0,g=0,e=0,l=0,n=0;this.nextPacket=function(){for(;n<f.maxNumHigh;n++){for(;l<f.maxNumWide;l++){for(;e<d;e++){for(var a=b.components[e],r=a.codingStyleParameters.decompositionLevelsCount;g<=r;g++){var y=a.resolutions[g],p=u(l,n,f.components[e].resolutions[g],
+f,y);if(null!==p){for(;k<c;)return a=h(y,p,k),k++,a;k=0}}g=0}e=0}l=0}throw Error("JPX Error: Out of packets");}}function q(a){var b=a.tiles[a.currentTile.index],c=b.codingStyleDefaultParameters.layersCount,d=a.SIZ.Csiz,f=r(b),k=0,g=0,e=0,l=0,n=0;this.nextPacket=function(){for(;e<d;++e){for(var a=b.components[e],r=f.components[e],y=a.codingStyleParameters.decompositionLevelsCount;n<r.maxNumHigh;n++){for(;l<r.maxNumWide;l++){for(;g<=y;g++){var p=a.resolutions[g],q=u(l,n,r.resolutions[g],r,p);if(null!==
+q){for(;k<c;)return a=h(p,q,k),k++,a;k=0}}g=0}l=0}n=0}throw Error("JPX Error: Out of packets");}}function u(a,b,c,d,f){a*=d.minWidth;b*=d.minHeight;return 0!==a%c.width||0!==b%c.height?null:a/c.height+b/c.width*f.precinctParameters.numprecinctswide}function r(a){for(var b=a.components.length,c=Number.MAX_VALUE,d=Number.MAX_VALUE,f=0,h=0,k=Array(b),g=0;g<b;g++){for(var e=a.components[g],r=e.codingStyleParameters.decompositionLevelsCount,l=Array(r+1),n=Number.MAX_VALUE,p=Number.MAX_VALUE,q=0,m=0,w=
+1;0<=r;--r){var t=e.resolutions[r],G=w*t.precinctParameters.precinctWidth,u=w*t.precinctParameters.precinctHeight;n=Math.min(n,G);p=Math.min(p,u);q=Math.max(q,t.precinctParameters.numprecinctswide);m=Math.max(m,t.precinctParameters.numprecinctshigh);l[r]={width:G,height:u};w<<=1}c=Math.min(c,n);d=Math.min(d,p);f=Math.max(f,q);h=Math.max(h,m);k[g]={resolutions:l,minWidth:n,minHeight:p,maxNumWide:q,maxNumHigh:m}}return{components:k,minWidth:c,minHeight:d,maxNumWide:f,maxNumHigh:h}}function v(b,c,d,
+f){function h(a){for(;l<a;){var b=c[d+e];e++;n?(r=r<<7|b,l+=7,n=!1):(r=r<<8|b,l+=8);255===b&&(n=!0)}l-=a;return r>>>l&(1<<a)-1}function k(a){return 255===c[d+e-1]&&c[d+e]===a?(e+=1,!0):255===c[d+e]&&c[d+e+1]===a?(e+=2,!0):!1}function g(){if(0===h(1))return 1;if(0===h(1))return 2;var a=h(2);if(3>a)return a+3;a=h(5);if(31>a)return a+6;a=h(7);return a+37}var e=0,r,l=0,n=!1,y=b.COD.sopMarkerUsed,p=b.COD.ephMarkerUsed;for(b=b.tiles[b.currentTile.index].packetsIterator;e<f;){l=0;n&&(e++,n=!1);y&&k(145)&&
+(e+=4);var q=b.nextPacket();if(h(1)){for(var m=q.layerNumber,w=[],t,G=0,u=q.codeblocks.length;G<u;G++){t=q.codeblocks[G];var v=t.precinct,L=t.cbx-v.cbxMin,A=t.cby-v.cbyMin,z=!1,B=!1;if(void 0!==t.included)z=!!h(1);else{v=t.precinct;if(void 0!==v.inclusionTree)var D=v.inclusionTree;else{var R=v.cbxMax-v.cbxMin+1;var J=v.cbyMax-v.cbyMin+1;D=new C(R,J,m);R=new x(R,J);v.inclusionTree=D;v.zeroBitPlanesTree=R}if(D.reset(L,A,m))for(;;)if(h(1)){if(J=!D.nextLevel()){z=B=t.included=!0;break}}else{D.incrementValue(m);
+break}}if(z){if(B){R=v.zeroBitPlanesTree;for(R.reset(L,A);;)if(h(1)){if(J=!R.nextLevel())break}else R.incrementValue();t.zeroBitPlanes=R.value}for(v=g();h(1);)t.Lblock++;L=a(v);L=h((v<1<<L?L-1:L)+t.Lblock);w.push({codeblock:t,codingpasses:v,dataLength:L})}}l=0;n&&(e++,n=!1);for(p&&k(146);0<w.length;)q=w.shift(),t=q.codeblock,void 0===t.data&&(t.data=[]),t.data.push({data:c,start:d+e,end:d+e+q.dataLength,codingpasses:q.codingpasses}),e+=q.dataLength}}return e}var G={LL:0,LH:1,HL:1,HH:2};c.prototype=
+{parse:function(a){if(65359===b(a,0))this.parseCodestream(a,0,a.length);else for(var c=0,f=a.length;c<f;){var h=8,k=d(a,c),g=d(a,c+4);c+=h;1===k&&(k=4294967296*d(a,c)+d(a,c+4),c+=8,h+=8);0===k&&(k=f-c+h);if(k<h)throw Error("JPX Error: Invalid box field size");h=k-h;k=!0;switch(g){case 1785737832:k=!1;break;case 1668246642:g=a[c];if(1===g)switch(g=d(a,c+3),g){case 16:case 17:case 18:break;default:n("Unknown colorspace "+g)}else 2===g&&m("ICC profile not supported");break;case 1785737827:this.parseCodestream(a,
+c,c+h);break;case 1783636E3:218793738!==d(a,c)&&n("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var e=String.fromCharCode(g>>24&255,g>>16&255,g>>8&255,g&255);n("Unsupported header type "+g+" ("+e+")")}k&&(c+=h)}},parseImageProperties:function(a){for(var b=a.getByte();0<=b;){var c=b;b=a.getByte();if(65361===(c<<8|b)){a.skip(4);b=a.getInt32()>>>0;c=a.getInt32()>>>0;var d=a.getInt32()>>>0,f=a.getInt32()>>>0;a.skip(16);a=a.getUint16();
+this.width=b-d;this.height=c-f;this.componentsCount=a;this.bitsPerComponent=8;return}}throw Error("JPX Error: No size marker found in JPX stream");},parseCodestream:function(a,c,h){var r={};try{var y=!1;for(var m=c;m+1<h;){var w=b(a,m);m+=2;var t=0,u;switch(w){case 65359:r.mainHeader=!0;break;case 65497:break;case 65361:t=b(a,m);var L={};L.Xsiz=d(a,m+4);L.Ysiz=d(a,m+8);L.XOsiz=d(a,m+12);L.YOsiz=d(a,m+16);L.XTsiz=d(a,m+20);L.YTsiz=d(a,m+24);L.XTOsiz=d(a,m+28);L.YTOsiz=d(a,m+32);var x=b(a,m+36);L.Csiz=
+x;var A=[];var z=m+38;for(var B=0;B<x;B++){var C={precision:(a[z]&127)+1,isSigned:!!(a[z]&128),XRsiz:a[z+1],YRsiz:a[z+1]},D=C,I=L;D.x0=Math.ceil(I.XOsiz/D.XRsiz);D.x1=Math.ceil(I.Xsiz/D.XRsiz);D.y0=Math.ceil(I.YOsiz/D.YRsiz);D.y1=Math.ceil(I.Ysiz/D.YRsiz);D.width=D.x1-D.x0;D.height=D.y1-D.y0;A.push(C)}r.SIZ=L;r.components=A;for(var H=void 0,F=r,K=A,J=F.SIZ,N=[],O=Math.ceil((J.Xsiz-J.XTOsiz)/J.XTsiz),lc=Math.ceil((J.Ysiz-J.YTOsiz)/J.YTsiz),Wa=0;Wa<lc;Wa++)for(var Xa=0;Xa<O;Xa++)H={},H.tx0=Math.max(J.XTOsiz+
+Xa*J.XTsiz,J.XOsiz),H.ty0=Math.max(J.YTOsiz+Wa*J.YTsiz,J.YOsiz),H.tx1=Math.min(J.XTOsiz+(Xa+1)*J.XTsiz,J.Xsiz),H.ty1=Math.min(J.YTOsiz+(Wa+1)*J.YTsiz,J.Ysiz),H.width=H.tx1-H.tx0,H.height=H.ty1-H.ty0,H.components=[],N.push(H);F.tiles=N;for(var Ya=0,mc=J.Csiz;Ya<mc;Ya++)for(var Za=K[Ya],gb=0,nc=N.length;gb<nc;gb++){var ha={};H=N[gb];ha.tcx0=Math.ceil(H.tx0/Za.XRsiz);ha.tcy0=Math.ceil(H.ty0/Za.YRsiz);ha.tcx1=Math.ceil(H.tx1/Za.XRsiz);ha.tcy1=Math.ceil(H.ty1/Za.YRsiz);ha.width=ha.tcx1-ha.tcx0;ha.height=
+ha.tcy1-ha.tcy0;H.components[Ya]=ha}r.QCC=[];r.COC=[];break;case 65372:t=b(a,m);var Ia={};z=m+2;var ua=a[z++];switch(ua&31){case 0:var ma=8;var va=!0;break;case 1:ma=16;va=!1;break;case 2:ma=16;va=!0;break;default:throw Error("JPX Error: Invalid SQcd value "+ua);}Ia.noQuantization=8===ma;Ia.scalarExpounded=va;Ia.guardBits=ua>>5;for(u=[];z<t+m;){var ia={};8===ma?(ia.epsilon=a[z++]>>3,ia.mu=0):(ia.epsilon=a[z]>>3,ia.mu=(a[z]&7)<<8|a[z+1],z+=2);u.push(ia)}Ia.SPqcds=u;r.mainHeader?r.QCD=Ia:(r.currentTile.QCD=
+Ia,r.currentTile.QCC=[]);break;case 65373:t=b(a,m);var Ja={};z=m+2;if(257>r.SIZ.Csiz)var hb=a[z++];else hb=b(a,z),z+=2;ua=a[z++];switch(ua&31){case 0:ma=8;va=!0;break;case 1:ma=16;va=!1;break;case 2:ma=16;va=!0;break;default:throw Error("JPX Error: Invalid SQcd value "+ua);}Ja.noQuantization=8===ma;Ja.scalarExpounded=va;Ja.guardBits=ua>>5;for(u=[];z<t+m;)ia={},8===ma?(ia.epsilon=a[z++]>>3,ia.mu=0):(ia.epsilon=a[z]>>3,ia.mu=(a[z]&7)<<8|a[z+1],z+=2),u.push(ia);Ja.SPqcds=u;r.mainHeader?r.QCC[hb]=Ja:
+r.currentTile.QCC[hb]=Ja;break;case 65362:t=b(a,m);var T={};z=m+2;var ib=a[z++];T.entropyCoderWithCustomPrecincts=!!(ib&1);T.sopMarkerUsed=!!(ib&2);T.ephMarkerUsed=!!(ib&4);T.progressionOrder=a[z++];T.layersCount=b(a,z);z+=2;T.multipleComponentTransform=a[z++];T.decompositionLevelsCount=a[z++];T.xcb=(a[z++]&15)+2;T.ycb=(a[z++]&15)+2;var Ka=a[z++];T.selectiveArithmeticCodingBypass=!!(Ka&1);T.resetContextProbabilities=!!(Ka&2);T.terminationOnEachCodingPass=!!(Ka&4);T.verticalyStripe=!!(Ka&8);T.predictableTermination=
+!!(Ka&16);T.segmentationSymbolUsed=!!(Ka&32);T.reversibleTransformation=a[z++];if(T.entropyCoderWithCustomPrecincts){for(var Ib=[];z<t+m;){var Jb=a[z++];Ib.push({PPx:Jb&15,PPy:Jb>>4})}T.precinctsSizes=Ib}var wa=[];T.selectiveArithmeticCodingBypass&&wa.push("selectiveArithmeticCodingBypass");T.resetContextProbabilities&&wa.push("resetContextProbabilities");T.terminationOnEachCodingPass&&wa.push("terminationOnEachCodingPass");T.verticalyStripe&&wa.push("verticalyStripe");T.predictableTermination&&wa.push("predictableTermination");
+if(0<wa.length)throw y=!0,Error("JPX Error: Unsupported COD options ("+wa.join(", ")+")");r.mainHeader?r.COD=T:(r.currentTile.COD=T,r.currentTile.COC=[]);break;case 65424:t=b(a,m);var Y={};Y.index=b(a,m+2);Y.length=d(a,m+4);Y.dataEnd=Y.length+m-2;Y.partIndex=a[m+8];Y.partsCount=a[m+9];r.mainHeader=!1;0===Y.partIndex&&(Y.COD=r.COD,Y.COC=r.COC.slice(0),Y.QCD=r.QCD,Y.QCC=r.QCC.slice(0));r.currentTile=Y;break;case 65427:Y=r.currentTile;if(0===Y.partIndex){for(var na=r,oc=na.SIZ.Csiz,Kb=na.tiles[Y.index],
+xa=0;xa<oc;xa++){var Lb=Kb.components[xa];Lb.quantizationParameters=void 0!==na.currentTile.QCC[xa]?na.currentTile.QCC[xa]:na.currentTile.QCD;Lb.codingStyleParameters=void 0!==na.currentTile.COC[xa]?na.currentTile.COC[xa]:na.currentTile.COD}Kb.codingStyleDefaultParameters=na.currentTile.COD;for(var da=r,ya=da.tiles[da.currentTile.index],pc=da.SIZ.Csiz,jb=0;jb<pc;jb++){for(var U=ya.components[jb],kb=U.codingStyleParameters.decompositionLevelsCount,Mb=[],Na=[],za=0;za<=kb;za++){var $a=za,Aa=U.codingStyleParameters,
+ja={};Aa.entropyCoderWithCustomPrecincts?(ja.PPx=Aa.precinctsSizes[$a].PPx,ja.PPy=Aa.precinctsSizes[$a].PPy):(ja.PPx=15,ja.PPy=15);ja.xcb_=0<$a?Math.min(Aa.xcb,ja.PPx-1):Math.min(Aa.xcb,ja.PPx);ja.ycb_=0<$a?Math.min(Aa.ycb,ja.PPy-1):Math.min(Aa.ycb,ja.PPy);var qa=ja;var V={},ra=1<<kb-za;V.trx0=Math.ceil(U.tcx0/ra);V.try0=Math.ceil(U.tcy0/ra);V.trx1=Math.ceil(U.tcx1/ra);V.try1=Math.ceil(U.tcy1/ra);V.resLevel=za;var lb=1<<qa.PPx,mb=1<<qa.PPy,Nb=0===V.resLevel,Ob=V.trx1>V.trx0?Math.ceil(V.trx1/lb)-Math.floor(V.trx0/
+lb):0,Pb=V.try1>V.try0?Math.ceil(V.try1/mb)-Math.floor(V.try0/mb):0;V.precinctParameters={precinctWidth:lb,precinctHeight:mb,numprecinctswide:Ob,numprecinctshigh:Pb,numprecincts:Ob*Pb,precinctWidthInSubband:1<<qa.PPx+(Nb?0:-1),precinctHeightInSubband:1<<qa.PPy+(Nb?0:-1)};Mb.push(V);if(0===za){var P={type:"LL"};P.tbx0=Math.ceil(U.tcx0/ra);P.tby0=Math.ceil(U.tcy0/ra);P.tbx1=Math.ceil(U.tcx1/ra);P.tby1=Math.ceil(U.tcy1/ra);P.resolution=V;f(da,P,qa);Na.push(P);V.subbands=[P]}else{var ea=1<<kb-za+1,ab=
+[];P={type:"HL"};P.tbx0=Math.ceil(U.tcx0/ea-.5);P.tby0=Math.ceil(U.tcy0/ea);P.tbx1=Math.ceil(U.tcx1/ea-.5);P.tby1=Math.ceil(U.tcy1/ea);P.resolution=V;f(da,P,qa);Na.push(P);ab.push(P);P={type:"LH"};P.tbx0=Math.ceil(U.tcx0/ea);P.tby0=Math.ceil(U.tcy0/ea-.5);P.tbx1=Math.ceil(U.tcx1/ea);P.tby1=Math.ceil(U.tcy1/ea-.5);P.resolution=V;f(da,P,qa);Na.push(P);ab.push(P);P={type:"HH"};P.tbx0=Math.ceil(U.tcx0/ea-.5);P.tby0=Math.ceil(U.tcy0/ea-.5);P.tbx1=Math.ceil(U.tcx1/ea-.5);P.tby1=Math.ceil(U.tcy1/ea-.5);
+P.resolution=V;f(da,P,qa);Na.push(P);ab.push(P);V.subbands=ab}}U.resolutions=Mb;U.subbands=Na}var Qb=ya.codingStyleDefaultParameters.progressionOrder;switch(Qb){case 0:ya.packetsIterator=new g(da);break;case 1:ya.packetsIterator=new e(da);break;case 2:ya.packetsIterator=new l(da);break;case 3:ya.packetsIterator=new p(da);break;case 4:ya.packetsIterator=new q(da);break;default:throw Error("JPX Error: Unsupported progression order "+Qb);}}t=Y.dataEnd-m;v(r,a,m,t);break;case 65365:case 65367:case 65368:case 65380:t=
+b(a,m);break;case 65363:throw Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw Error("JPX Error: Unknown codestream code: "+w.toString(16));}m+=t}}catch(Rb){if(y||this.failOnCorruptedImage)throw Rb;n("Trying to recover from "+Rb.message)}for(var Sb=r.components,La=r.SIZ.Csiz,Tb=[],nb=0,qc=r.tiles.length;nb<qc;nb++){var ob=r.tiles[nb],Ba=[],fa;for(fa=0;fa<La;fa++){for(var rc=Ba,sc=fa,Ca=ob.components[fa],pb=Ca.codingStyleParameters,qb=Ca.quantizationParameters,tc=pb.decompositionLevelsCount,
+bb=qb.SPqcds,uc=qb.scalarExpounded,vc=qb.guardBits,wc=pb.segmentationSymbolUsed,xc=r.components[fa].precision,rb=pb.reversibleTransformation,yc=rb?new Q:new M,Ub=[],sb=0,Oa=0;Oa<=tc;Oa++){for(var Ma=Ca.resolutions[Oa],tb=Ma.trx1-Ma.trx0,Vb=Ma.try1-Ma.try0,Wb=new Float32Array(tb*Vb),ub=0,zc=Ma.subbands.length;ub<zc;ub++){if(uc){var Xb=bb[sb].mu;var vb=bb[sb].epsilon;sb++}else Xb=bb[0].mu,vb=bb[0].epsilon+(0<Oa?1-Oa:0);for(var Yb=Ma.subbands[ub],Ac=G[Yb.type],Bc=Wb,Zb=tb,sa=Yb,Cc=rb?1:Math.pow(2,xc+
+Ac-vb)*(1+Xb/2048),wb=vc+vb-1,$b=rb,Dc=wc,Ec=sa.tbx0,Fc=sa.tby0,cb=sa.tbx1-sa.tbx0,ac=sa.codeblocks,Gc="H"===sa.type.charAt(0)?1:0,Hc="H"===sa.type.charAt(1)?Zb:0,xb=0,Ic=ac.length;xb<Ic;++xb){var ka=ac[xb],db=ka.tbx1_-ka.tbx0_,yb=ka.tby1_-ka.tby0_;if(0!==db&&0!==yb&&void 0!==ka.data){var ta=new E(db,yb,ka.subbandType,ka.zeroBitPlanes,wb);var zb=2;var eb=ka.data,Ab=0,bc=0,fb;var ba=0;for(fb=eb.length;ba<fb;ba++){var Da=eb[ba];Ab+=Da.end-Da.start;bc+=Da.codingpasses}var cc=new Uint8Array(Ab),Ea=0;
+ba=0;for(fb=eb.length;ba<fb;ba++){Da=eb[ba];var dc=Da.data.subarray(Da.start,Da.end);cc.set(dc,Ea);Ea+=dc.length}var Jc=new k(cc,0,Ab);ta.setDecoder(Jc);for(ba=0;ba<bc;ba++){switch(zb){case 0:ta.runSignificancePropogationPass();break;case 1:ta.runMagnitudeRefinementPass();break;case 2:ta.runCleanupPass(),Dc&&ta.checkSegmentationSymbol()}zb=(zb+1)%3}var Pa=ka.tbx0_-Ec+(ka.tby0_-Fc)*cb,Kc=ta.coefficentsSign,Lc=ta.coefficentsMagnitude,Mc=ta.bitsDecoded,Nc=$b?0:.5,Bb;Ea=0;var Oc="LL"!==sa.type;for(ba=
+0;ba<yb;ba++){var Pc=2*(Pa/cb|0)*(Zb-cb)+Gc+Hc;for(Bb=0;Bb<db;Bb++){var Fa=Lc[Ea];if(0!==Fa){Fa=(Fa+Nc)*Cc;0!==Kc[Ea]&&(Fa=-Fa);var ec=Mc[Ea];Bc[Oc?Pc+(Pa<<1):Pa]=$b&&ec>=wb?Fa:Fa*(1<<wb-ec)}Pa++;Ea++}Pa+=cb-db}}}}Ub.push({width:tb,height:Vb,items:Wb})}var Cb=yc.calculate(Ub,Ca.tcx0,Ca.tcy0);rc[sc]={left:Ca.tcx0,top:Ca.tcy0,width:Cb.width,height:Cb.height,items:Cb.items}}var Qa=Ba[0],oa=new Uint8Array(Qa.items.length*La),Qc={left:Qa.left,top:Qa.top,width:Qa.width,height:Qa.height,items:oa},aa=0,X;
+if(ob.codingStyleDefaultParameters.multipleComponentTransform){var fc=4===La,Db=Ba[0].items,gc=Ba[1].items,hc=Ba[2].items,Rc=fc?Ba[3].items:null;var ca=Sb[0].precision-8;var Ra=(128<<ca)+.5;var la=255*(1<<ca);var ic=.5*la;var Eb=-ic;var Sc=ob.components[0],jc=La-3;var Sa=Db.length;if(Sc.codingStyleParameters.reversibleTransformation)for(X=0;X<Sa;X++,aa+=jc){var Ta=Db[X]+Ra;var Ua=gc[X];var Va=hc[X];var pa=Ta-(Va+Ua>>2);var Ga=pa+Va;var Ha=pa+Ua;oa[aa++]=0>=Ga?0:Ga>=la?255:Ga>>ca;oa[aa++]=0>=pa?0:
+pa>=la?255:pa>>ca;oa[aa++]=0>=Ha?0:Ha>=la?255:Ha>>ca}else for(X=0;X<Sa;X++,aa+=jc)Ta=Db[X]+Ra,Ua=gc[X],Va=hc[X],Ga=Ta+1.402*Va,pa=Ta-.34413*Ua-.71414*Va,Ha=Ta+1.772*Ua,oa[aa++]=0>=Ga?0:Ga>=la?255:Ga>>ca,oa[aa++]=0>=pa?0:pa>=la?255:pa>>ca,oa[aa++]=0>=Ha?0:Ha>=la?255:Ha>>ca;if(fc)for(X=0,aa=3;X<Sa;X++,aa+=4){var Fb=Rc[X];oa[aa]=Fb<=Eb?0:Fb>=ic?255:Fb+Ra>>ca}}else for(fa=0;fa<La;fa++){var kc=Ba[fa].items;ca=Sb[fa].precision-8;Ra=(128<<ca)+.5;la=127.5*(1<<ca);Eb=-la;aa=fa;X=0;for(Sa=kc.length;X<Sa;X++){var Gb=
+kc[X];oa[aa]=Gb<=Eb?0:Gb>=la?255:Gb+Ra>>ca;aa+=La}}Tb.push(Qc)}this.tiles=Tb;this.width=r.SIZ.Xsiz-r.SIZ.XOsiz;this.height=r.SIZ.Ysiz-r.SIZ.YOsiz;this.componentsCount=r.SIZ.Csiz}};var x=function(){function b(b,c){var d=a(Math.max(b,c))+1;this.levels=[];for(var f=0;f<d;f++)this.levels.push({width:b,height:c,items:[]}),b=Math.ceil(b/2),c=Math.ceil(c/2)}b.prototype={reset:function(a,b){for(var c=0,d=0,f;c<this.levels.length;){f=this.levels[c];var h=a+b*f.width;if(void 0!==f.items[h]){d=f.items[h];break}f.index=
+h;a>>=1;b>>=1;c++}c--;f=this.levels[c];f.items[f.index]=d;this.currentLevel=c;delete this.value},incrementValue:function(){var a=this.levels[this.currentLevel];a.items[a.index]++},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];a--;if(0>a)return this.value=c,!1;this.currentLevel=a;b=this.levels[a];b.items[b.index]=c;return!0}};return b}(),C=function(){function b(b,c,d){var f=a(Math.max(b,c))+1;this.levels=[];for(var h=0;h<f;h++){for(var k=new Uint8Array(b*c),g=0,e=
+k.length;g<e;g++)k[g]=d;this.levels.push({width:b,height:c,items:k});b=Math.ceil(b/2);c=Math.ceil(c/2)}}b.prototype={reset:function(a,b,c){for(var d=0;d<this.levels.length;){var f=this.levels[d],h=a+b*f.width;f.index=h;f=f.items[h];if(255===f)break;if(f>c)return this.currentLevel=d,this.propagateValues(),!1;a>>=1;b>>=1;d++}this.currentLevel=d-1;return!0},incrementValue:function(a){var b=this.levels[this.currentLevel];b.items[b.index]=a+1;this.propagateValues()},propagateValues:function(){for(var a=
+this.currentLevel,b=this.levels[a],c=b.items[b.index];0<=--a;)b=this.levels[a],b.items[b.index]=c},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];b.items[b.index]=255;a--;if(0>a)return!1;this.currentLevel=a;b=this.levels[a];b.items[b.index]=c;return!0}};return b}(),E=function(){function a(a,f,h,k,g){this.width=a;this.height=f;this.contextLabelTable="HH"===h?d:"HL"===h?c:b;a*=f;this.neighborsSignificance=new Uint8Array(a);this.coefficentsSign=new Uint8Array(a);this.coefficentsMagnitude=
+14<g?new Uint32Array(a):6<g?new Uint16Array(a):new Uint8Array(a);this.processingFlags=new Uint8Array(a);g=new Uint8Array(a);if(0!==k)for(f=0;f<a;f++)g[f]=k;this.bitsDecoded=g;this.reset()}var b=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),c=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,
+0,0,0,2,3,4,0,6,7,7,0,8,8,8]),d=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);a.prototype={setDecoder:function(a){this.decoder=a},reset:function(){this.contexts=new Int8Array(19);this.contexts[0]=8;this.contexts[17]=92;this.contexts[18]=6},setNeighborsSignificance:function(a,b,c){var d=this.neighborsSignificance,f=this.width,h=this.height,k=0<b;b=b+1<f;if(0<a){var g=c-f;k&&(d[g-
+1]+=16);b&&(d[g+1]+=16);d[g]+=4}a+1<h&&(g=c+f,k&&(d[g-1]+=16),b&&(d[g+1]+=16),d[g]+=4);k&&(d[c-1]+=1);b&&(d[c+1]+=1);d[c]|=128},runSignificancePropogationPass:function(){for(var a=this.decoder,b=this.width,c=this.height,d=this.coefficentsMagnitude,f=this.coefficentsSign,h=this.neighborsSignificance,k=this.processingFlags,g=this.contexts,e=this.contextLabelTable,r=this.bitsDecoded,l=0;l<c;l+=4)for(var n=0;n<b;n++)for(var p=l*b+n,q=0;4>q;q++,p+=b){var m=l+q;if(m>=c)break;k[p]&=-2;if(!d[p]&&h[p]){if(a.readBit(g,
+e[h[p]])){var y=this.decodeSignBit(m,n,p);f[p]=y;d[p]=1;this.setNeighborsSignificance(m,n,p);k[p]|=2}r[p]++;k[p]|=1}}},decodeSignBit:function(a,b,c){var d=this.width,f=this.height,h=this.coefficentsMagnitude,k=this.coefficentsSign;var g=0<b&&0!==h[c-1];b+1<d&&0!==h[c+1]?(b=k[c+1],g?(g=k[c-1],b=1-b-g):b=1-b-b):g?(g=k[c-1],b=1-g-g):b=0;var e=3*b;g=0<a&&0!==h[c-d];a+1<f&&0!==h[c+d]?(b=k[c+d],g?(g=k[c-d],b=1-b-g+e):b=1-b-b+e):g?(g=k[c-d],b=1-g-g+e):b=e;return 0<=b?this.decoder.readBit(this.contexts,9+
+b):this.decoder.readBit(this.contexts,9-b)^1},runMagnitudeRefinementPass:function(){for(var a=this.decoder,b=this.width,c=this.coefficentsMagnitude,d=this.neighborsSignificance,f=this.contexts,h=this.bitsDecoded,k=this.processingFlags,g=b*this.height,e=4*b,r=0,l;r<g;r=l){l=Math.min(g,r+e);for(var n=0;n<b;n++)for(var p=r+n;p<l;p+=b)if(c[p]&&0===(k[p]&1)){var q=16;0!==(k[p]&2)&&(k[p]^=2,q=0===(d[p]&127)?15:14);q=a.readBit(f,q);c[p]=c[p]<<1|q;h[p]++;k[p]|=1}}},runCleanupPass:function(){for(var a=this.decoder,
+b=this.width,c=this.height,d=this.neighborsSignificance,f=this.coefficentsMagnitude,h=this.coefficentsSign,k=this.contexts,g=this.contextLabelTable,e=this.bitsDecoded,r=this.processingFlags,l=2*b,n=3*b,p,q=0;q<c;q=p){p=Math.min(q+4,c);for(var m=q*b,y=q+3<c,w=0;w<b;w++){var t=m+w,u=0,G=t,v=q;if(y&&0===r[t]&&0===r[t+b]&&0===r[t+l]&&0===r[t+n]&&0===d[t]&&0===d[t+b]&&0===d[t+l]&&0===d[t+n]){if(!a.readBit(k,18)){e[t]++;e[t+b]++;e[t+l]++;e[t+n]++;continue}u=a.readBit(k,17)<<1|a.readBit(k,17);0!==u&&(v=
+q+u,G+=u*b);var z=this.decodeSignBit(v,w,G);h[G]=z;f[G]=1;this.setNeighborsSignificance(v,w,G);r[G]|=2;G=t;for(t=q;t<=v;t++,G+=b)e[G]++;u++}for(v=q+u;v<p;v++,G+=b)f[G]||0!==(r[G]&1)||(1===a.readBit(k,g[d[G]])&&(z=this.decodeSignBit(v,w,G),h[G]=z,f[G]=1,this.setNeighborsSignificance(v,w,G),r[G]|=2),e[G]++)}}},checkSegmentationSymbol:function(){var a=this.decoder,b=this.contexts;if(10!==(a.readBit(b,17)<<3|a.readBit(b,17)<<2|a.readBit(b,17)<<1|a.readBit(b,17)))throw Error("JPX Error: Invalid segmentation symbol");
+}};return a}(),O=function(){function a(){}a.prototype.calculate=function(a,b,c){for(var d=a[0],f=1,h=a.length;f<h;f++)d=this.iterate(d,a[f],b,c);return d};a.prototype.extend=function(a,b,c){var d=b-1,f=b+1,h=b+c-2;b+=c;a[d--]=a[f++];a[b++]=a[h--];a[d--]=a[f++];a[b++]=a[h--];a[d--]=a[f++];a[b++]=a[h--];a[d]=a[f];a[b]=a[h]};a.prototype.iterate=function(a,b,c,d){var f=a.width,h=a.height,k=a.items,g=b.width,e=b.height;b=b.items;var r,l,n;for(r=n=0;r<h;r++){var p=2*r*g;for(l=0;l<f;l++,n++,p+=2)b[p]=k[n]}a.items=
+null;a=new Float32Array(g+8);if(1===g){if(0!==(c&1))for(n=p=0;p<e;p++,n+=g)b[n]*=.5}else for(n=p=0;p<e;p++,n+=g)a.set(b.subarray(n,n+g),4),this.extend(a,4,g),this.filter(a,4,g),b.set(a.subarray(4,4+g),n);c=16;f=[];for(r=0;r<c;r++)f.push(new Float32Array(e+8));r=0;a=4+e;if(1===e){if(0!==(d&1))for(d=0;d<g;d++)b[d]*=.5}else for(d=0;d<g;d++){if(0===r){c=Math.min(g-d,c);n=d;for(p=4;p<a;n+=g,p++)for(h=0;h<c;h++)f[h][p]=b[n+h];r=c}r--;n=f[r];this.extend(n,4,e);this.filter(n,4,e);if(0===r)for(n=d-c+1,p=4;p<
+a;n+=g,p++)for(h=0;h<c;h++)b[n+h]=f[h][p]}return{width:g,height:e,items:b}};return a}(),M=function(){function a(){O.call(this)}a.prototype=Object.create(O.prototype);a.prototype.filter=function(a,b,c){c>>=1;b|=0;var d;var f=b-3;for(d=c+4;d--;f+=2)a[f]*=.8128930661159609;f=b-2;var h=.443506852043971*a[f-1];for(d=c+3;d--;f+=2){var g=.443506852043971*a[f+1];a[f]=1.230174104914001*a[f]-h-g;if(d--)f+=2,h=.443506852043971*a[f+1],a[f]=1.230174104914001*a[f]-h-g;else break}f=b-1;h=.882911075530934*a[f-1];
+for(d=c+2;d--;f+=2)if(g=.882911075530934*a[f+1],a[f]-=h+g,d--)f+=2,h=.882911075530934*a[f+1],a[f]-=h+g;else break;f=b;h=-.052980118572961*a[f-1];for(d=c+1;d--;f+=2)if(g=-.052980118572961*a[f+1],a[f]-=h+g,d--)f+=2,h=-.052980118572961*a[f+1],a[f]-=h+g;else break;if(0!==c)for(f=b+1,h=-1.586134342059924*a[f-1],d=c;d--;f+=2)if(g=-1.586134342059924*a[f+1],a[f]-=h+g,d--)f+=2,h=-1.586134342059924*a[f+1],a[f]-=h+g;else break};return a}(),Q=function(){function a(){O.call(this)}a.prototype=Object.create(O.prototype);
+a.prototype.filter=function(a,b,c){c>>=1;b|=0;var d;var f=b;for(d=c+1;d--;f+=2)a[f]-=a[f-1]+a[f+1]+2>>2;f=b+1;for(d=c;d--;f+=2)a[f]+=a[f-1]+a[f+1]>>1};return a}();return c}();"use strict";var e=function(){function c(){}function h(a,b,c){this.data=a;this.start=b;this.end=c}function g(a,b,c){function d(a){for(var b=0,d=0;d<a;d++){var g=c.readBit(f,h);h=256>h?h<<1|g:(h<<1|g)&511|256;b=b<<1|g}return b>>>0}var f=a.getContexts(b),h=1;a=d(1);b=d(1)?d(1)?d(1)?d(1)?d(1)?d(32)+4436:d(12)+340:d(8)+84:d(6)+20:
+d(4)+4:d(2);return 0===a?b:0<b?-b:null}function e(a,b,c){a=a.getContexts("IAID");for(var d=1,f=0;f<c;f++){var h=b.readBit(a,d);d=d<<1|h}return 31>c?d&(1<<c)-1:d&2147483647}function n(a,b,c){var d=c.decoder;c=c.contextCache.getContexts("GB");var f,h,g,k=[];for(f=0;f<b;f++){var e=k[f]=new Uint8Array(a);var r=1>f?e:k[f-1];var l=2>f?e:k[f-2];var n=l[0]<<13|l[1]<<12|l[2]<<11|r[0]<<7|r[1]<<6|r[2]<<5|r[3]<<4;for(h=0;h<a;h++)e[h]=g=d.readBit(c,n),n=(n&31735)<<1|(h+3<a?l[h+3]<<11:0)|(h+4<a?r[h+4]<<4:0)|g}return k}
+function p(a,b,c,d,f,h,g,k){a&&l("JBIG2 error: MMR encoding is not supported");if(0===d&&!h&&!f&&4===g.length&&3===g[0].x&&-1===g[0].y&&-3===g[1].x&&-1===g[1].y&&2===g[2].x&&-2===g[2].y&&-2===g[3].x&&-2===g[3].y)return n(b,c,k);a=!!h;var e=x[d].concat(g);e.sort(function(a,b){return a.y-b.y||a.x-b.x});g=e.length;var r=new Int8Array(g),p=new Int8Array(g),q=[],m=0,w=0,y=0,t=0,G,u;for(u=0;u<g;u++)r[u]=e[u].x,p[u]=e[u].y,w=Math.min(w,e[u].x),y=Math.max(y,e[u].x),t=Math.min(t,e[u].y),u<g-1&&e[u].y===e[u+
+1].y&&e[u].x===e[u+1].x-1?m|=1<<g-1-u:q.push(u);var v=q.length,z=new Int8Array(v),A=new Int8Array(v),B=new Uint16Array(v);for(G=0;G<v;G++)u=q[G],z[G]=e[u].x,A[G]=e[u].y,B[G]=1<<g-1-u;e=-w;t=-t;y=b-y;d=E[d];q=new Uint8Array(b);w=[];G=k.decoder;k=k.contextCache.getContexts("GB");for(var D=0,C,L,I,H=0,M,F=0;F<c;F++){if(f&&(u=G.readBit(k,d),D^=u)){w.push(q);continue}q=new Uint8Array(q);w.push(q);for(C=0;C<b;C++)if(a&&h[F][C])q[C]=0;else{if(C>=e&&C<y&&F>=t)for(H=H<<1&m,u=0;u<v;u++){if(L=F+A[u],I=C+z[u],
+L=w[L][I])L=B[u],H|=L}else for(H=0,M=g-1,u=0;u<g;u++,M--)I=C+r[u],0<=I&&I<b&&(L=F+p[u],0<=L&&(L=w[L][I])&&(H|=L<<M));u=G.readBit(k,H);q[C]=u}}return w}function q(a,b,c,d,f,h,g,k,e){var r=C[c].coding;0===c&&(r=r.concat([k[0]]));var n=r.length,p=new Int32Array(n),q=new Int32Array(n),m;for(m=0;m<n;m++)p[m]=r[m].x,q[m]=r[m].y;var w=C[c].reference;0===c&&(w=w.concat([k[1]]));k=w.length;r=new Int32Array(k);var y=new Int32Array(k);for(m=0;m<k;m++)r[m]=w[m].x,y[m]=w[m].y;w=d[0].length;var t=d.length;c=O[c];
+var u=[],G=e.decoder;e=e.contextCache.getContexts("GR");for(var v=0,z=0;z<b;z++){g&&(m=G.readBit(e,c),(v^=m)&&l("JBIG2 error: prediction is not supported"));var x=new Uint8Array(a);u.push(x);for(var A=0;A<a;A++){var B=0;for(m=0;m<n;m++){var D=z+q[m];var L=A+p[m];B=0>D||0>L||L>=a?B<<1:B<<1|u[D][L]}for(m=0;m<k;m++)D=z+y[m]+h,L=A+r[m]+f,B=0>D||D>=t||0>L||L>=w?B<<1:B<<1|d[D][L];m=G.readBit(e,B);x[A]=m}}return u}function m(a,b,c,d,f,h,k,r,n,p,m,w,t,u,G,v,z){a&&l("JBIG2 error: huffman is not supported");
+a=[];for(u=0;u<d;u++){var y=new Uint8Array(c);if(f)for(var x=0;x<c;x++)y[x]=f;a.push(y)}d=z.decoder;f=z.contextCache;x=-g(f,"IADT",d);var A=0;for(u=0;u<h;){var B=g(f,"IADT",d);x+=B;B=g(f,"IAFS",d);B=A+=B;do{var D=1===k?0:g(f,"IAIT",d);y=k*x+D;D=e(f,d,n);var C=b&&g(f,"IARI",d);D=r[D];var L=D[0].length,I=D.length;if(C){C=g(f,"IARDW",d);var H=g(f,"IARDH",d),M=g(f,"IARDX",d),F=g(f,"IARDY",d);L+=C;I+=H;D=q(L,I,G,D,(C>>1)+M,(H>>1)+F,!1,v,z)}C=y-(w&1?0:I);H=B-(w&2?L:0);if(p){for(M=0;M<I;M++)if(y=a[H+M]){var E=
+D[M];var K=Math.min(c-C,L);switch(t){case 0:for(F=0;F<K;F++)y[C+F]|=E[F];break;case 2:for(F=0;F<K;F++)y[C+F]^=E[F];break;default:l("JBIG2 error: operator "+t+" is not supported")}}B+=I-1}else{for(F=0;F<I;F++)if(y=a[C+F])switch(E=D[F],t){case 0:for(M=0;M<L;M++)y[H+M]|=E[M];break;case 2:for(M=0;M<L;M++)y[H+M]^=E[M];break;default:l("JBIG2 error: operator "+t+" is not supported")}B+=L-1}u++;D=g(f,"IADS",d);if(null===D)break;B+=D+m}while(1)}return a}function u(a,b){return{width:d(a,b),height:d(a,b+4),
+x:d(a,b+8),y:d(a,b+12),combinationOperator:a[b+16]&7}}function r(){}function v(){}c.prototype={getContexts:function(a){return a in this?this[a]:this[a]=new Int8Array(65536)}};h.prototype={get decoder(){var a=new k(this.data,this.start,this.end);return f(this,"decoder",a)},get contextCache(){var a=new c;return f(this,"contextCache",a)}};var G=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,
+"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,
+null,null,null,null,null,null,null,"Extension"],x=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,
+y:0},{x:-2,y:0},{x:-1,y:0}]],C=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],E=[39717,1941,229,405],O=[32,8];r.prototype={onPageInformation:function(a){this.currentPageInfo=a;var b=new Uint8Array((a.width+7>>3)*a.height);if(a.defaultPixelValue){a=0;for(var c=b.length;a<c;a++)b[a]=
+255}this.buffer=b},drawBitmap:function(a,b){var c=this.currentPageInfo,d=a.width,f=a.height,h=c.width+7>>3,g=c.combinationOperatorOverride?a.combinationOperator:c.combinationOperator;c=this.buffer;var k=128>>(a.x&7);a=a.y*h+(a.x>>3);var e;switch(g){case 0:for(g=0;g<f;g++){var r=k;var n=a;for(e=0;e<d;e++)b[g][e]&&(c[n]|=r),r>>=1,r||(r=128,n++);a+=h}break;case 2:for(g=0;g<f;g++){r=k;n=a;for(e=0;e<d;e++)b[g][e]&&(c[n]^=r),r>>=1,r||(r=128,n++);a+=h}break;default:l("JBIG2 error: operator "+g+" is not supported")}},
+onImmediateGenericRegion:function(a,b,c,d){var f=a.info;b=new h(b,c,d);a=p(a.mmr,f.width,f.height,a.template,a.prediction,null,a.at,b);this.drawBitmap(f,a)},onImmediateLosslessGenericRegion:function(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function(b,c,d,f,k,r){b.huffman&&l("JBIG2 error: huffman is not supported");var n=this.symbols;n||(this.symbols=n={});for(var w=[],t=0,y=d.length;t<y;t++)w=w.concat(n[d[t]]);r=new h(f,k,r);t=b.huffman;y=b.refinement;d=w;w=b.numberOfNewSymbols;
+var u=b.template,G=b.at,v=b.refinementTemplate,z=b.refinementAt;t&&l("JBIG2 error: huffman is not supported");b=[];var x=0,A=a(d.length+w);f=r.decoder;for(k=r.contextCache;b.length<w;){var B=g(k,"IADH",f);x+=B;for(B=0;;){var D=g(k,"IADW",f);if(null===D)break;B+=D;if(y)if(D=g(k,"IAAI",f),1<D)D=m(t,y,B,x,0,D,1,d.concat(b),A,0,0,1,0,void 0,v,z,r);else{D=e(k,f,A);var C=g(k,"IARDX",f),I=g(k,"IARDY",f);D=q(B,x,v,D<d.length?d[D]:b[D-d.length],C,I,!1,z,r)}else D=p(!1,B,x,u,!1,null,G,r);b.push(D)}}r=[];t=
+[];y=!1;for(u=d.length+w;t.length<u;){for(G=g(k,"IAEX",f);G--;)t.push(y);y=!y}f=0;for(k=d.length;f<k;f++)t[f]&&r.push(d[f]);for(d=0;d<w;f++,d++)t[f]&&r.push(b[d]);n[c]=r},onImmediateTextRegion:function(b,c,d,f,g){for(var k=b.info,e=this.symbols,r=[],l=0,n=c.length;l<n;l++)r=r.concat(e[c[l]]);c=a(r.length);d=new h(d,f,g);b=m(b.huffman,b.refinement,k.width,k.height,b.defaultPixelValue,b.numberOfSymbolInstances,b.stripSize,r,c,b.transposed,b.dsOffset,b.referenceCorner,b.combinationOperator,void 0,b.refinementTemplate,
+b.refinementAt,d);this.drawBitmap(k,b)},onImmediateLosslessTextRegion:function(){this.onImmediateTextRegion.apply(this,arguments)}};v.prototype={parseChunks:function(a){for(var c=new r,f=0,h=a.length;f<h;f++){for(var g=a[f],k={},e=g.data,n=g.end,p=[],q=g.start;q<n;){g=e;var m=q;q={};q.number=d(g,m);var w=g[m+4];var t=w&63;G[t]||l("JBIG2 error: invalid segment type: "+t);q.type=t;q.typeName=G[t];q.deferredNonRetain=!!(w&128);w=!!(w&64);var v=g[m+5],z=v>>5&7;var x=[v&31];m+=6;if(7===v)for(z=d(g,m-1)&
+536870911,m+=3,v=z+7>>3,x[0]=g[m++];0<--v;)x.push(g[m++]);else 5!==v&&6!==v||l("JBIG2 error: invalid referred-to flags");q.retainBits=x;v=256>=q.number?1:65536>=q.number?2:4;var A=[];for(x=0;x<z;x++){var D=1===v?g[m]:2===v?b(g,m):d(g,m);A.push(D);m+=v}q.referredTo=A;w?(q.pageAssociation=d(g,m),m+=4):q.pageAssociation=g[m++];q.length=d(g,m);m+=4;if(4294967295===q.length)if(38===t){w=u(g,m);z=!!(g[m+17]&1);t=new Uint8Array(6);z||(t[0]=255,t[1]=172);t[2]=w.height>>>24&255;t[3]=w.height>>16&255;t[4]=
+w.height>>8&255;t[5]=w.height&255;x=m;for(w=g.length;x<w;x++){for(z=0;6>z&&t[z]===g[x+z];)z++;if(6===z){q.length=x+6;break}}4294967295===q.length&&l("JBIG2 error: segment end was not found")}else l("JBIG2 error: invalid unknown segment length");q.headerEnd=m;g=q;q=g.headerEnd;m={header:g,data:e};k.randomAccess||(m.start=q,q+=g.length,m.end=q);p.push(m);if(51===g.type)break}if(k.randomAccess)for(k=0,e=p.length;k<e;k++)p[k].start=q,q+=p[k].header.length,p[k].end=q;k=c;e=0;for(n=p.length;e<n;e++){z=
+void 0;w=p[e];g=k;q=w.header;m=w.data;t=w.start;w=w.end;switch(q.type){case 0:A={};z=b(m,t);A.huffman=!!(z&1);A.refinement=!!(z&2);A.huffmanDHSelector=z>>2&3;A.huffmanDWSelector=z>>4&3;A.bitmapSizeSelector=z>>6&1;A.aggregationInstancesSelector=z>>7&1;A.bitmapCodingContextUsed=!!(z&256);A.bitmapCodingContextRetained=!!(z&512);A.template=z>>10&3;A.refinementTemplate=z>>12&1;t+=2;if(!A.huffman){v=0===A.template?4:1;x=[];for(z=0;z<v;z++)x.push({x:m[t]<<24>>24,y:m[t+1]<<24>>24}),t+=2;A.at=x}if(A.refinement&&
+!A.refinementTemplate){x=[];for(z=0;2>z;z++)x.push({x:m[t]<<24>>24,y:m[t+1]<<24>>24}),t+=2;A.refinementAt=x}A.numberOfExportedSymbols=d(m,t);t+=4;A.numberOfNewSymbols=d(m,t);z=[A,q.number,q.referredTo,m,t+4,w];break;case 6:case 7:v={};v.info=u(m,t);t+=17;z=b(m,t);t+=2;v.huffman=!!(z&1);v.refinement=!!(z&2);v.stripSize=1<<(z>>2&3);v.referenceCorner=z>>4&3;v.transposed=!!(z&64);v.combinationOperator=z>>7&3;v.defaultPixelValue=z>>9&1;v.dsOffset=z<<17>>27;v.refinementTemplate=z>>15&1;v.huffman&&(z=b(m,
+t),t+=2,v.huffmanFS=z&3,v.huffmanDS=z>>2&3,v.huffmanDT=z>>4&3,v.huffmanRefinementDW=z>>6&3,v.huffmanRefinementDH=z>>8&3,v.huffmanRefinementDX=z>>10&3,v.huffmanRefinementDY=z>>12&3,v.huffmanRefinementSizeSelector=!!(z&14));if(v.refinement&&!v.refinementTemplate){x=[];for(z=0;2>z;z++)x.push({x:m[t]<<24>>24,y:m[t+1]<<24>>24}),t+=2;v.refinementAt=x}v.numberOfSymbolInstances=d(m,t);t+=4;v.huffman&&l("JBIG2 error: huffman is not supported");z=[v,q.referredTo,m,t,w];break;case 38:case 39:A={};A.info=u(m,
+t);t+=17;z=m[t++];A.mmr=!!(z&1);A.template=z>>1&3;A.prediction=!!(z&8);if(!A.mmr){v=0===A.template?4:1;x=[];for(z=0;z<v;z++)x.push({x:m[t]<<24>>24,y:m[t+1]<<24>>24}),t+=2;A.at=x}z=[A,m,t,w];break;case 48:w={width:d(m,t),height:d(m,t+4),resolutionX:d(m,t+8),resolutionY:d(m,t+12)};4294967295===w.height&&delete w.height;z=m[t+16];b(m,t+17);w.lossless=!!(z&1);w.refinement=!!(z&2);w.defaultPixelValue=z>>2&1;w.combinationOperator=z>>3&3;w.requiresBuffer=!!(z&32);w.combinationOperatorOverride=!!(z&64);z=
+[w];break;case 49:break;case 50:break;case 51:break;case 62:break;default:l("JBIG2 error: segment type "+q.typeName+"("+q.type+") is not implemented")}q="on"+q.typeName;q in g&&g[q].apply(g,z)}}return c}};return v}(),l=function(){console.error.apply(console,arguments);throw Error("PDFJS error: "+arguments[0]);},n=function(){console.warn.apply(console,arguments)},m=function(){console.info.apply(console,arguments)};e.prototype.parse=function(a){var b=0,c=a.length;151===a[b]&&74===a[b+1]&&66===a[b+2]&&
+50===a[b+3]&&13===a[b+4]&&10===a[b+5]&&26===a[b+6]&&10===a[b+7]||l("JBIG2 error: invalid header");b+=8;a[b++]&2||(d(a,b),b+=4);a=this.parseChunks([{data:a,start:b,end:c}]);b=a.currentPageInfo.width;c=a.currentPageInfo.height;var f=a.buffer;a=new Uint8Array(b*c);for(var h=0,g=0,k=0;k<c;k++)for(var e=0,n,r=0;r<b;r++)e||(e=128,n=f[g++]),a[h++]=n&e?0:255,e>>=1;this.width=b;this.height=c;this.data=a};c.JpegImage=h;c.JpxImage=g;c.Jbig2Image=e})(f||(f={}));m.exports={JpegImage:e,JpegDecoder:f.JpegImage,
+JpxDecoder:f.JpxImage,Jbig2Decoder:f.Jbig2Image}},function(m,e,l){l.d(e,"a",function(){return g});var g=function c(){if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");};g.RPC_ID="ndstore/VolumeChunkSource"},function(m,e,l){e.a=function(d,e){e=Object(a.a)(Object(b.inflate)(new Uint8Array(e)));var h=d.chunkDataSize,k=d.source,l=k.spec.numChannels,p=e.shape;if(4!==p.length||p[0]!==l||p[1]!==h[2]||p[2]!==h[1]||p[3]!==h[0])throw Error("Shape "+JSON.stringify(p)+" does not match chunkDataSize "+
+Object(c.m)(h));h=e.dataType.dataType;k=k.spec;if(h!==k.dataType)throw Error("Data type "+f.a[h]+" does not match "+("expected data type "+f.a[k.dataType]));Object(g.a)(d,e.data)};var g=l(25),f=l(9),c=l(1),a=l(83),b=l(26);l.n(b)},function(m,e,l){e.a=function(a){if(147!==a[0]||78!==a[1]||85!==a[2]||77!==a[3]||80!==a[4]||89!==a[5])throw Error("Data does not match npy format.");var b=a[6],d=a[7];if(1!==b||0!==d)throw Error("Unsupported npy version "+b+"."+d);b=(new DataView(a.buffer,a.byteOffset,a.byteLength)).getUint16(8,
+!0);d=(new TextDecoder("utf-8")).decode(a.subarray(10,b+10));b+=10;try{var h=Object(f.b)(d)}catch(t){throw Error("Failed to parse npy header: "+t);}var g=h.descr;d=h.shape;var e=1;if(!Array.isArray(d))throw Error("Invalid shape ${JSON.stringify(shape)}");for(var l=$jscomp.makeIterator(d),m=l.next();!m.done;m=l.next()){m=m.value;if("number"!==typeof m)throw Error("Invalid shape ${JSON.stringify(shape)}");e*=m}l=c.get(g);if(void 0===l)throw Error("Unsupported numpy data type "+JSON.stringify(g));g=
+l.arrayConstructor;e*=l.javascriptElementsPerArrayElement;if(g.BYTES_PER_ELEMENT*e+b!==a.byteLength)throw Error("Expected length does not match length of data");a=new g(a.buffer,a.byteOffset+b,e);l.fixEndianness(a);return new q(a,d,l,!0===h.fortran_order)};m=l(10);var g=l(12),f=l(5),c=new Map;c.set("|u1",{arrayConstructor:Uint8Array,fixEndianness:function(){},javascriptElementsPerArrayElement:1,elementBytes:1,dataType:m.b.UINT8});c.set("|i1",{arrayConstructor:Uint8Array,fixEndianness:function(){},
+javascriptElementsPerArrayElement:1,elementBytes:1,dataType:m.b.UINT8});l={};e=$jscomp.makeIterator([["<",g.b.LITTLE],[">",g.b.BIG]]);for(var a=e.next();!a.done;l={endianness:l.endianness},a=e.next()){var b=$jscomp.makeIterator(a.value);a=b.next().value;l.endianness=b.next().value;b=$jscomp.makeIterator(["u","i"]);for(var d=b.next();!d.done;d=b.next())d=d.value,c.set(""+a+d+"2",{arrayConstructor:Uint16Array,elementBytes:2,fixEndianness:function(a){return function(b){Object(g.c)(b,a.endianness)}}(l),
+javascriptElementsPerArrayElement:1,dataType:m.b.UINT16}),c.set(""+a+d+"4",{arrayConstructor:Uint32Array,elementBytes:4,fixEndianness:function(a){return function(b){Object(g.d)(b,a.endianness)}}(l),javascriptElementsPerArrayElement:1,dataType:m.b.UINT32}),c.set(""+a+d+"8",{arrayConstructor:Uint32Array,elementBytes:8,fixEndianness:function(a){return function(b){Object(g.d)(b,a.endianness)}}(l),javascriptElementsPerArrayElement:2,dataType:m.b.UINT64});c.set(a+"f4",{arrayConstructor:Float32Array,elementBytes:4,
+fixEndianness:function(a){return function(b){Object(g.d)(b,a.endianness)}}(l),javascriptElementsPerArrayElement:1,dataType:m.b.FLOAT32})}var q=function k(a,b,c,d){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");this.data=a;this.shape=b;this.dataType=c;this.fortranOrder=d}},function(m,e,l){function g(f){if(!(this instanceof g))return new g(f);f=this.options=a.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},f||{});f.raw&&0<f.windowBits?
+f.windowBits=-f.windowBits:f.gzip&&0<f.windowBits&&16>f.windowBits&&(f.windowBits+=16);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new q;this.strm.avail_out=0;var k=c.deflateInit2(this.strm,f.level,f.method,f.windowBits,f.memLevel,f.strategy);if(0!==k)throw Error(d[k]);f.header&&c.deflateSetHeader(this.strm,f.header);if(f.dictionary){f="string"===typeof f.dictionary?b.string2buf(f.dictionary):"[object ArrayBuffer]"===h.call(f.dictionary)?new Uint8Array(f.dictionary):f.dictionary;
+k=c.deflateSetDictionary(this.strm,f);if(0!==k)throw Error(d[k]);this._dict_set=!0}}function f(a,b){b=new g(b);b.push(a,!0);if(b.err)throw b.msg||d[b.err];return b.result}var c=l(85),a=l(4),b=l(40),d=l(27),q=l(41),h=Object.prototype.toString;g.prototype.push=function(d,f){var g=this.strm,k=this.options.chunkSize;if(this.ended)return!1;f=f===~~f?f:!0===f?4:0;"string"===typeof d?g.input=b.string2buf(d):"[object ArrayBuffer]"===h.call(d)?g.input=new Uint8Array(d):g.input=d;g.next_in=0;g.avail_in=g.input.length;
+do{0===g.avail_out&&(g.output=new a.Buf8(k),g.next_out=0,g.avail_out=k);d=c.deflate(g,f);if(1!==d&&0!==d)return this.onEnd(d),this.ended=!0,!1;if(0===g.avail_out||0===g.avail_in&&(4===f||2===f))if("string"===this.options.to)this.onData(b.buf2binstring(a.shrinkBuf(g.output,g.next_out)));else this.onData(a.shrinkBuf(g.output,g.next_out))}while((0<g.avail_in||0===g.avail_out)&&1!==d);if(4===f)return d=c.deflateEnd(this.strm),this.onEnd(d),this.ended=!0,0===d;2===f&&(this.onEnd(0),g.avail_out=0);return!0};
+g.prototype.onData=function(a){this.chunks.push(a)};g.prototype.onEnd=function(b){0===b&&(this.result="string"===this.options.to?this.chunks.join(""):a.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};e.Deflate=g;e.deflate=f;e.deflateRaw=function(a,b){b=b||{};b.raw=!0;return f(a,b)};e.gzip=function(a,b){b=b||{};b.gzip=!0;return f(a,b)}},function(m,e,l){function g(a,b){a.msg=A[b];return b}function f(a){for(var b=a.length;0<=--b;)a[b]=0}function c(a){var b=a.state,c=b.pending;
+c>a.avail_out&&(c=a.avail_out);0!==c&&(F.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function a(a,b){B._tr_flush_block(a,0<=a.block_start?a.block_start:-1,a.strstart-a.block_start,b);a.block_start=a.strstart;c(a.strm)}function b(a,b){a.pending_buf[a.pending++]=b}function d(a,b){a.pending_buf[a.pending++]=b>>>8&255;a.pending_buf[a.pending++]=b&255}function q(a,b){var c=a.max_chain_length,
+d=a.strstart,f=a.prev_length,h=a.nice_match,g=a.strstart>a.w_size-262?a.strstart-(a.w_size-262):0,e=a.window,k=a.w_mask,r=a.prev,l=a.strstart+258,n=e[d+f-1],m=e[d+f];a.prev_length>=a.good_match&&(c>>=2);h>a.lookahead&&(h=a.lookahead);do{var p=b;if(e[p+f]===m&&e[p+f-1]===n&&e[p]===e[d]&&e[++p]===e[d+1]){d+=2;for(p++;e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&e[++d]===e[++p]&&d<l;);p=258-(l-d);d=l-258;if(p>f){a.match_start=
+b;f=p;if(p>=h)break;n=e[d+f-1];m=e[d+f]}}}while((b=r[b&k])>g&&0!==--c);return f<=a.lookahead?f:a.lookahead}function h(a){var b=a.w_size,c;do{var d=a.window_size-a.lookahead-a.strstart;if(a.strstart>=b+(b-262)){F.arraySet(a.window,a.window,b,b,0);a.match_start-=b;a.strstart-=b;a.block_start-=b;var f=c=a.hash_size;do{var h=a.head[--f];a.head[f]=h>=b?h-b:0}while(--c);f=c=b;do h=a.prev[--f],a.prev[f]=h>=b?h-b:0;while(--c);d+=b}if(0===a.strm.avail_in)break;f=a.strm;c=a.window;h=a.strstart+a.lookahead;
+var g=f.avail_in;g>d&&(g=d);0===g?c=0:(f.avail_in-=g,F.arraySet(c,f.input,f.next_in,g,h),1===f.state.wrap?f.adler=H(f.adler,c,g,h):2===f.state.wrap&&(f.adler=w(f.adler,c,g,h)),f.next_in+=g,f.total_in+=g,c=g);a.lookahead+=c;if(3<=a.lookahead+a.insert)for(d=a.strstart-a.insert,a.ins_h=a.window[d],a.ins_h=(a.ins_h<<a.hash_shift^a.window[d+1])&a.hash_mask;a.insert&&!(a.ins_h=(a.ins_h<<a.hash_shift^a.window[d+3-1])&a.hash_mask,a.prev[d&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=d,d++,a.insert--,3>a.lookahead+
+a.insert););}while(262>a.lookahead&&0!==a.strm.avail_in)}function k(b,c){for(var d;;){if(262>b.lookahead){h(b);if(262>b.lookahead&&0===c)return 1;if(0===b.lookahead)break}d=0;3<=b.lookahead&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+3-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);0!==d&&b.strstart-d<=b.w_size-262&&(b.match_length=q(b,d));if(3<=b.match_length)if(d=B._tr_tally(b,b.strstart-b.match_start,b.match_length-3),b.lookahead-=b.match_length,
+b.match_length<=b.max_lazy_match&&3<=b.lookahead){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+3-1])&b.hash_mask,b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else d=B._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(d&&(a(b,!1),0===b.strm.avail_out))return 1}b.insert=
+2>b.strstart?b.strstart:2;return 4===c?(a(b,!0),0===b.strm.avail_out?3:4):b.last_lit&&(a(b,!1),0===b.strm.avail_out)?1:2}function u(b,c){for(var d,f;;){if(262>b.lookahead){h(b);if(262>b.lookahead&&0===c)return 1;if(0===b.lookahead)break}d=0;3<=b.lookahead&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+3-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);b.prev_length=b.match_length;b.prev_match=b.match_start;b.match_length=2;0!==d&&b.prev_length<b.max_lazy_match&&
+b.strstart-d<=b.w_size-262&&(b.match_length=q(b,d),5>=b.match_length&&(1===b.strategy||3===b.match_length&&4096<b.strstart-b.match_start)&&(b.match_length=2));if(3<=b.prev_length&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-3;d=B._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-3);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+3-1])&b.hash_mask,b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);
+while(0!==--b.prev_length);b.match_available=0;b.match_length=2;b.strstart++;if(d&&(a(b,!1),0===b.strm.avail_out))return 1}else if(b.match_available){if((d=B._tr_tally(b,0,b.window[b.strstart-1]))&&a(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return 1}else b.match_available=1,b.strstart++,b.lookahead--}b.match_available&&(B._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0);b.insert=2>b.strstart?b.strstart:2;return 4===c?(a(b,!0),0===b.strm.avail_out?3:4):b.last_lit&&(a(b,!1),0===
+b.strm.avail_out)?1:2}function p(b,c){for(var d,f,g,e=b.window;;){if(258>=b.lookahead){h(b);if(258>=b.lookahead&&0===c)return 1;if(0===b.lookahead)break}b.match_length=0;if(3<=b.lookahead&&0<b.strstart&&(f=b.strstart-1,d=e[f],d===e[++f]&&d===e[++f]&&d===e[++f])){for(g=b.strstart+258;d===e[++f]&&d===e[++f]&&d===e[++f]&&d===e[++f]&&d===e[++f]&&d===e[++f]&&d===e[++f]&&d===e[++f]&&f<g;);b.match_length=258-(g-f);b.match_length>b.lookahead&&(b.match_length=b.lookahead)}3<=b.match_length?(d=B._tr_tally(b,
+1,b.match_length-3),b.lookahead-=b.match_length,b.strstart+=b.match_length,b.match_length=0):(d=B._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++);if(d&&(a(b,!1),0===b.strm.avail_out))return 1}b.insert=0;return 4===c?(a(b,!0),0===b.strm.avail_out?3:4):b.last_lit&&(a(b,!1),0===b.strm.avail_out)?1:2}function x(b,c){for(var d;;){if(0===b.lookahead&&(h(b),0===b.lookahead)){if(0===c)return 1;break}b.match_length=0;d=B._tr_tally(b,0,b.window[b.strstart]);b.lookahead--;b.strstart++;if(d&&
+(a(b,!1),0===b.strm.avail_out))return 1}b.insert=0;return 4===c?(a(b,!0),0===b.strm.avail_out?3:4):b.last_lit&&(a(b,!1),0===b.strm.avail_out)?1:2}function n(a,b,c,d,f){this.good_length=a;this.max_lazy=b;this.nice_length=c;this.max_chain=d;this.func=f}function v(){this.strm=null;this.status=0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=8;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=
+0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new F.Buf16(1146);this.dyn_dtree=new F.Buf16(122);this.bl_tree=new F.Buf16(78);f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=
+this.l_desc=null;this.bl_count=new F.Buf16(16);this.heap=new F.Buf16(573);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new F.Buf16(573);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function I(a){if(!a||!a.state)return g(a,-2);a.total_in=a.total_out=0;a.data_type=2;var b=a.state;b.pending=0;b.pending_out=0;0>b.wrap&&(b.wrap=-b.wrap);b.status=b.wrap?42:113;a.adler=2===b.wrap?0:1;b.last_flush=
+0;B._tr_init(b);return 0}function t(a){var b=I(a);0===b&&(a=a.state,a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=K[a.level].max_lazy,a.good_match=K[a.level].good_length,a.nice_match=K[a.level].nice_length,a.max_chain_length=K[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0);return b}function N(a,b,c,d,f,h){if(!a)return-2;var e=1;-1===b&&(b=6);0>d?(e=0,d=-d):15<d&&(e=2,d-=16);if(1>f||9<f||8!==c||8>d||15<d||
+0>b||9<b||0>h||4<h)return g(a,-2);8===d&&(d=9);var k=new v;a.state=k;k.strm=a;k.wrap=e;k.gzhead=null;k.w_bits=d;k.w_size=1<<k.w_bits;k.w_mask=k.w_size-1;k.hash_bits=f+7;k.hash_size=1<<k.hash_bits;k.hash_mask=k.hash_size-1;k.hash_shift=~~((k.hash_bits+3-1)/3);k.window=new F.Buf8(2*k.w_size);k.head=new F.Buf16(k.hash_size);k.prev=new F.Buf16(k.w_size);k.lit_bufsize=1<<f+6;k.pending_buf_size=4*k.lit_bufsize;k.pending_buf=new F.Buf8(k.pending_buf_size);k.d_buf=1*k.lit_bufsize;k.l_buf=3*k.lit_bufsize;
+k.level=b;k.strategy=h;k.method=c;return t(a)}var F=l(4),B=l(86),H=l(38),w=l(39),A=l(27);var K=[new n(0,0,0,0,function(b,c){var d=65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){h(b);if(0===b.lookahead&&0===c)return 1;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var f=b.block_start+d;if(0===b.strstart||b.strstart>=f)if(b.lookahead=b.strstart-f,b.strstart=f,a(b,!1),0===b.strm.avail_out)return 1;if(b.strstart-b.block_start>=b.w_size-262&&(a(b,!1),0===
+b.strm.avail_out))return 1}b.insert=0;if(4===c)return a(b,!0),0===b.strm.avail_out?3:4;b.strstart>b.block_start&&a(b,!1);return 1}),new n(4,4,8,4,k),new n(4,5,16,8,k),new n(4,6,32,32,k),new n(4,4,16,16,u),new n(8,16,32,32,u),new n(8,16,128,128,u),new n(8,32,128,256,u),new n(32,128,258,1024,u),new n(32,258,258,4096,u)];e.deflateInit=function(a,b){return N(a,b,8,15,8,0)};e.deflateInit2=N;e.deflateReset=t;e.deflateResetKeep=I;e.deflateSetHeader=function(a,b){if(!a||!a.state||2!==a.state.wrap)return-2;
+a.state.gzhead=b;return 0};e.deflate=function(a,h){if(!a||!a.state||5<h||0>h)return a?g(a,-2):-2;var e=a.state;if(!a.output||!a.input&&0!==a.avail_in||666===e.status&&4!==h)return g(a,0===a.avail_out?-5:-2);e.strm=a;var k=e.last_flush;e.last_flush=h;if(42===e.status)if(2===e.wrap)a.adler=0,b(e,31),b(e,139),b(e,8),e.gzhead?(b(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),b(e,e.gzhead.time&255),b(e,e.gzhead.time>>8&255),b(e,e.gzhead.time>>
+16&255),b(e,e.gzhead.time>>24&255),b(e,9===e.level?2:2<=e.strategy||2>e.level?4:0),b(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(b(e,e.gzhead.extra.length&255),b(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(a.adler=w(a.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69):(b(e,0),b(e,0),b(e,0),b(e,0),b(e,0),b(e,9===e.level?2:2<=e.strategy||2>e.level?4:0),b(e,3),e.status=113);else{var l=8+(e.w_bits-8<<4)<<8;l|=(2<=e.strategy||2>e.level?0:6>e.level?1:6===e.level?2:3)<<6;0!==
+e.strstart&&(l|=32);e.status=113;d(e,l+(31-l%31));0!==e.strstart&&(d(e,a.adler>>>16),d(e,a.adler&65535));a.adler=1}if(69===e.status)if(e.gzhead.extra){for(l=e.pending;e.gzindex<(e.gzhead.extra.length&65535)&&(e.pending!==e.pending_buf_size||(e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l)),c(a),l=e.pending,e.pending!==e.pending_buf_size));)b(e,e.gzhead.extra[e.gzindex]&255),e.gzindex++;e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l));e.gzindex===
+e.gzhead.extra.length&&(e.gzindex=0,e.status=73)}else e.status=73;if(73===e.status)if(e.gzhead.name){l=e.pending;do{if(e.pending===e.pending_buf_size&&(e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l)),c(a),l=e.pending,e.pending===e.pending_buf_size)){var n=1;break}n=e.gzindex<e.gzhead.name.length?e.gzhead.name.charCodeAt(e.gzindex++)&255:0;b(e,n)}while(0!==n);e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l));0===n&&(e.gzindex=0,e.status=91)}else e.status=
+91;if(91===e.status)if(e.gzhead.comment){l=e.pending;do{if(e.pending===e.pending_buf_size&&(e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l)),c(a),l=e.pending,e.pending===e.pending_buf_size)){n=1;break}n=e.gzindex<e.gzhead.comment.length?e.gzhead.comment.charCodeAt(e.gzindex++)&255:0;b(e,n)}while(0!==n);e.gzhead.hcrc&&e.pending>l&&(a.adler=w(a.adler,e.pending_buf,e.pending-l,l));0===n&&(e.status=103)}else e.status=103;103===e.status&&(e.gzhead.hcrc?(e.pending+2>e.pending_buf_size&&
+c(a),e.pending+2<=e.pending_buf_size&&(b(e,a.adler&255),b(e,a.adler>>8&255),a.adler=0,e.status=113)):e.status=113);if(0!==e.pending){if(c(a),0===a.avail_out)return e.last_flush=-1,0}else if(0===a.avail_in&&(h<<1)-(4<h?9:0)<=(k<<1)-(4<k?9:0)&&4!==h)return g(a,-5);if(666===e.status&&0!==a.avail_in)return g(a,-5);if(0!==a.avail_in||0!==e.lookahead||0!==h&&666!==e.status){k=2===e.strategy?x(e,h):3===e.strategy?p(e,h):K[e.level].func(e,h);if(3===k||4===k)e.status=666;if(1===k||3===k)return 0===a.avail_out&&
+(e.last_flush=-1),0;if(2===k&&(1===h?B._tr_align(e):5!==h&&(B._tr_stored_block(e,0,0,!1),3===h&&(f(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),c(a),0===a.avail_out))return e.last_flush=-1,0}if(4!==h)return 0;if(0>=e.wrap)return 1;2===e.wrap?(b(e,a.adler&255),b(e,a.adler>>8&255),b(e,a.adler>>16&255),b(e,a.adler>>24&255),b(e,a.total_in&255),b(e,a.total_in>>8&255),b(e,a.total_in>>16&255),b(e,a.total_in>>24&255)):(d(e,a.adler>>>16),d(e,a.adler&65535));c(a);0<e.wrap&&(e.wrap=-e.wrap);
+return 0!==e.pending?0:1};e.deflateEnd=function(a){if(!a||!a.state)return-2;var b=a.state.status;if(42!==b&&69!==b&&73!==b&&91!==b&&103!==b&&113!==b&&666!==b)return g(a,-2);a.state=null;return 113===b?g(a,-3):0};e.deflateSetDictionary=function(a,b){var c=b.length;if(!a||!a.state)return-2;var d=a.state;var e=d.wrap;if(2===e||1===e&&42!==d.status||d.lookahead)return-2;1===e&&(a.adler=H(a.adler,b,c,0));d.wrap=0;if(c>=d.w_size){0===e&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0);var g=new F.Buf8(d.w_size);
+F.arraySet(g,b,c-d.w_size,d.w_size,0);b=g;c=d.w_size}g=a.avail_in;var k=a.next_in;var l=a.input;a.avail_in=c;a.next_in=0;a.input=b;for(h(d);3<=d.lookahead;){b=d.strstart;c=d.lookahead-2;do d.ins_h=(d.ins_h<<d.hash_shift^d.window[b+3-1])&d.hash_mask,d.prev[b&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=b,b++;while(--c);d.strstart=b;d.lookahead=2;h(d)}d.strstart+=d.lookahead;d.block_start=d.strstart;d.insert=d.lookahead;d.lookahead=0;d.match_length=d.prev_length=2;d.match_available=0;a.next_in=k;a.input=
+l;a.avail_in=g;d.wrap=e;return 0};e.deflateInfo="pako deflate (from Nodeca project)"},function(m,e,l){function g(a){for(var b=a.length;0<=--b;)a[b]=0}function f(a,b,c,d,f){this.static_tree=a;this.extra_bits=b;this.extra_base=c;this.elems=d;this.max_length=f;this.has_stree=a&&a.length}function c(a,b){this.dyn_tree=a;this.max_code=0;this.stat_desc=b}function a(a,b){a.pending_buf[a.pending++]=b&255;a.pending_buf[a.pending++]=b>>>8&255}function b(b,c,d){b.bi_valid>16-d?(b.bi_buf|=c<<b.bi_valid&65535,
+a(b,b.bi_buf),b.bi_buf=c>>16-b.bi_valid,b.bi_valid+=d-16):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function d(a,c,d){b(a,d[2*c],d[2*c+1])}function q(a,b){var c=0;do c|=a&1,a>>>=1,c<<=1;while(0<--b);return c>>>1}function h(a,b,c){var d=Array(16),f=0,e;for(e=1;15>=e;e++)d[e]=f=f+c[e-1]<<1;for(c=0;c<=b;c++)f=a[2*c+1],0!==f&&(a[2*c]=q(d[f]++,f))}function k(a){var b;for(b=0;286>b;b++)a.dyn_ltree[2*b]=0;for(b=0;30>b;b++)a.dyn_dtree[2*b]=0;for(b=0;19>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[512]=1;a.opt_len=
+a.static_len=0;a.last_lit=a.matches=0}function u(b){8<b.bi_valid?a(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function p(a,b,c,d){var f=2*b,e=2*c;return a[f]<a[e]||a[f]===a[e]&&d[b]<=d[c]}function x(a,b,c){for(var d=a.heap[c],f=c<<1;f<=a.heap_len;){f<a.heap_len&&p(b,a.heap[f+1],a.heap[f],a.depth)&&f++;if(p(b,d,a.heap[f],a.depth))break;a.heap[c]=a.heap[f];c=f;f<<=1}a.heap[c]=d}function n(a,c,f){var e=0;if(0!==a.last_lit){do{var h=a.pending_buf[a.d_buf+2*
+e]<<8|a.pending_buf[a.d_buf+2*e+1];var g=a.pending_buf[a.l_buf+e];e++;if(0===h)d(a,g,c);else{var k=D[g];d(a,k+256+1,c);var l=H[k];0!==l&&(g-=C[k],b(a,g,l));h--;k=256>h?G[h]:G[256+(h>>>7)];d(a,k,f);l=w[k];0!==l&&(h-=E[k],b(a,h,l))}}while(e<a.last_lit)}d(a,256,c)}function v(a,b){var c=b.dyn_tree,d=b.stat_desc.static_tree,f=b.stat_desc.has_stree,e=b.stat_desc.elems,g,k=-1;a.heap_len=0;a.heap_max=573;for(g=0;g<e;g++)0!==c[2*g]?(a.heap[++a.heap_len]=k=g,a.depth[g]=0):c[2*g+1]=0;for(;2>a.heap_len;){var l=
+a.heap[++a.heap_len]=2>k?++k:0;c[2*l]=1;a.depth[l]=0;a.opt_len--;f&&(a.static_len-=d[2*l+1])}b.max_code=k;for(g=a.heap_len>>1;1<=g;g--)x(a,c,g);l=e;do g=a.heap[1],a.heap[1]=a.heap[a.heap_len--],x(a,c,1),d=a.heap[1],a.heap[--a.heap_max]=g,a.heap[--a.heap_max]=d,c[2*l]=c[2*g]+c[2*d],a.depth[l]=(a.depth[g]>=a.depth[d]?a.depth[g]:a.depth[d])+1,c[2*g+1]=c[2*d+1]=l,a.heap[1]=l++,x(a,c,1);while(2<=a.heap_len);a.heap[--a.heap_max]=a.heap[1];g=b.dyn_tree;l=b.max_code;d=b.stat_desc.static_tree;f=b.stat_desc.has_stree;
+e=b.stat_desc.extra_bits;var n=b.stat_desc.extra_base,m=b.stat_desc.max_length,p,q=0;for(p=0;15>=p;p++)a.bl_count[p]=0;g[2*a.heap[a.heap_max]+1]=0;for(b=a.heap_max+1;573>b;b++){var w=a.heap[b];p=g[2*g[2*w+1]+1]+1;p>m&&(p=m,q++);g[2*w+1]=p;if(!(w>l)){a.bl_count[p]++;var t=0;w>=n&&(t=e[w-n]);var r=g[2*w];a.opt_len+=r*(p+t);f&&(a.static_len+=r*(d[2*w+1]+t))}}if(0!==q){do{for(p=m-1;0===a.bl_count[p];)p--;a.bl_count[p]--;a.bl_count[p+1]+=2;a.bl_count[m]--;q-=2}while(0<q);for(p=m;0!==p;p--)for(w=a.bl_count[p];0!==
+w;)d=a.heap[--b],d>l||(g[2*d+1]!==p&&(a.opt_len+=(p-g[2*d+1])*g[2*d],g[2*d+1]=p),w--)}h(c,k,a.bl_count)}function I(a,b,c){var d,f=-1,e=b[1],h=0,g=7,k=4;0===e&&(g=138,k=3);b[2*(c+1)+1]=65535;for(d=0;d<=c;d++){var l=e;e=b[2*(d+1)+1];++h<g&&l===e||(h<k?a.bl_tree[2*l]+=h:0!==l?(l!==f&&a.bl_tree[2*l]++,a.bl_tree[32]++):10>=h?a.bl_tree[34]++:a.bl_tree[36]++,h=0,f=l,0===e?(g=138,k=3):l===e?(g=6,k=3):(g=7,k=4))}}function t(a,c,f){var e,h=-1,g=c[1],k=0,l=7,n=4;0===g&&(l=138,n=3);for(e=0;e<=f;e++){var p=g;
+g=c[2*(e+1)+1];if(!(++k<l&&p===g)){if(k<n){do d(a,p,a.bl_tree);while(0!==--k)}else 0!==p?(p!==h&&(d(a,p,a.bl_tree),k--),d(a,16,a.bl_tree),b(a,k-3,2)):10>=k?(d(a,17,a.bl_tree),b(a,k-3,3)):(d(a,18,a.bl_tree),b(a,k-11,7));k=0;h=p;0===g?(l=138,n=3):p===g?(l=6,n=3):(l=7,n=4)}}}function N(a){var b=4093624447,c;for(c=0;31>=c;c++,b>>>=1)if(b&1&&0!==a.dyn_ltree[2*c])return 0;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return 1;for(c=32;256>c;c++)if(0!==a.dyn_ltree[2*c])return 1;return 0}
+function F(c,d,f,e){b(c,0+(e?1:0),3);u(c);a(c,f);a(c,~f);B.arraySet(c.pending_buf,c.window,d,f,c.pending);c.pending+=f}var B=l(4),H=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],w=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],r=Array(576);g(r);var z=Array(60);g(z);var G=Array(512);g(G);var D=Array(256);g(D);var C=Array(29);g(C);var E=Array(30);g(E);var O,M,Q,J=!1;e._tr_init=
+function(a){if(!J){var b,d,e,g=Array(16);for(e=d=0;28>e;e++)for(C[e]=d,b=0;b<1<<H[e];b++)D[d++]=e;D[d-1]=e;for(e=d=0;16>e;e++)for(E[e]=d,b=0;b<1<<w[e];b++)G[d++]=e;for(d>>=7;30>e;e++)for(E[e]=d<<7,b=0;b<1<<w[e]-7;b++)G[256+d++]=e;for(b=0;15>=b;b++)g[b]=0;for(b=0;143>=b;)r[2*b+1]=8,b++,g[8]++;for(;255>=b;)r[2*b+1]=9,b++,g[9]++;for(;279>=b;)r[2*b+1]=7,b++,g[7]++;for(;287>=b;)r[2*b+1]=8,b++,g[8]++;h(r,287,g);for(b=0;30>b;b++)z[2*b+1]=5,z[2*b]=q(b,5);O=new f(r,H,257,286,15);M=new f(z,w,0,30,15);Q=new f([],
+A,0,19,7);J=!0}a.l_desc=new c(a.dyn_ltree,O);a.d_desc=new c(a.dyn_dtree,M);a.bl_desc=new c(a.bl_tree,Q);a.bi_buf=0;a.bi_valid=0;k(a)};e._tr_stored_block=F;e._tr_flush_block=function(a,c,d,f){var e=0;if(0<a.level){2===a.strm.data_type&&(a.strm.data_type=N(a));v(a,a.l_desc);v(a,a.d_desc);I(a,a.dyn_ltree,a.l_desc.max_code);I(a,a.dyn_dtree,a.d_desc.max_code);v(a,a.bl_desc);for(e=18;3<=e&&0===a.bl_tree[2*K[e]+1];e--);a.opt_len+=3*(e+1)+14;var h=a.opt_len+3+7>>>3;var g=a.static_len+3+7>>>3;g<=h&&(h=g)}else h=
+g=d+5;if(d+4<=h&&-1!==c)F(a,c,d,f);else if(4===a.strategy||g===h)b(a,2+(f?1:0),3),n(a,r,z);else{b(a,4+(f?1:0),3);c=a.l_desc.max_code+1;d=a.d_desc.max_code+1;e+=1;b(a,c-257,5);b(a,d-1,5);b(a,e-4,4);for(h=0;h<e;h++)b(a,a.bl_tree[2*K[h]+1],3);t(a,a.dyn_ltree,c-1);t(a,a.dyn_dtree,d-1);n(a,a.dyn_ltree,a.dyn_dtree)}k(a);f&&u(a)};e._tr_tally=function(a,b,c){a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255;a.pending_buf[a.d_buf+2*a.last_lit+1]=b&255;a.pending_buf[a.l_buf+a.last_lit]=c&255;a.last_lit++;0===b?
+a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(D[c]+256+1)]++,a.dyn_dtree[2*(256>b?G[b]:G[256+(b>>>7)])]++);return a.last_lit===a.lit_bufsize-1};e._tr_align=function(c){b(c,2,3);d(c,256,r);16===c.bi_valid?(a(c,c.bi_buf),c.bi_buf=0,c.bi_valid=0):8<=c.bi_valid&&(c.pending_buf[c.pending++]=c.bi_buf&255,c.bi_buf>>=8,c.bi_valid-=8)}},function(m,e,l){function g(b){if(!(this instanceof g))return new g(b);var f=this.options=a.assign({chunkSize:16384,windowBits:0,to:""},b||{});f.raw&&0<=f.windowBits&&
+16>f.windowBits&&(f.windowBits=-f.windowBits,0===f.windowBits&&(f.windowBits=-15));!(0<=f.windowBits&&16>f.windowBits)||b&&b.windowBits||(f.windowBits+=32);15<f.windowBits&&48>f.windowBits&&0===(f.windowBits&15)&&(f.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new h;this.strm.avail_out=0;b=c.inflateInit2(this.strm,f.windowBits);if(b!==d.Z_OK)throw Error(q[b]);this.header=new k;c.inflateGetHeader(this.strm,this.header)}function f(a,b){b=new g(b);b.push(a,!0);if(b.err)throw b.msg||
+q[b.err];return b.result}var c=l(88),a=l(4),b=l(40),d=l(42),q=l(27),h=l(41),k=l(91),u=Object.prototype.toString;g.prototype.push=function(f,e){var h=this.strm,g=this.options.chunkSize,k=this.options.dictionary,l=!1;if(this.ended)return!1;e=e===~~e?e:!0===e?d.Z_FINISH:d.Z_NO_FLUSH;"string"===typeof f?h.input=b.binstring2buf(f):"[object ArrayBuffer]"===u.call(f)?h.input=new Uint8Array(f):h.input=f;h.next_in=0;h.avail_in=h.input.length;do{0===h.avail_out&&(h.output=new a.Buf8(g),h.next_out=0,h.avail_out=
+g);f=c.inflate(h,d.Z_NO_FLUSH);f===d.Z_NEED_DICT&&k&&(f="string"===typeof k?b.string2buf(k):"[object ArrayBuffer]"===u.call(k)?new Uint8Array(k):k,f=c.inflateSetDictionary(this.strm,f));f===d.Z_BUF_ERROR&&!0===l&&(f=d.Z_OK,l=!1);if(f!==d.Z_STREAM_END&&f!==d.Z_OK)return this.onEnd(f),this.ended=!0,!1;if(h.next_out&&(0===h.avail_out||f===d.Z_STREAM_END||0===h.avail_in&&(e===d.Z_FINISH||e===d.Z_SYNC_FLUSH)))if("string"===this.options.to){var m=b.utf8border(h.output,h.next_out);var p=h.next_out-m;var q=
+b.buf2string(h.output,m);h.next_out=p;h.avail_out=g-p;p&&a.arraySet(h.output,h.output,m,p,0);this.onData(q)}else this.onData(a.shrinkBuf(h.output,h.next_out));0===h.avail_in&&0===h.avail_out&&(l=!0)}while((0<h.avail_in||0===h.avail_out)&&f!==d.Z_STREAM_END);f===d.Z_STREAM_END&&(e=d.Z_FINISH);if(e===d.Z_FINISH)return f=c.inflateEnd(this.strm),this.onEnd(f),this.ended=!0,f===d.Z_OK;e===d.Z_SYNC_FLUSH&&(this.onEnd(d.Z_OK),h.avail_out=0);return!0};g.prototype.onData=function(a){this.chunks.push(a)};g.prototype.onEnd=
+function(b){b===d.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):a.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};e.Inflate=g;e.inflate=f;e.inflateRaw=function(a,b){b=b||{};b.raw=!0;return f(a,b)};e.ungzip=f},function(m,e,l){function g(a){return(a>>>24&255)+(a>>>8&65280)+((a&65280)<<8)+((a&255)<<24)}function f(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=
+this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new h.Buf16(320);this.work=new h.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function c(a){if(!a||!a.state)return-2;var b=a.state;a.total_in=a.total_out=b.total=0;a.msg="";b.wrap&&(a.adler=b.wrap&1);b.mode=1;b.last=0;b.havedict=0;b.dmax=32768;b.head=
+null;b.hold=0;b.bits=0;b.lencode=b.lendyn=new h.Buf32(852);b.distcode=b.distdyn=new h.Buf32(592);b.sane=1;b.back=-1;return 0}function a(a){if(!a||!a.state)return-2;var b=a.state;b.wsize=0;b.whave=0;b.wnext=0;return c(a)}function b(b,c){if(!b||!b.state)return-2;var d=b.state;if(0>c){var f=0;c=-c}else f=(c>>4)+1,48>c&&(c&=15);if(c&&(8>c||15<c))return-2;null!==d.window&&d.wbits!==c&&(d.window=null);d.wrap=f;d.wbits=c;return a(b)}function d(a,c){if(!a)return-2;var d=new f;a.state=d;d.window=null;c=b(a,
+c);0!==c&&(a.state=null);return c}function q(a,b,c,d){var f=a.state;null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new h.Buf8(f.wsize));d>=f.wsize?(h.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(a=f.wsize-f.wnext,a>d&&(a=d),h.arraySet(f.window,b,c-d,a,f.wnext),(d-=a)?(h.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=a,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=a)));return 0}var h=l(4),k=l(38),u=l(39),p=l(89),x=l(90),n=!0,
+v,I;e.inflateReset=a;e.inflateReset2=b;e.inflateResetKeep=c;e.inflateInit=function(a){return d(a,15)};e.inflateInit2=d;e.inflate=function(a,b){var c,d=new h.Buf8(4),f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return-2;var e=a.state;12===e.mode&&(e.mode=13);var l=a.next_out;var m=a.output;var r=a.avail_out;var t=a.next_in;var G=a.input;var D=a.avail_in;var C=e.hold;var E=e.bits;var N=D;var M=r;var Q=0;a:for(;;)switch(e.mode){case 1:if(0===
+e.wrap){e.mode=13;break}for(;16>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(e.wrap&2&&35615===C){e.check=0;d[0]=C&255;d[1]=C>>>8&255;e.check=u(e.check,d,2,0);E=C=0;e.mode=2;break}e.flags=0;e.head&&(e.head.done=!1);if(!(e.wrap&1)||(((C&255)<<8)+(C>>8))%31){a.msg="incorrect header check";e.mode=30;break}if(8!==(C&15)){a.msg="unknown compression method";e.mode=30;break}C>>>=4;E-=4;var J=(C&15)+8;if(0===e.wbits)e.wbits=J;else if(J>e.wbits){a.msg="invalid window size";e.mode=30;break}e.dmax=1<<J;a.adler=
+e.check=1;e.mode=C&512?10:12;E=C=0;break;case 2:for(;16>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.flags=C;if(8!==(e.flags&255)){a.msg="unknown compression method";e.mode=30;break}if(e.flags&57344){a.msg="unknown header flags set";e.mode=30;break}e.head&&(e.head.text=C>>8&1);e.flags&512&&(d[0]=C&255,d[1]=C>>>8&255,e.check=u(e.check,d,2,0));E=C=0;e.mode=3;case 3:for(;32>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.head&&(e.head.time=C);e.flags&512&&(d[0]=C&255,d[1]=C>>>8&255,d[2]=C>>>16&255,d[3]=
+C>>>24&255,e.check=u(e.check,d,4,0));E=C=0;e.mode=4;case 4:for(;16>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.head&&(e.head.xflags=C&255,e.head.os=C>>8);e.flags&512&&(d[0]=C&255,d[1]=C>>>8&255,e.check=u(e.check,d,2,0));E=C=0;e.mode=5;case 5:if(e.flags&1024){for(;16>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.length=C;e.head&&(e.head.extra_len=C);e.flags&512&&(d[0]=C&255,d[1]=C>>>8&255,e.check=u(e.check,d,2,0));E=C=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(e.flags&1024){var y=e.length;
+y>D&&(y=D);y&&(e.head&&(J=e.head.extra_len-e.length,e.head.extra||(e.head.extra=Array(e.head.extra_len)),h.arraySet(e.head.extra,G,t,y,J)),e.flags&512&&(e.check=u(e.check,G,y,t)),D-=y,t+=y,e.length-=y);if(e.length)break a}e.length=0;e.mode=7;case 7:if(e.flags&2048){if(0===D)break a;y=0;do J=G[t+y++],e.head&&J&&65536>e.length&&(e.head.name+=String.fromCharCode(J));while(J&&y<D);e.flags&512&&(e.check=u(e.check,G,y,t));D-=y;t+=y;if(J)break a}else e.head&&(e.head.name=null);e.length=0;e.mode=8;case 8:if(e.flags&
+4096){if(0===D)break a;y=0;do J=G[t+y++],e.head&&J&&65536>e.length&&(e.head.comment+=String.fromCharCode(J));while(J&&y<D);e.flags&512&&(e.check=u(e.check,G,y,t));D-=y;t+=y;if(J)break a}else e.head&&(e.head.comment=null);e.mode=9;case 9:if(e.flags&512){for(;16>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(C!==(e.check&65535)){a.msg="header crc mismatch";e.mode=30;break}E=C=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0);a.adler=e.check=0;e.mode=12;break;case 10:for(;32>E;){if(0===D)break a;D--;
+C+=G[t++]<<E;E+=8}a.adler=e.check=g(C);E=C=0;e.mode=11;case 11:if(0===e.havedict)return a.next_out=l,a.avail_out=r,a.next_in=t,a.avail_in=D,e.hold=C,e.bits=E,2;a.adler=e.check=1;e.mode=12;case 12:if(5===b||6===b)break a;case 13:if(e.last){C>>>=E&7;E-=E&7;e.mode=27;break}for(;3>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.last=C&1;C>>>=1;--E;switch(C&3){case 0:e.mode=14;break;case 1:J=e;if(n){v=new h.Buf32(512);I=new h.Buf32(32);for(y=0;144>y;)J.lens[y++]=8;for(;256>y;)J.lens[y++]=9;for(;280>y;)J.lens[y++]=
+7;for(;288>y;)J.lens[y++]=8;x(1,J.lens,0,288,v,0,J.work,{bits:9});for(y=0;32>y;)J.lens[y++]=5;x(2,J.lens,0,32,I,0,J.work,{bits:5});n=!1}J.lencode=v;J.lenbits=9;J.distcode=I;J.distbits=5;e.mode=20;if(6===b){C>>>=2;E-=2;break a}break;case 2:e.mode=17;break;case 3:a.msg="invalid block type",e.mode=30}C>>>=2;E-=2;break;case 14:C>>>=E&7;for(E-=E&7;32>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if((C&65535)!==(C>>>16^65535)){a.msg="invalid stored block lengths";e.mode=30;break}e.length=C&65535;E=C=0;e.mode=
+15;if(6===b)break a;case 15:e.mode=16;case 16:if(y=e.length){y>D&&(y=D);y>r&&(y=r);if(0===y)break a;h.arraySet(m,G,t,y,l);D-=y;t+=y;r-=y;l+=y;e.length-=y;break}e.mode=12;break;case 17:for(;14>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.nlen=(C&31)+257;C>>>=5;E-=5;e.ndist=(C&31)+1;C>>>=5;E-=5;e.ncode=(C&15)+4;C>>>=4;E-=4;if(286<e.nlen||30<e.ndist){a.msg="too many length or distance symbols";e.mode=30;break}e.have=0;e.mode=18;case 18:for(;e.have<e.ncode;){for(;3>E;){if(0===D)break a;D--;C+=G[t++]<<
+E;E+=8}e.lens[f[e.have++]]=C&7;C>>>=3;E-=3}for(;19>e.have;)e.lens[f[e.have++]]=0;e.lencode=e.lendyn;e.lenbits=7;y={bits:e.lenbits};Q=x(0,e.lens,0,19,e.lencode,0,e.work,y);e.lenbits=y.bits;if(Q){a.msg="invalid code lengths set";e.mode=30;break}e.have=0;e.mode=19;case 19:for(;e.have<e.nlen+e.ndist;){for(;;){var L=e.lencode[C&(1<<e.lenbits)-1];y=L>>>24;L&=65535;if(y<=E)break;if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(16>L)C>>>=y,E-=y,e.lens[e.have++]=L;else{if(16===L){for(J=y+2;E<J;){if(0===D)break a;
+D--;C+=G[t++]<<E;E+=8}C>>>=y;E-=y;if(0===e.have){a.msg="invalid bit length repeat";e.mode=30;break}J=e.lens[e.have-1];y=3+(C&3);C>>>=2;E-=2}else if(17===L){for(J=y+3;E<J;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}C>>>=y;E-=y;J=0;y=3+(C&7);C>>>=3;E-=3}else{for(J=y+7;E<J;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}C>>>=y;E-=y;J=0;y=11+(C&127);C>>>=7;E-=7}if(e.have+y>e.nlen+e.ndist){a.msg="invalid bit length repeat";e.mode=30;break}for(;y--;)e.lens[e.have++]=J}}if(30===e.mode)break;if(0===e.lens[256]){a.msg=
+"invalid code -- missing end-of-block";e.mode=30;break}e.lenbits=9;y={bits:e.lenbits};Q=x(1,e.lens,0,e.nlen,e.lencode,0,e.work,y);e.lenbits=y.bits;if(Q){a.msg="invalid literal/lengths set";e.mode=30;break}e.distbits=6;e.distcode=e.distdyn;y={bits:e.distbits};Q=x(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,y);e.distbits=y.bits;if(Q){a.msg="invalid distances set";e.mode=30;break}e.mode=20;if(6===b)break a;case 20:e.mode=21;case 21:if(6<=D&&258<=r){a.next_out=l;a.avail_out=r;a.next_in=t;a.avail_in=D;
+e.hold=C;e.bits=E;p(a,M);l=a.next_out;m=a.output;r=a.avail_out;t=a.next_in;G=a.input;D=a.avail_in;C=e.hold;E=e.bits;12===e.mode&&(e.back=-1);break}for(e.back=0;;){L=e.lencode[C&(1<<e.lenbits)-1];y=L>>>24;J=L>>>16&255;L&=65535;if(y<=E)break;if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(J&&0===(J&240)){var R=y;var W=J;for(c=L;;){L=e.lencode[c+((C&(1<<R+W)-1)>>R)];y=L>>>24;J=L>>>16&255;L&=65535;if(R+y<=E)break;if(0===D)break a;D--;C+=G[t++]<<E;E+=8}C>>>=R;E-=R;e.back+=R}C>>>=y;E-=y;e.back+=y;e.length=L;
+if(0===J){e.mode=26;break}if(J&32){e.back=-1;e.mode=12;break}if(J&64){a.msg="invalid literal/length code";e.mode=30;break}e.extra=J&15;e.mode=22;case 22:if(e.extra){for(J=e.extra;E<J;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.length+=C&(1<<e.extra)-1;C>>>=e.extra;E-=e.extra;e.back+=e.extra}e.was=e.length;e.mode=23;case 23:for(;;){L=e.distcode[C&(1<<e.distbits)-1];y=L>>>24;J=L>>>16&255;L&=65535;if(y<=E)break;if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(0===(J&240)){R=y;W=J;for(c=L;;){L=e.distcode[c+((C&
+(1<<R+W)-1)>>R)];y=L>>>24;J=L>>>16&255;L&=65535;if(R+y<=E)break;if(0===D)break a;D--;C+=G[t++]<<E;E+=8}C>>>=R;E-=R;e.back+=R}C>>>=y;E-=y;e.back+=y;if(J&64){a.msg="invalid distance code";e.mode=30;break}e.offset=L;e.extra=J&15;e.mode=24;case 24:if(e.extra){for(J=e.extra;E<J;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}e.offset+=C&(1<<e.extra)-1;C>>>=e.extra;E-=e.extra;e.back+=e.extra}if(e.offset>e.dmax){a.msg="invalid distance too far back";e.mode=30;break}e.mode=25;case 25:if(0===r)break a;y=M-r;if(e.offset>
+y){y=e.offset-y;if(y>e.whave&&e.sane){a.msg="invalid distance too far back";e.mode=30;break}y>e.wnext?(y-=e.wnext,J=e.wsize-y):J=e.wnext-y;y>e.length&&(y=e.length);R=e.window}else R=m,J=l-e.offset,y=e.length;y>r&&(y=r);r-=y;e.length-=y;do m[l++]=R[J++];while(--y);0===e.length&&(e.mode=21);break;case 26:if(0===r)break a;m[l++]=e.length;r--;e.mode=21;break;case 27:if(e.wrap){for(;32>E;){if(0===D)break a;D--;C|=G[t++]<<E;E+=8}M-=r;a.total_out+=M;e.total+=M;M&&(a.adler=e.check=e.flags?u(e.check,m,M,l-
+M):k(e.check,m,M,l-M));M=r;if((e.flags?C:g(C))!==e.check){a.msg="incorrect data check";e.mode=30;break}E=C=0}e.mode=28;case 28:if(e.wrap&&e.flags){for(;32>E;){if(0===D)break a;D--;C+=G[t++]<<E;E+=8}if(C!==(e.total&4294967295)){a.msg="incorrect length check";e.mode=30;break}E=C=0}e.mode=29;case 29:Q=1;break a;case 30:Q=-3;break a;case 31:return-4;default:return-2}a.next_out=l;a.avail_out=r;a.next_in=t;a.avail_in=D;e.hold=C;e.bits=E;if((e.wsize||M!==a.avail_out&&30>e.mode&&(27>e.mode||4!==b))&&q(a,
+a.output,a.next_out,M-a.avail_out))return e.mode=31,-4;N-=a.avail_in;M-=a.avail_out;a.total_in+=N;a.total_out+=M;e.total+=M;e.wrap&&M&&(a.adler=e.check=e.flags?u(e.check,m,M,a.next_out-M):k(e.check,m,M,a.next_out-M));a.data_type=e.bits+(e.last?64:0)+(12===e.mode?128:0)+(20===e.mode||15===e.mode?256:0);(0===N&&0===M||4===b)&&0===Q&&(Q=-5);return Q};e.inflateEnd=function(a){if(!a||!a.state)return-2;var b=a.state;b.window&&(b.window=null);a.state=null;return 0};e.inflateGetHeader=function(a,b){if(!a||
+!a.state)return-2;a=a.state;if(0===(a.wrap&2))return-2;a.head=b;b.done=!1;return 0};e.inflateSetDictionary=function(a,b){var c=b.length;if(!a||!a.state)return-2;var d=a.state;if(0!==d.wrap&&11!==d.mode)return-2;if(11===d.mode){var e=k(1,b,c,0);if(e!==d.check)return-3}if(q(a,b,c,c))return d.mode=31,-4;d.havedict=1;return 0};e.inflateInfo="pako inflate (from Nodeca project)"},function(m,e,l){m.exports=function(e,f){var c=e.state;var a=e.next_in;var b=e.input;var d=a+(e.avail_in-5);var g=e.next_out;
+var h=e.output;f=g-(f-e.avail_out);var k=g+(e.avail_out-257);var l=c.dmax;var m=c.wsize;var x=c.whave;var n=c.wnext;var v=c.window;var I=c.hold;var t=c.bits;var N=c.lencode;var F=c.distcode;var B=(1<<c.lenbits)-1;var H=(1<<c.distbits)-1;a:do{15>t&&(I+=b[a++]<<t,t+=8,I+=b[a++]<<t,t+=8);var w=N[I&B];b:for(;;){var A=w>>>24;I>>>=A;t-=A;A=w>>>16&255;if(0===A)h[g++]=w&65535;else if(A&16){var K=w&65535;if(A&=15)t<A&&(I+=b[a++]<<t,t+=8),K+=I&(1<<A)-1,I>>>=A,t-=A;15>t&&(I+=b[a++]<<t,t+=8,I+=b[a++]<<t,t+=8);
+w=F[I&H];c:for(;;){A=w>>>24;I>>>=A;t-=A;A=w>>>16&255;if(A&16){w&=65535;A&=15;t<A&&(I+=b[a++]<<t,t+=8,t<A&&(I+=b[a++]<<t,t+=8));w+=I&(1<<A)-1;if(w>l){e.msg="invalid distance too far back";c.mode=30;break a}I>>>=A;t-=A;A=g-f;if(w>A){A=w-A;if(A>x&&c.sane){e.msg="invalid distance too far back";c.mode=30;break a}var r=0;var z=v;if(0===n){if(r+=m-A,A<K){K-=A;do h[g++]=v[r++];while(--A);r=g-w;z=h}}else if(n<A){if(r+=m+n-A,A-=n,A<K){K-=A;do h[g++]=v[r++];while(--A);r=0;if(n<K){A=n;K-=A;do h[g++]=v[r++];while(--A);
+r=g-w;z=h}}}else if(r+=n-A,A<K){K-=A;do h[g++]=v[r++];while(--A);r=g-w;z=h}for(;2<K;)h[g++]=z[r++],h[g++]=z[r++],h[g++]=z[r++],K-=3;K&&(h[g++]=z[r++],1<K&&(h[g++]=z[r++]))}else{r=g-w;do h[g++]=h[r++],h[g++]=h[r++],h[g++]=h[r++],K-=3;while(2<K);K&&(h[g++]=h[r++],1<K&&(h[g++]=h[r++]))}}else if(0===(A&64)){w=F[(w&65535)+(I&(1<<A)-1)];continue c}else{e.msg="invalid distance code";c.mode=30;break a}break}}else if(0===(A&64)){w=N[(w&65535)+(I&(1<<A)-1)];continue b}else{A&32?c.mode=12:(e.msg="invalid literal/length code",
+c.mode=30);break a}break}}while(a<d&&g<k);K=t>>3;a-=K;t-=K<<3;e.next_in=a;e.next_out=g;e.avail_in=a<d?5+(d-a):5-(a-d);e.avail_out=g<k?257+(k-g):257-(g-k);c.hold=I&(1<<t)-1;c.bits=t}},function(m,e,l){var g=l(4),f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],c=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,
+16385,24577,0,0],b=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];m.exports=function(d,e,h,k,l,m,x,n){var p=n.bits,q,t,u,F,B,H,w=0,A=new g.Buf16(16);var K=new g.Buf16(16);var r,z=0;for(q=0;15>=q;q++)A[q]=0;for(t=0;t<k;t++)A[e[h+t]]++;var G=p;for(u=15;1<=u&&0===A[u];u--);G>u&&(G=u);if(0===u)return l[m++]=20971520,l[m++]=20971520,n.bits=1,0;for(p=1;p<u&&0===A[p];p++);G<p&&(G=p);for(q=F=1;15>=q;q++)if(F<<=1,F-=A[q],0>F)return-1;if(0<F&&(0===d||1!==u))return-1;
+K[1]=0;for(q=1;15>q;q++)K[q+1]=K[q]+A[q];for(t=0;t<k;t++)0!==e[h+t]&&(x[K[e[h+t]]++]=t);if(0===d){var D=r=x;var C=19}else 1===d?(D=f,w-=257,r=c,z-=257,C=256):(D=a,r=b,C=-1);t=B=0;q=p;var E=m;k=G;K=0;var O=-1;var M=1<<G;var Q=M-1;if(1===d&&852<M||2===d&&592<M)return 1;for(;;){var J=q-K;if(x[t]<C){var y=0;var L=x[t]}else x[t]>C?(y=r[z+x[t]],L=D[w+x[t]]):(y=96,L=0);F=1<<q-K;p=H=1<<k;do H-=F,l[E+(B>>K)+H]=J<<24|y<<16|L|0;while(0!==H);for(F=1<<q-1;B&F;)F>>=1;0!==F?(B&=F-1,B+=F):B=0;t++;if(0===--A[q]){if(q===
+u)break;q=e[h+x[t]]}if(q>G&&(B&Q)!==O){0===K&&(K=G);E+=p;k=q-K;for(F=1<<k;k+K<u;){F-=A[k+K];if(0>=F)break;k++;F<<=1}M+=1<<k;if(1===d&&852<M||2===d&&592<M)return 1;O=B&Q;l[O]=G<<24|k<<16|E-m|0}}0!==B&&(l[E+B]=q-K<<24|4194304);n.bits=G;return 0}},function(m,e,l){m.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(e,
+"__esModule",{value:!0});l.d(e,"DVIDVolumeChunkSource",function(){return p});l.d(e,"TileChunkSource",function(){return x});m=l(2);var a=l(93),b=l(24),d=l(16);e=l(13);var q=l(11);l=l(0);var h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),k=this&&this.__decorate||function(a,b,c,d){var e=arguments.length,f=
+3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(h=a[g])f=(3>e?h(f):3<e?h(b,c,f):h(b,c))||f;return 3<e&&f&&Object.defineProperty(b,c,f),f},u=new Map([[a.b.JPEG,d.a]]),p=function(e){function k(){g(this,k);return f(this,(k.__proto__||Object.getPrototypeOf(k)).apply(this,arguments))}c(k,e);h(k,[{key:"download",value:function(a,b){var c=this.parameters;var d=this.computeChunkBounds(a);
+d=this.getPath(d,a.chunkDataSize);var e=this.getDecoder(c);return Object(q.e)(Object(q.c)(c.baseUrls,d),"arraybuffer",b).then(function(b){return e(a,b)})}},{key:"getPath",value:function(b,c){var d=this.parameters;return d.encoding===a.c.JPEG?"/api/node/"+d.nodeKey+"/"+d.dataInstanceKey+"/raw/0_1_2/"+(c[0]+"_"+c[1]+"_"+c[2]+"/")+(b[0]+"_"+b[1]+"_"+b[2]+"/jpeg"):"/api/node/"+d.nodeKey+"/"+d.dataInstanceKey+"/raw/0_1_2/"+(c[0]+"_"+c[1]+"_"+c[2]+"/")+(b[0]+"_"+b[1]+"_"+b[2]+"?compression=googlegzip")}},
+{key:"getDecoder",value:function(c){return c.encoding===a.c.JPEG?d.a:b.a}}]);return k}(Object(m.WithParameters)(e.a,a.d));p=k([Object(l.g)()],p);var x=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.chunkDecoder=u.get(a.parameters.encoding);return a}c(b,a);h(b,[{key:"download",value:function(a,b){var c=this,d=this.parameters,e=a.chunkGridPosition;a.chunkDataSize=this.spec.chunkDataSize;return Object(q.e)(Object(q.c)(d.baseUrls,"/api/node/"+
+d.nodeKey+"/"+d.dataInstanceKey+"/tile/"+(d.dims+"/"+d.level+"/")+(e[0]+"_"+e[1]+"_"+e[2])),"arraybuffer",b).then(function(b){return c.chunkDecoder(a,b)})}}]);return b}(Object(m.WithParameters)(e.a,a.a));x=k([Object(l.g)()],x)},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"c",function(){return a});l.d(e,"d",function(){return b});l.d(e,"b",function(){return d});l.d(e,"a",function(){return q});var a;(function(a){a[a.JPEG=0]="JPEG";a[a.COMPRESSED_SEGMENTATION=1]="COMPRESSED_SEGMENTATION"})(a||
+(a={}));m=function k(){c(this,k)};var b=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);return b}(m);b.RPC_ID="dvid/VolumeChunkSource";var d;(function(a){a[a.JPEG=0]="JPEG"})(d||(d={}));var q=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);return b}(m);q.RPC_ID="dvid/TileChunkSource"},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a){var b=
+[];Object(I.a)(a,function(a){Object(I.e)(a);b.push(Object(I.g)(a.sectionId))});return b}function b(a,b,c){return Object(v.d)(Object(v.c)(b.baseUrls,"/render-ws/v1/owner/"+b.owner+"/project/"+b.project+"/"+("stack/"+b.stack+"/local-to-world-coordinates"),"PUT"),a,"json",c)}function d(a,c,d,e){var f=[];Object(I.a)(c,function(a){var b=Object(I.g)(a.pId),c=Object(I.g)(a.qId),d=Object(I.e)(a.matches);a=d.p;d=d.q;for(var e=0;e<a[0].length;e++)f.push({tileId:b,local:[a[0][e],a[1][e]]}),f.push({tileId:c,
+local:[d[0][e],d[1][e]]})});return b(f,d,e).then(function(b){for(var c=new x.a,d=0;d<b.length;d++){var e=Object(I.e)(b[d]);e=Object(I.d)(e.world);c.appendArray(e)}a.vertexPositions=c.view})}function q(a,b,c,e){if(1===b.length)b="/render-ws/v1/owner/"+c.owner+"/matchCollection/"+(c.matchCollection+"/group/"+b[0]+"/matchesWith/"+b[0]);else if(2===b.length)b="/render-ws/v1/owner/"+c.owner+"/matchCollection/"+(c.matchCollection+"/group/"+b[0]+"/matchesWith/"+b[1]);else throw Error("Invalid section Id vector of length: "+
+JSON.stringify(b.length));return Object(v.e)(Object(v.c)(c.baseUrls,b),"json",e).then(function(b){return d(a,b,c,e)})}function h(b,c,d,e){return Object(v.e)(Object(v.c)(d.baseUrls,c),"json",e).then(function(c){return q(b,a(c),d,e)})}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"TileChunkSource",function(){return B});l.d(e,"PointMatchSource",function(){return H});m=l(2);e=l(95);var k=l(16),u=l(96),p=l(13),x=l(98),n=l(1),v=l(11),I=l(5);l=l(0);var t=function(){function a(a,b){for(var c=0;c<
+b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),N=this&&this.__decorate||function(a,b,c,d){var e=arguments.length,f=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(h=a[g])f=(3>e?h(f):3<e?h(b,c,f):h(b,c))||
+f;return 3<e&&f&&Object.defineProperty(b,c,f),f},F=new Map;F.set("jpg",k.a);var B=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.chunkDecoder=F.get(a.parameters.encoding);var c=a.parameters;var d=[];void 0!==c.channel&&d.push("channels="+c.channel);void 0!==c.minIntensity&&d.push("minIntensity="+JSON.stringify(c.minIntensity));void 0!==c.maxIntensity&&d.push("maxIntensity="+JSON.stringify(c.maxIntensity));void 0!==c.maxTileSpecsToRender&&
+d.push("maxTileSpecsToRender="+JSON.stringify(c.maxTileSpecsToRender));void 0!==c.filter&&d.push("filter="+JSON.stringify(c.filter));c=d.join("&");a.queryString=c;return a}c(b,a);t(b,[{key:"download",value:function(a,b){var c=this,d=this.parameters,e=a.chunkGridPosition,f=1/Math.pow(2,d.level);a.chunkDataSize=this.spec.chunkDataSize;var h=a.chunkDataSize[0]*Math.pow(2,d.level),g=a.chunkDataSize[1]*Math.pow(2,d.level),k=n.l.create();k[0]=e[0]*h;k[1]=e[1]*g;k[2]=e[2];return Object(v.e)(Object(v.c)(d.baseUrls,
+"/render-ws/v1/owner/"+d.owner+"/project/"+d.project+"/stack/"+d.stack+"/z/"+k[2]+"/box/"+k[0]+","+k[1]+","+h+","+g+","+f+"/jpeg-image?"+this.queryString),"arraybuffer",b).then(function(b){return c.chunkDecoder(a,b)})}}]);return b}(Object(m.WithParameters)(p.a,e.b));B=N([Object(l.g)()],B);var H=function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}c(b,a);t(b,[{key:"download",value:function(a,b){var c=this.parameters,d=a.chunkGridPosition,e=
+n.l.create();e[2]=d[2];return h(a,"/render-ws/v1/owner/"+c.owner+"/project/"+c.project+"/"+("stack/"+c.stack+"/sectionData?minZ="+e[2]+"&")+("maxZ="+(e[2]+c.zoffset)),c,b)}}]);return b}(Object(m.WithParameters)(u.a,e.a));H=N([Object(l.g)()],H)},function(m,e,l){function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function f(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"b",function(){return a});l.d(e,"a",function(){return b});m=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);return b}(function q(){c(this,q)});
+var a=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);return b}(m);a.RPC_ID="render/TileChunkSource";var b=function(a){function b(){c(this,b);return g(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}f(b,a);return b}(m);b.RPC_ID="render/PointMatchSource"},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"a",function(){return k});m=l(22);var a=l(97),b=l(1);l=l(0);var d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=
+b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function p(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return p(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var e=arguments.length,f=3>e?b:
+null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var h=a.length-1;0<=h;h--)if(g=a[h])f=(3>e?g(f):3<e?g(b,c,f):g(b,c))||f;return 3<e&&f&&Object.defineProperty(b,c,f),f};var h=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.source=null;a.vertexPositions=null;a.vertexNormals=null;return a}c(b,a);d(b,[{key:"initializeVolumeChunk",value:function(a,
+c){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeVolumeChunk",this).call(this,a,c);a=0;this.vertexPositions&&(a+=this.vertexPositions.buffer.byteLength);this.vertexNormals&&(a+=this.vertexNormals.buffer.byteLength);this.gpuMemoryBytes=this.systemMemoryBytes=a;this.vertexPositions=null}},{key:"serialize",value:function(a,c){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"serialize",this).call(this,a,c);var d=this.vertexPositions,e=this.vertexNormals;a.vertexPositions=
+d;c.push(d.buffer);e&&(a.vertexNormals=e,c.push(e.buffer));this.vertexNormals=this.vertexPositions=null}},{key:"downloadSucceeded",value:function(){this.systemMemoryBytes=this.gpuMemoryBytes=this.vertexPositions.byteLength;q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"downloadSucceeded",this).call(this)}},{key:"freeSystemMemory",value:function(){this.vertexNormals=this.vertexPositions=null}}]);return b}(m.SliceViewChunk),k=function(e){function k(b,c){g(this,k);b=f(this,(k.__proto__||
+Object.getPrototypeOf(k)).call(this,b,c));b.spec=a.b.fromObject(c.spec);return b}c(k,e);d(k,[{key:"getChunk",value:function(a){var c=Object(b.m)(a),d=this.chunks.get(c);void 0===d&&(d=this.getNewChunk_(h),d.initializeVolumeChunk(c,a),this.addChunk(d));return d}}]);return k}(m.SliceViewChunkSource);m=function(a){function b(){g(this,b);return f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}c(b,a);return b}(m.RenderLayer);m=e([Object(l.g)(a.a)],m)},function(m,e,l){function g(a,
+b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}l.d(e,"b",function(){return d});var f=l(9),c=l(1),a=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b;(function(a){a[a.LINE=0]="LINE";a[a.POINT=1]="POINT"})(b||(b={}));var d=function(b){function d(a){if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");a=(d.__proto__||Object.getPrototypeOf(d)).call(this,a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}g(d,b);a(d,[{key:"toObject",value:function(){return{transform:this.chunkLayout.transform,
+chunkDataSize:this.chunkDataSize,voxelSize:this.voxelSize,lowerVoxelBound:this.lowerVoxelBound,upperVoxelBound:this.upperVoxelBound,lowerClipBound:this.lowerClipBound,upperClipBound:this.upperClipBound,baseVoxelOffset:this.baseVoxelOffset}}}],[{key:"make",value:function(a){return new d(Object.assign({},a,{transform:Object(f.f)(a.transform,a.vectorGraphicsSourceOptions)}))}},{key:"fromObject",value:function(a){return new d(a)}},{key:"withDefaults",value:function(a){var b=a.transform,e=a.lowerVoxelBound,
+g=a.upperVoxelBound,h=a.chunkDataSize;b=Object(f.f)(b,a.vectorGraphicsSourceOptions);if(void 0===h&&(h=c.l.clone(g),void 0!==e))for(g=0;3>g;g++)h[g]+=Math.abs(e[g]);console.log(h);console.log(a);return new d(Object.assign({},a,{transform:b,chunkDataSize:h}))}}]);return d}(f.d);e.a="vectorgraphics/RenderLayer"},function(m,e,l){l.d(e,"a",function(){return f});var g=function(){function c(a,b){for(var c=0;c<b.length;c++){var e=b[c];e.enumerable=e.enumerable||!1;e.configurable=!0;"value"in e&&(e.writable=
+!0);Object.defineProperty(a,e.key,e)}}return function(a,b,d){b&&c(a.prototype,b);d&&c(a,d);return a}}(),f=function(){function c(a){a=void 0===a?16:a;if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");this.length=0;this.data=new Float32Array(a)}g(c,[{key:"resize",value:function(a){var b=this.data;if(a>b.length){var c=new Float32Array(Math.max(a,2*b.length));c.set(b.subarray(0,this.length));this.data=c}this.length=a}},{key:"shrinkToFit",value:function(){this.data=new Float32Array(this.view)}},
+{key:"clear",value:function(){this.length=0}},{key:"appendArray",value:function(a){var b=this.length;this.resize(b+a.length);this.data.set(a,b)}},{key:"eraseRange",value:function(a,b){this.data.copyWithin(a,b,this.length);this.length-=b-a}},{key:"view",get:function(){var a=this.data;return new Float32Array(a.buffer,a.byteOffset,this.length)}}]);return c}()},function(m,e,l){Object.defineProperty(e,"__esModule",{value:!0});l(37)},function(m,e,l){function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function c(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function a(a,b){return Object(d.c)(a,
+b,"fragments")}function b(a,b){var c=(new DataView(b)).getUint32(0,!0);Object(d.d)(a,b,p.b.LITTLE,4,c)}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"PrecomputedVolumeChunkSource",function(){return t});e.decodeManifestChunk=a;e.decodeFragmentChunk=b;l.d(e,"PrecomputedMeshSource",function(){return N});m=l(2);e=l(101);var d=l(19),q=l(24),h=l(16),k=l(21),u=l(13),p=l(12),x=l(11);l=l(0);var n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=
+!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),v=this&&this.__decorate||function(a,b,c,d){var e=arguments.length,f=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var h=a.length-1;0<=h;h--)if(g=a[h])f=(3>e?g(f):3<e?g(b,c,f):g(b,c))||f;return 3<e&&f&&Object.defineProperty(b,c,f),f},I=new Map;I.set(e.b.RAW,
+k.a);I.set(e.b.JPEG,h.a);I.set(e.b.COMPRESSED_SEGMENTATION,q.a);var t=function(a){function b(){g(this,b);var a=f(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.chunkDecoder=I.get(a.parameters.encoding);return a}c(b,a);n(b,[{key:"download",value:function(a,b){var c=this,d=this.parameters,e=this.computeChunkBounds(a),f=a.chunkDataSize;return Object(x.e)(Object(x.c)(d.baseUrls,d.path+"/"+e[0]+"-"+(e[0]+f[0])+"_"+(e[1]+"-"+(e[1]+f[1])+"_")+(e[2]+"-"+(e[2]+f[2]))),"arraybuffer",
+b).then(function(b){return c.chunkDecoder(a,b)})}}]);return b}(Object(m.WithParameters)(u.a,e.c));t=v([Object(l.g)()],t);var N=function(d){function e(){g(this,e);return f(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}c(e,d);n(e,[{key:"download",value:function(b,c){var d=this.parameters;return Object(x.e)(Object(x.c)(d.baseUrls,d.path+"/"+b.objectId+":"+d.lod),"json",c).then(function(c){return a(b,c)})}},{key:"downloadFragment",value:function(a,c){var d=this.parameters;return Object(x.e)(Object(x.c)(d.baseUrls,
+d.path+"/"+a.fragmentId),"arraybuffer",c).then(function(c){return b(a,c)})}}]);return e}(Object(m.WithParameters)(d.a,e.a));N=v([Object(l.g)()],N)},function(m,e,l){function g(a,c){if(!(a instanceof c))throw new TypeError("Cannot call a class as a function");}l.d(e,"b",function(){return f});l.d(e,"c",function(){return c});l.d(e,"a",function(){return a});var f;(function(a){a[a.RAW=0]="RAW";a[a.JPEG=1]="JPEG";a[a.COMPRESSED_SEGMENTATION=2]="COMPRESSED_SEGMENTATION"})(f||(f={}));var c=function d(){g(this,
+d)};c.RPC_ID="precomputed/VolumeChunkSource";var a=function q(){g(this,q)};a.RPC_ID="precomputed/MeshSource"},function(m,e,l){function g(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function c(a){Object(v.isCompressed)(a)&&(a=Object(v.decompress)(a));var b=new t;b.uncompressedData=a;a=Object(v.readHeader)(a);if(null===a)throw Error("Failed to parse NIFTI header.");b.header=a;return b}function a(a,b,d,e){return q.a.getData(a,c,b,d,e)}function b(b,c,e){return a(b,c,function(){return{priorityTier:d.d.VISIBLE,priority:1E3}},e).then(function(a){return a.header})}Object.defineProperty(e,"__esModule",{value:!0});l.d(e,"NiftiFileData",function(){return t});l.d(e,"NiftiVolumeChunkSource",
+function(){return F});m=l(2);var d=l(8),q=l(28),h=l(104),k=l(21);e=l(13);var u=l(36),p=l(12),x=l(1),n=l(0),v=l(105);l.n(v);var I=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();l=this&&this.__decorate||function(a,b,c,d){var e=arguments.length,f=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;if("object"===
+typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var h=a.length-1;0<=h;h--)if(g=a[h])f=(3>e?g(f):3<e?g(b,c,f):g(b,c))||f;return 3<e&&f&&Object.defineProperty(b,c,f),f};var t=function H(){f(this,H)},N=new Map([[h.b.INT8,{dataType:u.a.UINT8,volumeType:u.d.IMAGE}],[h.b.UINT8,{dataType:u.a.UINT8,volumeType:u.d.IMAGE}],[h.b.INT16,{dataType:u.a.UINT16,volumeType:u.d.IMAGE}],[h.b.UINT16,{dataType:u.a.UINT16,volumeType:u.d.IMAGE}],[h.b.INT32,{dataType:u.a.UINT32,volumeType:u.d.SEGMENTATION}],
+[h.b.UINT32,{dataType:u.a.UINT32,volumeType:u.d.SEGMENTATION}],[h.b.INT64,{dataType:u.a.UINT64,volumeType:u.d.SEGMENTATION}],[h.b.UINT64,{dataType:u.a.UINT64,volumeType:u.d.SEGMENTATION}],[h.b.FLOAT32,{dataType:u.a.FLOAT32,volumeType:u.d.IMAGE}]]);Object(n.e)(h.a,function(a,c){return b(this.getRef(a.chunkManager),a.url,c).then(function(a){var b=N.get(a.datatypeCode);if(void 0===b)throw Error("Unsupported data type: "+((h.b[a.datatypeCode]||a.datatypeCode)+"."));if(1!==a.dims[4])throw Error("Time series data not supported.");
+var c=1;switch(a.xyzt_units&v.NIFTI1.SPATIAL_UNITS_MASK){case v.NIFTI1.UNITS_METER:c=1E9;break;case v.NIFTI1.UNITS_MM:c=1E6;break;case v.NIFTI1.UNITS_MICRON:c=1E3}var d=a.quatern_b,e=a.quatern_c,f=a.quatern_d,g=Math.sqrt(1-d*d-e*e-f*f),k=-1===a.pixDims[0]?-1:1,l=a.description;var m=a.affine;m=x.g.fromValues(m[0][0],m[1][0],m[2][0],m[3][0],m[0][1],m[1][1],m[2][1],m[3][1],m[0][2],m[1][2],m[2][2],m[3][2],m[0][3],m[1][3],m[2][3],m[3][3]);return{value:{description:l,affine:m,dataType:b.dataType,numChannels:a.dims[5],
+volumeType:b.volumeType,voxelSize:x.l.fromValues(c*a.pixDims[1],c*a.pixDims[2],c*a.pixDims[3]),volumeSize:x.l.fromValues(a.dims[1],a.dims[2],a.dims[3]),qoffset:x.l.fromValues(c*a.qoffset_x,c*a.qoffset_y,c*a.qoffset_z),qform_code:a.qform_code,sform_code:a.sform_code,qfac:k,quatern:x.i.fromValues(d,e,f,g)}}})});var F=function(b){function c(){f(this,c);var a=(c.__proto__||Object.getPrototypeOf(c)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!a||"object"!==typeof a&&"function"!==typeof a?this:a}g(c,b);I(c,[{key:"download",value:function(b,c){b.chunkDataSize=this.spec.chunkDataSize;return a(this.chunkManager.addRef(),this.parameters.url,function(){return{priorityTier:b.priorityTier,priority:b.priority}},c).then(function(a){var c=Object(v.readImage)(a.header,a.uncompressedData);Object(k.a)(b,c,a.header.littleEndian?p.b.LITTLE:p.b.BIG)})}}]);return c}(Object(m.WithParameters)(e.a,h.c));F=l([Object(n.g)()],F)},function(m,e,l){e.a=function(c){if(c instanceof
+Object){var a=c[g];void 0===a&&(a=c[g]=f++);return"o"+a}return""+JSON.stringify(c)};$jscomp.initSymbol();var g=Symbol("objectId"),f=0},function(m,e,l){l.d(e,"b",function(){return g});l.d(e,"c",function(){return f});e.a="nifti/getNiftiVolumeInfo";var g;(function(c){c[c.NONE=0]="NONE";c[c.BINARY=1]="BINARY";c[c.UINT8=2]="UINT8";c[c.INT16=4]="INT16";c[c.INT32=8]="INT32";c[c.FLOAT32=16]="FLOAT32";c[c.COMPLEX64=32]="COMPLEX64";c[c.FLOAT64=64]="FLOAT64";c[c.RGB24=128]="RGB24";c[c.INT8=256]="INT8";c[c.UINT16=
+512]="UINT16";c[c.UINT32=768]="UINT32";c[c.INT64=1024]="INT64";c[c.UINT64=1280]="UINT64";c[c.FLOAT128=1536]="FLOAT128";c[c.COMPLEX128=1792]="COMPLEX128";c[c.COMPLEX256=2048]="COMPLEX256"})(g||(g={}));var f=function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");};f.RPC_ID="nifti/VolumeChunkSource"},function(m,e,l){var g=g||{};g.NIFTI1=g.NIFTI1||l(43);g.NIFTI2=g.NIFTI2||l(106);g.Utils=g.Utils||l(29);var f=f||l(26);g.isNIFTI1=function(c){if(c.byteLength<g.NIFTI1.STANDARD_HEADER_SIZE)return!1;
+var a=new DataView(c);c=a.getUint8(g.NIFTI1.MAGIC_NUMBER_LOCATION);var b=a.getUint8(g.NIFTI1.MAGIC_NUMBER_LOCATION+1);a=a.getUint8(g.NIFTI1.MAGIC_NUMBER_LOCATION+2);return!(c!==g.NIFTI1.MAGIC_NUMBER[0]||b!==g.NIFTI1.MAGIC_NUMBER[1]||a!==g.NIFTI1.MAGIC_NUMBER[2])};g.isNIFTI2=function(c){if(c.byteLength<g.NIFTI1.STANDARD_HEADER_SIZE)return!1;var a=new DataView(c);c=a.getUint8(g.NIFTI2.MAGIC_NUMBER_LOCATION);var b=a.getUint8(g.NIFTI2.MAGIC_NUMBER_LOCATION+1);a=a.getUint8(g.NIFTI2.MAGIC_NUMBER_LOCATION+
+2);return!(c!==g.NIFTI2.MAGIC_NUMBER[0]||b!==g.NIFTI2.MAGIC_NUMBER[1]||a!==g.NIFTI2.MAGIC_NUMBER[2])};g.isNIFTI=function(c){return g.isNIFTI1(c)||g.isNIFTI2(c)};g.isCompressed=function(c){if(c){var a=new DataView(c);c=a.getUint8(0);a=a.getUint8(1);if(c===g.Utils.GUNZIP_MAGIC_COOKIE1||a===g.Utils.GUNZIP_MAGIC_COOKIE2)return!0}return!1};g.decompress=function(c){return f.inflate(c).buffer};g.readHeader=function(c){var a=null;g.isCompressed(c)&&(c=g.decompress(c));g.isNIFTI1(c)?a=new g.NIFTI1:g.isNIFTI2(c)&&
+(a=new g.NIFTI2);a?a.readHeader(c):console.error("That file does not appear to be NIFTI!");return a};g.hasExtension=function(c){return 0!=c.extensionFlag[0]};g.readImage=function(c,a){var b=c.vox_offset,d=1,e=1;c.dims[4]&&(d=c.dims[4]);c.dims[5]&&(e=c.dims[5]);return a.slice(b,b+c.numBitsPerVoxel/8*c.dims[2]*c.dims[3]*d*e*c.dims[1])};g.readExtension=function(c,a){var b=c.getExtensionLocation();return a.slice(b,b+c.extensionSize)};g.readExtensionData=function(c,a){var b=c.getExtensionLocation();return a.slice(b+
+8,b+c.extensionSize-8)};"undefined"!==typeof m&&m.exports&&(m.exports=g)},function(m,e,l){var g=g||{};g.Utils=g.Utils||l(29);g.NIFTI1=g.NIFTI1||l(43);g.NIFTI2=g.NIFTI2||function(){this.littleEndian=!1;this.dim_info=0;this.dims=[];this.slice_code=this.slice_end=this.slice_start=this.numBitsPerVoxel=this.datatypeCode=this.intent_code=this.intent_p3=this.intent_p2=this.intent_p1=0;this.pixDims=[];this.vox_offset=0;this.scl_slope=1;this.toffset=this.slice_duration=this.cal_min=this.cal_max=this.xyzt_units=
+this.scl_inter=0;this.intent_name=this.aux_file=this.description="";this.qoffset_z=this.qoffset_y=this.qoffset_x=this.quatern_d=this.quatern_c=this.quatern_b=this.sform_code=this.qform_code=0;this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];this.magic=0;this.extensionFlag=[0,0,0,0]};g.NIFTI2.MAGIC_COOKIE=540;g.NIFTI2.MAGIC_NUMBER_LOCATION=4;g.NIFTI2.MAGIC_NUMBER=[110,43,50,0,13,10,26,10];g.NIFTI2.prototype.readHeader=function(e){e=new DataView(e);var c=g.Utils.getIntAt(e,0,this.littleEndian),
+a,b;c!==g.NIFTI2.MAGIC_COOKIE&&(this.littleEndian=!0,c=g.Utils.getIntAt(e,0,this.littleEndian));if(c!==g.NIFTI2.MAGIC_COOKIE)throw Error("This does not appear to be a NIFTI file!");this.datatypeCode=g.Utils.getShortAt(e,12,this.littleEndian);this.numBitsPerVoxel=g.Utils.getShortAt(e,14,this.littleEndian);for(a=0;8>a;a+=1)c=16+8*a,this.dims[a]=g.Utils.getLongAt(e,c,this.littleEndian);this.intent_p1=g.Utils.getDoubleAt(e,80,this.littleEndian);this.intent_p2=g.Utils.getDoubleAt(e,88,this.littleEndian);
+this.intent_p3=g.Utils.getDoubleAt(e,96,this.littleEndian);for(a=0;8>a;a+=1)c=104+8*a,this.pixDims[a]=g.Utils.getDoubleAt(e,c,this.littleEndian);this.vox_offset=g.Utils.getLongAt(e,168,this.littleEndian);this.scl_slope=g.Utils.getDoubleAt(e,176,this.littleEndian);this.scl_inter=g.Utils.getDoubleAt(e,184,this.littleEndian);this.cal_max=g.Utils.getDoubleAt(e,192,this.littleEndian);this.cal_min=g.Utils.getDoubleAt(e,200,this.littleEndian);this.slice_duration=g.Utils.getDoubleAt(e,208,this.littleEndian);
+this.toffset=g.Utils.getDoubleAt(e,216,this.littleEndian);this.slice_start=g.Utils.getLongAt(e,224,this.littleEndian);this.slice_end=g.Utils.getLongAt(e,232,this.littleEndian);this.description=g.Utils.getStringAt(e,240,320);this.aux_file=g.Utils.getStringAt(e,320,344);this.qform_code=g.Utils.getIntAt(e,344,this.littleEndian);this.sform_code=g.Utils.getIntAt(e,348,this.littleEndian);this.quatern_b=g.Utils.getDoubleAt(e,352,this.littleEndian);this.quatern_c=g.Utils.getDoubleAt(e,360,this.littleEndian);
+this.quatern_d=g.Utils.getDoubleAt(e,368,this.littleEndian);this.qoffset_x=g.Utils.getDoubleAt(e,376,this.littleEndian);this.qoffset_y=g.Utils.getDoubleAt(e,384,this.littleEndian);this.qoffset_z=g.Utils.getDoubleAt(e,392,this.littleEndian);for(a=0;3>a;a+=1)for(b=0;4>b;b+=1)c=400+8*(4*a+b),this.affine[a][b]=g.Utils.getDoubleAt(e,c,this.littleEndian);this.affine[3][0]=0;this.affine[3][1]=0;this.affine[3][2]=0;this.affine[3][3]=1;this.slice_code=g.Utils.getIntAt(e,496,this.littleEndian);this.xyzt_units=
+g.Utils.getIntAt(e,500,this.littleEndian);this.intent_code=g.Utils.getIntAt(e,504,this.littleEndian);this.intent_name=g.Utils.getStringAt(e,508,524);this.dim_info=g.Utils.getByteAt(e,524);e.byteLength>g.NIFTI2.MAGIC_COOKIE&&(this.extensionFlag[0]=g.Utils.getByteAt(e,540),this.extensionFlag[1]=g.Utils.getByteAt(e,541),this.extensionFlag[2]=g.Utils.getByteAt(e,542),this.extensionFlag[3]=g.Utils.getByteAt(e,543),this.extensionFlag[0]&&(this.extensionSize=this.getExtensionSize(e),this.extensionCode=this.getExtensionCode(e)))};
+g.NIFTI2.prototype.toFormattedString=function(){var e=g.Utils.formatNumber;var c=""+("Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n");c+="Bits Per Voxel =  = "+this.numBitsPerVoxel+"\n";c+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+"\n";c+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n";c+="Voxel Dimensions (1-8): "+
+e(this.pixDims[0])+", "+e(this.pixDims[1])+", "+e(this.pixDims[2])+", "+e(this.pixDims[3])+", "+e(this.pixDims[4])+", "+e(this.pixDims[5])+", "+e(this.pixDims[6])+", "+e(this.pixDims[7])+"\n";c+="Image Offset = "+this.vox_offset+"\n";c+="Data Scale:  Slope = "+e(this.scl_slope)+"  Intercept = "+e(this.scl_inter)+"\n";c+="Display Range:  Max = "+e(this.cal_max)+"  Min = "+e(this.cal_min)+"\n";c+="Slice Duration = "+this.slice_duration+"\n";c+="Time Axis Shift = "+this.toffset+"\n";c+="Slice Start = "+
+this.slice_start+"\n";c+="Slice End = "+this.slice_end+"\n";c+='Description: "'+this.description+'"\n';c+='Auxiliary File: "'+this.aux_file+'"\n';c+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n";c+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n";c+="Quaternion Parameters:  b = "+e(this.quatern_b)+"  c = "+e(this.quatern_c)+"  d = "+e(this.quatern_d)+"\n";c+="Quaternion Offsets:  x = "+this.qoffset_x+"  y = "+this.qoffset_y+
+"  z = "+this.qoffset_z+"\n";c+="S-Form Parameters X: "+e(this.affine[0][0])+", "+e(this.affine[0][1])+", "+e(this.affine[0][2])+", "+e(this.affine[0][3])+"\n";c+="S-Form Parameters Y: "+e(this.affine[1][0])+", "+e(this.affine[1][1])+", "+e(this.affine[1][2])+", "+e(this.affine[1][3])+"\n";c+="S-Form Parameters Z: "+e(this.affine[2][0])+", "+e(this.affine[2][1])+", "+e(this.affine[2][2])+", "+e(this.affine[2][3])+"\n";c+="Slice Code = "+this.slice_code+"\n";c+="Units Code = "+this.xyzt_units+" ("+
+this.getUnitsCodeString(g.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(g.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n";c+="Intent Code = "+this.intent_code+"\n";c+='Intent Name: "'+this.intent_name+'"\n';return c+="Dim Info = "+this.dim_info+"\n"};g.NIFTI2.prototype.getExtensionLocation=function(){return g.NIFTI2.MAGIC_COOKIE+4};g.NIFTI2.prototype.getExtensionSize=g.NIFTI1.prototype.getExtensionSize;g.NIFTI2.prototype.getExtensionCode=g.NIFTI1.prototype.getExtensionCode;
+g.NIFTI2.prototype.getDatatypeCodeString=g.NIFTI1.prototype.getDatatypeCodeString;g.NIFTI2.prototype.getTransformCodeString=g.NIFTI1.prototype.getTransformCodeString;g.NIFTI2.prototype.getUnitsCodeString=g.NIFTI1.prototype.getUnitsCodeString;g.NIFTI2.prototype.getQformMat=g.NIFTI1.prototype.getQformMat;g.NIFTI2.prototype.convertNiftiQFormToNiftiSForm=g.NIFTI1.prototype.convertNiftiQFormToNiftiSForm;g.NIFTI2.prototype.convertNiftiSFormToNEMA=g.NIFTI1.prototype.convertNiftiSFormToNEMA;g.NIFTI2.prototype.nifti_mat33_mul=
+g.NIFTI1.prototype.nifti_mat33_mul;g.NIFTI2.prototype.nifti_mat33_determ=g.NIFTI1.prototype.nifti_mat33_determ;"undefined"!==typeof m&&m.exports&&(m.exports=g.NIFTI2)},function(m,e,l){function g(a){return Object(c.a)(Object(b.a)(a))}Object.defineProperty(e,"__esModule",{value:!0});var f=l(28),c=l(108);m=l(44);var a=l(10),b=l(45);Object(m.a)("vtk",{description:"VTK",getMesh:function(b,c,e,k){return f.a.getData(b.addRef(),g,c,e,k).then(function(b){var c={info:{numTriangles:b.numTriangles,numVertices:b.numVertices,
+vertexAttributes:[]},indices:b.indices,vertexPositions:b.vertexPositions,vertexAttributes:[]};b=$jscomp.makeIterator(b.vertexAttributes);for(var d=b.next();!d.done;d=b.next())d=d.value,c.info.vertexAttributes.push({name:d.name,dataType:a.b.FLOAT32,numComponents:d.numComponents}),c.vertexAttributes.push(d.data);return c})}})},function(m,e,l){e.a=function(a){var b=(new TextDecoder).decode(new Uint8Array(a.buffer,a.byteOffset,Math.min(a.byteLength,1E3))).match(g);if(null===b)throw Error("Failed to parse VTK file header.");
+var c=b[0].length,d=b[4],e=b[3];b={version:b[1],comment:b[2],datasetType:d,dataFormat:e};a=new Uint8Array(a.buffer,a.byteOffset+c,a.byteLength-c);if("ASCII"===e){e=u.get(d);if(void 0===e)throw Error("VTK dataset type "+JSON.stringify(d)+" is not supported.");return e(b,a)}throw Error("VTK data format "+JSON.stringify(e)+" is not supported.");};var g=/^[ \t]*#[ \t]+vtk[ \t]+DataFile[ \t]+Version[ \t]+([^\s]+)[ \t]*\n(.*)\n[ \t]*(ASCII|BINARY)[ \t]*\n[ \t]*DATASET[ \t]+([^ ]+)[ \t]*\n/,f=/^[ \t]*POINT_DATA[ \t]+([0-9]+)[ \t]*$/,
+c=/^[ \t]*POINTS[ \t]+([0-9]+)[ \t]+([^\s]+)[ \t]*$/,a=/^[ \t]*SCALARS[ \t]+([^\s]+)[ \t]+([^\s]+)(?:[ \t]+([0-9]+))?[ \t]*$/,b=/^[ \t]*LOOKUP_TABLE[ \t]+([^\s]+)[ \t]*$/,d=/^[ \t]*POLYGONS[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]*$/,q=/^[ \t]*3[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]*$/,h=/^[ \t]*$/,k=function x(a,b,c,d,e,f){if(!(this instanceof x))throw new TypeError("Cannot call a class as a function");this.header=a;this.numVertices=b;this.vertexPositions=c;this.numTriangles=d;this.indices=e;this.vertexAttributes=
+f},u=new Map([["POLYDATA",function(e,g){function l(a,b,c,d){d=RegExp("^[ \t]*"+"([^s]+)[ \t]+".repeat(c-1)+"([^s]+)[ \t]*$");if(B-H<b)throw Error("VTK data ended unexpectedly while parsing "+a+".");for(var e=new Float32Array(b*c),f=0,g=0;g<b;++g){var h=x[H++],k=h.match(d);if(null===k)throw Error("Failed to parse "+a+" line "+g+": "+JSON.stringify(h)+".");for(h=0;h<c;++h)e[f++]=parseFloat(k[h+1])}return e}function m(a,b){if(void 0!==r)throw Error("POINTS specified more than once.");w=a;A=l("POINTS",
+a,3,b)}function n(a,b){if(void 0!==r)throw Error("VERTICES specified more than once.");if(B-H<a)throw Error("VTK data ended unexpectedly");if(b!==4*a)throw Error("Only triangular faces are supported.");K=a;r=new Uint32Array(3*a);for(var c=b=0;c<a;++c){var d=x[H++].match(q);if(null===d)throw Error("Failed to parse indices for face "+c);r[b++]=parseInt(d[1],10);r[b++]=parseInt(d[2],10);r[b++]=parseInt(d[3],10)}}function u(c){if(w!==c)throw Error("Number of vertices specified in POINT_DATA section ("+
+c+") "+("must match number of points ("+w+")."));for(;H<B;)if(c=x[H],c.match(h))++H;else{var d=c.match(a);if(null!==d){var e=void 0===d[3]?1:parseInt(d[3],10);++H;c=d[1];d=d[2];if(H===B)throw Error("Expected LOOKUP_TABLE directive.");var f=x[H++],g=f.match(b);if(null===g)throw Error("Expected LOOKUP_TABLE directive in "+JSON.stringify(f)+".");f=g[1];g=l("SCALARS("+c+")",w,e,d);z.push({name:c,data:g,numComponents:e,dataType:d,tableName:f})}}}for(var x=(new TextDecoder).decode(g).split("\n"),B=x.length,
+H=0,w=-1,A=void 0,K=-1,r=void 0,z=[];H<B;)if(g=x[H],g.match(h))++H;else{var G=void 0;G=g.match(c);if(null!==G)++H,m(parseInt(G[1],10),G[2]);else if(G=g.match(d),null!==G)++H,n(parseInt(G[1],10),parseInt(G[2],10));else{G=g.match(f);if(null!==G){++H;u(parseInt(G[1],10));break}throw Error("Failed to parse VTK line "+JSON.stringify(g)+".");}}if(void 0===A)throw Error("Vertex positions not specified.");if(void 0===r)throw Error("Indices not specified.");return new k(e,w,A,K,r,z)}]])},function(m,e,l){function g(a,
+b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}l.d(e,"d",function(){return c});e.c="single_mesh/SingleMeshLayer";e.a="single_mesh/getSingleMeshInfo";e.b=
+"";var c=function(a){function b(){f(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}g(b,a);return b}(function b(){f(this,b)});c.RPC_ID="single_mesh/SingleMeshSource"},function(m,e,l){function g(b){b=(new TextDecoder).decode(Object(a.a)(b)).trim().split(/\n+/);if(!b)throw Error("CSV file is empty.");var d=b[0].split(","),
+e=d.map(function(a){return{name:a.trim(),dataType:c.b.FLOAT32,numComponents:1}}),f=b.length-1,g=d.length;d=d.map(function(){return new Float32Array(f)});for(var l=0;l<f;++l)for(var m=b[l+1].split(","),x=0;x<g;++x)d[x][l]=parseFloat(m[x]);return{numVertices:f,attributeInfo:e,attributes:d}}Object.defineProperty(e,"__esModule",{value:!0});var f=l(28);m=l(44);var c=l(10),a=l(45);Object(m.b)("csv",{description:"Comma separated value text file",getMeshVertexAttributes:function(a,c,e,h){return f.a.getData(a.addRef(),
+g,c,e,h)}})}])});
diff --git a/third_party/export_nehuba/main.bundle.js b/third_party/export_nehuba/main.bundle.js
new file mode 100644
index 0000000000000000000000000000000000000000..795f59b6d64ac002ede3048da435f84592ab5b18
--- /dev/null
+++ b/third_party/export_nehuba/main.bundle.js
@@ -0,0 +1,1948 @@
+/*
+
+ Copyright 2016 Google Inc.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Copyright 2017 Google Inc.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(g,e,a){g!=Array.prototype&&g!=Object.prototype&&(g[e]=a.value)};$jscomp.getGlobal=function(g){return"undefined"!=typeof window&&window===g?g:"undefined"!=typeof global&&null!=global?global:g};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
+$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(g){return $jscomp.SYMBOL_PREFIX+(g||"")+$jscomp.symbolCounter_++};
+$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var g=$jscomp.global.Symbol.iterator;g||(g=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[g]&&$jscomp.defineProperty(Array.prototype,g,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(g){var e=0;return $jscomp.iteratorPrototype(function(){return e<g.length?{done:!1,value:g[e++]}:{done:!0}})};
+$jscomp.iteratorPrototype=function(g){$jscomp.initSymbolIterator();g={next:g};g[$jscomp.global.Symbol.iterator]=function(){return this};return g};$jscomp.makeIterator=function(g){$jscomp.initSymbolIterator();$jscomp.initSymbol();$jscomp.initSymbolIterator();var e=g[Symbol.iterator];return e?e.call(g):$jscomp.arrayIterator(g)};$jscomp.arrayFromIterator=function(g){for(var e,a=[];!(e=g.next()).done;)a.push(e.value);return a};$jscomp.arrayFromIterable=function(g){return g instanceof Array?g:$jscomp.arrayFromIterator($jscomp.makeIterator(g))};
+$jscomp.polyfill=function(g,e,a,p){if(e){a=$jscomp.global;g=g.split(".");for(p=0;p<g.length-1;p++){var n=g[p];n in a||(a[n]={});a=a[n]}g=g[g.length-1];p=a[g];e=e(p);e!=p&&null!=e&&$jscomp.defineProperty(a,g,{configurable:!0,writable:!0,value:e})}};$jscomp.polyfill("Number.isNaN",function(g){return g?g:function(e){return"number"===typeof e&&isNaN(e)}},"es6","es3");
+$jscomp.polyfill("Number.isFinite",function(g){return g?g:function(e){return"number"!==typeof e?!1:!isNaN(e)&&Infinity!==e&&-Infinity!==e}},"es6","es3");$jscomp.iteratorFromArray=function(g,e){$jscomp.initSymbolIterator();g instanceof String&&(g+="");var a=0,p={next:function(){if(a<g.length){var n=a++;return{value:e(n,g[n]),done:!1}}p.next=function(){return{done:!0,value:void 0}};return p.next()}};p[Symbol.iterator]=function(){return p};return p};
+$jscomp.polyfill("Array.prototype.keys",function(g){return g?g:function(){return $jscomp.iteratorFromArray(this,function(e){return e})}},"es6","es3");$jscomp.polyfill("Number.isInteger",function(g){return g?g:function(e){return Number.isFinite(e)?e===Math.floor(e):!1}},"es6","es3");
+$jscomp.polyfill("Array.from",function(g){return g?g:function(e,a,g){$jscomp.initSymbolIterator();a=null!=a?a:function(b){return b};var n=[],m=e[Symbol.iterator];if("function"==typeof m)for(e=m.call(e);!(m=e.next()).done;)n.push(a.call(g,m.value));else{m=e.length;for(var c=0;c<m;c++)n.push(a.call(g,e[c]))}return n}},"es6","es3");$jscomp.owns=function(g,e){return Object.prototype.hasOwnProperty.call(g,e)};
+$jscomp.polyfill("WeakMap",function(g){function e(a){$jscomp.owns(a,p)||$jscomp.defineProperty(a,p,{value:{}})}function a(a){var b=Object[a];b&&(Object[a]=function(a){e(a);return b(a)})}if(function(){if(!g||!Object.seal)return!1;try{var a=Object.seal({}),b=Object.seal({}),d=new g([[a,2],[b,3]]);if(2!=d.get(a)||3!=d.get(b))return!1;d.delete(a);d.set(b,4);return!d.has(a)&&4==d.get(b)}catch(f){return!1}}())return g;var p="$jscomp_hidden_"+Math.random().toString().substring(2);a("freeze");a("preventExtensions");
+a("seal");var n=0,m=function(a){this.id_=(n+=Math.random()+1).toString();if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};m.prototype.set=function(a,b){e(a);if(!$jscomp.owns(a,p))throw Error("WeakMap key fail: "+a);a[p][this.id_]=b;return this};m.prototype.get=function(a){return $jscomp.owns(a,p)?a[p][this.id_]:void 0};m.prototype.has=function(a){return $jscomp.owns(a,p)&&$jscomp.owns(a[p],this.id_)};m.prototype.delete=
+function(a){return $jscomp.owns(a,p)&&$jscomp.owns(a[p],this.id_)?delete a[p][this.id_]:!1};return m},"es6","es3");$jscomp.MapEntry=function(){};
+$jscomp.polyfill("Map",function(g){if(!$jscomp.ASSUME_NO_NATIVE_MAP&&function(){if(!g||!g.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),a=new g($jscomp.makeIterator([[b,"s"]]));if("s"!=a.get(b)||1!=a.size||a.get({x:4})||a.set({x:4},"t")!=a||2!=a.size)return!1;var c=a.entries(),h=c.next();if(h.done||h.value[0]!=b||"s"!=h.value[1])return!1;h=c.next();return h.done||4!=h.value[0].x||"t"!=h.value[1]||!c.next().done?!1:!0}catch(q){return!1}}())return g;$jscomp.initSymbol();
+$jscomp.initSymbolIterator();var e=new WeakMap,a=function(b){this.data_={};this.head_=m();this.size=0;if(b){b=$jscomp.makeIterator(b);for(var a;!(a=b.next()).done;)a=a.value,this.set(a[0],a[1])}};a.prototype.set=function(b,a){var c=p(this,b);c.list||(c.list=this.data_[c.id]=[]);c.entry?c.entry.value=a:(c.entry={next:this.head_,previous:this.head_.previous,head:this.head_,key:b,value:a},c.list.push(c.entry),this.head_.previous.next=c.entry,this.head_.previous=c.entry,this.size++);return this};a.prototype.delete=
+function(b){b=p(this,b);return b.entry&&b.list?(b.list.splice(b.index,1),b.list.length||delete this.data_[b.id],b.entry.previous.next=b.entry.next,b.entry.next.previous=b.entry.previous,b.entry.head=null,this.size--,!0):!1};a.prototype.clear=function(){this.data_={};this.head_=this.head_.previous=m();this.size=0};a.prototype.has=function(b){return!!p(this,b).entry};a.prototype.get=function(b){return(b=p(this,b).entry)&&b.value};a.prototype.entries=function(){return n(this,function(b){return[b.key,
+b.value]})};a.prototype.keys=function(){return n(this,function(b){return b.key})};a.prototype.values=function(){return n(this,function(b){return b.value})};a.prototype.forEach=function(b,a){for(var c=this.entries(),d;!(d=c.next()).done;)d=d.value,b.call(a,d[1],d[0],this)};a.prototype[Symbol.iterator]=a.prototype.entries;var p=function(b,a){var d=a&&typeof a;"object"==d||"function"==d?e.has(a)?d=e.get(a):(d=""+ ++c,e.set(a,d)):d="p_"+a;var h=b.data_[d];if(h&&$jscomp.owns(b.data_,d))for(b=0;b<h.length;b++){var q=
+h[b];if(a!==a&&q.key!==q.key||a===q.key)return{id:d,list:h,index:b,entry:q}}return{id:d,list:h,index:-1,entry:void 0}},n=function(b,a){var c=b.head_;return $jscomp.iteratorPrototype(function(){if(c){for(;c.head!=b.head_;)c=c.previous;for(;c.next!=c.head;)return c=c.next,{done:!1,value:a(c)};c=null}return{done:!0,value:void 0}})},m=function(){var b={};return b.previous=b.next=b.head=b},c=0;return a},"es6","es3");
+$jscomp.checkStringArgs=function(g,e,a){if(null==g)throw new TypeError("The 'this' value for String.prototype."+a+" must not be null or undefined");if(e instanceof RegExp)throw new TypeError("First argument to String.prototype."+a+" must not be a regular expression");return g+""};
+$jscomp.polyfill("String.prototype.startsWith",function(g){return g?g:function(e,a){var g=$jscomp.checkStringArgs(this,e,"startsWith");e+="";var n=g.length,m=e.length;a=Math.max(0,Math.min(a|0,g.length));for(var c=0;c<m&&a<n;)if(g[a++]!=e[c++])return!1;return c>=m}},"es6","es3");
+$jscomp.polyfill("Set",function(g){if(!$jscomp.ASSUME_NO_NATIVE_SET&&function(){if(!g||!g.prototype.entries||"function"!=typeof Object.seal)return!1;try{var a=Object.seal({x:4}),e=new g($jscomp.makeIterator([a]));if(!e.has(a)||1!=e.size||e.add(a)!=e||1!=e.size||e.add({x:4})!=e||2!=e.size)return!1;var n=e.entries(),m=n.next();if(m.done||m.value[0]!=a||m.value[1]!=a)return!1;m=n.next();return m.done||m.value[0]==a||4!=m.value[0].x||m.value[1]!=m.value[0]?!1:n.next().done}catch(c){return!1}}())return g;
+$jscomp.initSymbol();$jscomp.initSymbolIterator();var e=function(a){this.map_=new Map;if(a){a=$jscomp.makeIterator(a);for(var e;!(e=a.next()).done;)this.add(e.value)}this.size=this.map_.size};e.prototype.add=function(a){this.map_.set(a,a);this.size=this.map_.size;return this};e.prototype.delete=function(a){a=this.map_.delete(a);this.size=this.map_.size;return a};e.prototype.clear=function(){this.map_.clear();this.size=0};e.prototype.has=function(a){return this.map_.has(a)};e.prototype.entries=function(){return this.map_.entries()};
+e.prototype.values=function(){return this.map_.values()};e.prototype.keys=e.prototype.values;e.prototype[Symbol.iterator]=e.prototype.values;e.prototype.forEach=function(a,e){var g=this;this.map_.forEach(function(m){return a.call(e,m,m,g)})};return e},"es6","es3");$jscomp.polyfill("Math.log2",function(g){return g?g:function(e){return Math.log(e)/Math.LN2}},"es6","es3");
+$jscomp.polyfill("String.prototype.repeat",function(g){return g?g:function(e){var a=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279<e)throw new RangeError("Invalid count value");e|=0;for(var g="";e;)if(e&1&&(g+=a),e>>>=1)a+=a;return g}},"es6","es3");$jscomp.polyfill("Object.assign",function(g){return g?g:function(e,a){for(var g=1;g<arguments.length;g++){var n=arguments[g];if(n)for(var m in n)$jscomp.owns(n,m)&&(e[m]=n[m])}return e}},"es6","es3");$jscomp.FORCE_POLYFILL_PROMISE=!1;
+$jscomp.polyfill("Promise",function(g){function e(){this.batch_=null}function a(a){return a instanceof n?a:new n(function(b,c){b(a)})}if(g&&!$jscomp.FORCE_POLYFILL_PROMISE)return g;e.prototype.asyncExecute=function(a){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(a);return this};e.prototype.asyncExecuteBatch_=function(){var a=this;this.asyncExecuteFunction(function(){a.executeBatch_()})};var p=$jscomp.global.setTimeout;e.prototype.asyncExecuteFunction=function(a){p(a,
+0)};e.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var a=this.batch_;this.batch_=[];for(var b=0;b<a.length;++b){var d=a[b];delete a[b];try{d()}catch(f){this.asyncThrow_(f)}}}this.batch_=null};e.prototype.asyncThrow_=function(a){this.asyncExecuteFunction(function(){throw a;})};var n=function(a){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var b=this.createResolveAndReject_();try{a(b.resolve,b.reject)}catch(d){b.reject(d)}};n.prototype.createResolveAndReject_=
+function(){function a(a){return function(c){d||(d=!0,a.call(b,c))}}var b=this,d=!1;return{resolve:a(this.resolveTo_),reject:a(this.reject_)}};n.prototype.resolveTo_=function(a){if(a===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(a instanceof n)this.settleSameAsPromise_(a);else{a:switch(typeof a){case "object":var b=null!=a;break a;case "function":b=!0;break a;default:b=!1}b?this.resolveToNonPromiseObj_(a):this.fulfill_(a)}};n.prototype.resolveToNonPromiseObj_=function(a){var b=
+void 0;try{b=a.then}catch(d){this.reject_(d);return}"function"==typeof b?this.settleSameAsThenable_(b,a):this.fulfill_(a)};n.prototype.reject_=function(a){this.settle_(2,a)};n.prototype.fulfill_=function(a){this.settle_(1,a)};n.prototype.settle_=function(a,b){if(0!=this.state_)throw Error("Cannot settle("+a+", "+b|"): Promise already settled in state"+this.state_);this.state_=a;this.result_=b;this.executeOnSettledCallbacks_()};n.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var a=
+this.onSettledCallbacks_,b=0;b<a.length;++b)a[b].call(),a[b]=null;this.onSettledCallbacks_=null}};var m=new e;n.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};n.prototype.settleSameAsThenable_=function(a,b){var c=this.createResolveAndReject_();try{a.call(b,c.resolve,c.reject)}catch(f){c.reject(f)}};n.prototype.then=function(a,b){function c(a,b){return"function"==typeof a?function(b){try{f(a(b))}catch(l){h(l)}}:b}var f,h,q=new n(function(a,
+b){f=a;h=b});this.callWhenSettled_(c(a,f),c(b,h));return q};n.prototype.catch=function(a){return this.then(void 0,a)};n.prototype.callWhenSettled_=function(a,b){function c(){switch(f.state_){case 1:a(f.result_);break;case 2:b(f.result_);break;default:throw Error("Unexpected state: "+f.state_);}}var f=this;null==this.onSettledCallbacks_?m.asyncExecute(c):this.onSettledCallbacks_.push(function(){m.asyncExecute(c)})};n.resolve=a;n.reject=function(a){return new n(function(b,c){c(a)})};n.race=function(c){return new n(function(b,
+d){for(var f=$jscomp.makeIterator(c),h=f.next();!h.done;h=f.next())a(h.value).callWhenSettled_(b,d)})};n.all=function(c){var b=$jscomp.makeIterator(c),d=b.next();return d.done?a([]):new n(function(c,h){function f(a){return function(b){k[a]=b;t--;0==t&&c(k)}}var k=[],t=0;do k.push(void 0),t++,a(d.value).callWhenSettled_(f(k.length-1),h),d=b.next();while(!d.done)})};return n},"es6","es3");
+$jscomp.polyfill("WeakSet",function(g){if(function(){if(!g||!Object.seal)return!1;try{var a=Object.seal({}),e=Object.seal({}),n=new g([a]);if(!n.has(a)||n.has(e))return!1;n.delete(a);n.add(e);return!n.has(a)&&n.has(e)}catch(m){return!1}}())return g;var e=function(a){this.map_=new WeakMap;if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var e;!(e=a.next()).done;)this.add(e.value)}};e.prototype.add=function(a){this.map_.set(a,!0);return this};e.prototype.has=function(a){return this.map_.has(a)};
+e.prototype.delete=function(a){return this.map_.delete(a)};return e},"es6","es3");$jscomp.findInternal=function(g,e,a){g instanceof String&&(g=String(g));for(var p=g.length,n=0;n<p;n++){var m=g[n];if(e.call(a,m,n,g))return{i:n,v:m}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(g){return g?g:function(e,a){return $jscomp.findInternal(this,e,a).v}},"es6","es3");
+$jscomp.polyfill("Array.prototype.values",function(g){return g?g:function(){return $jscomp.iteratorFromArray(this,function(e,a){return a})}},"es6","es3");$jscomp.polyfill("Array.prototype.entries",function(g){return g?g:function(){return $jscomp.iteratorFromArray(this,function(e,a){return[e,a]})}},"es6","es3");$jscomp.polyfill("Math.sign",function(g){return g?g:function(e){e=Number(e);return 0===e||isNaN(e)?e:0<e?1:-1}},"es6","es3");
+$jscomp.polyfill("Array.prototype.fill",function(g){return g?g:function(e,a,g){var n=this.length||0;0>a&&(a=Math.max(0,n+a));if(null==g||g>n)g=n;g=Number(g);0>g&&(g=Math.max(0,n+g));for(a=Number(a||0);a<g;a++)this[a]=e;return this}},"es6","es3");
+$jscomp.polyfill("Array.prototype.copyWithin",function(g){return g?g:function(e,a,g){var n=this.length;e=Number(e);a=Number(a);g=Number(null!=g?g:n);if(e<a)for(g=Math.min(g,n);a<g;)a in this?this[e++]=this[a++]:(delete this[e++],a++);else for(g=Math.min(g,n+a-e),e+=g-a;g>a;)--g in this?this[--e]=this[g]:delete this[e];return this}},"es6","es3");$jscomp.polyfill("Array.prototype.findIndex",function(g){return g?g:function(e,a){return $jscomp.findInternal(this,e,a).i}},"es6","es3");
+(function(g,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports.exportNehubaFn=e():g.exportNehubaFn=e()})("undefined"!==typeof self?self:this,function(){return function(g){function e(p){if(a[p])return a[p].exports;var n=a[p]={i:p,l:!1,exports:{}};g[p].call(n.exports,n,n.exports,e);n.l=!0;return n.exports}var a={};e.m=g;e.c=a;e.d=function(a,g,m){e.o(a,g)||Object.defineProperty(a,g,{configurable:!1,
+enumerable:!0,get:m})};e.n=function(a){var g=a&&a.__esModule?function(){return a["default"]}:function(){return a};e.d(g,"a",g);return g};e.o=function(a,e){return Object.prototype.hasOwnProperty.call(a,e)};e.p="";return e(e.s=199)}([function(g,e,a){var p=a(12),n=a(320),m=a(75);g=function(){function a(a){this._isScalar=!1;a&&(this._subscribe=a)}a.prototype.lift=function(b){var c=new a;c.source=this;c.operator=b;return c};a.prototype.subscribe=function(a,c,f){var b=this.operator;a=n.toSubscriber(a,c,
+f);b?b.call(a,this.source):a.add(this.source?this._subscribe(a):this._trySubscribe(a));if(a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a};a.prototype._trySubscribe=function(a){try{return this._subscribe(a)}catch(d){a.syncErrorThrown=!0,a.syncErrorValue=d,a.error(d)}};a.prototype.forEach=function(a,c){var b=this;c||(p.root.Rx&&p.root.Rx.config&&p.root.Rx.config.Promise?c=p.root.Rx.config.Promise:p.root.Promise&&(c=p.root.Promise));if(!c)throw Error("no Promise impl found");
+return new c(function(c,d){var f=b.subscribe(function(b){if(f)try{a(b)}catch(r){d(r),f.unsubscribe()}else a(b)},d,c)})};a.prototype._subscribe=function(a){return this.source.subscribe(a)};a.prototype[m.observable]=function(){return this};a.create=function(b){return new a(b)};return a}();e.Observable=g},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,
+{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function m(a,b,c,d){a.addEventListener(b,c,d);return function(){return a.removeEventListener(b,c,d)}}a.d(e,"c",function(){return m});a.d(e,"a",function(){return b});a.d(e,"b",function(){return d});var c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function a(){n(this,a);this.refCount=1}c(a,[{key:"addRef",value:function(){++this.refCount;return this}},{key:"dispose",value:function(){0===--this.refCount&&this.refCountReachedZero()}},{key:"refCountReachedZero",value:function(){this.disposed();var a=this.disposers;if(null!=a){for(var b=a.length;0<b;--b){var c=a[b-1];"object"===
+typeof c?c.dispose():c.call(this)}this.disposers=void 0}this.wasDisposed=!0}},{key:"disposed",value:function(){}},{key:"registerDisposer",value:function(a){var b=this.disposers;null==b?this.disposers=[a]:b.push(a);return a}},{key:"unregisterDisposer",value:function(a){var b=this.disposers;if(null!=b){var c=b.indexOf(a);-1!==c&&b.splice(c,1)}return a}},{key:"registerEventListener",value:function(a,b,c,d){this.registerDisposer(m(a,b,c,d))}},{key:"registerCancellable",value:function(a){this.registerDisposer(function(){a.cancel()});
+return a}}]);return a}(),d=function(a){function b(a){n(this,b);var c=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.value=a;return c}p(b,a);return b}(b)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,
+new c)},n=a(73);g=a(8);var m=a(170),c=a(74);a=function(a){function d(c,f,k){a.call(this);this.syncErrorValue=null;this.isStopped=this.syncErrorThrowable=this.syncErrorThrown=!1;switch(arguments.length){case 0:this.destination=m.empty;break;case 1:if(!c){this.destination=m.empty;break}if("object"===typeof c){c instanceof d?(this.destination=c,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new b(this,c));break}default:this.syncErrorThrowable=!0,this.destination=new b(this,
+c,f,k)}}p(d,a);d.prototype[c.rxSubscriber]=function(){return this};d.create=function(a,b,c){a=new d(a,b,c);a.syncErrorThrowable=!1;return a};d.prototype.next=function(a){this.isStopped||this._next(a)};d.prototype.error=function(a){this.isStopped||(this.isStopped=!0,this._error(a))};d.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())};d.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,a.prototype.unsubscribe.call(this))};d.prototype._next=function(a){this.destination.next(a)};
+d.prototype._error=function(a){this.destination.error(a);this.unsubscribe()};d.prototype._complete=function(){this.destination.complete();this.unsubscribe()};d.prototype._unsubscribeAndRecycle=function(){var a=this._parent,b=this._parents;this._parents=this._parent=null;this.unsubscribe();this.isStopped=this.closed=!1;this._parent=a;this._parents=b;return this};return d}(g.Subscription);e.Subscriber=a;var b=function(a){function b(b,c,d,f){a.call(this);this._parentSubscriber=b;b=this;if(n.isFunction(c))var h=
+c;else c&&(h=c.next,d=c.error,f=c.complete,c!==m.empty&&(b=Object.create(c),n.isFunction(b.unsubscribe)&&this.add(b.unsubscribe.bind(b)),b.unsubscribe=this.unsubscribe.bind(this)));this._context=b;this._next=h;this._error=d;this._complete=f}p(b,a);b.prototype.next=function(a){if(!this.isStopped&&this._next){var b=this._parentSubscriber;b.syncErrorThrowable?this.__tryOrSetError(b,this._next,a)&&this.unsubscribe():this.__tryOrUnsub(this._next,a)}};b.prototype.error=function(a){if(!this.isStopped){var b=
+this._parentSubscriber;if(this._error)b.syncErrorThrowable?this.__tryOrSetError(b,this._error,a):this.__tryOrUnsub(this._error,a),this.unsubscribe();else if(b.syncErrorThrowable)b.syncErrorValue=a,b.syncErrorThrown=!0,this.unsubscribe();else throw this.unsubscribe(),a;}};b.prototype.complete=function(){var a=this;if(!this.isStopped){var b=this._parentSubscriber;if(this._complete){var c=function(){return a._complete.call(a._context)};b.syncErrorThrowable?this.__tryOrSetError(b,c):this.__tryOrUnsub(c)}this.unsubscribe()}};
+b.prototype.__tryOrUnsub=function(a,b){try{a.call(this._context,b)}catch(k){throw this.unsubscribe(),k;}};b.prototype.__tryOrSetError=function(a,b,c){try{b.call(this._context,c)}catch(t){return a.syncErrorValue=t,a.syncErrorThrown=!0}return!1};b.prototype._unsubscribe=function(){var a=this._parentSubscriber;this._parentSubscriber=this._context=null;a.unsubscribe()};return b}(a)},function(g,e,a){function p(a,b){var c=Math.abs(a[b]),f=Math.abs(a[b+1]),h=Math.abs(a[b+2]),q=Math.max(c,f,h);1E-4>c/q&&
+(a[b]=0);1E-4>f/q&&(a[b+1]=0);1E-4>h/q&&(a[b+2]=0)}a.d(e,"b",function(){return m});e.k=function(a){return a[0]*a[1]*a[2]};e.q=function(a){return a[0]+","+a[1]+","+a[2]};e.m=function(a){p(a,0);p(a,4);p(a,8)};e.n=function(a,b,d){var c=b[0],h=b[1];b=b[2];a[0]=d[0]*c+d[4]*h+d[8]*b;a[1]=d[1]*c+d[5]*h+d[9]*b;a[2]=d[2]*c+d[6]*h+d[10]*b;return a};e.c=function(a,b){var c=b[0],f=b[1],h=b[2],q=b[4],k=b[5],t=b[6],r=b[8],l=b[9];b=b[10];a[0]=Math.sqrt(c*c+f*f+h*h);a[1]=Math.sqrt(q*q+k*k+t*t);a[2]=Math.sqrt(r*r+
+l*l+b*b);return a};e.o=function(a,b,d,f,h){a[0]=f[0];a[1]=f[1];a[2]=f[2]*h;return n.b.fromRotationTranslationScale(a,d,b,a)};var n=a(119);g=a(16);a.d(e,"i",function(){return n.a});a.d(e,"j",function(){return n.b});a.d(e,"l",function(){return n.c});a.d(e,"p",function(){return n.d});a.d(e,"r",function(){return n.e});a=n.b.create();e.d=a;e.a=["x","y","z"];var m=function b(a,f){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");this.lower=a;this.upper=f};a=[n.d.fromValues(1,
+0,0),n.d.fromValues(0,1,0),n.d.fromValues(0,0,1)];e.e=a;a=n.d.fromValues(0,0,0);e.h=a;a=n.d.fromValues(1,1,1);e.g=a;a=n.d.fromValues(Infinity,Infinity,Infinity);e.f=a;n.c.create();new g.a(1227133513,306783378);new g.a(3272356035,818089008);new g.a(251719695,4027515120);new g.a(4278190335,16711680);new g.a(65535,16711680);new g.a(2097151,0)},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?
+Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){a.apply(this,arguments)}p(e,a);e.prototype.notifyNext=function(a,b,d,f,h){this.destination.next(b)};e.prototype.notifyError=function(a,b){this.destination.error(a)};e.prototype.notifyComplete=function(a){this.destination.complete()};return e}(a(2).Subscriber);e.OuterSubscriber=g},function(g,e,a){var p=a(12),n=a(172),m=a(173),c=a(168),b=a(0),d=a(56),f=a(329),h=a(75);e.subscribeToResult=function(a,k,t,r){var l=new f.InnerSubscriber(a,
+t,r);if(l.closed)return null;if(k instanceof b.Observable)if(k._isScalar)l.next(k.value),l.complete();else return k.subscribe(l);else if(n.isArrayLike(k)){a=0;for(t=k.length;a<t&&!l.closed;a++)l.next(k[a]);l.closed||l.complete()}else{if(m.isPromise(k))return k.then(function(a){l.closed||(l.next(a),l.complete())},function(a){return l.error(a)}).then(null,function(a){p.root.setTimeout(function(){throw a;})}),l;if(k&&"function"===typeof k[d.iterator]){k=k[d.iterator]();do{a=k.next();if(a.done){l.complete();
+break}l.next(a.value);if(l.closed)break}while(1)}else if(k&&"function"===typeof k[h.observable])if(k=k[h.observable](),"function"!==typeof k.subscribe)l.error(new TypeError("Provided object does not correctly implement Symbol.observable"));else return k.subscribe(new f.InnerSubscriber(a,t,r));else k=c.isObject(k)?"an invalid object":"'"+k+"'",l.error(new TypeError("You provided "+k+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable."))}return null}},function(g,
+e,a){function p(a){var b=typeof a;if("number"===b||"string"===b)if(b=parseFloat(""+a),!Number.isNaN(b))return b;throw Error("Expected floating-point number, but received: "+JSON.stringify(a)+".");}function n(a){a=p(a);if(Number.isFinite(a))return a;throw Error("Expected finite floating-point number, but received: "+a+".");}function m(a){a=n(a);if(0<a)return a;throw Error("Expected positive finite floating-point number, but received: "+a+".");}function c(a){if("object"===typeof a){if(null===a)return"null";
+if(Array.isArray(a)){var b="[",d=a.length,f=0;if(f<d)for(b+=c(a[f]);++f<d;)b+=",",b+=c(a[f]);return b+"]"}b="{";d=Object.keys(a).sort();f=0;var l=d.length;if(f<l){var h=d[f];b+=JSON.stringify(h);for(b=b+":"+c(a[h]);++f<l;)b+=",",h=d[f],b+=JSON.stringify(h),b+=":",b+=c(a[h])}return b+"}"}return JSON.stringify(a)}function b(a){return a.replace(/['"]/g,function(a){return'"'===a?"'":'"'})}function d(a){if("object"===typeof a){if(null===a)return"null";var c=a.toJSON;if("function"===typeof c)return d(c.call(a));
+if(Array.isArray(a)){c="[";var f=a.length,l=0;if(l<f)for(c+=d(a[l]);++l<f;)c+="_",c+=d(a[l]);return c+"]"}c="{";l=Object.keys(a);f=!0;l=$jscomp.makeIterator(l);for(var h=l.next();!h.done;h=l.next()){h=h.value;var k=a[h];void 0!==k&&(k=d(k))&&(f?f=!1:c+="_",c+=b(JSON.stringify(b(h))),c+=":",c+=k)}return c+"}"}return"string"===typeof a?b(JSON.stringify(b(a))):JSON.stringify(a)}function f(a,b,c){var d=/[&_,]/g;if('"'===c){var f="'";var l=z;var h=A}else f='"',l=B,h=y;for(var k="";0<a.length;){var q=a.match(h);
+if(null===q){var r=a;q=a=""}else{r=a.substr(0,q.index);a=a.substr(q.index+q[0].length);var u=q[1];if(void 0!==u){var t=u,e=f;q=c;u=l;if(2<=t.length&&t.charAt(0)===e&&t.charAt(t.length-1)===e){t=t.substr(1,t.length-2);for(e=q;0<t.length;){var g=t.match(u);if(null===g){e+=t;break}e+=g[1];e+="\\";e+=q;t=t.substr(g.index+g[0].length)}q=e+q}else q=t}else q=q[2]}k+=r.replace(d,b);k+=q}return k}function h(a){return JSON.parse(f(a,",",'"'))}function q(a,b,c){var d=a.length;if(!Array.isArray(b)||b.length!==
+d)throw Error("Expected length "+d+" array, but received: "+JSON.stringify(b)+".");for(var f=0;f<d;++f)a[f]=c(b[f],f);return a}function k(a){if("object"!==typeof a||null==a||Array.isArray(a))throw Error("Expected JSON object, but received: "+JSON.stringify(a)+".");return a}function t(a){var b=parseInt(a,10);if(!Number.isInteger(b))throw Error("Expected integer, but received: "+JSON.stringify(a)+".");return b}function r(a){a=t(a);if(0>=a)throw Error("Expected positive integer, but received: "+a+".");
+return a}function l(a){if("string"!==typeof a)throw Error("Expected string, but received: "+JSON.stringify(a)+".");return a}e.q=p;e.o=n;e.p=m;e.f=function(a,b,c){c=void 0===c?p:c;k(b);var d=Object.keys(b);d.sort();if(3!==d.length||"x"!==d[0]||"y"!==d[1]||"z"!==d[2])throw Error("Expected object to have keys ['x', 'y', 'z'], but received: "+JSON.stringify(b)+".");a[0]=c(b.x);a[1]=c(b.y);a[2]=c(b.z);return a};e.b=function(a,b){var c=a.length;if(!Array.isArray(b)||b.length!==c)throw Error("Incompatible sizes");
+for(var d=0;d<c;++d)if(!Number.isFinite(parseFloat(b[d])))throw Error("Non-finite value.");for(d=0;d<c;++d)a[d]=parseFloat(b[d]);return a};e.d=function(a,b){var c=a.length;if(!Array.isArray(b)||b.length!==c)throw Error("Incompatible sizes.");for(var d=0;d<c;++d){var f=parseInt(b[d],void 0);if(!Number.isInteger(f))throw Error("Non-integer value.");}for(d=0;d<c;++d)a[d]=parseInt(b[d],void 0);return a};e.g=c;e.i=d;e.h=h;e.a=function(a,b){if(!Array.isArray(a))throw Error("Expected array, but received: "+
+JSON.stringify(a)+".");return a.map(b)};e.c=q;e.u=k;e.s=t;e.A=r;e.t=function(a,b){var c=b.get(a);if(void 0===c)throw Error("Expected one of "+JSON.stringify(Array.from(b.keys()))+", "+("but received: "+JSON.stringify(a)+"."));return c};e.B=l;e.z=function(a){if(void 0!==a)return l(a)};e.y=function(a){if(void 0!==a)return t(a)};e.x=function(a){if(void 0!==a){if("boolean"===typeof a)return a;if("true"===a)return!0;if("false"===a)return!1;throw Error("Expected string or boolean but received: "+JSON.stringify(a));
+}};e.w=function(a,b,c){a=a.hasOwnProperty(b)?a[b]:void 0;try{return c(a)}catch(F){throw Error("Error parsing "+JSON.stringify(b)+" property: "+F.message);}};e.v=function(a,b){k(a);for(var c=new Map,d=$jscomp.makeIterator(Object.keys(a)),f=d.next();!f.done;f=d.next()){f=f.value;try{c.set(f,b(a[f]))}catch(G){throw Error("Error parsing value associated with key "+JSON.stringify(f)+": "+G.message);}}return c};e.r=function(a){if("number"!==typeof a||!Number.isFinite(a)||0>a||1<a)throw Error("Expected floating point number in [0,1], but received: "+
+JSON.stringify(a)+".");return a};e.e=function(a){if(""===a)return{};if(a.startsWith("{"))return h(a);var b={};a=a.split(/[&;]/);a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;var d=c.match(/^([^=&;]+)=([^&;]*)$/);if(null===d)throw Error("Invalid query string part: "+JSON.stringify(c)+".");b[d[1]]=decodeURIComponent(d[2])}return b};e.n=function(a,b){if("string"===typeof a&&null!==a.match(/^[a-zA-Z]/)&&(a=a.toUpperCase(),b.hasOwnProperty(a)))return b[a];throw Error("Invalid enum value: "+
+JSON.stringify(a)+".");};e.l=function(a){return q(u.p.create(),a,n)};e.k=function(a){return q(u.p.create(),a,m)};e.j=function(a){return q(u.p.create(),a,r)};e.m=function(a){if("boolean"!==typeof a)throw Error("Expected boolean, received: "+JSON.stringify(a));return a};var u=a(3);g=/('(?:[^'\\]|(?:\\.))*')/;e=/("(?:[^'\\]|(?:\\.))*")/;var A=new RegExp(g.source+"|"+e.source),y=new RegExp(e.source+"|"+g.source),z=/^((?:[^"'\\]|(?:\\.))*)"/,B=/^((?:[^"'\\]|(?:\\.))*)'/},function(g,e,a){function p(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return c});a.d(e,"a",function(){return b});var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=
+b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),c=function(){function a(){n(this,a);this.handlers=new Set;this.count=0;var b=this;this.dispatch=function(){var a=this,c=arguments;++b.count;b.handlers.forEach(function(b){b.apply(a,c)})}}m(a,[{key:"add",value:function(a){var b=this;this.handlers.add(a);return function(){return b.remove(a)}}},{key:"remove",value:function(a){return this.handlers.delete(a)}},
+{key:"dispose",value:function(){this.handlers=void 0}}]);return a}(),b=function(a){function b(){n(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);return b}(c)},function(g,e,a){function p(a){return a.reduce(function(a,b){return a.concat(b instanceof f.UnsubscriptionError?b.errors:b)},[])}var n=a(32),m=a(168),c=
+a(73),b=a(13),d=a(11),f=a(169);g=function(){function a(a){this.closed=!1;this._subscriptions=this._parents=this._parent=null;a&&(this._unsubscribe=a)}a.prototype.unsubscribe=function(){var a=!1;if(!this.closed){var h=this._parent;var t=this._parents,r=this._unsubscribe,l=this._subscriptions;this.closed=!0;this._subscriptions=this._parents=this._parent=null;for(var u=-1,e=t?t.length:0;h;)h.remove(this),h=++u<e&&t[u]||null;if(c.isFunction(r)&&(h=b.tryCatch(r).call(this),h===d.errorObject)){a=!0;var g=
+g||(d.errorObject.e instanceof f.UnsubscriptionError?p(d.errorObject.e.errors):[d.errorObject.e])}if(n.isArray(l))for(u=-1,e=l.length;++u<e;)h=l[u],m.isObject(h)&&(h=b.tryCatch(h.unsubscribe).call(h),h===d.errorObject&&(a=!0,g=g||[],h=d.errorObject.e,h instanceof f.UnsubscriptionError?g=g.concat(p(h.errors)):g.push(h)));if(a)throw new f.UnsubscriptionError(g);}};a.prototype.add=function(b){if(!b||b===a.EMPTY)return a.EMPTY;if(b===this)return this;var c=b;switch(typeof b){case "function":c=new a(b);
+case "object":if(c.closed||"function"!==typeof c.unsubscribe)return c;if(this.closed)return c.unsubscribe(),c;"function"!==typeof c._addParent&&(b=c,c=new a,c._subscriptions=[b]);break;default:throw Error("unrecognized teardown "+b+" added to Subscription.");}(this._subscriptions||(this._subscriptions=[])).push(c);c._addParent(this);return c};a.prototype.remove=function(a){var b=this._subscriptions;b&&(a=b.indexOf(a),-1!==a&&b.splice(a,1))};a.prototype._addParent=function(a){var b=this._parent,c=
+this._parents;b&&b!==a?c?-1===c.indexOf(a)&&c.push(a):this._parents=[a]:this._parent=a};a.EMPTY=function(a){a.closed=!0;return a}(new a);return a}();e.Subscription=g},function(g,e,a){e.a=function(a){for(;;){var e=a.firstElementChild;if(!e)break;a.removeChild(e)}};e.b=function(a){var e=a.parentElement;return e?(e.removeChild(a),!0):!1}},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)},n=a(0);g=a(2);var m=a(8),c=a(76),b=a(171),d=a(74),f=function(a){function b(b){a.call(this,b);this.destination=b}p(b,a);return b}(g.Subscriber);e.SubjectSubscriber=f;a=function(a){function k(){a.call(this);this.observers=[];this.hasError=this.isStopped=this.closed=!1;this.thrownError=null}p(k,a);k.prototype[d.rxSubscriber]=function(){return new f(this)};k.prototype.lift=function(a){var b=new h(this,this);b.operator=a;return b};k.prototype.next=function(a){if(this.closed)throw new c.ObjectUnsubscribedError;
+if(!this.isStopped){var b=this.observers,d=b.length;b=b.slice();for(var f=0;f<d;f++)b[f].next(a)}};k.prototype.error=function(a){if(this.closed)throw new c.ObjectUnsubscribedError;this.hasError=!0;this.thrownError=a;this.isStopped=!0;var b=this.observers,d=b.length;b=b.slice();for(var f=0;f<d;f++)b[f].error(a);this.observers.length=0};k.prototype.complete=function(){if(this.closed)throw new c.ObjectUnsubscribedError;this.isStopped=!0;var a=this.observers,b=a.length;a=a.slice();for(var d=0;d<b;d++)a[d].complete();
+this.observers.length=0};k.prototype.unsubscribe=function(){this.closed=this.isStopped=!0;this.observers=null};k.prototype._trySubscribe=function(b){if(this.closed)throw new c.ObjectUnsubscribedError;return a.prototype._trySubscribe.call(this,b)};k.prototype._subscribe=function(a){if(this.closed)throw new c.ObjectUnsubscribedError;if(this.hasError)return a.error(this.thrownError),m.Subscription.EMPTY;if(this.isStopped)return a.complete(),m.Subscription.EMPTY;this.observers.push(a);return new b.SubjectSubscription(this,
+a)};k.prototype.asObservable=function(){var a=new n.Observable;a.source=this;return a};k.create=function(a,b){return new h(a,b)};return k}(n.Observable);e.Subject=a;var h=function(a){function b(b,c){a.call(this);this.destination=b;this.source=c}p(b,a);b.prototype.next=function(a){var b=this.destination;b&&b.next&&b.next(a)};b.prototype.error=function(a){var b=this.destination;b&&b.error&&this.destination.error(a)};b.prototype.complete=function(){var a=this.destination;a&&a.complete&&this.destination.complete()};
+b.prototype._subscribe=function(a){return this.source?this.source.subscribe(a):m.Subscription.EMPTY};return b}(a);e.AnonymousSubject=h},function(g,e,a){e.errorObject={e:{}}},function(g,e,a){g=a(62);a="undefined"!==typeof self&&"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self;g="undefined"!==typeof window&&window||"undefined"!==typeof g&&g||a;e.root=g;if(!g)throw Error("RxJS could not find any global context (window, self, global)");},function(g,e,a){function p(){try{return m.apply(this,
+arguments)}catch(c){return n.errorObject.e=c,n.errorObject}}var n=a(11),m;e.tryCatch=function(a){m=a;return p}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}a.d(e,"b",function(){return b});a.d(e,"a",function(){return d});var m=a(7),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function a(b){n(this,a);this.value_=b;this.changed=new m.a}c(a,[{key:"value",get:function(){return this.value_},set:function(a){a!==this.value_&&(this.value_=a,this.changed.dispatch())}}]);
+return a}(),d=function(a){function b(a,c,d){d=void 0===d?a:d;n(this,b);a=(b.__proto__||Object.getPrototypeOf(b)).call(this,a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.validator=c;a.defaultValue=d;return a}p(b,a);c(b,[{key:"toJSON",value:function(){if(this.value_!==this.defaultValue)return this.value_}},{key:"reset",value:function(){this.value=this.defaultValue}},{key:"restoreState",value:function(a){if(void 0!==
+a){var b=this.validator;try{this.value=b(a);return}catch(t){}}this.value=this.defaultValue}}]);return b}(b)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){q.set(a,b)}e.e=c;e.d=function(a,d){c(a,function(a){var c=this,f=a.id,l=new b.b;a=d.call(this,a,l);this.set(f,{promise:a,cancellationToken:l});a.then(function(a){var b=a.value;a=a.transfers;c.delete(f);c.invoke("rpc.promise.response",{id:f,value:b},a)},function(a){c.delete(f);c.invoke("rpc.promise.response",
+{id:f,error:a.message,errorName:a.name})})})};a.d(e,"a",function(){return r});a.d(e,"b",function(){return l});a.d(e,"c",function(){return u});e.g=function(a){return function(b){b.prototype.RPC_TYPE_ID=a}};e.f=function(a){return function(b){if(void 0!==a)b.prototype.RPC_TYPE_ID=a;else if(a=b.prototype.RPC_TYPE_ID,void 0===a)throw Error("RPC_TYPE_ID should have already been defined");A.set(a,b)}};var b=a(26);g=a(1);var d=function z(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,
+b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return z(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),h=!("undefined"!==typeof Window&&self instanceof Window),q=new Map,k=function(a){function b(a,c){p(this,
+b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,c));d.name=a;d.message=c;return d}m(b,a);return b}(Error);c("rpc.promise.cancel",function(a){this.get(a.id).cancellationToken.cancel()});c("rpc.promise.response",function(a){var c=a.id,d=this.get(c),f=d.resolve;d=d.reject;this.delete(c);a.hasOwnProperty("value")?f(a.value):a.errorName===b.a.name?d(b.a):d(new k(a.errorName,a.error))});var t=h?-1:0,r=function(){function a(b){var c=this;p(this,a);this.target=b;this.objects=new Map;this.nextId=
+t;b.onmessage=function(a){a=a.data;q.get(a.functionName).call(c,a)}}f(a,[{key:"set",value:function(a,b){this.objects.set(a,b)}},{key:"delete",value:function(a){this.objects.delete(a)}},{key:"get",value:function(a){return this.objects.get(a)}},{key:"getRef",value:function(a){var b=this.get(a.id);b.referencedGeneration=a.gen;b.addRef();return b}},{key:"invoke",value:function(a,b,c){b.functionName=a;this.target.postMessage(b,c)}},{key:"promiseInvoke",value:function(a,c,d,f){var l=this;d=void 0===d?b.e:
+d;return Object(b.d)(d,function(b,d,h){var k=c.id=l.newId();l.set(k,{resolve:b,reject:d});l.invoke(a,c,f);h.add(function(){l.invoke("rpc.promise.cancel",{id:k})})})}},{key:"newId",value:function(){return h?this.nextId--:this.nextId++}},{key:"numObjects",get:function(){return this.objects.size}}]);return a}(),l=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.rpc=null;a.rpcId=null;return a}m(b,a);f(b,[{key:"initializeSharedObject",value:function(a,
+b){b=void 0===b?a.newId():b;this.rpc=a;this.rpcId=b;this.isOwner=!1;a.set(b,this)}},{key:"initializeCounterpart",value:function(a,b){b=void 0===b?{}:b;this.initializeSharedObject(a);this.referencedGeneration=this.unreferencedGeneration=0;this.isOwner=!0;b.id=this.rpcId;b.type=this.RPC_TYPE_ID;a.invoke("SharedObject.new",b)}},{key:"dispose",value:function(){d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"dispose",this).call(this)}},{key:"addCounterpartRef",value:function(){return{id:this.rpcId,
+gen:++this.referencedGeneration}}},{key:"refCountReachedZero",value:function(){!0===this.isOwner?this.referencedGeneration===this.unreferencedGeneration&&this.ownerDispose():!1===this.isOwner?this.rpc.invoke("SharedObject.refCountReachedZero",{id:this.rpcId,gen:this.referencedGeneration}):d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"refCountReachedZero",this).call(this)}},{key:"ownerDispose",value:function(){var a=this.rpc,c=this.rpcId;d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"refCountReachedZero",this).call(this);a.delete(c);a.invoke("SharedObject.dispose",{id:c})}},{key:"counterpartRefCountReachedZero",value:function(a){this.unreferencedGeneration=a;0===this.refCount&&a===this.referencedGeneration&&this.ownerDispose()}}]);return b}(g.a),u=function(a){function b(a,c){c=void 0===c?{}:c;p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c=void 0===c?{}:c;null!=a&&d.initializeSharedObject(a,c.id);return d}m(b,a);return b}(l);c("SharedObject.dispose",
+function(a){a=this.get(a.id);if(0!==a.refCount)throw Error("Attempted to dispose object with non-zero reference count.");a.disposed();this.delete(a.rpcId);a.rpcId=null;a.rpc=null});c("SharedObject.refCountReachedZero",function(a){this.get(a.id).counterpartRefCountReachedZero(a.gen)});var A=new Map;c("SharedObject.new",function(a){--(new (A.get(a.type))(this,a)).refCount})},function(g,e,a){a.d(e,"a",function(){return f});var p=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),n=new Uint32Array(2),m=[];for(g=2;36>=g;++g){e=Math.floor(32/Math.log2(g));a=Math.pow(g,e);var c=Math.floor(e/2),b=Math.pow(g,c);c=Math.pow(g,e-c);var d="^[0-"+String.fromCharCode(48+Math.min(9,g-1));10<g&&(d+="a-"+String.fromCharCode(97+g-11),d+="A-"+String.fromCharCode(65+g-11));d+="]{1,"+Math.ceil(64/Math.log2(g))+"}$";m[g]={lowDigits:e,
+lowBase:a,lowBase1:b,lowBase2:c,pattern:new RegExp(d)}}var f=function(){function a(b,c){b=void 0===b?0:b;c=void 0===c?0:c;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.low=b;this.high=c}p(a,[{key:"clone",value:function(){return new a(this.low,this.high)}},{key:"assign",value:function(a){this.low=a.low;this.high=a.high}},{key:"toString",value:function(a){a=void 0===a?10:a;var b=this.low,c=this.high;if(0===c)return b.toString(a);c*=4294967296;var d=m[a],f=d.lowBase;
+d=d.lowDigits;var h=c%f;c=Math.floor(c/f);b+=h;c+=Math.floor(b/f);b=(b%f).toString(a);return c.toString(a)+"0".repeat(d-b.length)+b}},{key:"tryParseString",value:function(a,b){b=void 0===b?10:b;var c=m[b],d=c.lowDigits,f=c.lowBase,h=c.lowBase1,k=c.lowBase2;if(!c.pattern.test(a))return!1;if(a.length<=d)return this.low=parseInt(a,b),this.high=0,!0;d=a.length-d;c=parseInt(a.substr(d),b);a=parseInt(a.substr(0,d),b);f=Math.floor(a*f/4294967296);h=c+a%4294967296*h%4294967296*k%4294967296;4294967296<h&&
+(++f,h-=4294967296);if(h>>>0!==h||f>>>0!==f)return!1;this.low=h;this.high=f;return!0}},{key:"parseString",value:function(a,b){if(!this.tryParseString(a,void 0===b?10:b))throw Error("Failed to parse string as uint64 value: "+JSON.stringify(a)+".");return this}},{key:"valid",value:function(){var a=this.low,b=this.high;return a>>>0===a&&b>>>0===b}},{key:"toJSON",value:function(){return this.toString()}},{key:"lshift",value:function(b){b&=63;if(0==b)return this.clone();var c=this.low,d=this.high;return 32>
+b?new a(c<<b,d<<b|c>>>32-b):new a(0,c<<b-32)}},{key:"rshift",value:function(b){b&=63;if(0==b)return this.clone();var c=this.low,d=this.high;return 32>b?new a(c>>>b|d<<32-b,d>>b):new a(d>>b-32,0<=d?0:-1)}},{key:"or",value:function(b){return new a(this.low|b.low,this.high|b.high)}},{key:"xor",value:function(b){return new a(this.low^b.low,this.high^b.high)}},{key:"and",value:function(b){return new a(this.low&b.low,this.high&b.high)}}],[{key:"less",value:function(a,b){return a.high<b.high||a.high===b.high&&
+a.low<b.low}},{key:"compare",value:function(a,b){return a.high-b.high||a.low-b.low}},{key:"equal",value:function(a,b){return a.low===b.low&&a.high===b.high}},{key:"min",value:function(b,c){return a.less(b,c)?b:c}},{key:"random",value:function(){crypto.getRandomValues(n);return new a(n[0],n[1])}},{key:"parseString",value:function(b,c){c=void 0===c?10:c;return(new a).parseString(b,c)}}]);return a}();f.ZERO=new f(0,0)},function(g,e,a){g=a(58);a=a(59);e.async=new a.AsyncScheduler(g.AsyncAction)},function(g,
+e,a){a.d(e,"i",function(){return m});e.q=function(a){return(a[3]+1/256*a[2]+1/65536*a[1]+1/16777216*a[0])/256};a.d(e,"g",function(){return c});a.d(e,"f",function(){return f});a.d(e,"h",function(){return h});a.d(e,"d",function(){return q});e.p=function(a,b){for(var c=0;4>c;++c)a[c]=(b>>8*c&255)/255;return a};e.a=function(a,b){b=void 0===b?1:b;switch(a){case p.b.FLOAT32:if(1===b)return"float";if(1<b&&4>b)return"vec"+b;break;case p.b.UINT8:if(1===b)return"uint8_t";if(1<b&&4>b)return"uint8x"+b+"_t";break;
+case p.b.UINT16:if(1===b)return"uint16_t";if(2===b)return"uint16x2_t";break;case p.b.UINT32:if(1===b)return"uint32_t";break;case p.b.UINT64:if(1===b)return"uint64_t"}throw Error("No shader type for "+p.b[a]+"["+b+"].");};var p=a(42),n=a(222),m="\nvec4 packFloat01ToFixedPoint(const float value) {\n  const vec4 shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n  const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n  vec4 result = fract(value * shift);\n  result -= result.xxyz * mask;\n  return result * 256.0 / 255.0;\n}\n",
+c="\nvec3 hueToRgb(float hue) {\n  float hue6 = hue * 6.0;\n  float r = abs(hue6 - 3.0) - 1.0;\n  float g = 2.0 - abs(hue6 - 2.0);\n  float b = 2.0 - abs(hue6 - 4.0);\n  return clamp(vec3(r, g, b), 0.0, 1.0);\n}\nvec3 hsvToRgb(vec3 c) {\n  vec3 hueRgb = hueToRgb(c.x);\n  return c.z * ((hueRgb - 1.0) * c.y + 1.0);\n}\n";g=["float","vec2","vec3","vec4"].map(function(a){return"\n"+a+" unnormalizeUint8("+a+" value) {\n  return floor(value * 255.0 + 0.5);\n}\n"}).join("");e.o=g;var b=[g,"\nfloat uintleToFloat(float v) {\n  return unnormalizeUint8(v);\n}\nfloat uintleToFloat(vec2 v) {\n  v = unnormalizeUint8(v);\n  return v.x + v.y * 256.0;\n}\nfloat uintleToFloat(vec3 v) {\n  v = unnormalizeUint8(v);\n  return v.x + v.y * 256.0 + v.z * 256.0 * 256.0;\n}\n"];
+e.n=b;var d=[g,"\nfloat uintbeToFloat(float v) {\n  return unnormalizeUint8(v);\n}\nfloat uintbeToFloat(vec2 v) {\n  v = unnormalizeUint8(v);\n  return v.y + v.x * 256.0;\n}\nfloat uintbeToFloat(vec3 v) {\n  v = unnormalizeUint8(v);\n  return v.z + v.y * 256.0 + v.x * 256.0 * 256.0;\n}\n"];(function(){var a=n.a===n.b.BIG?"be":"le";return[n.a===n.b.BIG?d:b,"\nfloat uintToFloat(float v) {\n  return uint"+a+"ToFloat(v);\n}\nfloat uintToFloat(vec2 v) {\n  return uint"+a+"ToFloat(v);\n}\nfloat uintToFloat(vec3 v) {\n  return uint"+
+a+"ToFloat(v);\n}\n"]})();e.l="\nstruct uint64_t {\n  vec4 low, high;\n};\nuint64_t toUint64(uint64_t x) { return x; }\n";e.m=[g,"\nstruct uint64_t {\n  vec4 low, high;\n};\nuint64_t toUint64(uint64_t x) { return x; }\n","\nstruct uint8_t {\n  float value;\n};\nstruct uint8x2_t {\n  vec2 value;\n};\nstruct uint8x3_t {\n  vec3 value;\n};\nstruct uint8x4_t {\n  vec4 value;\n};\nfloat toRaw(uint8_t x) { return unnormalizeUint8(x.value); }\nfloat toNormalized(uint8_t x) { return x.value; }\nvec2 toRaw(uint8x2_t x) { return unnormalizeUint8(x.value); }\nvec2 toNormalized(uint8x2_t x) { return x.value; }\nvec3 toRaw(uint8x3_t x) { return unnormalizeUint8(x.value); }\nvec3 toNormalized(uint8x3_t x) { return x.value; }\nvec4 toRaw(uint8x4_t x) { return unnormalizeUint8(x.value); }\nvec4 toNormalized(uint8x4_t x) { return x.value; }\nuint64_t toUint64(uint8_t x) {\n  uint64_t result;\n  result.low = vec4(x.value, 0.0, 0.0, 0.0);\n  result.high = vec4(0.0, 0.0, 0.0, 0.0);\n  return result;\n}\n"];
+e.e="\nfloat toRaw(float x) { return x; }\nfloat toNormalized(float x) { return x; }\nvec2 toRaw(vec2 x) { return x; }\nvec2 toNormalized(vec2 x) { return x; }\nvec3 toRaw(vec3 x) { return x; }\nvec3 toNormalized(vec3 x) { return x; }\nvec4 toRaw(vec4 x) { return x; }\nvec4 toNormalized(vec4 x) { return x; }\n";e.j=["\nstruct uint64_t {\n  vec4 low, high;\n};\nuint64_t toUint64(uint64_t x) { return x; }\n",b,"\nstruct uint16_t {\n  vec2 value;\n};\nstruct uint16x2_t {\n  vec4 value;\n};\nfloat toRaw(uint16_t x) { return uintleToFloat(x.value); }\nfloat toNormalized(uint16_t x) { return toRaw(x) / 65535.0; }\nvec2 toRaw(uint16x2_t x) { return vec2(uintleToFloat(x.value.xy), uintleToFloat(x.value.zw)); }\nvec2 toNormalized(uint16x2_t x) { return toRaw(x) / 65535.0; }\nuint64_t toUint64(uint16_t x) {\n  uint64_t result;\n  result.low = vec4(x.value, 0.0, 0.0);\n  result.high = vec4(0.0, 0.0, 0.0, 0.0);\n  return result;\n}\n"];
+g=["\nstruct uint64_t {\n  vec4 low, high;\n};\nuint64_t toUint64(uint64_t x) { return x; }\n","\nstruct uint32_t {\n  vec4 value;\n};\nuint64_t toUint64(uint32_t x) {\n  uint64_t result;\n  result.low = x.value;\n  result.high = vec4(0.0, 0.0, 0.0, 0.0);\n  return result;\n}\n"];e.k=g;var f=["\nvec3 getSubscriptsFromNormalized(vec3 normalizedPosition, vec3 size) {\n  return floor(min(normalizedPosition * size, size - 1.0));\n}\n","\nfloat getFortranOrderIndex(vec3 subscripts, vec3 size) {\n  return subscripts.x + size.x * (subscripts.y + size.y * subscripts.z);\n}\n",
+"\nfloat getFortranOrderIndexFromNormalized(vec3 normalizedPosition, vec3 size) {\n  return getFortranOrderIndex(getSubscriptsFromNormalized(normalizedPosition, size), size);\n}\n"],h="\nfloat imod(float x, float y) {\n  return x - y * floor(x / y);\n}\n",q="\nfloat exactDot(vec4 a, vec4 b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\nfloat exactDot(vec3 a, vec3 b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n";e.b=[g,"\nuint32_t add(uint32_t a, uint32_t b) {\n  uint32_t result;\n  float partial = 0.0;\n\n  partial += a.value.x * 255.0 + b.value.x * 255.0;\n  {\n    float byte0 = mod(partial, 256.0);\n    result.value.x = byte0 / 255.0;\n    partial = (partial - byte0) / 256.0;\n  }\n\n  partial += a.value.y * 255.0 + b.value.y * 255.0;\n  {\n    float byte1 = mod(partial, 256.0);\n    result.value.y = byte1 / 255.0;\n    partial = (partial - byte1) / 256.0;\n  }\n\n  partial += a.value.z * 255.0 + b.value.z * 255.0;\n  {\n    float byte2 = mod(partial, 256.0);\n    result.value.z = byte2 / 255.0;\n    partial = (partial - byte2) / 256.0;\n  }\n\n  partial += a.value.w * 255.0 + b.value.w * 255.0;\n  {\n    float byte3 = mod(partial, 256.0);\n    result.value.w = byte3 / 255.0;\n    partial = (partial - byte3) / 256.0;\n  }\n  return result;\n}\n"];
+e.c=[g,"\nfloat divmod(uint32_t dividend, float divisor, out uint32_t quotient) {\n\n  float partial = dividend.value.w * 255.0;\n  float remainder;\n\n  remainder = mod(partial, divisor);\n  quotient.value.w = (partial - remainder) / divisor / 255.0;\n  partial = remainder * 256.0 + dividend.value.z * 255.0;\n\n  remainder = mod(partial, divisor);\n  quotient.value.z = (partial - remainder) / divisor / 255.0;\n  partial = remainder * 256.0 + dividend.value.y * 255.0;\n\n  remainder = mod(partial, divisor);\n  quotient.value.y = (partial - remainder) / divisor / 255.0;\n  partial = remainder * 256.0 + dividend.value.x * 255.0;\n\n  remainder = mod(partial, divisor);\n  quotient.value.x = (partial - remainder) / divisor / 255.0;\n\n  return remainder;\n}\n"]},
+function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"d",function(){return d});a.d(e,"c",function(){return f});var n=a(65),m=a(42),c=a(3);a.d(e,"a",function(){return m.b});var b=function(){function a(a,b){for(var c=0;c<
+b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d;(function(a){a[a.UNKNOWN=0]="UNKNOWN";a[a.IMAGE=1]="IMAGE";a[a.SEGMENTATION=2]="SEGMENTATION"})(d||(d={}));var f=function(a){function f(a){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");var b=(f.__proto__||Object.getPrototypeOf(f)).call(this,a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+b=!b||"object"!==typeof b&&"function"!==typeof b?this:b;var d=b.dataType=a.dataType,l=b.numChannels=a.numChannels;b.chunkBytes=Object(c.k)(a.chunkDataSize)*m.a[d]*l;b.compressedSegmentationBlockSize=a.compressedSegmentationBlockSize;return b}p(f,a);b(f,[{key:"toObject",value:function(){return{transform:this.chunkLayout.transform,numChannels:this.numChannels,chunkDataSize:this.chunkDataSize,voxelSize:this.voxelSize,dataType:this.dataType,lowerVoxelBound:this.lowerVoxelBound,upperVoxelBound:this.upperVoxelBound,
+lowerClipBound:this.lowerClipBound,upperClipBound:this.upperClipBound,baseVoxelOffset:this.baseVoxelOffset,compressedSegmentationBlockSize:this.compressedSegmentationBlockSize}}}],[{key:"make",value:function(a){return new f(Object.assign({},a,{transform:Object(n.e)(a.transform,a.volumeSourceOptions)}))}},{key:"fromObject",value:function(a){return new f(a)}},{key:"withDefaultCompression",value:function(a){var b=a.compressedSegmentationBlockSize,c=a.dataType,l=a.voxelSize,h=a.transform,k=a.lowerVoxelBound,
+q=a.upperVoxelBound;h=Object(n.e)(h,a.volumeSourceOptions);void 0!==b||a.volumeType!==d.SEGMENTATION||c!==m.b.UINT32&&c!==m.b.UINT64||(b=Object(n.f)({voxelSize:l,transform:h,lowerVoxelBound:k,upperVoxelBound:q,maxVoxelsPerChunkLog2:9}));return new f(Object.assign({},a,{compressedSegmentationBlockSize:b,transform:h}))}},{key:"getDefaults",value:function(a){var b=Object.assign({},a,{transform:Object(n.e)(a.transform,a.volumeSourceOptions)});return(void 0===a.chunkDataSizes?Object(n.d)(b):a.chunkDataSizes).map(function(b){return f.withDefaultCompression(Object.assign({},
+a,{chunkDataSize:b}))})}}]);return f}(n.c);e.b="volume/RenderLayer"},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&
+b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c,d){d=void 0===d?{}:d;return f.a.forPromise(new Promise(function(f){f(a.getVolume(b,c,d))}),{initialMessage:"Retrieving metadata for volume "+c+".",delay:!0,errorPrefix:"Error retrieving metadata for volume "+c+": "})}e.d=c;a.d(e,"b",function(){return t});a.d(e,"c",function(){return r});a.d(e,"a",function(){return l});e.e=function(a,b){u.set(a,
+b)};e.f=function(a,b){A.set(a,b)};var b=a(21),d=a(19),f=a(40);g=a(1);var h=a(6),q=a(7),k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),t=function(a){function b(a,c,d){p(this,b);a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a));a.initialSpecification=c;a.manager=d;return a}m(b,a);k(b,[{key:"toJSON",
+value:function(){var a=this.layer;if(!a)return this.initialSpecification;a=a.toJSON();this.visible||(a.visible=!1);return a}}]);return b}(b.c),r=function(a){function b(a,c,d,f,l){p(this,b);var h=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));h.dataSourceProvider=a;h.layerManager=c;h.chunkManager=d;h.layerSelectedValues=f;h.voxelSize=l;h.changed=new q.a;h.voxelCoordinatesSet=new q.b;h.registerDisposer(c.layersChanged.add(h.changed.dispatch));h.registerDisposer(c.specificationChanged.add(h.changed.dispatch));
+return h}m(b,a);k(b,[{key:"reset",value:function(){this.layerManager.clear()}},{key:"restoreState",value:function(a){Object(h.u)(a);this.layerManager.clear();for(var b=$jscomp.makeIterator(Object.keys(a)),c=b.next();!c.done;c=b.next())c=c.value,this.layerManager.addManagedLayer(this.getLayer(c,a[c]))}},{key:"initializeLayerFromSpec",value:function(a,b){var f=this;a.initialSpecification=b;"string"===typeof b&&(b={source:b});Object(h.u)(b);var l=Object(h.w)(b,"type",h.z);a.visible=Object(h.w)(b,"visible",
+function(a){if(void 0===a||!0===a)return!0;if(!1===a)return!1;throw Error("Expected boolean, but received: "+JSON.stringify(a)+".");});var k=a.sourceUrl=Object(h.w)(b,"source",h.z);if(void 0===l){if(void 0===k)throw Error("Either layer 'type' or 'source' URL must be specified.");c(this.dataSourceProvider,this.chunkManager,k).then(function(c){if(-1!==f.layerManager.managedLayers.indexOf(a)){var l=A.get(c.volumeType);if(void 0!==l)a.layer=new l(f,b);else throw Error("Unsupported volume type: "+d.d[c.volumeType]+
+".");}})}else if(k=u.get(l),void 0!==k)a.layer=new k(this,b);else throw Error("Unsupported layer type: "+JSON.stringify(l)+".");}},{key:"getLayer",value:function(a,b){a=new t(a,b,this);this.initializeLayerFromSpec(a,b);return a}},{key:"add",value:function(a,b){this.layerManager.addManagedLayer(a,b)}},{key:"toJSON",value:function(){for(var a={},b=0,c=$jscomp.makeIterator(this.layerManager.managedLayers),d=c.next();!d.done;d=c.next()){d=d.value;var f=d.toJSON();null!=f&&(a[d.name]=f,++b)}if(0!==b)return a}},
+{key:"setVoxelCoordinates",value:function(a){this.voxelCoordinatesSet.dispatch(a)}},{key:"worker",get:function(){return this.chunkManager.rpc}},{key:"rpc",get:function(){return this.chunkManager.rpc}},{key:"rootLayers",get:function(){return this.layerManager}}]);return b}(g.a),l=function(a){function c(a){p(this,c);var d=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));d.master=a;d.changed=new q.a;d.layerManager=new b.a;d.registerDisposer(a);a=d.layerManager;d.registerDisposer(a.layersChanged.add(d.changed.dispatch));
+d.registerDisposer(a.specificationChanged.add(d.changed.dispatch));return d}m(c,a);k(c,[{key:"reset",value:function(){this.layerManager.clear()}},{key:"restoreState",value:function(a){var b=this.master.layerManager,c=[];a=$jscomp.makeIterator(new Set(Object(h.a)(a,h.B)));for(var d=a.next();!d.done;d=a.next()){d=d.value;var f=b.getLayerByName(d);if(void 0===f)throw Error("Undefined layer referenced in subset specification: "+JSON.stringify(d));c.push(f)}this.layerManager.clear();b=$jscomp.makeIterator(c);
+for(c=b.next();!c.done;c=b.next())this.layerManager.addManagedLayer(c.value.addRef())}},{key:"toJSON",value:function(){return this.layerManager.managedLayers.map(function(a){return a.name})}},{key:"initializeLayerFromSpec",value:function(a,b){this.master.initializeLayerFromSpec(a,b)}},{key:"getLayer",value:function(a,b){return this.master.getLayer(a,b)}},{key:"add",value:function(a,b){-1===this.master.layerManager.managedLayers.indexOf(a)&&(a.name=this.master.layerManager.getUniqueLayerName(a.name),
+this.master.layerManager.addManagedLayer(a.addRef()));this.layerManager.addManagedLayer(a,b)}},{key:"setVoxelCoordinates",value:function(a){this.master.setVoxelCoordinates(a)}},{key:"voxelCoordinatesSet",get:function(){return this.master.voxelCoordinatesSet}},{key:"worker",get:function(){return this.master.rpc}},{key:"rpc",get:function(){return this.master.rpc}},{key:"dataSourceProvider",get:function(){return this.master.dataSourceProvider}},{key:"chunkManager",get:function(){return this.master.chunkManager}},
+{key:"voxelSize",get:function(){return this.master.voxelSize}},{key:"layerSelectedValues",get:function(){return this.master.layerSelectedValues}},{key:"rootLayers",get:function(){return this.master.rootLayers}}]);return c}(g.a),u=new Map,A=new Map},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==
+typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"e",function(){return l});a.d(e,"h",function(){return u});a.d(e,"g",function(){return A});a.d(e,"f",function(){return y});a.d(e,"c",function(){return z});a.d(e,"a",function(){return B});
+a.d(e,"d",function(){return x});a.d(e,"b",function(){return v});e.i=function(a,b,c){return c.registerDisposer(new E(a,b,function(a){var b=a.redrawNeeded.add(function(){return c.scheduleRedraw()});c.scheduleRedraw();return function(){b();c.scheduleRedraw()}},c.visibility))};g=a(24);var c=a.n(g);g=a(219);var b=a.n(g);g=a(1);var d=a(3),f=a(7),h=a(220),q=a(16),k=a(49),t=function C(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),
+null!==a)return C(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},r=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),l=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.ready=!1;a.layerChanged=new f.a;a.redrawNeeded=
+new f.a;a.readyStateChanged=new f.a;a.voxelSize=null;a.boundingBox=null;return a}m(b,a);r(b,[{key:"setReady",value:function(a){this.ready=a;this.readyStateChanged.dispatch();this.layerChanged.dispatch()}},{key:"handleAction",value:function(a){}},{key:"getValueAt",value:function(a){}},{key:"transformPickedValue",value:function(a,b){return a}},{key:"updateMouseState",value:function(a,b,c){}}]);return b}(g.a),u=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments));a.visibility=new k.a;return a}m(b,a);return b}(l),A=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);r(b,[{key:"onShow",value:function(){}},{key:"onHide",value:function(){}}]);return b}(g.a),y=function(a){function b(a){a=void 0===a?[]:a;p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.layersChanged=new f.a;c.readyStateChanged=new f.a;c.specificationChanged=new f.a;c.renderLayers=[];a.forEach(c.addRenderLayer.bind(c));
+return c}m(b,a);r(b,[{key:"addRenderLayer",value:function(a){this.renderLayers.push(a);var b=this.layersChanged,c=this.readyStateChanged;this.registerDisposer(a);this.registerDisposer(a.layerChanged.add(b.dispatch));this.registerDisposer(a.readyStateChanged.add(c.dispatch));c.dispatch();b.dispatch()}},{key:"getValueAt",value:function(a,b){var c=this.renderLayers,d=b.pickedRenderLayer;if(null!==d&&-1!==c.indexOf(d)){var f=d.transformPickedValue(b.pickedValue,b.pickedOffset);return this.transformPickedValue(f)}b=
+$jscomp.makeIterator(c);for(c=b.next();!c.done&&(c=c.value,!c.ready||(f=c.getValueAt(a),void 0===f));c=b.next());return this.transformPickedValue(f)}},{key:"transformPickedValue",value:function(a){return a}},{key:"toJSON",value:function(){return null}},{key:"makeDropdown",value:function(a){}},{key:"handleAction",value:function(a){}}]);return b}(g.a),z=function(a){function b(a,c,d){c=void 0===c?null:c;d=void 0===d?!0:d;p(this,b);var l=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));l.name=
+a;l.visible=d;l.readyStateChanged=new f.a;l.layerChanged=new f.a;l.specificationChanged=new f.a;l.wasDisposed=!1;l.layer_=null;l.layer=c;return l}m(b,a);r(b,[{key:"handleLayerChanged",value:function(){this.visible&&this.layerChanged.dispatch()}},{key:"setVisible",value:function(a){a!==this.visible&&(this.visible=a,this.layerChanged.dispatch())}},{key:"disposed",value:function(){this.wasDisposed=!0;this.layer=null;t(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},
+{key:"layer",get:function(){return this.layer_},set:function(a){var b=this,c=this.layer_;null!=c&&(this.unregisterUserLayer(),c.dispose());this.layer_=a;if(null!=a){var d=[a.layersChanged.add(function(){return b.handleLayerChanged()}),a.readyStateChanged.add(this.readyStateChanged.dispatch),a.specificationChanged.add(this.specificationChanged.dispatch)];this.unregisterUserLayer=function(){d.forEach(function(a){return a()})};this.readyStateChanged.dispatch();this.handleLayerChanged()}}}]);return b}(g.a),
+B=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));a.managedLayers=[];a.layersChanged=new f.a;a.readyStateChanged=new f.a;a.specificationChanged=new f.a;a.boundPositions=new WeakSet;a.numDirectUsers=0;a.scheduleRemoveLayersWithSingleRef=a.registerCancellable(c()(function(){return a.removeLayersWithSingleRef()},0));a.layersChanged.add(a.scheduleRemoveLayersWithSingleRef);return a}m(b,a);r(b,[{key:"filter",value:function(a){var b=this,c=!1;this.managedLayers=
+this.managedLayers.filter(function(d){return a(d)?!0:(b.unbindManagedLayer(d),c=!0,!1)});c&&this.layersChanged.dispatch()}},{key:"removeLayersWithSingleRef",value:function(){0<this.numDirectUsers||this.filter(function(a){return 1!==a.refCount})}},{key:"updateSignalBindings",value:function(a,b){b(a.layerChanged,this.layersChanged.dispatch);b(a.readyStateChanged,this.readyStateChanged.dispatch);b(a.specificationChanged,this.specificationChanged.dispatch)}},{key:"useDirectly",value:function(){var a=
+this;1===++this.numDirectUsers&&this.layersChanged.remove(this.scheduleRemoveLayersWithSingleRef);return function(){0===--a.numDirectUsers&&(a.layersChanged.add(a.scheduleRemoveLayersWithSingleRef),a.scheduleRemoveLayersWithSingleRef())}}},{key:"addManagedLayer",value:function(a,b){this.updateSignalBindings(a,h.a);void 0===b&&(b=this.managedLayers.length);this.managedLayers.splice(b,0,a);this.layersChanged.dispatch();this.readyStateChanged.dispatch();return a}},{key:"addUserLayer",value:function(a,
+b,c){a=new z(a,b,c);return this.addManagedLayer(a)}},{key:"readyRenderLayers",value:function(){function a(a,u){for(;;)switch(b){case 0:k=$jscomp.makeIterator(r.managedLayers),h=k.next();case 1:if(h.done){b=3;break}l=h.value;if(l.visible&&l.layer){b=4;break}b=2;break;case 4:f=$jscomp.makeIterator(l.layer.renderLayers),d=f.next();case 5:if(d.done){b=7;break}c=d.value;if(c.ready){b=8;break}b=6;break;case 8:return b=9,{value:c,done:!1};case 9:if(void 0===u){b=10;break}b=-1;throw u;case 10:case 6:d=f.next();
+b=5;break;case 7:case 2:h=k.next();b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,c,d,f,l,h,k,r=this,u={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();u[Symbol.iterator]=function(){return this};return u}},{key:"unbindManagedLayer",value:function(a){this.updateSignalBindings(a,h.b);a.dispose()}},{key:"clear",value:function(){for(var a=$jscomp.makeIterator(this.managedLayers),
+b=a.next();!b.done;b=a.next())this.unbindManagedLayer(b.value);this.managedLayers.length=0;this.layersChanged.dispatch()}},{key:"remove",value:function(a){this.unbindManagedLayer(this.managedLayers[a]);this.managedLayers.splice(a,1);this.layersChanged.dispatch()}},{key:"removeManagedLayer",value:function(a){a=this.managedLayers.indexOf(a);if(-1===a)throw Error("Internal error: invalid managed layer.");this.remove(a)}},{key:"reorderManagedLayer",value:function(a,b){var c=this.managedLayers.length;
+a===b||0>a||a>=c||0>b||b>=c||(a=$jscomp.makeIterator(this.managedLayers.splice(a,1)).next().value,this.managedLayers.splice(b,0,a),this.layersChanged.dispatch())}},{key:"disposed",value:function(){this.clear();t(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},{key:"getLayerByName",value:function(a){return this.managedLayers.find(function(b){return b.name===a})}},{key:"getUniqueLayerName",value:function(a){for(var b=a,c=0;void 0!==this.getLayerByName(b);)b=a+
+++c;return b}},{key:"has",value:function(a){return-1!==this.managedLayers.indexOf(a)}},{key:"initializePosition",value:function(a){var b=this,d=this.boundPositions;d.has(a)||(d.add(a),d=c()(function(){b.updatePositionFromLayers(a)}),this.readyStateChanged.add(d),a.changed.add(d),this.updatePositionFromLayers(a))}},{key:"updatePositionFromLayers",value:function(a){if(!a.valid)for(var b=$jscomp.makeIterator(this.managedLayers),c=b.next();!c.done;c=b.next())if(c=c.value.layer,null!=c){c=$jscomp.makeIterator(c.renderLayers);
+for(var f=c.next();!f.done;f=c.next())if(f=f.value,f.ready&&(a.voxelSize.valid||null==f.voxelSize||(d.p.copy(a.voxelSize.size,f.voxelSize),a.voxelSize.setValid()),!a.spatialCoordinatesValid&&!a.voxelCoordinatesValid&&null!=f.boundingBox)){f=f.boundingBox;var l=a.spatialCoordinates;d.p.add(l,f.lower,f.upper);d.p.scale(l,l,.5);a.spatialCoordinatesValid=!0;a.changed.dispatch()}}}},{key:"invokeAction",value:function(a){for(var b=$jscomp.makeIterator(this.managedLayers),c=b.next();!c.done;c=b.next())if(c=
+c.value,null!==c.layer&&c.visible){c=c.layer;c.handleAction(a);c=$jscomp.makeIterator(c.renderLayers);for(var d=c.next();!d.done;d=c.next())d=d.value,d.ready&&d.handleAction(a)}}},{key:"renderLayers",get:function(){var a=this;$jscomp.initSymbol();$jscomp.initSymbolIterator();var b={};return b[Symbol.iterator]=function(){function b(b,r){for(;;)switch(c){case 0:u=$jscomp.makeIterator(a.managedLayers),k=u.next();case 1:if(k.done){c=3;break}h=k.value;if(null!==h.layer){c=4;break}c=2;break;case 4:l=$jscomp.makeIterator(h.layer.renderLayers),
+f=l.next();case 5:if(f.done){c=7;break}d=f.value;c=8;return{value:d,done:!1};case 8:if(void 0===r){c=9;break}c=-1;throw r;case 9:case 6:f=l.next();c=5;break;case 7:case 2:k=u.next();c=1;break;case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,f,l,h,k,u,r={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();r[Symbol.iterator]=function(){return this};return r},b}},{key:"visibleRenderLayers",
+get:function(){var a=this;$jscomp.initSymbol();$jscomp.initSymbolIterator();var b={};return b[Symbol.iterator]=function(){function b(b,u){for(;;)switch(c){case 0:r=$jscomp.makeIterator(a.managedLayers),k=r.next();case 1:if(k.done){c=3;break}h=k.value;if(null!==h.layer&&h.visible){c=4;break}c=2;break;case 4:l=$jscomp.makeIterator(h.layer.renderLayers),f=l.next();case 5:if(f.done){c=7;break}d=f.value;c=8;return{value:d,done:!1};case 8:if(void 0===u){c=9;break}c=-1;throw u;case 9:case 6:f=l.next();c=
+5;break;case 7:case 2:k=r.next();c=1;break;case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,f,l,h,k,r,u={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();u[Symbol.iterator]=function(){return this};return u},b}}]);return b}(g.a),x=function(){function a(){var c=this;p(this,a);this.changed=new f.a;this.position=d.p.create();this.active=!1;this.pickedRenderLayer=null;this.pickedValue=
+new q.a(0,0);this.pickedOffset=0;this.updater=void 0;this.stale=!1;this.triggerUpdate=b()(function(){c.update()},50,{leading:!0,trailing:!0})}r(a,[{key:"updateUnconditionally",value:function(){this.triggerUpdate.cancel();this.update();return this.active}},{key:"updateIfStale",value:function(){this.stale&&this.update()}},{key:"update",value:function(){var a=this.updater;this.stale=!1;a?this.setActive(a(this)):this.setActive(!1)}},{key:"setActive",value:function(a){this.stale=!1;if(this.active!==a||
+!0===a)this.active=a,this.changed.dispatch()}}]);return a}(),v=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.layerManager=a;d.mouseState=c;d.values=new Map;d.changed=new f.a;d.needsUpdate=!0;d.registerDisposer(c.changed.add(function(){d.handleChange()}));d.registerDisposer(a.layersChanged.add(function(){d.handleLayerChange()}));return d}m(b,a);r(b,[{key:"handleLayerChange",value:function(){this.mouseState.active&&this.handleChange()}},{key:"handleChange",
+value:function(){this.needsUpdate=!0;this.changed.dispatch()}},{key:"update",value:function(){if(this.needsUpdate){this.needsUpdate=!1;var a=this.values,b=this.mouseState;a.clear();if(b.active)for(var c=b.position,d=$jscomp.makeIterator(this.layerManager.managedLayers),f=d.next();!f.done;f=d.next()){f=f.value;var l=f.layer;f.visible&&l&&a.set(l,l.getValueAt(c,b))}}}},{key:"get",value:function(a){this.update();return this.values.get(a)}},{key:"toJSON",value:function(){this.update();for(var a={},b=
+this.values,c=$jscomp.makeIterator(this.layerManager.managedLayers),d=c.next();!d.done;d=c.next()){d=d.value;var f=d.layer;f&&(f=b.get(f),void 0!==f&&(f instanceof q.a&&(f={t:"u64",v:f}),a[d.name]=f))}return a}}]);return b}(g.a),E=function(a){function c(a,d,f,l){p(this,c);var h=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));h.layerManager=a;h.renderLayerType=d;h.layerAdded=f;h.visibility=l;h.visibleLayers=new Map;h.newVisibleLayers=new Set;h.throttledUpdateVisibleLayers=b()(function(){h.updateVisibleLayers()},
+0);h.registerDisposer(a.layersChanged.add(function(){h.handleLayersChanged()}));h.updateVisibleLayers();return h}m(c,a);r(c,[{key:"handleLayersChanged",value:function(){this.throttledUpdateVisibleLayers()}},{key:"disposed",value:function(){this.throttledUpdateVisibleLayers.cancel();this.visibleLayers.forEach(function(a){return a()});this.visibleLayers.clear();t(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}},{key:"updateVisibleLayers",value:function(){for(var a=
+this.visibleLayers,b=this.newVisibleLayers,c=this.renderLayerType,d=this.layerAdded,f={},l=$jscomp.makeIterator(this.layerManager.readyRenderLayers()),h=l.next();!h.done;f={disposer:f.disposer,visibilityDisposer:f.visibilityDisposer,typedLayer:f.typedLayer},h=l.next())h=h.value,h instanceof c&&(f.typedLayer=h,b.add(f.typedLayer),a.has(f.typedLayer)||(f.visibilityDisposer=f.typedLayer.visibility.add(this.visibility),f.disposer=d(f.typedLayer),a.set(f.typedLayer.addRef(),function(a){return function(){a.disposer();
+a.visibilityDisposer();a.typedLayer.dispose()}}(f))));c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())f=$jscomp.makeIterator(d.value),d=f.next().value,f=f.next().value,b.has(d)||(a.delete(d),f());b.clear()}},{key:"getVisibleLayers",value:function(){this.throttledUpdateVisibleLayers.flush();return[].concat($jscomp.arrayFromIterable(this.visibleLayers.keys()))}}]);return c}(g.a)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){var c="";b&1&&(c+="control+");b&2&&(c+="alt+");b&4&&(c+="meta+");b&8&&(c+="shift+");return c+a}function m(a){return"string"===typeof a?{action:a}:a}function c(a){function b(b,l){for(;;)switch(c){case 0:h=a.indexOf(":");a:{b=void 0;var k=a.substring(h+1).split("+"),u=0;k=$jscomp.makeIterator(k);for(var r=
+k.next();!r.done;r=k.next())switch(r=r.value,r){case "control":u|=1;break;case "alt":u|=2;break;case "meta":u|=4;break;case "shift":u|=8;break;default:if(void 0===b)b=r;else{f=void 0;break a}}f=void 0===b?void 0:n(b,u)}if(void 0!==f){c=1;break}c=-1;throw Error("Invalid event identifier: "+JSON.stringify(a));case 1:if(-1===h){c=2;break}d=a.substring(0,h);if("at"===d||"bubble"===d){c=4;break}c=-1;throw Error("Invalid event phase: "+JSON.stringify(d));case 4:return c=5,{value:d+":"+f,done:!1};case 5:if(void 0===
+l){c=6;break}c=-1;throw l;case 6:c=3;break;case 2:return c=7,{value:"at:"+f,done:!1};case 7:if(void 0===l){c=8;break}c=-1;throw l;case 8:return c=9,{value:"bubble:"+f,done:!1};case 9:if(void 0===l){c=10;break}c=-1;throw l;case 10:case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,f,h,k={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();k[Symbol.iterator]=function(){return this};
+return k}a.d(e,"a",function(){return q});e.b=function(a,b,c){a=k[b.eventPhase]+":"+n(a,(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.metaKey?4:0)|(b.shiftKey?8:0));c=c.get(a);void 0!==c&&(!1!==c.stopPropagation&&b.stopPropagation(),a=new CustomEvent("action:"+c.action,{bubbles:!0,detail:b,cancelable:!0}),a=!b.target.dispatchEvent(a),(!1!==c.preventDefault||a)&&b.preventDefault())};e.c=function(a,c,d,f){return Object(b.c)(a,"action:"+c,d,f)};var b=a(1);g=a(226);var d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=
+b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function r(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return r(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},h;(function(a){a[a.CONTROL=1]="CONTROL";a[a.ALT=2]="ALT";a[a.META=4]="META";
+a[a.SHIFT=8]="SHIFT"})(h||(h={}));var q=function(a){function b(){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);d(b,[{key:"setFromObject",value:function(a){for(var b=$jscomp.makeIterator(Object.keys(a)),c=b.next();!c.done;c=b.next())c=c.value,
+this.set(c,m(a[c]))}},{key:"set",value:function(a,d){d=m(d);a=$jscomp.makeIterator(c(a));for(var l=a.next();!l.done;l=a.next())l=l.value,f(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"set",this).call(this,l,d)}},{key:"delete",value:function(a){a=$jscomp.makeIterator(c(a));for(var d=a.next();!d.done;d=a.next())d=d.value,f(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"delete",this).call(this,d)}}],[{key:"fromObject",value:function(a,c){c=void 0===c?{}:c;var d=new b;d.label=
+c.label;if(void 0!==c.parents){c=$jscomp.makeIterator(c.parents);for(var f=c.next();!f.done;f=c.next()){var l=$jscomp.makeIterator(f.value);f=l.next().value;l=l.next().value;d.addParent(f,l)}}c=$jscomp.makeIterator(Object.keys(a));for(f=c.next();!f.done;f=c.next())f=f.value,d.set(f,m(a[f]));return d}}]);return b}(g.a),k=[];k[Event.AT_TARGET]="at";k[Event.CAPTURING_PHASE]="capture";k[Event.BUBBLING_PHASE]="bubble"},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(a){if("number"!==typeof a||
+0>a)throw Error("Expected non-negative number as limit, but received: "+JSON.stringify(a));return a}a.d(e,"b",function(){return y});a.d(e,"a",function(){return z});a.d(e,"d",function(){return B});a.d(e,"c",function(){return x});a.d(e,"e",function(){return v});e.f=function(a,b){a=function(a){function b(a){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];m(this,b);var f;d=p(this,(f=b.__proto__||Object.getPrototypeOf(b)).call.apply(f,[].concat([this],$jscomp.arrayFromIterable(c))));d.parameters=
+c[1].parameters;return d}n(b,a);u(b,[{key:"initializeCounterpart",value:function(a,c){c.parameters=this.parameters;l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeCounterpart",this).call(this,a,c)}}],[{key:"encodeOptions",value:function(a){var c=l(b.__proto__||Object.getPrototypeOf(b),"encodeOptions",this).call(this,a);c.parameters=a.parameters;return c}}]);return b}(a);return a=A([Object(r.g)(b.RPC_ID)],a)};var b=a(25),d=a(83),f=a(14),h=a(6),q=a(84),k=a(27),t=a(7),r=a(15),
+l=function F(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return F(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},u=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),A=this&&this.__decorate||
+function(a,b,c,d){var f=arguments.length,l=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)l=Reflect.decorate(a,b,c,d);else for(var k=a.length-1;0<=k;k--)if(h=a[k])l=(3>f?h(l):3<f?h(b,c,l):h(b,c))||l;return 3<f&&l&&Object.defineProperty(b,c,l),l},y=function(){function a(c){m(this,a);this.source=c;this.state=b.d.SYSTEM_MEMORY}u(a,[{key:"copyToGPU",value:function(a){this.state=b.d.GPU_MEMORY}},{key:"freeGPUMemory",value:function(a){this.state=
+b.d.SYSTEM_MEMORY}},{key:"gl",get:function(){return this.source.gl}}]);return a}(),z=function C(a){var b=void 0===a?{}:a;a=void 0===b.defaultItemLimit?Number.POSITIVE_INFINITY:b.defaultItemLimit;b=void 0===b.defaultSizeLimit?Number.POSITIVE_INFINITY:b.defaultSizeLimit;m(this,C);this.sizeLimit=new f.a(b,c);this.itemLimit=new f.a(a,c)},B=function(a){function c(a,b,f){m(this,c);var l=p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));l.gl=b;l.capacities=f;l.visibleChunksChanged=new t.a;l.pendingChunkUpdates=
+null;l.pendingChunkUpdatesTail=null;l.chunkUpdateDeadline=null;l.chunkUpdateDelay=30;b=function(b){return{itemLimit:l.registerDisposer(d.a.makeFromExisting(a,b.itemLimit)).rpcId,sizeLimit:l.registerDisposer(d.a.makeFromExisting(a,b.sizeLimit)).rpcId}};l.initializeCounterpart(a,{gpuMemoryCapacity:b(f.gpuMemory),systemMemoryCapacity:b(f.systemMemory),downloadCapacity:b(f.download)});return l}n(c,a);u(c,[{key:"scheduleChunkUpdate",value:function(){var a=this.chunkUpdateDeadline;a=null===a||Date.now()<
+a?0:this.chunkUpdateDelay;setTimeout(this.processPendingChunkUpdates.bind(this),a)}},{key:"processPendingChunkUpdates",value:function(){var a=this.chunkUpdateDeadline;null===a&&(a=Date.now()+30);for(var c=!1;;){if(Date.now()>a){setTimeout(this.processPendingChunkUpdates.bind(this),this.chunkUpdateDelay);break}var d=this.pendingChunkUpdates,f=this.rpc.get(d.source);if(void 0===d.id){c=$jscomp.makeIterator(f.chunks.keys());for(var l=c.next();!l.done;l=c.next())f.deleteChunk(l.value);c=!0}else if(l=
+d.state,l===b.d.EXPIRED)f.deleteChunk(d.id);else{var h=d.id;if(d["new"]){var k=f.getChunk(d);f.addChunk(h,k)}else k=f.chunks.get(h);if(l!==k.state)switch(l){case b.d.GPU_MEMORY:k.copyToGPU(this.gl);c=!0;break;case b.d.SYSTEM_MEMORY:k.freeGPUMemory(this.gl);break;default:throw Error("INTERNAL ERROR: Invalid chunk state: "+b.d[l]);}}d=this.pendingChunkUpdates=d.nextUpdate;--window.numPendingChunkUpdates;if(null==d){this.pendingChunkUpdatesTail=null;break}}c&&this.visibleChunksChanged.dispatch()}}]);
+return c}(r.b);B=A([Object(r.g)(b.b)],B);window.numPendingChunkUpdates=0;Object(r.e)("Chunk.update",function(a){var b=this.get(a.source).chunkManager.chunkQueueManager,c=b.pendingChunkUpdatesTail;++window.numPendingChunkUpdates;null==c?(b.pendingChunkUpdates=a,b.pendingChunkUpdatesTail=a,b.scheduleChunkUpdate()):(c.nextUpdate=a,b.pendingChunkUpdatesTail=a)});var x=function(a){function b(a){m(this,b);var c=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.chunkQueueManager=a;c.memoize=new q.b;
+c.registerDisposer(a.addRef());c.initializeCounterpart(a.rpc,{chunkQueueManager:a.rpcId});return c}n(b,a);u(b,[{key:"getChunkSource",value:function(a,b){var c=this,d=a.encodeOptions(b);d.constructorId=Object(k.a)(a);d=Object(h.g)(d);return this.memoize.get(d,function(){var d=new a(c,b);d.initializeCounterpart(c.rpc,{});return d})}},{key:"gl",get:function(){return this.chunkQueueManager.gl}}]);return b}(r.b);x=A([Object(r.g)(b.a)],x);var v=function(a){function c(a,b){m(this,c);b=p(this,(c.__proto__||
+Object.getPrototypeOf(c)).call(this));b.chunkManager=a;b.chunks=new Map;return b}n(c,a);u(c,[{key:"initializeCounterpart",value:function(a,b){b.chunkManager=this.chunkManager.rpcId;l(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"initializeCounterpart",this).call(this,a,b)}},{key:"deleteChunk",value:function(a){var c=this.chunks.get(a);c.state===b.d.GPU_MEMORY&&c.freeGPUMemory(this.gl);this.chunks.delete(a)}},{key:"addChunk",value:function(a,b){this.chunks.set(a,b)}},{key:"getChunk",value:function(a){throw Error("Not implemented.");
+}},{key:"invalidateCache",value:function(){this.rpc.invoke(b.c,{id:this.rpcId})}},{key:"gl",get:function(){return this.chunkManager.chunkQueueManager.gl}}],[{key:"encodeOptions",value:function(a){return{}}}]);return c}(r.b)},function(g,e,a){var p=a(86),n=a(211),m=a(213),c=Math.max,b=Math.min;g.exports=function(a,f,h){function d(b){var c=u,d=e;u=e=void 0;x=b;return g=a.apply(d,c)}function k(a){var b=a-B;a-=x;return void 0===B||b>=f||0>b||E&&a>=C}function t(){var a=n();if(k(a))return r(a);var c=setTimeout;
+var d=a-x;a=f-(a-B);d=E?b(a,C-d):a;z=c(t,d)}function r(a){z=void 0;if(F&&u)return d(a);u=e=void 0;return g}function l(){var a=n(),b=k(a);u=arguments;e=this;B=a;if(b){if(void 0===z)return x=a=B,z=setTimeout(t,f),v?d(a):g;if(E)return z=setTimeout(t,f),d(B)}void 0===z&&(z=setTimeout(t,f));return g}var u,e,g,z,B,x=0,v=!1,E=!1,F=!0;if("function"!=typeof a)throw new TypeError("Expected a function");f=m(f)||0;if(p(h)){v=!!h.leading;var C=(E="maxWait"in h)?c(m(h.maxWait)||0,f):C;F="trailing"in h?!!h.trailing:
+F}l.cancel=function(){void 0!==z&&clearTimeout(z);x=0;u=B=e=z=void 0};l.flush=function(){return void 0===z?g:r(n())};return l}},function(g,e,a){a.d(e,"d",function(){return p});var p;(function(a){a[a.GPU_MEMORY=0]="GPU_MEMORY";a[a.SYSTEM_MEMORY=1]="SYSTEM_MEMORY";a[a.SYSTEM_MEMORY_WORKER=2]="SYSTEM_MEMORY_WORKER";a[a.DOWNLOADING=3]="DOWNLOADING";a[a.QUEUED=4]="QUEUED";a[a.NEW=5]="NEW";a[a.FAILED=6]="FAILED";a[a.EXPIRED=7]="EXPIRED"})(p||(p={}));var n;(function(a){a[a.FIRST_TIER=0]="FIRST_TIER";a[a.FIRST_ORDERED_TIER=
+0]="FIRST_ORDERED_TIER";a[a.VISIBLE=0]="VISIBLE";a[a.PREFETCH=1]="PREFETCH";a[a.LAST_ORDERED_TIER=1]="LAST_ORDERED_TIER";a[a.RECENT=2]="RECENT";a[a.LAST_TIER=2]="LAST_TIER"})(n||(n={}));e.b="ChunkQueueManager";e.a="ChunkManager";e.c="ChunkSource.invalidate"},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return d});a.d(e,"c",function(){return f});e.d=function(a,c){return new Promise(function(f,h){if(a===b)c(f,h,b);else{var k=new d,l=a.add(function(){k.cancel()});c(function(a){l();f(a)},function(a){l();h(a)},k)}})};var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();g=new (function(){function a(){n(this,a);this.name="CancellationError";this.message="CANCELED"}m(a,[{key:"toString",value:function(){return"CANCELED"}}]);return a}());e.a=g;var c=function(){},b={isCanceled:!1,add:function(){return c},remove:c};e.e=b;var d=function(){function a(){n(this,a)}m(a,[{key:"cancel",value:function(){var a=this.handlers;
+if(null!==a&&(this.handlers=null,void 0!==a)){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value,b()}}},{key:"add",value:function(a){var b=this,d=this.handlers;if(null===d)return a(),c;void 0===d&&(d=this.handlers=new Set);d.add(a);return function(){b.remove(a)}}},{key:"remove",value:function(a){var b=this.handlers;null!=b&&b.delete(a)}},{key:"isCanceled",get:function(){return null===this.handlers}}]);return a}(),f=function(a){function c(){n(this,c);var a=(c.__proto__||Object.getPrototypeOf(c)).apply(this,
+arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.consumers=new Set;return a}p(c,a);m(c,[{key:"addConsumer",value:function(a){var c=this;a=void 0===a?b:a;var d=this.consumers;d.has(a)||a.isCanceled||(d.add(a),a.add(function(){d.delete(a);0===d.size&&c.cancel()}))}}]);return c}(d)},function(g,e,a){e.a=function(a){if(a instanceof Object){var c=a[p];void 0===c&&(c=a[p]=n++);return"o"+c}return""+
+JSON.stringify(a)};$jscomp.initSymbol();var p=Symbol("objectId"),n=0},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&
+b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){for(var c=$jscomp.makeIterator(q),d=c.next();!d.done;d=c.next())if(d=d.value,d=d(a,b),null!=d)return d;throw Error("No chunk format handler found.");}e.c=function(a){q.push(a)};a.d(e,"b",function(){return k});a.d(e,"a",function(){return t});g=a(43);var b=a(3),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=b.p.create(),h=b.p.create(),q=[],k=function(a){function l(a,b){p(this,l);b=n(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,a,b));b.chunkFormatHandler=b.registerDisposer(c(a.chunkQueueManager.gl,b.spec));return b}m(l,a);d(l,[{key:"getValueAt",value:function(a){var c=this.spec,d=c.chunkLayout,l=d.size;d.globalToLocalSpatial(h,
+a);for(a=0;3>a;++a)f[a]=Math.floor(h[a]/l[a]);a=Object(b.q)(f);a=this.chunks.get(a);if(!a)return null;d=c.voxelSize;for(var k=0;3>k;++k)f[k]=Math.floor((h[k]-f[k]*l[k])/d[k]);l=a.chunkDataSize;for(d=0;3>d;++d)if(f[d]>=l[d])return;c=c.numChannels;if(1===c)return a.getChannelValueAt(f,0);l=Array(c);for(d=0;d<c;++d)l[d]=a.getChannelValueAt(f,d);return l}},{key:"getChunk",value:function(a){return this.chunkFormatHandler.getChunk(this,a)}},{key:"chunkFormat",get:function(){return this.chunkFormatHandler.chunkFormat}}]);
+return l}(g.c),t=function(a){function b(a,c){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c))}m(b,a);d(b,[{key:"chunkFormat",get:function(){return this.source.chunkFormat}}]);return b}(g.b)},function(g,e,a){a.d(e,"a",function(){return p});e.b=1E-6;var p="undefined"!==typeof Float32Array?Float32Array:Array;e.c=Math.random},function(g,e,a){a.d(e,"a",function(){return m});var p=a(35),n=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=d.enumerable||
+!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}(),m=function(){function a(b,c){c=void 0===c?p.a:c;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.gl=b;this.bufferType=c;this.gl=b;this.buffer=b.createBuffer()}n(a,[{key:"bind",value:function(){this.gl.bindBuffer(this.bufferType,this.buffer)}},{key:"bindToVertexAttrib",value:function(a,c,f,h,q,k){f=void 0===f?p.c:
+f;h=void 0===h?!1:h;q=void 0===q?0:q;k=void 0===k?0:k;this.bind();this.gl.enableVertexAttribArray(a);this.gl.vertexAttribPointer(a,c,f,h,q,k)}},{key:"setData",value:function(a,c){c=void 0===c?p.k:c;var b=this.gl;this.bind();b.bufferData(this.bufferType,a,c)}},{key:"dispose",value:function(){this.gl.deleteBuffer(this.buffer);this.gl=this.buffer=void 0}}],[{key:"fromData",value:function(b,c,f,h){b=new a(b,f);b.setData(c,h);return b}}]);return a}()},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c){var d=
+a.createShader(c);a.shaderSource(d,b);a.compileShader(d);if(!a.getShaderParameter(d,a.COMPILE_STATUS)){a=a.getShaderInfoLog(d)||"";var f=a.replace("\x00","");d=[];f=$jscomp.makeIterator(f.split("\n"));for(var l=f.next();!l.done;l=f.next()){l=l.value;var k=l.match(/^ERROR:\s*(\d+):(\d+)\s*(.+)$/);null!==k?d.push({message:k[3].trim(),file:parseInt(k[1],10),line:parseInt(k[2],10)}):(k=l.match(/^ERROR:\s*(.+)$/),null!==k?d.push({message:k[1]}):(l=l.trim())&&d.push({message:l}))}throw new h(c,b,a,d);}return d}
+a.d(e,"a",function(){return r});g=a(1);var b=a(35),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f;(function(a){a[a.VERTEX=b.u]="VERTEX";a[a.FRAGMENT=b.d]="FRAGMENT"})(f||(f={}));var h=function(a){function b(a,c,d,l){p(this,b);var h="Error compiling "+f[a].toLowerCase()+" shader: "+d,k=n(this,(b.__proto__||
+Object.getPrototypeOf(b)).call(this,h));k.name="ShaderCompilationError";k.log=d;k.message=h;k.shaderType=a;k.source=c;k.errorMessages=l;return k}m(b,a);return b}(Error),q=function(a){function b(a,c,d){p(this,b);var f="Error linking shader: "+d,l=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,f));l.name="ShaderLinkError";l.log=d;l.message=f;l.vertexSource=a;l.fragmentSource=c;return l}m(b,a);return b}(Error),k=function(a){function b(a,d,f,l,h){p(this,b);var k=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));
+k.gl=a;k.vertexSource=d;k.fragmentSource=f;k.attributes=new Map;k.uniforms=new Map;var r=k.vertexShader=c(a,d,a.VERTEX_SHADER),u=k.fragmentShader=c(a,f,a.FRAGMENT_SHADER),t=a.createProgram();a.attachShader(t,r);a.attachShader(t,u);a.linkProgram(t);if(!a.getProgramParameter(t,a.LINK_STATUS))throw a=a.getProgramInfoLog(t)||"",new q(d,f,a);k.program=t;f=k.uniforms;d=k.attributes;if(l)for(l=$jscomp.makeIterator(l),r=l.next();!r.done;r=l.next())r=r.value,f.set(r,a.getUniformLocation(t,r));if(h)for(h=$jscomp.makeIterator(h),
+r=h.next();!r.done;r=h.next())l=r.value,d.set(l,a.getAttribLocation(t,l));return k}m(b,a);d(b,[{key:"uniform",value:function(a){return this.uniforms.get(a)}},{key:"attribute",value:function(a){return this.attributes.get(a)}},{key:"textureUnit",value:function(a){return this.textureUnits.get(a)}},{key:"bind",value:function(){this.gl.useProgram(this.program)}},{key:"disposed",value:function(){var a=this.gl;a.deleteShader(this.vertexShader);this.vertexShader=void 0;a.deleteShader(this.fragmentShader);
+this.fragmentShader=void 0;a.deleteProgram(this.program);this.uniforms=this.attributes=this.gl=this.program=void 0}}]);return b}(g.a),t=function(){function a(){p(this,a);this.code="";this.parts=new Set}d(a,[{key:"add",value:function(a){if(!this.parts.has(a))switch(this.parts.add(a),typeof a){case "string":this.code+=a;break;case "function":this.add(a());break;default:if(Array.isArray(a)){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())this.add(b.value)}else throw Error("Invalid code type");
+}}},{key:"toString",value:function(){return this.code}}]);return a}(),r=function(){function a(b){p(this,a);this.gl=b;this.nextTextureUnit=this.nextSymbolID=0;this.varyingsCode=this.attributesCode=this.uniformsCode="";this.fragmentExtensionsSet=new Set;this.fragmentExtensions="";this.vertexCode=new t;this.vertexMain="";this.fragmentCode=new t;this.fragmentMain="";this.required=new Set;this.uniforms=[];this.attributes=[];this.initializers=[];this.textureUnits=new Map}d(a,[{key:"allocateTextureUnit",
+value:function(a,b){b=void 0===b?1:b;if(this.textureUnits.has(a))throw Error("Duplicate texture unit symbol: "+a);var c=this.nextTextureUnit;this.nextTextureUnit+=b;this.textureUnits.set(a,c);return c}},{key:"addTextureSampler2D",value:function(a,b,c){var d=this.allocateTextureUnit(b,c);this.addUniform("highp sampler2D",a,c);this.addInitializer(function(b){if(c){for(var f=new Int32Array(c),l=0;l<c;++l)f[l]=l+d;b.gl.uniform1iv(b.uniform(a),f)}else b.gl.uniform1i(b.uniform(a),d)});return d}},{key:"symbol",
+value:function(a){return a+this.nextSymbolID++}},{key:"addAttribute",value:function(a,b){this.attributes.push(b);this.attributesCode+="attribute "+a+" "+b+";\n";return b}},{key:"addVarying",value:function(a,b){this.varyingsCode+="varying "+a+" "+b+";\n"}},{key:"addUniform",value:function(a,b,c){this.uniforms.push(b);this.uniformsCode=null!=c?this.uniformsCode+("uniform "+a+" "+b+"["+c+"];\n"):this.uniformsCode+("uniform "+a+" "+b+";\n");return b}},{key:"addFragmentExtension",value:function(a){this.fragmentExtensionsSet.has(a)||
+(this.fragmentExtensionsSet.add(a),this.fragmentExtensions+="#extension "+a+" : require\n")}},{key:"addVertexCode",value:function(a){this.vertexCode.add(a)}},{key:"addFragmentCode",value:function(a){this.fragmentCode.add(a)}},{key:"setVertexMain",value:function(a){this.vertexMain=a}},{key:"addVertexMain",value:function(a){this.vertexMain=(this.vertexMain||"")+a}},{key:"setFragmentMain",value:function(a){this.fragmentMain="void main() {\n"+a+"\n}\n"}},{key:"setFragmentMainFunction",value:function(a){this.fragmentMain=
+a}},{key:"addInitializer",value:function(a){this.initializers.push(a)}},{key:"require",value:function(a){this.required.has(a)||(this.required.add(a),a(this))}},{key:"build",value:function(){var a=new k(this.gl,"\nprecision highp float;\n"+this.uniformsCode+"\n"+this.attributesCode+"\n"+this.varyingsCode+"\n"+this.vertexCode+"\nvoid main() {\n"+this.vertexMain+"\n}\n","\n"+this.fragmentExtensions+"\nprecision highp float;\n"+this.uniformsCode+"\n"+this.varyingsCode+"\n"+this.fragmentCode+"\n"+this.fragmentMain+
+"\n",this.uniforms,this.attributes);a.textureUnits=this.textureUnits;var b=this.initializers;if(0<b.length){a.bind();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,c(a)}return a}}]);return a}()},function(g,e,a){e.isArray=Array.isArray||function(a){return a&&"number"===typeof a.length}},function(g,e,a){e.isScheduler=function(a){return a&&"function"===typeof a.schedule}},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&
+(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(0);var n=a(111),m=a(38),c=a(33);a=function(a){function b(b,c){a.call(this);this.array=b;this.scheduler=c;c||1!==b.length||(this._isScalar=!0,this.value=b[0])}p(b,a);b.create=function(a,c){return new b(a,c)};b.of=function(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];d=a[a.length-1];c.isScheduler(d)?a.pop():d=null;var q=a.length;return 1<q?new b(a,d):1===q?new n.ScalarObservable(a[0],d):new m.EmptyObservable(d)};
+b.dispatch=function(a){var b=a.array,c=a.index,d=a.subscriber;c>=a.count?d.complete():(d.next(b[c]),d.closed||(a.index=c+1,this.schedule(a)))};b.prototype._subscribe=function(a){var c=this.array,d=c.length,f=this.scheduler;if(f)return f.schedule(b.dispatch,0,{array:c,index:0,count:d,subscriber:a});for(f=0;f<d&&!a.closed;f++)a.next(c[f]);a.complete()};return b}(g.Observable);e.ArrayObservable=a},function(g,e,a){e.a=34962;e.k=35044;e.r=3317;e.t=5121;e.c=5126;e.i=6407;e.j=6408;e.f=6409;e.g=6410;e.d=
+35632;e.u=35633;e.h=9728;e.e=9729;e.n=10240;e.o=10241;e.p=10242;e.q=10243;e.m=3553;e.l=33984;e.b=33071;e.s=37440},function(g,e){},function(g,e,a){e.b=function(a,c){n.set(a,c)};e.a=function(a){for(var c=new p.b,b=$jscomp.makeIterator(n),d=b.next();!d.done;d=b.next()){var f=$jscomp.makeIterator(d.value);d=f.next().value;f=f.next().value;c.register(d,f(a))}return c};var p=a(39),n=new Map},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&
+(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c){a.call(this);this.scheduler=c}p(e,a);e.create=function(a){return new e(a)};e.dispatch=function(a){a.subscriber.complete()};e.prototype._subscribe=function(a){var b=this.scheduler;if(b)return b.schedule(e.dispatch,0,{subscriber:a});a.complete()};return e}(a(0).Observable);e.EmptyObservable=g},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){void 0===
+b&&(b=-1===a.indexOf("/")?":":"/");a=a.lastIndexOf(b);return-1===a?0:a+1}a.d(e,"a",function(){return h});a.d(e,"b",function(){return k});var b=a(26),d=a(46);g=a(1);var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),h=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments))}m(b,a);return b}(g.a),q=/^(?:([a-zA-Z-+_]+):\/\/)?(.*)$/,k=function(a){function h(){p(this,h);var a=n(this,(h.__proto__||Object.getPrototypeOf(h)).apply(this,arguments));a.dataSources=new Map;return a}m(h,a);f(h,[{key:"register",value:function(a,b){this.dataSources.set(a,this.registerDisposer(b))}},{key:"getDataSource",value:function(a){a=a.match(q);if(null===a||void 0===a[1])throw Error('Data source URL must have the form "<protocol>://<path>".');var b=a[1],c=this.dataSources.get(b);
+if(void 0===c)throw Error("Unsupported data source: "+JSON.stringify(b)+".");return[c,a[2],b]}},{key:"getVolume",value:function(a,c,d,f){d=void 0===d?{}:d;f=void 0===f?b.e:f;c=$jscomp.makeIterator(this.getDataSource(c));var l=c.next().value,h=c.next().value;return new Promise(function(b){b(l.getVolume(a,h,d,f))})}},{key:"getVectorGraphicsSource",value:function(a,c,d,f){d=void 0===d?{}:d;f=void 0===f?b.e:f;c=$jscomp.makeIterator(this.getDataSource(c));var l=c.next().value,h=c.next().value;return new Promise(function(b){b(l.getVectorGraphicsSource(a,
+h,d,f))})}},{key:"getMeshSource",value:function(a,c,d){d=void 0===d?b.e:d;c=$jscomp.makeIterator(this.getDataSource(c));var f=c.next().value,l=c.next().value;return new Promise(function(b){b(f.getMeshSource(a,l,d))})}},{key:"getSkeletonSource",value:function(a,c,d){d=void 0===d?b.e:d;c=$jscomp.makeIterator(this.getDataSource(c));var f=c.next().value,l=c.next().value;return new Promise(function(b){b(f.getSkeletonSource(a,l,d))})}},{key:"volumeCompleter",value:function(a,c,f){f=void 0===f?b.e:f;var l=
+a.match(q),h=l[1];if(void 0===h){c=[];f=$jscomp.makeIterator(this.dataSources);for(l=f.next();!l.done;l=f.next()){var k=$jscomp.makeIterator(l.value);l=k.next().value;k=k.next().value;l+="://";l.startsWith(a)&&c.push({value:l,description:k.description})}return Promise.resolve({offset:0,completions:c})}a=this.dataSources.get(h);return void 0!==a&&void 0!==a.volumeCompleter?a.volumeCompleter(l[2],c,f).then(function(a){return Object(d.a)(h.length+3,a)}):Promise.reject(null)}},{key:"suggestLayerName",
+value:function(a){a=$jscomp.makeIterator(this.getDataSource(a));var b=a.next().value;a=a.next().value;b=b.suggestLayerName;if(void 0!==b)return b(a);b=c(a,void 0);return a.substring(b)}},{key:"findSourceGroup",value:function(a){var b=$jscomp.makeIterator(this.getDataSource(a));a=b.next().value;var d=b.next().value;b=b.next().value;return(a.findSourceGroup||c)(d)+b.length+3}}]);return h}(g.a)},function(g,e,a){a.d(e,"a",function(){return m});var p=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=
+c[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}();a(231);var n=null,m=function(){function a(b){b=void 0===b?!1:b;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");null===n&&(n=document.createElement("ul"),n.id="statusContainer",document.body.appendChild(n));var c=document.createElement("li");this.element=c;!0===b&&(b=200);!1!==b?(this.setVisible(!1),
+this.timer=setTimeout(this.setVisible.bind(this,!0),b)):this.timer=null;n.appendChild(c)}p(a,[{key:"dispose",value:function(){n.removeChild(this.element);this.element=void 0;null!==this.timer&&clearTimeout(this.timer)}},{key:"setText",value:function(a,c){this.element.textContent=a;c&&this.setVisible(!0)}},{key:"setHTML",value:function(a,c){this.element.innerHTML=a;c&&this.setVisible(!0)}},{key:"setVisible",value:function(a){null!==this.timer&&(clearTimeout(this.timer),this.timer=null);this.element.style.display=
+a?"block":"none"}}],[{key:"forPromise",value:function(b,c){var d=new a(c.delay);d.setText(c.initialMessage);var h=d.dispose.bind(d);b.then(h,function(a){d.element.textContent=(void 0===c.errorPrefix?"":c.errorPrefix)+(a instanceof Error?a.message:""+a)+"  ";a=document.createElement("button");a.textContent="Dismiss";a.addEventListener("click",function(){d.dispose()});d.element.appendChild(a);d.setVisible(!0)});return b}},{key:"showMessage",value:function(b){var c=new a;c.element.textContent=b;c.setVisible(!0);
+return c}},{key:"showTemporaryMessage",value:function(a,c){c=void 0===c?2E3:c;var b=this.showMessage(a);setTimeout(function(){return b.dispose()},c);return b}}]);return a}()},function(g,e,a){var p=a(187);e.multicast=function(a,c){var b="function"===typeof a?a:function(){return a};if("function"===typeof c)return this.lift(new n(b,c));c=Object.create(this,p.connectableObservableDescriptor);c.source=this;c.subjectFactory=b;return c};var n=function(){function a(a,b){this.subjectFactory=a;this.selector=
+b}a.prototype.call=function(a,b){var c=this.selector,f=this.subjectFactory();a=c(f).subscribe(a);a.add(b.subscribe(f));return a};return a}();e.MulticastOperator=n},function(g,e,a){a.d(e,"b",function(){return p});var p;(function(a){a[a.UINT8=0]="UINT8";a[a.UINT16=1]="UINT16";a[a.UINT32=2]="UINT32";a[a.UINT64=3]="UINT64";a[a.FLOAT32=4]="FLOAT32"})(p||(p={}));g=[];e.a=g;g[p.UINT8]=1;g[p.UINT16]=2;g[p.UINT32]=4;g[p.UINT64]=8;g[p.FLOAT32]=4},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return x});
+a.d(e,"c",function(){return v});a.d(e,"b",function(){return E});a.d(e,"d",function(){return F});g=a(24);var c=a.n(g),b=a(25);g=a(23);e=a(65);var d=a(87),f=a(1),h=a(3),q=a(27),k=a(7),t=a(49),r=a(88),l=a(31),u=a(66);a=a(15);var A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),y=function G(a,b,c){null===a&&
+(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return G(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},z=this&&this.__decorate||function(a,b,c,d){var f=arguments.length,l=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)l=Reflect.decorate(a,b,c,d);else for(var k=a.length-1;0<=k;k--)if(h=a[k])l=(3>f?h(l):3<f?h(b,
+c,l):h(b,c))||l;return 3<f&&l&&Object.defineProperty(b,c,l),l},B=h.j.create(),x=function(a){function b(a,d,f){p(this,b);var l=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));l.chunkManager=a;l.layerManager=d;l.navigationState=f;l.gl=l.chunkManager.gl;l.dataToViewport=h.j.create();l.viewportToDevice=h.j.create();l.dataToDevice=h.j.create();l.visibleChunks=new Map;l.viewChanged=new k.a;l.renderingStale=!0;l.visibleChunksStale=!0;l.visibleLayerList=[];l.newVisibleLayers=new Set;l.offscreenFramebuffer=
+l.registerDisposer(new r.b(l.gl,{colorBuffers:Object(r.e)(l.gl,1),depthBuffer:new r.d(l.gl)}));l.updateVisibleLayers=l.registerCancellable(c()(function(){l.updateVisibleLayersNow()},0));h.j.identity(l.dataToViewport);l.initializeCounterpart(l.chunkManager.rpc,{chunkManager:a.rpcId});l.registerDisposer(f.changed.add(function(){l.updateViewportFromNavigationState()}));l.updateViewportFromNavigationState();l.registerDisposer(d.layersChanged.add(function(){l.hasValidViewport&&l.updateVisibleLayers()}));
+l.viewChanged.add(function(){l.renderingStale=!0});l.registerDisposer(a.chunkQueueManager.visibleChunksChanged.add(l.viewChanged.dispatch));l.updateViewportFromNavigationState();l.updateVisibleLayers();return l}m(b,a);A(b,[{key:"updateViewportFromNavigationState",value:function(){var a=this.navigationState;a.valid&&(a.toMat4(B),this.setViewportToDataMatrix(B))}},{key:"updateVisibleLayersNow",value:function(){if(this.wasDisposed||!this.hasValidViewport)return!1;var a=this.visibleLayers,b=this.rpc,
+c={id:this.rpcId},f=this.newVisibleLayers,l=!1,h=this.visibleLayerList;h.length=0;for(var k=$jscomp.makeIterator(this.layerManager.readyRenderLayers()),q=k.next();!q.done;q=k.next())q=q.value,q instanceof d.a&&(f.add(q),h.push(q),a.has(q)||(a.set(q.addRef(),[]),q.redrawNeeded.add(this.viewChanged.dispatch),c.layerId=q.rpcId,b.invoke("SliceView.addVisibleLayer",c),l=!0));h=$jscomp.makeIterator(a.keys());for(q=h.next();!q.done;q=h.next())k=q.value,f.has(k)||(a.delete(k),k.redrawNeeded.remove(this.viewChanged.dispatch),
+c.layerId=k.rpcId,b.invoke("SliceView.removeVisibleLayer",c),k.dispose(),l=!0);f.clear();l&&(this.visibleSourcesStale=!0);this.viewChanged.dispatch();return l}},{key:"onViewportChanged",value:function(){var a=this.width,b=this.height,c=this.viewportToDevice,d=this.dataToViewport,f=this.dataToDevice;h.j.ortho(c,-a/2,a/2,b/2,-b/2,-10,10);h.j.multiply(f,c,d);this.visibleChunksStale=!0;this.viewChanged.dispatch()}},{key:"setViewportSize",value:function(a,c){return y(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"setViewportSize",this).call(this,a,c)?(this.rpc.invoke("SliceView.updateView",{id:this.rpcId,width:a,height:c}),!0):!1}},{key:"onViewportToDataMatrixChanged",value:function(){var a=this.viewportToData,b=this.dataToViewport;h.j.invert(b,a);Object(h.m)(b);this.rpc.invoke("SliceView.updateView",{id:this.rpcId,viewportToData:a})}},{key:"onHasValidViewport",value:function(){this.updateVisibleLayers()}},{key:"updateRendering",value:function(){if(this.renderingStale&&this.hasValidViewport&&0!==this.width&&
+0!==this.height){this.renderingStale=!1;this.maybeUpdateVisibleChunks();var a=this.gl,b=this.offscreenFramebuffer;b.bind(this.width,this.height);a.disable(a.SCISSOR_TEST);a.clearStencil(0);a.clearColor(0,0,0,0);a.colorMask(!0,!0,!0,!0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.STENCIL_TEST);a.disable(a.DEPTH_TEST);a.stencilOpSeparate(a.FRONT_AND_BACK,a.KEEP,a.KEEP,a.REPLACE);for(var c=0,d=$jscomp.makeIterator(this.visibleLayerList),f=d.next();!f.done;f=d.next())f=f.value,a.clear(a.STENCIL_BUFFER_BIT),
+a.stencilFuncSeparate(a.FRONT_AND_BACK,a.GREATER,1,1),f.setGLBlendMode(a,c),f.draw(this),++c;a.disable(a.BLEND);a.disable(a.STENCIL_TEST);b.unbind()}}},{key:"maybeUpdateVisibleChunks",value:function(){this.updateVisibleLayers.flush();if(!this.visibleChunksStale&&!this.visibleSourcesStale)return!1;this.visibleChunksStale=!1;this.updateVisibleChunks();return!0}},{key:"updateVisibleChunks",value:function(){var a=this.visibleChunks;this.computeVisibleChunks(function(b){var c=a.get(b);void 0===c?(c=[],
+a.set(b,c)):c.length=0;return c},function(a,b,c){a=Object(h.q)(c);b[b.length]=a})}},{key:"disposed",value:function(){for(var a=$jscomp.makeIterator(this.visibleLayers.keys()),b=a.next();!b.done;b=a.next())b.value.dispose();this.visibleLayers.clear();this.visibleLayerList.length=0}}]);return b}(Object(t.c)(e.b));x=z([Object(a.g)(e.a)],x);var v=function(a){function b(a,c){p(this,b);a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c));a.spec=c.spec;return a}m(b,a);A(b,[{key:"initializeCounterpart",
+value:function(a,c){c.spec=this.spec.toObject();y(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeCounterpart",this).call(this,a,c)}}],[{key:"encodeOptions",value:function(a){var c=y(b.__proto__||Object.getPrototypeOf(b),"encodeOptions",this).call(this,a);c.spec=a.spec.toObject();return c}}]);return b}(g.e),E=function(a){function c(a,d){p(this,c);var f=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,a));f.chunkGridPosition=d.chunkGridPosition;f.chunkDataSize=d.chunkDataSize||
+a.spec.chunkDataSize;f.state=b.d.SYSTEM_MEMORY;return f}m(c,a);return c}(g.b),F=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.gl=a;d.copyVertexPositionsBuffer=Object(u.a)(d.gl);d.textureCoordinateAdjustment=new Float32Array(4);var f=new l.a(a);f.addVarying("vec2","vTexCoord");f.addUniform("sampler2D","uSampler");f.addInitializer(function(b){a.uniform1i(b.uniform("uSampler"),0)});f.addUniform("vec4","uColorFactor");f.addUniform("vec4","uBackgroundColor");
+f.addUniform("mat4","uProjectionMatrix");f.addUniform("vec4","uTextureCoordinateAdjustment");f.require(c);f.setFragmentMain("\nvec4 sampledColor = texture2D(uSampler, vTexCoord);\nif (sampledColor.a == 0.0) {\n  sampledColor = uBackgroundColor;\n}\nemit(sampledColor * uColorFactor, vec4(0,0,0,0));\n");f.addAttribute("vec4","aVertexPosition");f.setVertexMain("\nvTexCoord = uTextureCoordinateAdjustment.xy + 0.5 * (aVertexPosition.xy + 1.0) * uTextureCoordinateAdjustment.zw;\ngl_Position = uProjectionMatrix * aVertexPosition;\n");
+d.shader=d.registerDisposer(f.build());return d}m(b,a);A(b,[{key:"draw",value:function(a,b,c,d,f,l,h,k){var q=this.gl,r=this.shader,u=this.textureCoordinateAdjustment;u[0]=f;u[1]=l;u[2]=h-f;u[3]=k-l;r.bind();q.activeTexture(q.TEXTURE0);q.bindTexture(q.TEXTURE_2D,a);q.uniformMatrix4fv(r.uniform("uProjectionMatrix"),!1,b);q.uniform4fv(r.uniform("uColorFactor"),c);q.uniform4fv(r.uniform("uBackgroundColor"),d);q.uniform4fv(r.uniform("uTextureCoordinateAdjustment"),u);a=r.attribute("aVertexPosition");
+this.copyVertexPositionsBuffer.bindToVertexAttrib(a,2);q.drawArrays(q.TRIANGLE_FAN,0,4);q.disableVertexAttribArray(a);q.bindTexture(q.TEXTURE_2D,null)}}],[{key:"get",value:function(a,c){return a.memoize.get("sliceview/SliceViewRenderHelper:"+Object(q.a)(c),function(){return new b(a,c)})}}]);return b}(f.a)},function(g,e,a){e.b=function(){return new p.b(void 0)};e.a=function(a){return new p.a(a,n.B)};var p=a(14),n=a(6)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"b",function(){return f});a.d(e,"a",function(){return q});var m=a(64);g=a(1);var c=a(51),b=function(){function a(a,b){for(var c=
+0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function t(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return t(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(249);var f=0,h=c.a.fromObject({escape:{action:"close"}}),
+q=function(a){function q(){if(!(this instanceof q))throw new TypeError("Cannot call a class as a function");var a=p(this,(q.__proto__||Object.getPrototypeOf(q)).call(this));a.keyMap=new c.a;a.keyMap.addParent(h,Number.NEGATIVE_INFINITY);++f;var b=a.container=document.createElement("div");b.className="overlay";var d=a.content=document.createElement("div");a.registerDisposer(new m.a(d));d.className="overlay-content";b.appendChild(d);document.body.appendChild(b);a.registerDisposer(new c.b(a.container,
+a.keyMap));a.registerEventListener(b,"action:close",function(){a.dispose()});d.focus();return a}n(q,a);b(q,[{key:"disposed",value:function(){--f;document.body.removeChild(this.container);d(q.prototype.__proto__||Object.getPrototypeOf(q.prototype),"disposed",this).call(this)}}]);return q}(g.a)},function(g,e,a){e.a=function(a,e){e.offset+=a;return e};e.b=function(a,e){var g=[];e=$jscomp.makeIterator(e);for(var c=e.next();!c.done;c=e.next())c=c.value,c.startsWith(a)&&g.push({value:c});return g};e.c=
+function(a,e,g,c){var b=[];e=$jscomp.makeIterator(e);for(var d=e.next();!d.done;d=e.next()){d=d.value;var f=g(d);f.startsWith(a)&&b.push({value:f,description:c(d)})}return b}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=
+b)}a.d(e,"a",function(){return f});e.b=function(a,c,f){f=void 0===f?"GET":f;var h=new XMLHttpRequest;if(Array.isArray(a)){var k=a.length;k=1===k?0:Math.abs(Object(m.a)(c))%k;a=a[k]+c}else a+=c;h[d]=f;h[b]=a;h.open(f,a);return h};e.d=function(a,b,c){c=void 0===c?n.e:c;a.responseType=b;return new Promise(function(b,d){var l=function(){a.abort()};c.add(l);a.onloadend=function(){var h=this.status;c.remove(l);200<=h&&300>h?b(this.response):d(f.fromXhr(a))};a.send()})};e.c=function(a){var b=a.match(/^([^:\/]+):\/\/([^\/]+)(\/.*)?$/);
+if(null===b)throw Error("Invalid URL: "+JSON.stringify(a));return"gs"===b[1]?[["https://storage.googleapis.com/"+b[2]],b[3]]:[[a],""]};var n=a(26),m=a(208),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();$jscomp.initSymbol();var b=Symbol("url");$jscomp.initSymbol();var d=Symbol("method"),f=function(a){function f(a,
+b,c,d){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");var l=a+" "+JSON.stringify(b)+" resulted in HTTP error "+c;d&&(l+=": "+d);l+=".";var h=(f.__proto__||Object.getPrototypeOf(f)).call(this,l);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");h=!h||"object"!==typeof h&&"function"!==typeof h?this:h;h.name="HttpError";h.message=l;h.method=a;h.url=b;h.code=c;h.statusMessage=d;return h}p(f,a);c(f,null,[{key:"fromXhr",value:function(a){return new f(a[d],
+a[b],a.status,a.statusText)}}]);return f}(Error)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return m});g=a(21);var n=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}(),m=function(a){function b(){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);
+n(b,[{key:"draw",value:function(a){}},{key:"isTransparent",get:function(){return!1}}]);return b}(g.h)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"b",function(){return f});a.d(e,"a",function(){return h});e.c=function(a){return function(a){function f(){p(this,f);var a=n(this,(f.__proto__||Object.getPrototypeOf(f)).apply(this,arguments));a.visibility=new h;return a}m(f,a);d(f,[{key:"initializeCounterpart",value:function(a,d){d=void 0===d?{}:d;d.visibility=
+this.registerDisposer(c.a.makeFromExisting(a,this.visibility)).rpcId;b(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"initializeCounterpart",this).call(this,a,d)}}]);return f}(a)};var c=a(83);g=a(14);var b=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},d=function(){function a(a,b){for(var c=
+0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function(a){function b(a){a=void 0===a?Number.NEGATIVE_INFINITY:a;p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a))}m(b,a);d(b,[{key:"visible",get:function(){return this.value===Number.POSITIVE_INFINITY}},{key:"ignored",get:function(){return this.value===Number.NEGATIVE_INFINITY}}]);
+return b}(g.b);f.VISIBLE=Number.POSITIVE_INFINITY;f.IGNORED=Number.NEGATIVE_INFINITY;var h=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.contributors=new Map;return a}m(b,a);d(b,[{key:"add",value:function(a){var b=this,c=this.contributors,d=a.changed.add(function(){b.update()}),f=function(){c.delete(f);d();b.update()};c.set(f,a);this.update();return f}},{key:"update",value:function(){for(var a=Number.NEGATIVE_INFINITY,b=$jscomp.makeIterator(this.contributors.values()),
+c=b.next();!c.done;c=b.next())a=Math.max(a,c.value.value);this.value=a}}]);return b}(f)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(a,b){var c=b.redrawNeeded.dispatch;b.registerDisposer(a.segmentColorHash.changed.add(c));b.registerDisposer(a.visibleSegments.changed.add(c));b.registerDisposer(a.segmentEquivalences.changed.add(c));b.registerDisposer(a.segmentSelectionState.changed.add(c))}a.d(e,"c",function(){return t});a.d(e,"a",function(){return r});e.g=c;
+e.f=function(a,b){c(a,b);b.registerDisposer(a.objectAlpha.changed.add(b.redrawNeeded.dispatch));b.registerDisposer(a.objectToDataTransform.changed.add(b.redrawNeeded.dispatch))};e.e=function(a,b,c){c=void 0===c?1:c;var d=l;d[3]=c;a.segmentColorHash.compute(d,b);if(a.segmentSelectionState.isSelected(b))for(a=0;3>a;++a)d[a]=.5*d[a]+.5;d[0]*=c;d[1]*=c;d[2]*=c;return d};e.d=function(a,c,d){Object(b.a)(a,function(f,l){var h=Object(b.b)(f,a.clipBounds.value);h=c.get(h);void 0!==h&&d(l,f,h)})};a.d(e,"b",
+function(){return u});var b=a(221);g=a(1);e=a(3);var d=a(7),f=a(16),h=a(49);a=a(15);var q=function y(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return y(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),t=function(){function a(b,c){m(this,a);this.key=b;this.value=c}k(a,[{key:"toString",value:function(){return this.key+"\u2192"+this.value}}]);return a}(),r=function(a){function b(){m(this,b);var a=p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.selectedSegment=new f.a;a.hasSelectedSegment=!1;a.changed=new d.a;return a}n(b,a);k(b,[{key:"set",value:function(a){if(null==a)this.hasSelectedSegment&&(this.hasSelectedSegment=
+!1,this.changed.dispatch());else{var b=this.selectedSegment;this.hasSelectedSegment&&a.low===b.low&&a.high===b.high||(b.low=a.low,b.high=a.high,this.hasSelectedSegment=!0,this.changed.dispatch())}}},{key:"isSelected",value:function(a){return this.hasSelectedSegment&&f.a.equal(a,this.selectedSegment)}},{key:"bindTo",value:function(a,b){var c=this,d=new f.a;this.registerDisposer(a.changed.add(function(){var f=a.get(b);"number"===typeof f?(d.low=f,d.high=0,f=d):f instanceof t&&(f=f.value);c.set(f)}))}}]);
+return b}(g.a),l=e.r.create(),u=function(a){function b(a,c){m(this,b);var d=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.chunkManager=a;d.displayState=c;d.registerDisposer(c.clipBounds.changed.add(function(){return a.chunkQueueManager.scheduleChunkUpdate()}));return d}n(b,a);k(b,[{key:"initializeCounterpartWithChunkManager",value:function(a){var c=this.displayState;a.chunkManager=this.chunkManager.rpcId;a.visibleSegments=c.visibleSegments.rpcId;a.segmentEquivalences=c.segmentEquivalences.rpcId;
+a.clipBounds=c.clipBounds.rpcId;q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeCounterpart",this).call(this,this.chunkManager.rpc,a)}}]);return b}(Object(h.c)(a.b))},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,
+b):a.__proto__=b)}a.d(e,"b",function(){return d});g=a(1);var n=a(22);a.d(e,"a",function(){return n.a});a.d(e,"c",function(){return n.c});var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),c=new Set("f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 escape pause".split(" ")),b=new Set("color date datetime datetime-local email month number password search tel text time url week".split(" ")),
+d=function(a){function d(a,b){if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");var c=(d.__proto__||Object.getPrototypeOf(d)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.target=a;c.eventMap=b;c.modifierShortcutsAreGlobal=!0;c.allShortcutsAreGlobal=!1;c.allowSpaceKeyOnButtons=!1;c.registerEventListener(a,"keydown",c.handleKeyDown.bind(c),!1);return c}
+p(d,a);m(d,[{key:"shouldIgnoreEvent",value:function(a,d){var f=d.target,h=f.tagName;if(f===this.target)return!1;var l="TEXTAREA"===h||"INPUT"===h||"BUTTON"===h||"SELECT"===h,k=!l&&(f.isContentEditable||f.ownerDocument&&"on"===f.ownerDocument.designMode);return!l&&!k||this.allShortcutsAreGlobal||c.has(a)?!1:k||this.modifierShortcutsAreGlobal&&(d.altKey||d.ctrlKey||d.metaKey)?!0:"INPUT"===h&&b.has(f.type)?"enter"!==a:"INPUT"===h||"BUTTON"===h?this.allowSpaceKeyOnButtons?!1:"space"===a:!0}},{key:"handleKeyDown",
+value:function(a){var b=a.code.toLowerCase();this.shouldIgnoreEvent(b,a)||Object(n.b)(b,a,this.eventMap)}}]);return d}(g.a)},function(g,e,a){e.a=function(a){return new p.a(void 0===a?.5:a,n.r)};var p=a(14),n=a(6)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return r});a.d(e,"a",function(){return z});var c=a(99),b=a(16),d=function x(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),
+null!==a)return x(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();e.c=3;var h=0,q=0,k=0,t=0;g=function(){function a(b){b=void 0===b?a.generateHashFunctions(3):b;m(this,a);this.loadFactor=.9;this.size=0;this.growFactor=
+1.2;this.maxHeight=8192;this.emptyHigh=this.emptyLow=4294967295;this.maxAttempts=this.maxRehashAttempts=5;this.maxWidth=4096/this.entryStride;this.generation=0;this.mungedEmptyKey=-1;this.hashFunctions=b;this.allocate(4,1)}f(a,[{key:"updateHashFunctions",value:function(b){this.hashFunctions=a.generateHashFunctions(b);this.mungedEmptyKey=-1}},{key:"tableWithMungedEmptyKey",value:function(a){for(var b=this.hashFunctions.length,c=Array(b),d=0;d<b;++d)c[d]=this.getHash(d,this.emptyLow,this.emptyHigh);
+d=this.mungedEmptyKey;if(-1===d)a:for(;;){d=16777216*Math.random()>>>0;for(var f=0;f<b;++f)for(var l=this.getHash(f,d,d),h=0;h<b;++h)if(c[h]===l)continue a;this.mungedEmptyKey=d;break}f=this.table;l=this.emptyLow;h=this.emptyHigh;for(var k=0;k<b;++k){var q=c[k];f[q]===l&&f[q+1]===h&&(f[q]=d,f[q+1]=d)}try{a(f)}finally{for(a=0;a<b;++a)k=c[a],f[k]===d&&f[k+1]===d&&(f[k]=l,f[k+1]=h)}}},{key:"getHash",value:function(a,b,c){a=this.hashFunctions[a];var d=this.width,f=this.height;d=a[0].compute(b,c)%d;b=
+a[1].compute(b,c)%f;return this.entryStride*(b*this.width+d)}},{key:"keys",value:function(a){function c(c,m){for(;;)switch(d){case 0:a=void 0===a?new b.a:a,g=A,t=g.emptyLow,u=g.emptyHigh,e=g.entryStride,r=A,q=r.table,k=0,h=q.length;case 1:if(!(k<h)){d=3;break}l=q[k];f=q[k+1];if(l===t&&f===u){d=4;break}a.low=l;a.high=f;d=5;return{value:a,done:!1};case 5:if(void 0===m){d=6;break}d=-1;throw m;case 6:case 4:case 2:k+=e;d=1;break;case 3:d=-1;default:return{value:void 0,done:!0}}}var d=0,f,l,h,k,q,r,e,
+u,t,g,A=this,m={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();m[Symbol.iterator]=function(){return this};return m}},{key:"indexOfPair",value:function(a,b){var c=this.table,d=this.emptyHigh;if(a===this.emptyLow&&b===d)return-1;d=0;for(var f=this.hashFunctions.length;d<f;++d){var l=this.getHash(d,a,b);if(c[l]===a&&c[l+1]===b)return l}return-1}},{key:"indexOf",value:function(a){return this.indexOfPair(a.low,
+a.high)}},{key:"chooseAnotherEmptyKey",value:function(){for(var a=this.emptyLow,b=this.emptyHigh,c=this.table,d=this.entryStride,f,l;f=4294967296*Math.random()>>>0,l=4294967296*Math.random()>>>0,f===a&&l===b||this.hasPair(f,l););this.emptyLow=f;this.emptyHigh=l;for(var h=0,k=c.length;h<k;h+=d)c[h]===a&&c[h+1]===b&&(c[h]=f,c[h+1]=l)}},{key:"has",value:function(a){return-1!==this.indexOf(a)}},{key:"hasPair",value:function(a,b){return-1!==this.indexOfPair(a,b)}},{key:"delete",value:function(a){a=this.indexOf(a);
+if(-1!==a){var b=this.table;b[a]=this.emptyLow;b[a+1]=this.emptyHigh;++this.generation;this.size--;return!0}return!1}},{key:"clearTable",value:function(){for(var a=this.table,b=this.entryStride,c=this.emptyLow,d=this.emptyHigh,f=a.length,l=0;l<f;l+=b)a[l]=c,a[l+1]=d}},{key:"clear",value:function(){if(0===this.size)return!1;this.size=0;++this.generation;this.clearTable();return!0}},{key:"swapPending",value:function(a,b){var c=h,d=q;this.storePending(a,b);a[b]=c;a[b+1]=d}},{key:"storePending",value:function(a,
+b){h=a[b];q=a[b+1]}},{key:"backupPending",value:function(){k=h;t=q}},{key:"restorePending",value:function(){h=k;q=t}},{key:"tryToInsert",value:function(){for(var a=0,b=this.emptyLow,c=this.emptyHigh,d=this.maxAttempts,f=this.table,l=this.hashFunctions.length,k=Math.floor(Math.random()*l);;){var r=this.getHash(k,h,q);this.swapPending(f,r);if(h===b&&q===c)return!0;if(++a===d)break;k=(k+Math.floor(Math.random()*(l-1))+1)%l}return!1}},{key:"allocate",value:function(a,b){var c=a*b;this.width=a;this.height=
+b;this.table=new Uint32Array(c*this.entryStride);this.maxAttempts=c;this.clearTable();this.capacity=c*this.loadFactor;this.mungedEmptyKey=-1}},{key:"rehash",value:function(a,b,c){this.allocate(b,c);this.updateHashFunctions(this.hashFunctions.length);b=this.emptyLow;c=this.emptyHigh;for(var d=this.entryStride,f=0,l=a.length;f<l;f+=d){var h=a[f+1];if(a[f]!==b||h!==c)if(this.storePending(a,f),!this.tryToInsert())return!1}return!0}},{key:"grow",value:function(a){for(var b=this.table,c=this.width,d=this.height,
+f=this.maxWidth,l=this.maxHeight;;){var h=c*d;c=Math.min(f,Math.ceil(a/this.height));c*d<a&&(d=Math.min(l,Math.ceil(a/c)));var k=c*d;if(k<a&&k===h)throw Error("Maximum table size exceeded");for(h=0;h<this.maxRehashAttempts;++h)if(this.rehash(b,c,d))return;a=Math.ceil(this.growFactor*a)}}},{key:"insertInternal",value:function(){++this.generation;h===this.emptyLow&&q===this.emptyHigh&&this.chooseAnotherEmptyKey();++this.size>this.capacity&&(this.backupPending(),this.grow(Math.ceil(this.growFactor*this.width*
+this.height)),this.restorePending());for(;!this.tryToInsert();)this.backupPending(),this.grow(this.width*this.height),this.restorePending()}}],[{key:"generateHashFunctions",value:function(a){a=void 0===a?3:a;for(var b=[],d=0;d<a;++d){var f=[c.a.generate(),c.a.generate()];b.push(f)}return b}}]);return a}();var r=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();f(b,[{key:"add",value:function(a){var b=
+a.low;a=a.high;if(this.hasPair(b,a))return!1;h=b;q=a;this.insertInternal();return!0}},{key:Symbol.iterator,value:function(){return this.keys()}}]);return b}(g);r.prototype.entryStride=2;var l=0,u=0,A=0,y=0,z=function(a){function c(){m(this,c);return p(this,(c.__proto__||Object.getPrototypeOf(c)).apply(this,arguments))}n(c,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();f(c,[{key:"set",value:function(a,b){var c=a.low;a=a.high;if(this.hasPair(c,a))return!1;h=c;q=a;l=b.low;u=b.high;this.insertInternal();
+return!0}},{key:"get",value:function(a,b){a=this.indexOf(a);if(-1===a)return!1;var c=this.table;b.low=c[a+2];b.high=c[a+3];return!0}},{key:"swapPending",value:function(a,b){var f=l,h=u;d(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"swapPending",this).call(this,a,b);a[b+2]=f;a[b+3]=h}},{key:"storePending",value:function(a,b){d(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"storePending",this).call(this,a,b);l=a[b+2];u=a[b+3]}},{key:"backupPending",value:function(){d(c.prototype.__proto__||
+Object.getPrototypeOf(c.prototype),"backupPending",this).call(this);A=l;y=u}},{key:"restorePending",value:function(){d(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"restorePending",this).call(this);l=A;u=y}},{key:Symbol.iterator,value:function(){return this.entries()}},{key:"entries",value:function(a){function c(c,C){for(;;)switch(d){case 0:a=void 0===a?[new b.a,new b.a]:a,n=y,m=n.emptyLow,A=n.emptyHigh,g=n.entryStride,t=y,u=t.table,e=$jscomp.makeIterator(a),r=e.next().value,q=e.next().value,
+k=0,h=u.length;case 1:if(!(k<h)){d=3;break}l=u[k];f=u[k+1];if(l===m&&f===A){d=4;break}r.low=l;r.high=f;q.low=u[k+2];q.high=u[k+3];d=5;return{value:a,done:!1};case 5:if(void 0===C){d=6;break}d=-1;throw C;case 6:case 4:case 2:k+=g;d=1;break;case 3:d=-1;default:return{value:void 0,done:!0}}}var d=0,f,l,h,k,q,r,e,u,t,g,A,m,n,y=this,E={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();E[Symbol.iterator]=
+function(){return this};return E}}]);return c}(g);z.prototype.entryStride=4},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return f});a.d(e,"c",function(){return h});a.d(e,"a",function(){return q});g=a(1);var c=a(7),b=function t(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return t(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===
+b?void 0:b.call(c)}},d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function(){function a(b,d){m(this,a);this.value_=b;this.defaultValue=d;this.changed=new c.a}d(a,[{key:"toggle",value:function(){this.value=!this.value}},{key:"toJSON",value:function(){if(this.value_!==this.defaultValue)return this.value_}},
+{key:"restoreState",value:function(a){this.value=!0===a||!1===a?a:this.defaultValue}},{key:"reset",value:function(){this.value=this.defaultValue}},{key:"value",get:function(){return this.value_},set:function(a){a!==this.value_&&(this.value_=a,this.changed.dispatch())}}]);return a}(),h=function(a){function c(a){m(this,c);var b=p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));b.model=a;b.element=document.createElement("input");var d=b.element;d.type="checkbox";b.registerDisposer(a.changed.add(function(){b.updateCheckbox()}));
+b.updateCheckbox();b.registerEventListener(d,"change",function(b){a.value=this.checked});d.addEventListener("mousedown",function(a){a.preventDefault()});return b}n(c,a);d(c,[{key:"updateCheckbox",value:function(){this.element.checked=this.model.value}},{key:"disposed",value:function(){var a=this.element,d=a.parentElement;d&&d.removeChild(a);b(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}}]);return c}(g.a),q=function(a){function b(a,c){m(this,b);var d=p(this,
+(b.__proto__||Object.getPrototypeOf(b)).call(this));d.model=a;d.element=c;d.updateVisibility();d.registerDisposer(a.changed.add(function(){d.updateVisibility()}));return d}n(b,a);d(b,[{key:"updateVisibility",value:function(){this.element.style.display=this.model.value?"":"none"}}]);return b}(g.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c,d){var f=!1,l;a.registerDisposer(b);var h=q.UNLINKED,k=function(){var f=c.value;if(f!==h)switch(f){case q.UNLINKED:l=
+void 0;break;case q.LINKED:l=void 0;d.assign(a,b);break;case q.RELATIVE:l=d.difference(a,b)}h=f;a.changed.dispatch()};a.registerDisposer(a.changed.add(function(){if(!f)switch(c.value){case q.LINKED:d.assign(b,a);break;case q.RELATIVE:d.subtract(b,a,l)}}));a.registerDisposer(b.changed.add(function(){f=!0;switch(c.value){case q.UNLINKED:if(d.isValid(a))break;case q.LINKED:d.assign(a,b);break;case q.RELATIVE:d.add(a,b,l)}f=!1}));a.registerDisposer(c.changed.add(k));k();return a}a.d(e,"d",function(){return q});
+a.d(e,"b",function(){return A});a.d(e,"f",function(){return y});a.d(e,"a",function(){return z});a.d(e,"g",function(){return B});a.d(e,"c",function(){return v});a.d(e,"e",function(){return E});g=a(1);var b=a(3),d=a(6),f=a(7);a=a(287);var h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q;(function(a){a[a.LINKED=
+0]="LINKED";a[a.RELATIVE=1]="RELATIVE";a[a.UNLINKED=2]="UNLINKED"})(q||(q={}));var k=function(a){function b(a){a=void 0===a?q.LINKED:a;p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,q,a))}m(b,a);return b}(a.a),t=function(a){function c(a){p(this,c);var d=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));d.changed=new f.a;var l=!0;null==a&&(a=b.p.create(),l=!1);d.size=a;d.valid=l;return d}m(c,a);h(c,[{key:"reset",value:function(){this.valid=!1;this.changed.dispatch()}},
+{key:"setValid",value:function(){this.valid||(this.valid=!0,this.changed.dispatch())}},{key:"toJSON",value:function(){if(this.valid)return Array.prototype.slice.call(this.size)}},{key:"restoreState",value:function(a){try{Object(d.b)(this.size,a),this.valid=!0,this.changed.dispatch()}catch(H){this.valid=!1,this.changed.dispatch()}}},{key:"toString",value:function(){return this.valid?this.size.toString():null}},{key:"voxelFromSpatial",value:function(a,c){return b.p.divide(a,c,this.size)}},{key:"spatialFromVoxel",
+value:function(a,c){return b.p.multiply(a,c,this.size)}}]);return c}(g.a),r=b.p.create(),l=b.l.create(),u=function(a){function c(a,d){p(this,c);var l=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));l.voxelCoordinates=null;l.changed=new f.a;null==a&&(a=new t);l.voxelSize=a;var h=!0;null==d&&(d=b.p.create(),h=!1);l.spatialCoordinates=d;l.spatialCoordinatesValid=h;l.registerDisposer(a);l.registerDisposer(a.changed.add(function(){l.handleVoxelSizeChanged()}));return l}m(c,a);h(c,[{key:"reset",
+value:function(){this.spatialCoordinatesValid=!1;this.voxelCoordinates=null;this.voxelSize.reset();this.changed.dispatch()}},{key:"getVoxelCoordinates",value:function(a){var c=this.voxelCoordinates;if(c)b.p.copy(a,c);else if(this.valid)this.voxelSize.voxelFromSpatial(a,this.spatialCoordinates);else return!1;return!0}},{key:"setVoxelCoordinates",value:function(a){var c=this.voxelSize;c.valid?(c.spatialFromVoxel(this.spatialCoordinates,a),this.markSpatialCoordinatesChanged()):(c=this.voxelCoordinates)?
+b.p.copy(c,a):this.voxelCoordinates=b.p.clone(a);this.changed.dispatch()}},{key:"markSpatialCoordinatesChanged",value:function(){this.spatialCoordinatesValid=!0;this.voxelCoordinates=null;this.changed.dispatch()}},{key:"handleVoxelSizeChanged",value:function(){null==this.voxelCoordinates||this.spatialCoordinatesValid||(this.voxelSize.spatialFromVoxel(this.spatialCoordinates,this.voxelCoordinates),this.spatialCoordinatesValid=!0);this.voxelCoordinates=null;this.changed.dispatch()}},{key:"toJSON",value:function(){var a=
+!0,b=this.voxelSize.toJSON(),c={};void 0!==b&&(a=!1,c.voxelSize=b);this.voxelCoordinatesValid?(this.getVoxelCoordinates(r),c.voxelCoordinates=Array.prototype.slice.call(r),a=!1):this.spatialCoordinatesValid&&(c.spatialCoordinates=Array.prototype.slice.call(this.spatialCoordinates),a=!1);if(!a)return c}},{key:"restoreState",value:function(a){var c=this;Object(d.u)(a);Object(d.w)(a,"voxelSize",function(a){void 0!==a&&c.voxelSize.restoreState(a)});this.spatialCoordinatesValid=!1;Object(d.w)(a,"voxelCoordinates",
+function(a){void 0!==a&&c.setVoxelCoordinates(Object(d.b)(b.p.create(),a))});Object(d.w)(a,"spatialCoordinates",function(a){void 0!==a&&(Object(d.b)(c.spatialCoordinates,a),c.markSpatialCoordinatesChanged())})}},{key:"snapToVoxel",value:function(){if(this.valid){for(var a=this.spatialCoordinates,b=this.voxelSize.size,c=0;3>c;++c){var d=b[c];a[c]=Math.round(a[c]/d)*d}this.changed.dispatch()}else if(a=this.voxelCoordinates,null!=a){for(b=0;3>b;++b)a[b]=Math.round(a[b]);this.changed.dispatch()}}},{key:"assign",
+value:function(a){this.spatialCoordinatesValid=a.spatialCoordinatesValid;b.p.copy(this.spatialCoordinates,a.spatialCoordinates);this.voxelCoordinates=(a=a.voxelCoordinates)&&b.p.clone(a);this.changed.dispatch()}},{key:"valid",get:function(){return this.spatialCoordinatesValid&&this.voxelSize.valid}},{key:"voxelCoordinatesValid",get:function(){return this.valid||null!=this.voxelCoordinates}}],[{key:"getOffset",value:function(a,c){if(a.spatialCoordinatesValid&&c.spatialCoordinatesValid)return{spatialOffset:b.p.subtract(b.p.create(),
+a.spatialCoordinates,c.spatialCoordinates)};if(a.voxelCoordinates&&c.voxelCoordinates){if(a.voxelSize!==c.voxelSize)throw Error("Voxel offsets are only meaningful with identical voxelSize.");return{voxelOffset:b.p.subtract(b.p.create(),a.voxelCoordinates,c.voxelCoordinates)}}return{}}},{key:"addOffset",value:function(a,c,d,f){f=void 0===f?1:f;var l=d.spatialOffset;d=d.voxelOffset;void 0!==l&&c.spatialCoordinatesValid?(b.p.scaleAndAdd(a.spatialCoordinates,c.spatialCoordinates,l,f),a.markSpatialCoordinatesChanged()):
+void 0!==d&&c.getVoxelCoordinates(r)&&a.setVoxelCoordinates(b.p.scaleAndAdd(r,r,d,f))}}]);return c}(g.a);a=function(){function a(b,c){c=void 0===c?new k:c;p(this,a);this.peer=b;this.link=c}h(a,[{key:"toJSON",value:function(){var a=this.link;if(a.value!==q.LINKED)return{link:a.toJSON(),value:this.getValueJson()}}},{key:"getValueJson",value:function(){return this.value.toJSON()}},{key:"reset",value:function(){this.link.value=q.LINKED}},{key:"restoreState",value:function(a){var b=this;void 0===a?this.link.value=
+q.LINKED:(Object(d.u)(a),this.link.value=q.UNLINKED,Object(d.w)(a,"value",function(a){void 0!==a&&b.value.restoreState(a)}),Object(d.w)(a,"link",function(a){return b.link.restoreState(a)}))}},{key:"copyToPeer",value:function(){this.link.value!==q.LINKED&&(this.link.value=q.UNLINKED,this.peer.assign(this.value),this.link.value=q.LINKED)}},{key:"changed",get:function(){return this.value.changed}}]);return a}();var A=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments));a.value=c(new u(a.peer.voxelSize.addRef()),a.peer,a.link,{assign:function(a,b){return a.assign(b)},isValid:function(a){return a.spatialCoordinatesValid||a.voxelCoordinatesValid},difference:u.getOffset,add:u.addOffset,subtract:function(a,b,c){u.addOffset(a,b,c,-1)}});return a}m(b,a);h(b,[{key:"getValueJson",value:function(){var a=this.value.toJSON()||{};delete a.voxelSize;return a}}]);return b}(a),y=function(a){function c(a){p(this,c);var d=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));
+d.changed=new f.a;null==a&&(a=b.l.create());d.orientation=a;return d}m(c,a);h(c,[{key:"toJSON",value:function(){var a=this.orientation;if(0!==a[0]||0!==a[1]||0!==a[2]||1!==a[3])return Array.prototype.slice.call(this.orientation)}},{key:"restoreState",value:function(a){try{Object(d.b)(this.orientation,a),b.l.normalize(this.orientation,this.orientation)}catch(H){b.l.identity(this.orientation)}this.changed.dispatch()}},{key:"reset",value:function(){b.l.identity(this.orientation);this.changed.dispatch()}},
+{key:"snap",value:function(){var a=b.i.create();b.i.fromQuat(a,this.orientation);for(var c=[!1,!1,!1],d=0;3>d;++d){for(var f=0,l=0,h=0;3>h;++h){var k=a[3*d+h];a[3*d+h]=0;!c[h]&&Math.abs(k)>Math.abs(f)&&(f=k,l=h)}a[3*d+l]=Math.sign(f);c[l]=!0}b.l.fromMat3(this.orientation,a);this.changed.dispatch()}},{key:"assign",value:function(a){b.l.copy(this.orientation,a.orientation);this.changed.dispatch()}}],[{key:"makeRelative",value:function(a,d){var f=new c(b.l.multiply(b.l.create(),a.orientation,d)),l=!1;
+f.registerDisposer(a.changed.add(function(){l||(h=!0,b.l.multiply(f.orientation,a.orientation,d),f.changed.dispatch(),h=!1)}));var h=!1,k=b.l.invert(b.l.create(),d);f.registerDisposer(f.changed.add(function(){h||(l=!0,b.l.multiply(a.orientation,f.orientation,k),a.changed.dispatch(),l=!1)}));return f}}]);return c}(g.a),z=function(a){function d(){p(this,d);var a=n(this,(d.__proto__||Object.getPrototypeOf(d)).apply(this,arguments));a.value=c(new y,a.peer,a.link,{assign:function(a,b){return a.assign(b)},
+isValid:function(){return!0},difference:function(a,c){var d=b.l.create();return b.l.multiply(d,b.l.invert(d,c.orientation),a.orientation)},add:function(a,c,d){b.l.multiply(a.orientation,c.orientation,d);a.changed.dispatch()},subtract:function(a,c,d){b.l.multiply(a.orientation,c.orientation,b.l.invert(l,d));a.changed.dispatch()}});return a}m(d,a);return d}(a),B=function(a){function c(a,b){p(this,c);var d=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));d.changed=new f.a;null==a&&(a=new u);
+d.position=a;null==b&&(b=new y);d.orientation=b;d.registerDisposer(d.position);d.registerDisposer(d.orientation);d.registerDisposer(d.position.changed.add(d.changed.dispatch));d.registerDisposer(d.orientation.changed.add(d.changed.dispatch));return d}m(c,a);h(c,[{key:"reset",value:function(){this.position.reset();this.orientation.reset()}},{key:"toMat4",value:function(a){b.j.fromRotationTranslation(a,this.orientation.orientation,this.position.spatialCoordinates)}},{key:"toJSON",value:function(){var a=
+this.position.toJSON(),b=this.orientation.toJSON();if(void 0!==a||void 0!==b)return{position:a,orientation:b}}},{key:"restoreState",value:function(a){var b=this;Object(d.u)(a);Object(d.w)(a,"position",function(a){void 0!==a&&b.position.restoreState(a)});Object(d.w)(a,"orientation",function(a){void 0!==a&&b.orientation.restoreState(a)})}},{key:"snap",value:function(){this.orientation.snap();this.position.snapToVoxel();this.changed.dispatch()}},{key:"translateAbsolute",value:function(a){b.p.add(this.position.spatialCoordinates,
+this.position.spatialCoordinates,a);this.position.changed.dispatch()}},{key:"translateRelative",value:function(a){this.valid&&(b.p.transformQuat(r,a,this.orientation.orientation),b.p.add(this.position.spatialCoordinates,this.position.spatialCoordinates,r),this.position.changed.dispatch())}},{key:"translateVoxelsRelative",value:function(a){if(this.valid){var c=b.p.create();b.p.transformQuat(c,a,this.orientation.orientation);b.p.multiply(c,c,this.position.voxelSize.size);b.p.add(this.position.spatialCoordinates,
+this.position.spatialCoordinates,c);this.position.changed.dispatch()}}},{key:"rotateRelative",value:function(a,c){var d=b.l.create();b.l.setAxisAngle(d,a,c);a=this.orientation.orientation;b.l.multiply(a,a,d);this.orientation.changed.dispatch()}},{key:"rotateAbsolute",value:function(a,c,d){var f=b.l.create();b.l.setAxisAngle(f,a,c);a=this.orientation.orientation;if(void 0!==d){c=this.position.spatialCoordinates;var h=b.p.subtract(r,d,c),k=b.l.invert(l,a);b.p.transformQuat(h,h,k);b.l.multiply(a,f,a);
+b.p.transformQuat(c,h,a);b.p.subtract(c,d,c);this.position.changed.dispatch()}else b.l.multiply(a,f,a);this.orientation.changed.dispatch()}},{key:"valid",get:function(){return this.position.valid}}]);return c}(g.a),x=function(a){function b(a,c){a=void 0===a?Number.NaN:a;c=void 0===c?a:c;p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.value_=a;d.defaultValue=c;d.changed=new f.a;return d}m(b,a);h(b,[{key:"toJSON",value:function(){var a=this.value_,b=this.defaultValue;if(!(Number.isNaN(a)&&
+Number.isNaN(b)||a===b))return a}},{key:"restoreState",value:function(a){"number"===typeof a&&Number.isFinite(a)&&0<a?this.value=a:this.value=this.defaultValue}},{key:"reset",value:function(){this.value=this.defaultValue}},{key:"zoomBy",value:function(a){var b=this.value_;Number.isNaN(b)||(this.value=b*a)}},{key:"assign",value:function(a){this.value=a.value}},{key:"value",get:function(){return this.value_},set:function(a){a!==this.value_&&(this.value_=a,this.changed.dispatch())}},{key:"valid",get:function(){return!Number.isNaN(this.value)}}]);
+return b}(g.a),v=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.value=function(){var b=new x;return c(b,a.peer,a.link,{assign:function(a,b){return a.assign(b)},isValid:function(a){return a.valid},difference:function(a,b){return a.value/b.value},add:function(a,b,c){a.value=b.value*c},subtract:function(a,b,c){a.value=b.value/c}})}();return a}m(b,a);return b}(a),E=function(a){function c(a,b){a=void 0===a?new B:a;b=void 0===b?Number.NaN:
+b;p(this,c);var d=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));d.pose=a;d.changed=new f.a;d.zoomFactor="number"===typeof b?new x(b):b;d.registerDisposer(d.zoomFactor);d.registerDisposer(a);d.registerDisposer(d.pose.changed.add(function(){d.changed.dispatch()}));d.registerDisposer(d.zoomFactor.changed.add(function(){d.changed.dispatch()}));d.registerDisposer(d.voxelSize.changed.add(function(){d.handleVoxelSizeChanged()}));d.handleVoxelSizeChanged();return d}m(c,a);h(c,[{key:"reset",value:function(){this.pose.reset();
+this.zoomFactor.reset()}},{key:"setZoomFactorFromVoxelSize",value:function(){this.voxelSize.valid&&(this.zoomFactor.value=Math.min.apply(null,this.voxelSize.size))}},{key:"handleVoxelSizeChanged",value:function(){this.zoomFactor.valid||this.setZoomFactorFromVoxelSize()}},{key:"toMat4",value:function(a){this.pose.toMat4(a);var c=this.zoomFactor.value;b.j.scale(a,a,b.p.fromValues(c,c,c))}},{key:"toJSON",value:function(){var a=this.pose.toJSON(),b=this.zoomFactor.toJSON();if(void 0!==a||void 0!==b)return{pose:a,
+zoomFactor:b}}},{key:"restoreState",value:function(a){var b=this;try{Object(d.u)(a),Object(d.w)(a,"pose",function(a){void 0!==a&&b.pose.restoreState(a)}),Object(d.w)(a,"zoomFactor",function(a){void 0!==a&&b.zoomFactor.restoreState(a)}),this.handleVoxelSizeChanged(),this.changed.dispatch()}catch(D){this.reset()}}},{key:"zoomBy",value:function(a){this.zoomFactor.zoomBy(a)}},{key:"voxelSize",get:function(){return this.pose.position.voxelSize}},{key:"position",get:function(){return this.pose.position}},
+{key:"valid",get:function(){return this.pose.valid}}]);return c}(g.a)},function(g,e,a){function p(a){var e=a.Symbol;if("function"===typeof e)return e.iterator||(e.iterator=e("iterator polyfill")),e.iterator;if((e=a.Set)&&"function"===typeof(new e)["@@iterator"])return"@@iterator";if(a=a.Map){e=Object.getOwnPropertyNames(a.prototype);for(var c=0;c<e.length;++c){var b=e[c];if("entries"!==b&&"size"!==b&&a.prototype[b]===a.prototype.entries)return b}}return"@@iterator"}g=a(12);e.symbolIteratorPonyfill=
+p;e.iterator=p(g.root);e.$$iterator=e.iterator},function(g,e,a){var p=a(0);g=function(){function a(a,c,b){this.kind=a;this.value=c;this.error=b;this.hasValue="N"===a}a.prototype.observe=function(a){switch(this.kind){case "N":return a.next&&a.next(this.value);case "E":return a.error&&a.error(this.error);case "C":return a.complete&&a.complete()}};a.prototype.do=function(a,c,b){switch(this.kind){case "N":return a&&a(this.value);case "E":return c&&c(this.error);case "C":return b&&b()}};a.prototype.accept=
+function(a,c,b){return a&&"function"===typeof a.next?this.observe(a):this.do(a,c,b)};a.prototype.toObservable=function(){switch(this.kind){case "N":return p.Observable.of(this.value);case "E":return p.Observable.throw(this.error);case "C":return p.Observable.empty()}throw Error("unexpected notification kind value");};a.createNext=function(e){return"undefined"!==typeof e?new a("N",e):a.undefinedValueNotification};a.createError=function(e){return new a("E",void 0,e)};a.createComplete=function(){return a.completeNotification};
+a.completeNotification=new a("C");a.undefinedValueNotification=new a("N",void 0);return a}();e.Notification=g},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)},n=a(12);g=function(a){function c(b,c){a.call(this,b,c);this.scheduler=b;this.work=c;this.pending=!1}p(c,a);c.prototype.schedule=function(a,c){void 0===c&&(c=0);if(this.closed)return this;
+this.state=a;this.pending=!0;a=this.id;var b=this.scheduler;null!=a&&(this.id=this.recycleAsyncId(b,a,c));this.delay=c;this.id=this.id||this.requestAsyncId(b,this.id,c);return this};c.prototype.requestAsyncId=function(a,c,f){void 0===f&&(f=0);return n.root.setInterval(a.flush.bind(a,this),f)};c.prototype.recycleAsyncId=function(a,c,f){void 0===f&&(f=0);return null!==f&&this.delay===f&&!1===this.pending?c:(n.root.clearInterval(c),void 0)};c.prototype.execute=function(a,c){if(this.closed)return Error("executing a cancelled action");
+this.pending=!1;if(a=this._execute(a,c))return a;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))};c.prototype._execute=function(a,c){c=!1;var b=void 0;try{this.work(a)}catch(h){c=!0,b=!!h&&h||Error(h)}if(c)return this.unsubscribe(),b};c.prototype._unsubscribe=function(){var a=this.id,c=this.scheduler,f=c.actions,h=f.indexOf(this);this.state=this.work=null;this.pending=!1;this.scheduler=null;-1!==h&&f.splice(h,1);null!=a&&(this.id=this.recycleAsyncId(c,
+a,null));this.delay=null};return c}(a(361).Action);e.AsyncAction=g},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){a.apply(this,arguments);this.actions=[];this.active=!1;this.scheduled=void 0}p(e,a);e.prototype.flush=function(a){var b=this.actions;if(this.active)b.push(a);else{var c;this.active=!0;do if(c=a.execute(a.state,
+a.delay))break;while(a=b.shift());this.active=!1;if(c){for(;a=b.shift();)a.unsubscribe();throw c;}}};return e}(a(362).Scheduler);e.AsyncScheduler=g},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){var c=a.call(this,"argument out of range");this.name=c.name="ArgumentOutOfRangeError";this.stack=c.stack;this.message=
+c.message}p(e,a);return e}(Error);e.ArgumentOutOfRangeError=g},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?
+Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return A});a.d(e,"a",function(){return y});a.d(e,"c",function(){return B});var c=a(25);g=a(23);var b=a(210);e=a(48);var d=a(50),f=a(3),h=a(27),q=a(30),k=a(31),t=a(18);a=a(15);var r=function E(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return E(a,b,c)}else{if("value"in
+d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},l=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=this&&this.__decorate||function(a,b,c,d){var f=arguments.length,l=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)l=
+Reflect.decorate(a,b,c,d);else for(var k=a.length-1;0<=k;k--)if(h=a[k])l=(3>f?h(l):3<f?h(b,c,l):h(b,c))||l;return 3<f&&l&&Object.defineProperty(b,c,l),l},A=function(){function a(){m(this,a);this.tempLightVec=new Float32Array(4);this.tempPickID=new Float32Array(4)}l(a,[{key:"defineShader",value:function(a){a.addAttribute("highp vec3","aVertexPosition");a.addAttribute("highp vec3","aVertexNormal");a.addVarying("highp vec4","vColor");a.addUniform("highp vec4","uLightDirection");a.addUniform("highp vec4",
+"uColor");a.addUniform("highp mat4","uModelMatrix");a.addUniform("highp mat4","uProjection");a.addUniform("highp vec4","uPickID");a.setVertexMain("\ngl_Position = uProjection * (uModelMatrix * vec4(aVertexPosition, 1.0));\nvec3 normal = (uModelMatrix * vec4(aVertexNormal, 0.0)).xyz;\nfloat lightingFactor = abs(dot(normal, uLightDirection.xyz)) + uLightDirection.w;\nvColor = vec4(lightingFactor * uColor.rgb, uColor.a);\n");a.setFragmentMain("emit(vColor, uPickID);")}},{key:"beginLayer",value:function(a,
+b,c){var d=c.dataToDevice,l=c.lightDirection,h=c.ambientLighting;c=c.directionalLighting;a.uniformMatrix4fv(b.uniform("uProjection"),!1,d);d=this.tempLightVec;f.p.scale(d,l,c);d[3]=h;a.uniform4fv(b.uniform("uLightDirection"),d)}},{key:"setColor",value:function(a,b,c){a.uniform4fv(b.uniform("uColor"),c)}},{key:"setPickID",value:function(a,b,c){a.uniform4fv(b.uniform("uPickID"),Object(t.p)(this.tempPickID,c))}},{key:"beginObject",value:function(a,b,c){a.uniformMatrix4fv(b.uniform("uModelMatrix"),!1,
+c)}},{key:"getShader",value:function(a,b){var c=this;return a.memoize.get("mesh/MeshShaderManager:"+Object(h.a)(b),function(){var d=new k.a(a);d.require(b);c.defineShader(d);return d.build()})}},{key:"drawFragment",value:function(a,b,c){c.vertexBuffer.bindToVertexAttrib(b.attribute("aVertexPosition"),3);c.normalBuffer.bindToVertexAttrib(b.attribute("aVertexNormal"),3);c.indexBuffer.bind();a.drawElements(a.TRIANGLES,c.numIndices,a.UNSIGNED_INT,0)}},{key:"endLayer",value:function(a,b){a.disableVertexAttribArray(b.attribute("aVertexPosition"));
+a.disableVertexAttribArray(b.attribute("aVertexNormal"))}}]);return a}(),y=function(a){function f(a,c,l){m(this,f);var h=p(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));h.chunkManager=a;h.source=c;h.displayState=l;h.meshShaderManager=new A;h.shaders=new Map;Object(d.f)(l,h);a=h.sharedObject=h.registerDisposer(new d.b(a,l));a.RPC_TYPE_ID=b.b;a.initializeCounterpartWithChunkManager({source:c.addCounterpartRef()});h.setReady(!0);a.visibility.add(h.visibility);return h}n(f,a);l(f,[{key:"getShader",
+value:function(a){var b=this.shaders,c=b.get(a);void 0===c&&(c=this.registerDisposer(this.meshShaderManager.getShader(this.gl,a)),b.set(a,c));return c}},{key:"draw",value:function(a){var b=this;if(a.emitColor||!a.alreadyEmittedPickID){var f=this.gl,l=this.displayState,h=this.meshShaderManager,k=Math.min(1,l.objectAlpha.value);if(!(0>=k)){var q=this.getShader(a.emitter);q.bind();h.beginLayer(f,q,a);var r=a.pickIDs,e=this.displayState.objectToDataTransform.transform;Object(d.d)(l,this.source.fragmentSource.objectChunks,
+function(u,t,g){a.emitColor&&h.setColor(f,q,Object(d.e)(l,u,k));a.emitPickID&&h.setPickID(f,q,r.registerUint64(b,t));h.beginObject(f,q,e);u=$jscomp.makeIterator(g);for(t=u.next();!t.done;t=u.next())t=t.value,t.state===c.d.GPU_MEMORY&&h.drawFragment(f,q,t)});h.endLayer(f,q)}}}},{key:"isTransparent",get:function(){return 1>this.displayState.objectAlpha.value}},{key:"gl",get:function(){return this.chunkManager.chunkQueueManager.gl}}]);return f}(e.a),z=function(a){function b(a,c){m(this,b);a=p(this,(b.__proto__||
+Object.getPrototypeOf(b)).call(this,a));a.objectKey=c.objectKey;a.vertexPositions=c.vertexPositions;var d=a.indices=c.indices;a.numIndices=d.length;a.vertexNormals=c.vertexNormals;return a}n(b,a);l(b,[{key:"copyToGPU",value:function(a){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"copyToGPU",this).call(this,a);this.vertexBuffer=q.a.fromData(a,this.vertexPositions,a.ARRAY_BUFFER,a.STATIC_DRAW);this.indexBuffer=q.a.fromData(a,this.indices,a.ELEMENT_ARRAY_BUFFER,a.STATIC_DRAW);this.normalBuffer=
+q.a.fromData(a,this.vertexNormals,a.ARRAY_BUFFER,a.STATIC_DRAW)}},{key:"freeGPUMemory",value:function(a){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"freeGPUMemory",this).call(this,a);this.vertexBuffer.dispose();this.indexBuffer.dispose();this.normalBuffer.dispose()}}]);return b}(g.b),B=function(a){function b(){m(this,b);var a=p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.fragmentSource=a.registerDisposer(new x(a.chunkManager,a));return a}n(b,a);l(b,[{key:"initializeCounterpart",
+value:function(a,c){this.fragmentSource.initializeCounterpart(this.chunkManager.rpc,{});c.fragmentSource=this.fragmentSource.addCounterpartRef();r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeCounterpart",this).call(this,a,c)}}]);return b}(g.e),x=function(a){function b(a,c){m(this,b);a=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a));a.meshSource=c;a.objectChunks=new Map;return a}n(b,a);l(b,[{key:"addChunk",value:function(a,c){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"addChunk",this).call(this,a,c);a=this.objectChunks;var d=c.objectKey,f=a.get(d);void 0===f&&(f=new Set,a.set(d,f));f.add(c)}},{key:"deleteChunk",value:function(a){var c=this.chunks.get(a);r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"deleteChunk",this).call(this,a);a=this.objectChunks;var d=c.objectKey,f=a.get(d);f.delete(c);0===f.size&&a.delete(d)}},{key:"getChunk",value:function(a){return new z(this,a)}}]);return b}(g.e);x=u([Object(a.g)(b.a)],x)},function(g,e){e=function(){return this}();
+try{e=e||Function("return this")()||(0,eval)("this")}catch(a){"object"===typeof window&&(e=window)}g.exports=e},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){a.addFragmentCode("\nvoid emit(vec4 color, vec4 pickId) {\n  gl_FragColor = color;\n}\n")}function b(a){a.addFragmentCode("\nvoid emit(vec4 color, vec4 pickId) {\n  gl_FragColor = pickId;\n}\n")}a.d(e,"b",function(){return z});a.d(e,"a",function(){return B});var d=a(126),f=a(21),h=a(128);g=a(129);var q=
+a(43),k=a(22),t=a(3),r=a(68),l=a(88),u=a(89),A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),y;(function(a){a[a.COLOR=0]="COLOR";a[a.PICK=1]="PICK";a[a.NUM_TEXTURES=2]="NUM_TEXTURES"})(y||(y={}));var z=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}
+m(b,a);A(b,[{key:"draw",value:function(a){}}]);return b}(f.h),B=function(a){function e(a,b,g,A){p(this,e);var m=n(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,b,A));m.sliceView=g;m.axesLineHelper=m.registerDisposer(d.a.get(m.gl));m.sliceViewRenderHelper=m.registerDisposer(q.d.get(m.gl,c));m.colorFactor=t.r.fromValues(1,1,1,1);m.backgroundColor=t.r.fromValues(.5,.5,.5,1);m.pickIDs=new h.a;m.visibleLayerTracker=Object(f.i)(m.viewer.layerManager,z,m);m.offscreenFramebuffer=m.registerDisposer(new l.b(m.gl,
+{colorBuffers:Object(l.e)(m.gl,y.NUM_TEXTURES)}));m.offscreenCopyHelper=m.registerDisposer(l.c.get(m.gl));m.scaleBarCopyHelper=m.registerDisposer(l.c.get(m.gl));m.scaleBarTexture=m.registerDisposer(new u.b(m.gl));Object(k.c)(b,"translate-via-mouse-drag",function(a){m.viewer.mouseState.updateUnconditionally()&&Object(r.a)(a.detail,function(a,b,c){a=m.viewer.navigationState.position;var d=a.spatialCoordinates;t.p.set(d,b,c,0);t.p.transformMat4(d,d,m.sliceView.viewportToData);a.changed.dispatch()})});
+Object(k.c)(b,"rotate-via-mouse-drag",function(a){var b=m.viewer.mouseState;if(b.updateUnconditionally()){var c=t.p.clone(b.position);Object(r.a)(a.detail,function(a,b,d){a=m.sliceView.viewportAxes;m.viewer.navigationState.pose.rotateAbsolute(a[1],b/4*Math.PI/180,c);m.viewer.navigationState.pose.rotateAbsolute(a[0],d/4*Math.PI/180,c)})}});m.registerDisposer(g);m.registerDisposer(g.visibility.add(m.visibility));m.registerDisposer(g.viewChanged.add(function(){m.visible&&a.scheduleRedraw()}));m.registerDisposer(A.showAxisLines.changed.add(function(){m.visible&&
+m.scheduleRedraw()}));m.registerDisposer(A.showScaleBar.changed.add(function(){m.visible&&m.context.scheduleRedraw()}));return m}m(e,a);A(e,[{key:"draw",value:function(){var a=this.sliceView;if(a.hasValidViewport){this.onResize();a.updateRendering();var d=this.gl,f=a.width,l=a.height,h=a.dataToDevice;this.offscreenFramebuffer.bind(f,l);d.disable(d.SCISSOR_TEST);this.gl.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);var k=t.j.create();this.sliceViewRenderHelper.draw(a.offscreenFramebuffer.colorBuffers[0].texture,
+t.d,this.colorFactor,this.backgroundColor,0,0,1,1);var q=this.visibleLayerTracker.getVisibleLayers(),e=this.pickIDs;e.clear();this.offscreenFramebuffer.bindSingle(y.COLOR);e={dataToDevice:a.dataToDevice,pickIDs:e,emitter:c,emitColor:!0,emitPickID:!1,viewportWidth:f,viewportHeight:l};d.enable(d.BLEND);d.blendFunc(d.SRC_ALPHA,d.ONE_MINUS_SRC_ALPHA);for(var r=$jscomp.makeIterator(q),u=r.next();!u.done;u=r.next())u.value.draw(e);d.disable(d.BLEND);this.offscreenFramebuffer.bindSingle(y.PICK);e.emitColor=
+!1;e.emitPickID=!0;e.emitter=b;q=$jscomp.makeIterator(q);for(u=q.next();!u.done;u=q.next())u.value.draw(e);if(this.viewer.showAxisLines.value||this.viewer.showScaleBar.value){if(this.viewer.showAxisLines.value){t.j.copy(k,h);for(h=0;3>h;++h)k[12+h]=0;for(h=0;4>h;++h)k[2+4*h]=0;l=Math.min(f,l)/4*1.5;h=a.pixelSize;for(q=0;12>q;++q)k[q]=k[q]*l*h}this.offscreenFramebuffer.bindSingle(y.COLOR);this.viewer.showAxisLines.value&&this.axesLineHelper.draw(k);this.viewer.showScaleBar.value&&(d.enable(d.BLEND),
+d.blendFunc(d.SRC_ALPHA,d.ONE_MINUS_SRC_ALPHA),k=this.scaleBarTexture,l=k.dimensions,l.targetLengthInPixels=Math.min(f/4,100),l.nanometersPerPixel=a.pixelSize,k.update(),d.viewport(10,10,k.width,k.height),this.scaleBarCopyHelper.draw(k.texture),d.disable(d.BLEND))}this.offscreenFramebuffer.unbind();this.setGLViewport();this.offscreenCopyHelper.draw(this.offscreenFramebuffer.colorBuffers[y.COLOR].texture)}}},{key:"onResize",value:function(){this.sliceView.setViewportSize(this.element.clientWidth,this.element.clientHeight)}},
+{key:"updateMouseState",value:function(a){a.pickedRenderLayer=null;var b=this.sliceView;if(!b.hasValidViewport)return!1;var c=b.width,d=b.height,f=this.offscreenFramebuffer;if(!f.hasSize(c,d))return!1;var l=a.position,h=this.mouseX,k=this.mouseY;t.p.set(l,h-c/2,k-d/2,0);t.p.transformMat4(l,l,b.viewportToData);this.pickIDs.setMouseState(a,f.readPixelAsUint32(y.PICK,h,d-k));return!0}},{key:"zoomByMouse",value:function(a){var b=this.navigationState;if(b.valid){var c=this.sliceView,d=c.height,f=this.mouseX,
+l=this.mouseY;f-=c.width/2;l-=d/2;d=this.navigationState.zoomFactor.value;b.zoomBy(a);a=b.zoomFactor.value;var h=b.position.spatialCoordinates;t.p.scaleAndAdd(h,h,c.viewportAxes[0],f*(d-a));t.p.scaleAndAdd(h,h,c.viewportAxes[1],l*(d-a));b.position.changed.dispatch()}}},{key:"navigationState",get:function(){return this.sliceView.navigationState}}]);return e}(g.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==
+typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"a",function(){return k});g=a(24);var c=a.n(g);g=
+a(1);var b=a(225),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function r(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return r(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},
+h=new function l(){m(this,l);b.a.initializeHead(this)},q=c()(function(){var a=document.activeElement;if(null===a||a===document.body)a=b.a.front(h),null!==a&&a.element.focus()});window.addEventListener("focus",function(){q()},!0);window.addEventListener("blur",function(){q()},!0);var k=function(a){function l(a){m(this,l);var d=p(this,(l.__proto__||Object.getPrototypeOf(l)).call(this));d.element=a;d.prev0=null;d.next0=null;d.lastFocusedElement=null;d.scheduleUpdateFocus=d.registerCancellable(c()(function(){var a=
+document.activeElement,b=d.element;b.contains(a)||((a===d.lastFocusedElement||a.contains(b))&&d.element.focus(),d.lastFocusedElement=null)},0));a.tabIndex=-1;d.registerEventListener(a,"mouseenter",function(){d.lastFocusedElement=document.activeElement;d.scheduleUpdateFocus()});d.registerEventListener(a,"mouseleave",function(){d.scheduleUpdateFocus.cancel()});b.a.insertBefore(h,d);d.registerEventListener(a,"focus",function(){b.a.pop(d);b.a.insertAfter(h,d)});q();return d}n(l,a);d(l,[{key:"disposed",
+value:function(){b.a.pop(this);f(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"disposed",this).call(this)}}]);return l}(g.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&
+(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b,c){for(var d=0;3>d;++d)a[d]=Number.POSITIVE_INFINITY,b[d]=Number.NEGATIVE_INFINITY;c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next()){var f=d.value.spec;d=f.lowerChunkBound;f=f.upperChunkBound;for(var l=0;3>l;++l)a[l]=Math.min(a[l],d[l]),b[l]=Math.max(b[l],f[l])}}function c(a,b,c,d){for(var f=l.FULLY_INSIDE,h=0;3>h;++h){var k=a[h];var q=b[h],e=c[h],r=d[h];k=k>=r||q<=e?l.FULLY_OUTSIDE:k>=e&&q<=r?l.FULLY_INSIDE:
+l.PARTIALLY_INSIDE;switch(k){case l.FULLY_OUTSIDE:return k;case l.PARTIALLY_INSIDE:f=k}}return f}function b(a,b){var c=b.length,d=0;if(1<c)for(var f=0,l=0;l<c;++l){var h=b[l].spec.chunkLayout;var k=h.size;h=h.globalToLocalSpatialVector(r,a);for(var q=0,e=0,u=1,g=0;3>g;++g){var t=k[g];u*=t;t*=h[g];q=Math.min(q,t);e=Math.max(e,t)}k=u/(e-q);k>f&&(f=k,d=l)}return b[d]}function d(a){var b=a.voxelSize,c=void 0===a.lowerVoxelBound?k.h:a.lowerVoxelBound,d=a.upperVoxelBound,f=void 0===a.maxVoxelsPerChunkLog2?
+18:a.maxVoxelsPerChunkLog2;a=void 0===a.transform?k.d:a.transform;a=Object(k.c)(k.p.create(),a);b=k.p.multiply(a,a,b);a=k.p.fromValues(1,1,1);if(void 0===d)var l=k.f;else{l=k.p.create();for(var h=0;3>h;++h)l[h]=Math.pow(2,Math.floor(Math.log2(d[h]-c[h])))}for(c=0;c<f;++c){d=Infinity;h=-1;for(var q=0;3>q;++q)if(!(a[q]>=l[q])){var e=a[q]*b[q];e<d&&(d=e,h=q)}d=h;if(-1===d)break;a[d]*=2}return a}a.d(e,"b",function(){return A});e.f=d;e.e=function(a,b){b=b.transform;return void 0===b?void 0===a?k.d:a:void 0===
+a?b:k.j.multiply(k.j.create(),b,a)};e.d=function(a){if(void 0!==a.chunkDataSizes)return a.chunkDataSizes;var b=void 0===a.chunkLayoutPreference?y.ISOTROPIC:a.chunkLayoutPreference;switch(b){case y.ISOTROPIC:return[d(a)];case y.FLAT:b=[];for(var c=0;3>c;++c){var f=c;var l=a.lowerVoxelBound;var h=a.upperVoxelBound,q=c,e=a.voxelSize,u=a.maxVoxelsPerChunkLog2,g=a.transform;k.p.subtract(r,void 0===h?k.f:h,void 0===l?k.h:l);r[q]=1;l=d({voxelSize:e,upperVoxelBound:r,maxVoxelsPerChunkLog2:u,transform:g});
+b[f]=l}b.push(d(a));return b}throw Error("Invalid chunk layout preference: "+b+".");};a.d(e,"c",function(){return z});var f=a(229),h=a(132),q=a(230);a(42);var k=a(3);g=a(15);var t=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),r=k.p.create(),l;(function(a){a[a.FULLY_OUTSIDE=0]="FULLY_OUTSIDE";a[a.FULLY_INSIDE=
+1]="FULLY_INSIDE";a[a.PARTIALLY_INSIDE=2]="PARTIALLY_INSIDE"})(l||(l={}));var u=[k.p.create(),k.p.create(),k.p.create(),k.p.create()],A=function(a){function d(){p(this,d);var a=(d.__proto__||Object.getPrototypeOf(d)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.width=-1;a.height=-1;a.hasViewportToData=!1;a.hasValidViewport=!1;a.viewportToData=k.j.create();a.viewportAxes=[k.p.create(),
+k.p.create(),k.p.create()];a.previousViewportAxes=[k.p.create(),k.p.create()];a.centerDataPosition=k.p.create();a.viewportPlaneDistanceToOrigin=0;a.visibleChunkLayouts=new Map;a.visibleLayers=new Map;a.visibleSourcesStale=!0;a.pixelSize=0;k.j.identity(a.viewportToData);return a}n(d,a);t(d,[{key:"onViewportChanged",value:function(){}},{key:"maybeSetHasValidViewport",value:function(){!this.hasValidViewport&&-1!==this.width&&-1!==this.height&&this.hasViewportToData&&(this.hasValidViewport=!0,this.onHasValidViewport());
+if(this.hasValidViewport)this.onViewportChanged()}},{key:"onHasValidViewport",value:function(){}},{key:"setViewportSize",value:function(a,b){return a!==this.width||b!==this.height?(this.width=a,this.height=b,this.maybeSetHasValidViewport(),!0):!1}},{key:"setViewportToDataMatrix",value:function(a){if(this.hasViewportToData&&k.j.equals(this.viewportToData,a))return!1;this.hasViewportToData=!0;var b=this.viewportToData;k.j.copy(b,a);Object(k.m)(b);k.p.transformMat4(this.centerDataPosition,k.h,a);a=0;
+for(var c=this.viewportAxes,d=this.previousViewportAxes,f=0;3>f;++f){var l=c[f];Object(k.n)(l,k.e[f],b);0===f&&(a=k.p.length(l));k.p.normalize(l,l)}this.viewportAxes=c;this.previousViewportAxes=d;if(!Object(q.a)(a,this.pixelSize)||.95>k.p.dot(c[0],d[0])||.95>k.p.dot(c[1],d[1]))k.p.copy(d[0],c[0]),k.p.copy(d[1],c[1]),this.visibleSourcesStale=!0,this.pixelSize=a;this.viewportPlaneDistanceToOrigin=k.p.dot(this.centerDataPosition,this.viewportAxes[2]);this.onViewportToDataMatrixChanged();this.maybeSetHasValidViewport();
+return!0}},{key:"onViewportToDataMatrixChanged",value:function(){}},{key:"updateVisibleSources",value:function(){if(this.visibleSourcesStale){this.visibleSourcesStale=!1;var a=1.1*this.pixelSize,c=this.visibleChunkLayouts,d=this.viewportAxes[2],f=this.visibleLayers;c.clear();var l={};f=$jscomp.makeIterator(f);for(var h=f.next();!h.done;l={smallestVoxelSize:l.smallestVoxelSize,visibleSources:l.visibleSources},h=f.next()){h=$jscomp.makeIterator(h.value);var k=h.next().value;l.visibleSources=h.next().value;
+l.visibleSources.length=0;h=k.sources;var q=h.length;k=void 0;l.smallestVoxelSize=h[0][0].spec.voxelSize;var e=function(b){return function(c){for(var d=0;3>d;++d){var f=c[d];if(f>a&&f>b.smallestVoxelSize[d])return!0}return!1}}(l),r=function(a){return function(b,d){a.visibleSources[a.visibleSources.length++]=b;var f=b.spec.chunkLayout,l=c.get(f);void 0===l&&(l=new Map,c.set(f,l));l.set(b,d)}}(l);for(k=q-1;;){q=b(d,h[k]);r(q,k);if(0===k||!e(q.spec.voxelSize))break;--k}l.visibleSources.reverse()}}}},
+{key:"computeVisibleChunks",value:function(a,b){var d=this;this.updateVisibleSources();for(var f=this.width,q=this.height,e=this.viewportToData,g=0;3>g;++g)u[0][g]=-k.e[0][g]*f/2-k.e[1][g]*q/2,u[1][g]=-k.e[0][g]*f/2+k.e[1][g]*q/2,u[2][g]=k.e[0][g]*f/2-k.e[1][g]*q/2,u[3][g]=k.e[0][g]*f/2+k.e[1][g]*q/2;for(f=0;4>f;++f)k.p.transformMat4(u[f],u[f],e);var t=k.p.create(),A=k.p.create(),n=k.p.create(),y=k.p.create(),p=k.p.create(),E=k.p.create(),v=[],B=[];this.visibleChunkLayouts.forEach(function(f,q){function e(){for(var a=
+0,b=0,c=0;3>c;++c){var d=E[c],f=t[c],l=A[c]-f,h=p[c]*l;a+=d*(f+h);b+=d*(f+l-h)}return a<x?!1:b<=x}function g(a){function d(){H=Object(h.b)(v,0,n,function(a){var b=a.spec;switch(c(t,A,b.lowerChunkBound,b.upperChunkBound)){case l.PARTIALLY_INSIDE:return!0;case l.FULLY_INSIDE:B.push(a);default:return!1}})}if(0!==B.length||0!==H){for(var f=1,k=0;3>k;++k)f*=Math.max(0,A[k]-t[k]);if(0!==f&&e())if(1===f)b(q,F,t,B);else{for(var r;;)if(f=t[a],k=A[a],r=k-f,1===r)a=(a+1)%3;else break;r=f+Math.floor(.5*r);var u=
+(a+1)%3,m=B.length;A[a]=r;var n=H;d();g(u);B.length=m;H=n;A[a]=k;t[a]=r;d();g(u);t[a]=f;B.length=m;H=n}}}var F=a(q);m(n,y,f.keys());k.p.set(t,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY);k.p.set(A,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);q.globalToLocalSpatialVector(E,d.viewportAxes[2]);for(var C=0;3>C;++C)p[C]=0<E[C]?1:0;var x=k.p.dot(q.globalToLocalGrid(r,d.centerDataPosition),E);for(C=0;4>C;++C)for(var z=q.globalToLocalGrid(r,u[C]),
+G=0;3>G;++G)t[G]=Math.min(t[G],Math.floor(z[G])),A[G]=Math.max(A[G],Math.floor(z[G])+1);k.p.max(t,t,n);k.p.min(A,A,y);B.length=0;v.length=0;f=$jscomp.makeIterator(f.keys());for(C=f.next();!C.done;C=f.next())switch(C=C.value,z=C.spec,c(t,A,z.lowerChunkBound,z.upperChunkBound)){case l.FULLY_INSIDE:B.push(C);break;case l.PARTIALLY_INSIDE:v.push(C)}var H=v.length;g(0)})}}]);return d}(g.b),y;(function(a){a[a.ISOTROPIC=0]="ISOTROPIC";a[a.FLAT=1]="FLAT"})(y||(y={}));var z=function x(a){p(this,x);var b=void 0===
+a.lowerVoxelBound?k.h:a.lowerVoxelBound,c=a.upperVoxelBound,d=a.chunkDataSize,l=a.voxelSize,h=a.transform,q=void 0===a.baseVoxelOffset?k.h:a.baseVoxelOffset,e=void 0===a.lowerClipBound?k.p.multiply(k.p.create(),l,b):a.lowerClipBound,r=void 0===a.upperClipBound?k.p.multiply(k.p.create(),l,c):a.upperClipBound;this.voxelSize=l;this.chunkDataSize=d;this.chunkLayout=f.a.get(k.p.multiply(k.p.create(),a.chunkDataSize,l),h);this.lowerClipBound=e;this.upperClipBound=r;this.lowerVoxelBound=b;this.upperVoxelBound=
+c;this.baseVoxelOffset=q;a=this.lowerChunkBound=k.p.create();l=this.upperChunkBound=k.p.create();for(h=0;3>h;++h)a[h]=Math.floor(b[h]/d[h]),l[h]=Math.floor((c[h]-1)/d[h]+1)};e.a="SliceView"},function(g,e,a){e.a=function(a,b,d,f,h){b=void 0===b?-1:b;d=void 0===d?-1:d;f=void 0===f?1:f;h=void 0===h?1:h;return a.memoize.get("SquareCornersBuffer:"+b+","+d+","+f+","+h,function(){return new p.b(n.a.fromData(a,new Float32Array([b,d,b,h,f,h,f,d]),m.a,m.k))}).value};var p=a(1),n=a(30),m=a(35)},function(g,e,
+a){function p(a){a.texParameteri(n.m,n.o,n.h);a.texParameteri(n.m,n.n,n.h);a.texParameteri(n.m,n.p,n.b);a.texParameteri(n.m,n.q,n.b)}e.b=p;e.a=function(a,c,b,d,f,h){f=void 0===f?n.j:f;h=void 0===h?n.t:h;a.activeTexture(n.l+a.tempTextureUnit);a.bindTexture(n.m,c);p(a);a.texImage2D(n.m,0,f,b,d,0,f,h,null);a.bindTexture(n.m,null)};e.c=function(a,c,b){a.activeTexture(n.l+a.tempTextureUnit);a.bindTexture(n.m,c);a.texParameteri(n.m,n.o,n.e);a.texParameteri(n.m,n.n,n.e);a.texParameteri(n.m,n.p,n.b);a.texParameteri(n.m,
+n.q,n.b);a.pixelStorei(n.s,!0);a.pixelStorei(n.r,4);a.texImage2D(n.m,0,n.j,n.j,n.t,b);a.pixelStorei(n.s,!1);a.bindTexture(n.m,null)};var n=a(35)},function(g,e,a){e.a=function(a,e){var g=a.view.document,c=a.screenX,b=a.screenY,d=function(a){var d=c-a.screenX,f=b-a.screenY;c=a.screenX;b=a.screenY;e(a,d,f)},f=a.button,h=function(a){a.button===f&&(g.removeEventListener("mousemove",d,!0),g.removeEventListener("mouseup",h,!1))};g.addEventListener("mousemove",d,!0);g.addEventListener("mouseup",h,!1)}},function(g,
+e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){return new F.a({fragmentMain:a.displayState.fragmentMain,shaderError:a.displayState.shaderError,fragmentMainStartLine:t.a})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"SegmentationUserLayer",function(){return D});var b=a(94);g=a(21);var d=a(20),f=a(61);e=a(45);var h=a(98),q=a(50),k=a(261),t=a(125),r=a(19),l=a(150),u=a(52),A=a(54),y=a(263),z=a(6),B=a(16),x=a(44),v=a(95),E=a(264),F=a(96),C=a(266),G=a(83),H=
+function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(36);a(268);var D=function(a){function c(a,f){p(this,c);var e=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,[]));e.manager=a;e.displayState={segmentColorHash:h.a.getDefault(),segmentSelectionState:new q.a,selectedAlpha:Object(u.a)(.5),notSelectedAlpha:Object(u.a)(0),
+objectAlpha:Object(u.a)(1),clipBounds:G.a.make(e.manager.worker,void 0),hideSegmentZero:new A.b(!0,!0),visibleSegments:y.a.makeWithCounterpart(e.manager.worker),segmentEquivalences:k.a.makeWithCounterpart(e.manager.worker),volumeSourceOptions:{},objectToDataTransform:new b.a,fragmentMain:Object(t.f)(),shaderError:Object(x.b)()};e.displayState.visibleSegments.changed.add(function(){e.specificationChanged.dispatch()});e.displayState.segmentEquivalences.changed.add(function(){e.specificationChanged.dispatch()});
+e.displayState.segmentSelectionState.bindTo(a.layerSelectedValues,e);e.displayState.selectedAlpha.changed.add(function(){e.specificationChanged.dispatch()});e.displayState.notSelectedAlpha.changed.add(function(){e.specificationChanged.dispatch()});e.displayState.objectAlpha.changed.add(function(){e.specificationChanged.dispatch()});e.displayState.hideSegmentZero.changed.add(function(){e.specificationChanged.dispatch()});e.displayState.fragmentMain.changed.add(function(){e.specificationChanged.dispatch()});
+e.displayState.selectedAlpha.restoreState(f.selectedAlpha);e.displayState.notSelectedAlpha.restoreState(f.notSelectedAlpha);e.displayState.objectAlpha.restoreState(f.objectAlpha);e.displayState.hideSegmentZero.restoreState(f.hideSegmentZero);e.displayState.objectToDataTransform.restoreState(f.transform);e.displayState.volumeSourceOptions.transform=e.displayState.objectToDataTransform.transform;e.displayState.fragmentMain.restoreState(f.skeletonShader);var g=e.volumePath=Object(z.z)(f.source),m=e.meshPath=
+null===f.mesh?null:Object(z.z)(f.mesh),E=e.skeletonsPath=Object(z.z)(f.skeletons);void 0!==g&&Object(d.d)(a.dataSourceProvider,a.chunkManager,g,{volumeType:r.d.SEGMENTATION}).then(function(a){e.wasDisposed||(e.addRenderLayer(new l.a(a,e.displayState)),void 0===m&&(a=a.getMeshSource(),null!=a&&e.addMesh(a)))});null!=m&&e.manager.dataSourceProvider.getMeshSource(a.chunkManager,m).then(function(a){e.wasDisposed||e.addMesh(a)});void 0!==E&&e.manager.dataSourceProvider.getSkeletonSource(a.chunkManager,
+E).then(function(b){e.wasDisposed||(b=new t.c(a.chunkManager,b,a.voxelSize,e.displayState),e.addRenderLayer(new t.b(b.addRef())),e.addRenderLayer(new t.e(b)))});Object(z.w)(f,"equivalences",function(a){e.displayState.segmentEquivalences.restoreState(a)});Object(z.w)(f,"segments",function(a){if(void 0!==a){var b=e.displayState,c=b.visibleSegments,d=b.segmentEquivalences;Object(z.a)(a,function(a){a=B.a.parseString(String(a),10);c.add(d.get(a))})}});Object(z.w)(f,"clipBounds",function(a){if(void 0!==
+a){var b,c;Object(z.w)(a,"center",function(a){return b=Object(z.l)(a)});Object(z.w)(a,"size",function(a){return c=Object(z.l)(a)});b&&c&&(e.displayState.clipBounds.value={center:b,size:c})}});return e}m(c,a);H(c,[{key:"addMesh",value:function(a){this.meshLayer=new f.a(this.manager.chunkManager,a,this.displayState);this.addRenderLayer(this.meshLayer)}},{key:"toJSON",value:function(){var a={type:"segmentation"};a.source=this.volumePath;a.mesh=this.meshPath;a.skeletons=this.skeletonsPath;a.selectedAlpha=
+this.displayState.selectedAlpha.toJSON();a.notSelectedAlpha=this.displayState.notSelectedAlpha.toJSON();a.objectAlpha=this.displayState.objectAlpha.toJSON();a.hideSegmentZero=this.displayState.hideSegmentZero.toJSON();var b=this.displayState.visibleSegments;0<b.size&&(a.segments=b.toJSON());b=this.displayState.segmentEquivalences;0<b.size&&(a.equivalences=b.toJSON());b=this.displayState.clipBounds;b.value&&(a.clipBounds={center:b.value.center,size:b.value.size});a.transform=this.displayState.objectToDataTransform.toJSON();
+a.skeletonShader=this.displayState.fragmentMain.toJSON();return a}},{key:"transformPickedValue",value:function(a){if(null==a)return a;var b=this.displayState.segmentEquivalences;if(0===b.size)return a;"number"===typeof a&&(a=new B.a(a,0));b=b.get(a);return B.a.equal(b,a)?a:new q.c(a,b)}},{key:"makeDropdown",value:function(a){return new O(a,this)}},{key:"handleAction",value:function(a){switch(a){case "recolor":this.displayState.segmentColorHash.randomize();break;case "clear-segments":this.displayState.visibleSegments.clear();
+break;case "select":if(a=this.displayState.segmentSelectionState,a.hasSelectedSegment){a=a.selectedSegment;var b=this.displayState.visibleSegments;b.has(a)?b.delete(a):b.add(a)}}}}]);return c}(g.f),O=function(a){function b(a,d){p(this,b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));f.element=a;f.layer=d;f.visibleSegmentWidget=f.registerDisposer(new E.a(f.layer.displayState));f.addSegmentWidget=f.registerDisposer(new C.a);f.selectedAlphaWidget=f.registerDisposer(new v.a(f.layer.displayState.selectedAlpha));
+f.notSelectedAlphaWidget=f.registerDisposer(new v.a(f.layer.displayState.notSelectedAlpha));f.objectAlphaWidget=f.registerDisposer(new v.a(f.layer.displayState.objectAlpha));a.classList.add("segmentation-dropdown");var l=f.notSelectedAlphaWidget,h=f.objectAlphaWidget;f.selectedAlphaWidget.promptElement.textContent="Opacity (on)";l.promptElement.textContent="Opacity (off)";h.promptElement.textContent="Opacity (3d)";a.appendChild(f.selectedAlphaWidget.element);a.appendChild(f.notSelectedAlphaWidget.element);
+a.appendChild(f.objectAlphaWidget.element);d=f.registerDisposer(new A.c(d.displayState.hideSegmentZero));d.element.className="neuroglancer-segmentation-dropdown-hide-segment-zero neuroglancer-noselect";l=document.createElement("label");l.className="neuroglancer-segmentation-dropdown-hide-segment-zero neuroglancer-noselect";l.appendChild(document.createTextNode("Hide segment ID 0"));l.appendChild(d.element);a.appendChild(l);f.addSegmentWidget.element.classList.add("add-segment");f.addSegmentWidget.element.title=
+"Add one or more segment IDs";a.appendChild(f.registerDisposer(f.addSegmentWidget).element);f.registerDisposer(f.addSegmentWidget.valuesEntered.add(function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())f.layer.displayState.visibleSegments.add(b.value)}));a.appendChild(f.registerDisposer(f.visibleSegmentWidget).element);if(void 0!==f.layer.skeletonsPath){d=document.createElement("div");d.className="neuroglancer-segmentation-dropdown-skeleton-shader-header";l=document.createElement("div");
+l.style.flex="1";l.textContent="Skeleton shader:";h=document.createElement("a");var k=document.createElement("button");k.type="button";k.textContent="?";k.className="help-link";h.appendChild(k);h.title="Documentation on skeleton rendering";h.target="_blank";h.href="https://github.com/google/neuroglancer/blob/master/src/neuroglancer/sliceview/image_layer_rendering.md";k=document.createElement("button");k.innerHTML="&square;";k.className="maximize-button";k.title="Show larger editor view";f.registerEventListener(k,
+"click",function(){new J(f.layer)});d.appendChild(l);d.appendChild(k);d.appendChild(h);a.appendChild(d);d=f.codeWidget=f.registerDisposer(c(f.layer));a.appendChild(d.element);d.textEditor.refresh()}return f}m(b,a);H(b,[{key:"onShow",value:function(){void 0!==this.codeWidget&&this.codeWidget.textEditor.refresh()}}]);return b}(g.g),J=function(a){function b(a){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.layer=a;d.codeWidget=d.registerDisposer(c(d.layer));d.content.classList.add("neuroglancer-segmentation-layer-skeleton-shader-overlay");
+d.content.appendChild(d.codeWidget.element);d.codeWidget.textEditor.refresh();return d}m(b,a);return b}(e.a);Object(d.e)("segmentation",D);Object(d.f)(r.d.SEGMENTATION,D)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=
+b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function m(a){var b=q.get(a),c=a.changed.count;if(void 0!==b&&b.generation===c)return b;if(a instanceof h){var d=a.baseJSON();for(var f=$jscomp.makeIterator(a.children),k=f.next();!k.done;k=f.next()){var e=$jscomp.makeIterator(k.value);k=e.next().value;e=e.next().value;d[k]=m(e).value}}else d=a.toJSON();void 0===b?(b={generation:c,value:d},q.set(a,b)):(b.generation=c,b.value=d);return b}a.d(e,"a",function(){return h});
+e.b=m;var c=a(6),b=a(7),d=function t(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return t(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);
+return b}}(),h=function(){function a(){n(this,a);this.children=new Map;this.changed=new b.a}f(a,[{key:"add",value:function(a,b){var c=this;if(this.children.has(a))throw Error("Key "+JSON.stringify(a)+" already registered.");this.children.set(a,b);b.changed.add(this.changed.dispatch);this.changed.dispatch();return function(){c.remove(a)}}},{key:"remove",value:function(a){var b=this.children;if(b.has(a))throw Error("Key "+JSON.stringify(a)+" not registered.");b=b.get(a);this.children.delete(a);b.changed.remove(this.changed.dispatch);
+this.changed.dispatch()}},{key:"dispose",value:function(){for(var a=this.changed,b=$jscomp.makeIterator(this.children.values()),c=b.next();!c.done;c=b.next())c.value.changed.remove(a.dispatch);this.children=void 0}},{key:"toJSON",value:function(){for(var a=this.baseJSON(),b=$jscomp.makeIterator(this.children),c=b.next();!c.done;c=b.next()){var d=$jscomp.makeIterator(c.value);c=d.next().value;d=d.next().value;a[c]=d.toJSON()}return a}},{key:"baseJSON",value:function(){return{}}},{key:"reset",value:function(){for(var a=
+$jscomp.makeIterator(this.children.values()),b=a.next();!b.done;b=a.next())b.value.reset()}},{key:"restoreState",value:function(a){Object(c.u)(a);for(var b=$jscomp.makeIterator(this.children),d=b.next();!d.done;d=b.next()){var f=$jscomp.makeIterator(d.value);d=f.next().value;f=f.next().value;try{a.hasOwnProperty(d)&&f.restoreState(a[d])}catch(y){throw Error("Error restoring property "+JSON.stringify(d)+": "+y.message);}}}}]);return a}();(function(a){function b(){n(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.lastState={};return a}p(b,a);f(b,[{key:"restoreState",value:function(a){Object(c.u)(a);this.lastState=a;d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"restoreState",this).call(this,a)}},{key:"reset",value:function(){this.lastState={};d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"reset",this).call(this)}},{key:"baseJSON",
+value:function(){for(var a=Object.assign(d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"baseJSON",this).call(this),this.lastState),c=$jscomp.makeIterator(this.children.keys()),f=c.next();!f.done;f=c.next())delete a[f.value];return a}},{key:"toJSON",value:function(){var a=d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"toJSON",this).call(this);return this.lastState=a}},{key:"add",value:function(a,c){var f=d(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"add",
+this).call(this,a,c);a=this.lastState[a];void 0!==a&&(c.reset(),c.restoreState(a));return f}}]);return b})(h);var q=new WeakMap},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,
+enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(a,b){b=void 0===b?a.navigationState:new u.e(new u.g(a.navigationState.pose.position,u.f.makeRelative(a.navigationState.pose.orientation,b)),a.navigationState.zoomFactor);return new y.a(a.chunkManager,a.layerManager,b)}function b(a){return new Map([["xy",c(a,D.get("xy"))],["xz",c(a,
+D.get("xz"))],["yz",c(a,D.get("yz"))]])}function d(a){return{mouseState:a.mouseState,layerManager:a.layerManager,showAxisLines:a.showAxisLines,visibility:a.visibility}}function f(a){return Object.assign({},d(a),{navigationState:a.perspectiveNavigationState,inputEventMap:a.inputEventBindings.perspectiveView})}function h(a){return Object.assign({},d(a),{navigationState:a.navigationState,inputEventMap:a.inputEventBindings.sliceView})}function q(a,b,c){for(var d={},f=0;2>f;d={relatedLayout:d.relatedLayout},
+++f)d.relatedLayout=c[Math.min(c.length-1,f)],a.registerDisposer(Object(E.c)(b.element,0===f?"toggle-layout":"toggle-layout-alternative",function(b){return function(c){a.container.name=b.relatedLayout;c.stopPropagation()}}(d)))}function k(a){var b=S.get(a);if(void 0===b)throw Error("Invalid layout name: "+JSON.stringify(a)+".");return b}function t(a){k(a);return a}a.d(e,"b",function(){return H});e.d=d;a.d(e,"a",function(){return L});g=a(24);var r=a.n(g),l=a(159),u=a(55),A=a(103),y=a(43),z=a(63),B=
+a(54),x=a(14);g=a(1);var v=a(9),E=a(22),F=a(3),C=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),G=function Y(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return Y(a,b,c)}else{if("value"in d)return d.value;b=d.get;
+return void 0===b?void 0:b.call(c)}};a(72);var H=function aa(){m(this,aa);this.perspectiveView=new E.a;this.sliceView=new E.a},D=new Map([["xy",void 0],["xz",F.l.rotateX(F.l.create(),F.l.create(),Math.PI/2)],["yz",F.l.rotateY(F.l.create(),F.l.create(),Math.PI/2)]]),O=function(a){function c(a,d,k){m(this,c);var e=p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));e.container=a;e.rootElement=d;e.viewer=k;var r=b(k),u=k.display,g=Object.assign({},f(k),{showSliceViews:k.showPerspectiveSliceViews,
+showSliceViewsCheckbox:!0}),t=Object.assign({},h(k),{showScaleBar:k.showScaleBar}),n=Object.assign({},h(k),{showScaleBar:new B.b(!1,!1)}),y=function(a,b,c){b=e.registerDisposer(new z.a(u,b,r.get(a),c));q(e,b,[a,a+"-3d"]);return b};a=[l.b(1,l.a("column",[l.b(1,l.a("row",[l.b(1,function(a){y("xy",a,t)}),l.b(1,function(a){y("xz",a,n)})])),l.b(1,l.a("row",[l.b(1,function(a){a=e.registerDisposer(new A.b(u,a,g));for(var b=$jscomp.makeIterator(r.values()),c=b.next();!c.done;c=b.next())a.sliceViews.add(c.value.addRef());
+q(e,a,["3d"])}),l.b(1,function(a){y("yz",a,n)})]))]))];l.a("row",a)(d);u.onResize();return e}n(c,a);C(c,[{key:"disposed",value:function(){Object(v.a)(this.rootElement);G(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}}]);return c}(g.a),J=function(a){function b(a,d,k,e,r){m(this,b);var u=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));u.container=a;u.rootElement=d;u.viewer=k;u.direction=e;var g=c(k,D.get(r)),t=k.display,n=Object.assign({},f(k),{showSliceViews:k.showPerspectiveSliceViews,
+showSliceViewsCheckbox:!0}),y=Object.assign({},h(k),{showScaleBar:k.showScaleBar});l.b(1,l.a(e,[l.b(1,function(a){a=u.registerDisposer(new z.a(t,a,g,y));q(u,a,[r,"4panel"])}),l.b(1,function(a){a=u.registerDisposer(new A.b(t,a,n));a.sliceViews.add(g.addRef());q(u,a,["3d","4panel"])})]))(d);t.onResize();return u}n(b,a);C(b,[{key:"disposed",value:function(){Object(v.a)(this.rootElement);G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}}]);return b}(g.a),Q=function(a){function b(a,
+d,f,k){m(this,b);var e=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));e.container=a;e.rootElement=d;e.viewer=f;var r=c(f,D.get(k)),u=Object.assign({},h(f),{showScaleBar:f.showScaleBar});l.a("row",[l.b(1,function(a){a=e.registerDisposer(new z.a(f.display,a,r,u));q(e,a,["4panel",k+"-3d"])})])(d);f.display.onResize();return e}n(b,a);C(b,[{key:"disposed",value:function(){Object(v.a)(this.rootElement);G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}}]);
+return b}(g.a),T=function(a){function b(a,c,d){m(this,b);var h=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));h.container=a;h.rootElement=c;h.viewer=d;var k=Object.assign({},f(d),{showSliceViews:new B.b(!1,!1)});l.a("row",[l.b(1,function(a){a=h.registerDisposer(new A.b(d.display,a,k));q(h,a,["4panel"])})])(c);d.display.onResize();return h}n(b,a);C(b,[{key:"disposed",value:function(){Object(v.a)(this.rootElement);G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}}]);
+return b}(g.a),S=new Map([["4panel",{factory:function(a,b,c){return new O(a,b,c)}}],["3d",{factory:function(a,b,c){return new T(a,b,c)}}]]);e.c=S;e={};a=$jscomp.makeIterator(D.keys());for(F=a.next();!F.done;e={axes:e.axes},F=a.next())e.axes=F.value,S.set(e.axes,{factory:function(a){return function(b,c,d){return new Q(b,c,d,a.axes)}}(e)}),S.set(e.axes+"-3d",{factory:function(a){return function(b,c,d){return new J(b,c,d,"row",a.axes)}}(e)});var L=function(a){function b(a,c){c=void 0===c?"xy":c;m(this,
+b);var d=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.viewer=a;d.element=document.createElement("div");d.element.style.flex="1";d.layoutName=new x.a(c,t);var f=d.registerCancellable(r()(function(){return d.updateLayout()},0));d.layoutName.changed.add(f);d.registerDisposer(d.viewer.display.updateStarted.add(function(){return f.flush()}));f();return d}n(b,a);C(b,[{key:"toJSON",value:function(){return this.layoutName.toJSON()}},{key:"restoreState",value:function(a){this.layoutName.restoreState(a)}},
+{key:"reset",value:function(){this.layoutName.reset()}},{key:"disposeLayout",value:function(){var a=this.layout;void 0!==a&&(a.dispose(),this.layout=void 0)}},{key:"updateLayout",value:function(){this.disposeLayout();this.layout=k(this.layoutName.value).factory(this,this.element,this.viewer)}},{key:"disposed",value:function(){this.disposeLayout();G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},{key:"name",get:function(){return this.layoutName.value},set:function(a){this.layoutName.value=
+a}},{key:"changed",get:function(){return this.layoutName.changed}}]);return b}(g.a)},function(g,e){},function(g,e,a){e.isFunction=function(a){return"function"===typeof a}},function(g,e,a){g=a(12).root.Symbol;e.rxSubscriber="function"===typeof g&&"function"===typeof g.for?g.for("rxSubscriber"):"@@rxSubscriber";e.$$rxSubscriber=e.rxSubscriber},function(g,e,a){function p(a){var e=a.Symbol;"function"===typeof e?e.observable?a=e.observable:(a=e("observable"),e.observable=a):a="@@observable";return a}g=
+a(12);e.getSymbolObservable=p;e.observable=p(g.root);e.$$observable=e.observable},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){var c=a.call(this,"object unsubscribed");this.name=c.name="ObjectUnsubscribedError";this.stack=c.stack;this.message=c.message}p(e,a);return e}(Error);e.ObjectUnsubscribedError=g},function(g,
+e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(10);var n=a(8);a=function(a){function c(){a.apply(this,arguments);this.value=null;this.hasCompleted=this.hasNext=!1}p(c,a);c.prototype._subscribe=function(b){return this.hasError?(b.error(this.thrownError),n.Subscription.EMPTY):this.hasCompleted&&this.hasNext?(b.next(this.value),b.complete(),n.Subscription.EMPTY):
+a.prototype._subscribe.call(this,b)};c.prototype.next=function(a){this.hasCompleted||(this.value=a,this.hasNext=!0)};c.prototype.error=function(b){this.hasCompleted||a.prototype.error.call(this,b)};c.prototype.complete=function(){this.hasCompleted=!0;this.hasNext&&a.prototype.next.call(this,this.value);a.prototype.complete.call(this)};return c}(g.Subject);e.AsyncSubject=a},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&
+(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.mergeAll=function(a){void 0===a&&(a=Number.POSITIVE_INFINITY);return this.lift(new m(a))};var m=function(){function a(a){this.concurrent=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.concurrent))};return a}();e.MergeAllOperator=m;var c=function(a){function b(b,c){a.call(this,b);this.concurrent=c;this.hasCompleted=!1;this.buffer=[];this.active=0}p(b,a);b.prototype._next=function(a){this.active<
+this.concurrent?(this.active++,this.add(n.subscribeToResult(this,a))):this.buffer.push(a)};b.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&this.destination.complete()};b.prototype.notifyComplete=function(a){var b=this.buffer;this.remove(a);this.active--;0<b.length?this._next(b.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()};return b}(g.OuterSubscriber);e.MergeAllSubscriber=c},function(g,e,a){var p=a(32);e.isNumeric=function(a){return!p.isArray(a)&&
+0<=a-parseFloat(a)+1}},function(g,e,a){e.isDate=function(a){return a instanceof Date&&!isNaN(+a)}},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(10);var n=a(181),m=a(8),c=a(114),b=a(76),d=a(171);a=function(a){function h(b,c,d){void 0===b&&(b=Number.POSITIVE_INFINITY);void 0===c&&(c=Number.POSITIVE_INFINITY);a.call(this);this.scheduler=
+d;this._events=[];this._bufferSize=1>b?1:b;this._windowTime=1>c?1:c}p(h,a);h.prototype.next=function(b){var c=this._getNow();this._events.push(new f(c,b));this._trimBufferThenGetEvents();a.prototype.next.call(this,b)};h.prototype._subscribe=function(a){var f=this._trimBufferThenGetEvents(),h=this.scheduler;if(this.closed)throw new b.ObjectUnsubscribedError;if(this.hasError)var l=m.Subscription.EMPTY;else this.isStopped?l=m.Subscription.EMPTY:(this.observers.push(a),l=new d.SubjectSubscription(this,
+a));h&&a.add(a=new c.ObserveOnSubscriber(a,h));h=f.length;for(var k=0;k<h&&!a.closed;k++)a.next(f[k].value);this.hasError?a.error(this.thrownError):this.isStopped&&a.complete();return l};h.prototype._getNow=function(){return(this.scheduler||n.queue).now()};h.prototype._trimBufferThenGetEvents=function(){for(var a=this._getNow(),b=this._bufferSize,c=this._windowTime,d=this._events,f=d.length,h=0;h<f&&!(a-d[h].time<c);)h++;f>b&&(h=Math.max(h,f-b));0<h&&d.splice(0,h);return d};return h}(g.Subject);e.ReplaySubject=
+a;var f=function(){return function(a,b){this.time=a;this.value=b}}()},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){var c=a.call(this,"no elements in sequence");this.name=c.name="EmptyError";this.stack=c.stack;this.message=c.message}p(e,a);return e}(Error);e.EmptyError=g},function(g,e,a){function p(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return b});var n=a(14);g=a(15);var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),c=function h(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return h(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var h=arguments.length,l=3>h?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,k;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)l=
+Reflect.decorate(a,b,c,d);else for(var e=a.length-1;0<=e;e--)if(k=a[e])l=(3>h?k(l):3<h?k(b,c,l):k(b,c))||l;return 3<h&&l&&Object.defineProperty(b,c,l),l};var b=d=function(a){function b(a,c){c=void 0===c?{}:c;if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var d=(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");d=!d||"object"!==typeof d&&"function"!==typeof d?this:d;
+d.updatingValue_=!1;void 0!==a&&(d.base=new n.b(c.value),d.setupChangedHandler());return d}p(b,a);m(b,[{key:"initializeCounterpart",value:function(a,d){d=void 0===d?{}:d;d.value=this.value;c(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"initializeCounterpart",this).call(this,a,d)}},{key:"setupChangedHandler",value:function(){var a=this;this.registerDisposer(this.base.changed.add(function(){if(a.updatingValue_)a.updatingValue_=!1;else{var b=a.rpc;null!==b&&b.invoke("SharedWatchableValue.changed",
+{id:a.rpcId,value:a.value})}}))}},{key:"value",get:function(){return this.base.value},set:function(a){this.base.value=a}},{key:"changed",get:function(){return this.base.changed}}],[{key:"makeFromExisting",value:function(a,b){var c=new d;c.base=b;c.setupChangedHandler();c.initializeCounterpart(a);return c}},{key:"make",value:function(a,b){return d.makeFromExisting(a,new n.b(b))}}]);return b}(g.c);b=d=e([Object(g.f)("SharedWatchableValue")],b);Object(g.e)("SharedWatchableValue.changed",function(a){var b=
+this.get(a.id);b.updatingValue_=!0;b.base.value=a.value;b.updatingValue_=!1});var d},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}a.d(e,"a",function(){return f});a.d(e,"b",function(){return h});var m=a(1),c=a(6),b=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,
+d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function(){function a(){n(this,a);this.map=new Map}d(a,[{key:"get",value:function(a,b){var c=this.map,d=c.get(a);void 0===d?(d=b(),d.registerDisposer(function(){c.delete(a)}),c.set(a,d)):d.addRef();return d}}]);return a}(),h=function(a){function f(){n(this,f);var a=(f.__proto__||Object.getPrototypeOf(f)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||
+"object"!==typeof a&&"function"!==typeof a?this:a}p(f,a);d(f,[{key:"get",value:function(a,d){"string"!==typeof a&&(a=Object(c.g)(a));return b(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"get",this).call(this,a,d)}},{key:"getUncounted",value:function(a,b){return this.get(a,function(){return new m.b(b())}).value}}]);return f}(f)},function(g,e,a){e.b=function(a,c,b,d){d=void 0===d?p.e:d;var f=void 0;return new Promise(function(h,e){function k(r){null!==f&&(f=Object(n.b)(a.serverUrls,b.path,
+b.method),f.responseType=b.responseType,f.setRequestHeader("Authorization",r.credentials.tokenType+" "+r.credentials.accessToken),f.onloadend=function(){if(null!==f){var a=this.status;200<=a&&300>a?(d.remove(q),h(this.response)):401===a?c.get(r,d).then(k):504===a||503===a?c.get(void 0,d).then(k):(d.remove(q),e(n.a.fromXhr(this)))}},f.send(b.payload))}var q=function(){var a=f;f=null;null!=a&&a.abort();e(p.a)};d.add(q);c.get(void 0,d).then(k)})};var p=a(26),n=a(47);e.a="google-brainmaps"},function(g,
+e){g.exports=function(a){var e=typeof a;return null!=a&&("object"==e||"function"==e)}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});g=a(21);var n=a(3),m=a(44),c=a(31),b=function(){function a(a,
+b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=n.p.create(),h=function(a){function h(a,
+b,c){c=void 0===c?{}:c;var d=void 0===c.shaderError?Object(m.b)():c.shaderError;if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");c=(h.__proto__||Object.getPrototypeOf(h)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.sources=null;c.sourceIds=[];c.shader=void 0;c.shaderUpdated=!0;c.rpcId=null;c.shaderError=d;d.value=void 0;c.chunkManager=a;c.sources=
+b;a=$jscomp.makeIterator(b);for(b=a.next();!b.done;b=a.next()){d=b.value;b=[];c.sourceIds.push(b);d=$jscomp.makeIterator(d);for(var l=d.next();!l.done;l=d.next())b.push(l.value.rpcId)}a=c.sources[0][0].spec;b=a.chunkLayout;d=c.voxelSize=b.localSpatialVectorToGlobal(n.p.create(),a.voxelSize);for(l=0;3>l;++l)d[l]=Math.abs(d[l]);d=c.boundingBox=new n.b(n.p.fromValues(Infinity,Infinity,Infinity),n.p.fromValues(-Infinity,-Infinity,-Infinity));l=n.p.create();for(var k=0;8>k;++k){for(var e=0;3>e;++e)f[e]=
+k&1<<e?a.upperClipBound[e]:a.lowerClipBound[e];b.localSpatialToGlobal(l,f);n.p.min(d.lower,d.lower,l);n.p.max(d.upper,d.upper,l)}c.setReady(!0);return c}p(h,a);b(h,[{key:"initializeShader",value:function(){if(this.shaderUpdated){this.shaderUpdated=!1;try{var a=this.getShader();this.disposeShader();this.shader=a;this.shaderError.value=null}catch(l){this.shaderError.value=l}}}},{key:"disposeShader",value:function(){this.shader&&(this.shader.dispose(),this.shader=void 0)}},{key:"disposed",value:function(){d(h.prototype.__proto__||
+Object.getPrototypeOf(h.prototype),"disposed",this).call(this);this.disposeShader()}},{key:"getShaderKey",value:function(){return""}},{key:"getShader",value:function(){var a=this,b=this.getShaderKey();return this.gl.memoize.get(b,function(){return a.buildShader()})}},{key:"buildShader",value:function(){var a=new c.a(this.gl);this.defineShader(a);return a.build()}},{key:"setGLBlendMode",value:function(a,b){0<b&&(a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA))}},{key:"gl",get:function(){return this.chunkManager.chunkQueueManager.gl}}]);
+return h}(g.e)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,
+writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return t});e.e=function(a,b,c,d){c=void 0===c?a.RGBA:c;d=void 0===d?a.UNSIGNED_BYTE:d;for(var f=[],h=0;h<b;++h)f[h]=new u(a,c,d);return f};a.d(e,"b",function(){return y});a.d(e,"c",function(){return z});g=a(1);var c=a(3),b=a(27),d=a(66),f=a(67),h=a(127),q=function x(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),
+null!==a)return x(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a=function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.width=Number.NaN;a.height=Number.NaN;
+return a}m(b,a);k(b,[{key:"hasSize",value:function(a,b){return this.width===a&&this.height===b}},{key:"resize",value:function(a,b){this.hasSize(a,b)||(this.width=a,this.height=b,this.performResize())}}]);return b}(g.a);var t=function(a){function b(a,c){c=void 0===c?!1:c;p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c?a.DEPTH_STENCIL:a.DEPTH_COMPONENT16));d.gl=a;d.includeStencilBuffer=c;return d}m(b,a);k(b,[{key:"attachToFramebuffer",value:function(){var a=this.gl;q(b.prototype.__proto__||
+Object.getPrototypeOf(b.prototype),"attachToFramebuffer",this).call(this,this.includeStencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT)}}]);return b}(function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.gl=a;d.internalformat=c;d.renderbuffer=null;d.renderbuffer=a.createRenderbuffer();return d}m(b,a);k(b,[{key:"performResize",value:function(){var a=this.gl;a.bindRenderbuffer(a.RENDERBUFFER,this.renderbuffer);a.renderbufferStorage(a.RENDERBUFFER,
+this.internalformat,this.width,this.height);a.bindRenderbuffer(a.RENDERBUFFER,null)}},{key:"disposed",value:function(){this.gl.deleteRenderbuffer(this.renderbuffer)}},{key:"attachToFramebuffer",value:function(a){var b=this.gl;b.framebufferRenderbuffer(b.FRAMEBUFFER,a,b.RENDERBUFFER,this.renderbuffer)}}]);return b}(a)),r=function(a){function b(a){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,!0))}m(b,a);return b}(t);e.d=r;var l=function(a){function b(a){p(this,b);var c=
+n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.gl=a;c.framebuffer=c.gl.createFramebuffer();return c}m(b,a);k(b,[{key:"disposed",value:function(){this.gl.deleteFramebuffer(this.framebuffer)}},{key:"bind",value:function(){var a=this.gl;a.bindFramebuffer(a.FRAMEBUFFER,this.framebuffer)}},{key:"unbind",value:function(){var a=this.gl;a.bindFramebuffer(a.FRAMEBUFFER,null)}}]);return b}(g.a),u=function(a){function b(a,c,d){p(this,b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));
+f.gl=a;f.format=c;f.dataType=d;f.texture=a.createTexture();return f}m(b,a);k(b,[{key:"performResize",value:function(){Object(f.a)(this.gl,this.texture,this.width,this.height,this.format,this.dataType)}},{key:"disposed",value:function(){this.gl.deleteTexture(this.texture)}},{key:"attachToFramebuffer",value:function(a){var b=this.gl;b.framebufferTexture2D(b.FRAMEBUFFER,a,b.TEXTURE_2D,this.texture,0)}}]);return b}(a),A=new Uint8Array(4),y=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||
+Object.getPrototypeOf(b)).call(this));d.gl=a;d.width=Number.NaN;d.height=Number.NaN;d.fullAttachmentList=[];d.attachmentVerified=!1;d.singleAttachmentList=[d.gl.COLOR_ATTACHMENT0];var f=void 0===c.framebuffer?new l(a):c.framebuffer,h=c.colorBuffers;c=c.depthBuffer;d.framebuffer=d.registerDisposer(f);d.colorBuffers=h;d.depthBuffer=c;void 0!==c&&d.registerDisposer(c);var k=d.fullAttachmentList;h.forEach(function(b,c){d.registerDisposer(b);k[c]=a.COLOR_ATTACHMENT0+c});return d}m(b,a);k(b,[{key:"hasSize",
+value:function(a,b){return this.width===a&&this.height===b}},{key:"bind",value:function(a,b){this.width=a;this.height=b;this.framebuffer.bind();var c=this.gl,d=this.depthBuffer;void 0!==d&&(d.resize(a,b),d.attachToFramebuffer());this.colorBuffers.forEach(function(d,f){d.resize(a,b);d.attachToFramebuffer(c.COLOR_ATTACHMENT0+f)});c.WEBGL_draw_buffers.drawBuffersWEBGL(this.fullAttachmentList);this.verifyAttachment();c.viewport(0,0,a,b)}},{key:"bindSingle",value:function(a){var b=this.gl;this.framebuffer.bind();
+0!==a&&b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0+a,b.TEXTURE_2D,null,0);b.bindTexture(b.TEXTURE_2D,null);this.colorBuffers[a].attachToFramebuffer(b.COLOR_ATTACHMENT0);b.WEBGL_draw_buffers.drawBuffersWEBGL(this.singleAttachmentList)}},{key:"unbind",value:function(){this.framebuffer.unbind()}},{key:"readPixel",value:function(a,b,c){var d=this.gl;try{this.bindSingle(a),d.readPixels(b,c,1,1,d.RGBA,d.UNSIGNED_BYTE,A)}finally{this.framebuffer.unbind()}return A}},{key:"readPixelAsUint32",
+value:function(a,b,c){a=this.readPixel(a,b,c);return a[0]+(a[1]<<8)+(a[2]<<16)+(a[3]<<24)}},{key:"verifyAttachment",value:function(){if(!this.attachmentVerified){var a=this.gl;if(a.checkFramebufferStatus(a.FRAMEBUFFER)!==a.FRAMEBUFFER_COMPLETE)throw Error("Framebuffer configuration not supported");this.attachmentVerified=!0}}}]);return b}(g.a),z=function(a){function f(a,b){p(this,f);var c=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));c.gl=a;c.shader=b;c.copyVertexPositionsBuffer=Object(d.a)(c.gl);
+c.copyTexCoordsBuffer=Object(d.a)(c.gl,0,0,1,1);c.registerDisposer(b);return c}m(f,a);k(f,[{key:"draw",value:function(a){for(var b=[],d=0;d<arguments.length;++d)b[d-0]=arguments[d];d=this.gl;var f=this.shader;f.bind();for(var h=b.length,l=0;l<h;++l)d.activeTexture(d.TEXTURE0+l),d.bindTexture(d.TEXTURE_2D,b[l]);d.uniformMatrix4fv(f.uniform("uProjectionMatrix"),!1,c.d);b=f.attribute("aVertexPosition");this.copyVertexPositionsBuffer.bindToVertexAttrib(b,2);f=f.attribute("aTexCoord");this.copyTexCoordsBuffer.bindToVertexAttrib(f,
+2);d.drawArrays(d.TRIANGLE_FAN,0,4);d.disableVertexAttribArray(b);d.disableVertexAttribArray(f);for(b=0;b<h;++b)d.activeTexture(d.TEXTURE0+b),d.bindTexture(d.TEXTURE_2D,null)}}],[{key:"get",value:function(a,c,d){c=void 0===c?h.a:c;d=void 0===d?1:d;return a.memoize.get("OffscreenCopyHelper:"+d+":"+Object(b.a)(c),function(){return new f(a,Object(h.b)(a,c,d))})}}]);return f}(g.a)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function m(a){for(var b=h.length,c=h[b-1],d=0;d<b;++d){var f=h[d];if(a>=f.lengthInNanometers){c=f;break}}return c}e.c=m;a.d(e,"a",function(){return q});a.d(e,"b",function(){return k});g=a(1);var c=a(67),b=function r(a,b,
+c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return r(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=[1.5,2,3,5,7.5,10],h=[{unit:"km",
+lengthInNanometers:1E12},{unit:"m",lengthInNanometers:1E9},{unit:"mm",lengthInNanometers:1E6},{unit:"\u00b5m",lengthInNanometers:1E3},{unit:"nm",lengthInNanometers:1},{unit:"pm",lengthInNanometers:.001}],q=function(){function a(){n(this,a);this.allowedSignificands=f;this.prevTargetLengthInPixels=this.prevNanometersPerPixel=this.nanometersPerPixel=this.targetLengthInPixels=0}d(a,[{key:"update",value:function(){var a=this.nanometersPerPixel,b=this.targetLengthInPixels;if(this.prevNanometersPerPixel===
+a&&this.prevTargetLengthInPixels===b)return!1;this.prevNanometersPerPixel=a;this.prevTargetLengthInPixels=b;var c=b*a;b=Math.pow(10,Math.floor(Math.log(c)/Math.LN10));c/=b;for(var d=1,f=$jscomp.makeIterator(this.allowedSignificands),h=f.next();!h.done;h=f.next())if(h=h.value,Math.abs(h-c)<Math.abs(d-c))d=h;else break;b*=d;c=m(b);this.lengthInPixels=Math.round(b/a);this.physicalUnit=c.unit;this.physicalLength=b/c.lengthInNanometers;return!0}}]);return a}(),k=function(a){function f(a,b){b=void 0===
+b?new q:b;n(this,f);var c=(f.__proto__||Object.getPrototypeOf(f)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.gl=a;c.dimensions=b;c.texture=null;c.width=0;c.height=0;return c}p(f,a);d(f,[{key:"update",value:function(){var a=this.dimensions,b=this.texture;if(a.update()||null===b){null===b&&(b=this.texture=this.gl.createTexture());var d=this.gl,f=document.createElement("canvas"),h=
+f.getContext("2d");h.font="bold 15px sans-serif";h.fillStyle="white";var l=a.physicalLength+" "+a.physicalUnit,k=h.measureText(l);k=Math.max(a.lengthInPixels,k.width)+4;f.width=k;f.height=32;h.font="bold 15px sans-serif";h.textAlign="center";h.fillStyle="rgba(0, 0, 0, 0.3)";h.fillRect(0,0,k,32);h.fillStyle="white";h.fillText(l,k/2,17);h.fillRect(2,22,a.lengthInPixels,8);Object(c.c)(d,b,f);this.width=k;this.height=32}}},{key:"disposed",value:function(){this.gl.deleteTexture(this.texture);this.texture=
+null;b(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"disposed",this).call(this)}}]);return f}(g.a)},function(g,e){g.exports="\n\nvec3 colormapJet(float x) {\n  vec3 result;\n  result.r = x < 0.89 ? ((x - 0.35) / 0.31) : (1.0 - (x - 0.89) / 0.11 * 0.5);\n  result.g = x < 0.64 ? ((x - 0.125) * 4.0) : (1.0 - (x - 0.64) / 0.27);\n  result.b = x < 0.34 ? (0.5 + x * 0.5 / 0.11) : (1.0 - (x - 0.34) / 0.31);\n  return clamp(result, 0.0, 1.0);\n}\n"},function(g,e,a){function p(a,b){if(!(a instanceof
+b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,
+b):a.__proto__=b)}function c(a){Object(v.u)(a);var b=Object(v.w)(a,"neariso_voxelres",function(a){return Object(v.v)(a,v.k)}),c=Object(v.w)(a,"neariso_imagesize",function(a){return Object(v.v)(a,v.j)}),d=Object(v.w)(a,"neariso_offset",function(a){return Object(v.v)(a,v.l)});return Object(v.w)(a,"resolutions",function(a){return Object(v.a)(a,v.s)}).map(function(a){var f=""+a,h=b.get(f),l=c.get(f),k=d.get(f);if(void 0===h||void 0===l||void 0===k)throw Error("Missing neariso_voxelres/neariso_imagesize/neariso_offset for resolution "+
+(a+"."));return{key:f,voxelSize:h,imageSize:l,voxelOffset:k}})}function b(a){a=F.get(a);void 0===a&&(a=A.d.UNKNOWN);return a}function d(a){Object(v.u)(a);var c=Object(v.w)(a,"channel_type",v.B);return{channelType:c,description:Object(v.w)(a,"description",v.B),volumeType:b(c),dataType:Object(v.w)(a,"datatype",function(a){return Object(v.n)(a,A.a)})}}function f(a){Object(v.u)(a);return{channels:Object(v.w)(a,"channels",function(a){return Object(v.v)(a,d)}),scales:Object(v.w)(a,"dataset",c)}}function h(a,
+b,c,d){return a.memoize.getUncounted({type:"ndstore:getTokenInfo",hostnames:b,token:c},function(){return Object(x.d)(Object(x.b)(b,d+"/"+c+"/info/"),"json").then(f)})}function q(a,b,c,d){var f=c.match(D);if(null===f)throw Error("Invalid volume path "+JSON.stringify(c));var l=f[1],k=f[2],e=Object(v.e)(f[3]||"");return a.memoize.getUncounted({type:"ndstore:MultiscaleVolumeChunkSource",hostnames:b,path:c},function(){return h(a,b,l,d).then(function(c){return new H(a,b,l,c,k,d,e)})})}function k(a,b){var c=
+b.match(O);if(null===c)throw Error("Invalid ndstore volume path: "+JSON.stringify(b));return q(a,[c[1]],c[2],u.b)}function t(a,b,c){return a.memoize.getUncounted({type:"dvid:getPublicTokens",hostnames:b},function(){return Object(x.d)(Object(x.b)(b,c+"/public_tokens/"),"json").then(function(a){return Object(v.a)(a,v.B)})})}function r(a,b,c,d){var f=c.match(/^(?:([^\/]+)(?:\/([^\/]*))?)?$/);if(null===f)return Promise.reject(null);if(void 0===f[2]){var l=f[1]||"";return t(a,b,d).then(function(a){return{offset:0,
+completions:Object(z.c)(l,a,function(a){return a+"/"},function(){})}})}return h(a,b,f[1],d).then(function(a){a=Object(z.c)(f[2],a.channels,function(a){return a[0]},function(a){return a[1].channelType+" ("+A.a[a[1].dataType]+")"});return{offset:f[1].length+1,completions:a}})}function l(a,b){var c=a.match(O);return null===c?Promise.reject(null):r(b,[c[1]],c[2],u.b).then(function(a){return Object(z.a)(c[1].length+1,a)})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"getVolume",function(){return k});
+a.d(e,"volumeCompleter",function(){return l});a.d(e,"MultiscaleVolumeChunkSource",function(){return H});e.getTokenInfo=h;e.getShardedVolume=q;e.getPublicTokens=t;e.tokenAndChannelCompleter=r;a.d(e,"NDStoreDataSource",function(){return J});a.d(e,"SingleServerDataSource",function(){return Q});g=a(23);e=a(39);var u=a(135),A=a(19),y=a(28),z=a(46),B=a(3),x=a(47),v=a(6),E=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=
+!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),F=new Map;F.set("image",A.d.IMAGE);F.set("annotation",A.d.SEGMENTATION);var C=new Set(["npz","raw","jpeg"]),G=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(y.b,u.c)),H=function(){function a(b,c,d,f,h,l,k){p(this,a);this.chunkManager=b;this.baseUrls=c;this.key=d;this.tokenInfo=f;this.parameters=k;this.urlPrefix=
+u.b;this.neariso=!0;if(void 0===h){h=Array.from(f.channels.keys());if(1!==h.length)throw Error("Dataset contains multiple channels: "+JSON.stringify(h));h=h[0]}b=f.channels.get(h);if(void 0===b)throw Error("Specified channel "+JSON.stringify(h)+" is not one of the supported "+("channels "+JSON.stringify(Array.from(f.channels.keys()))));this.channel=h;this.channelInfo=b;this.scales=f.scales;void 0!==l&&(this.urlPrefix=l);"false"===Object(v.z)(k.neariso)&&(this.neariso=!1);f=Object(v.z)(k.encoding);
+if(void 0===f)f=this.volumeType===A.d.IMAGE?"jpeg":"npz";else if(!C.has(f))throw Error("Invalid encoding: "+JSON.stringify(f)+".");this.encoding=f}E(a,[{key:"getSources",value:function(a){var b=this;return this.scales.map(function(c){for(var d=c.voxelOffset,f=c.voxelSize,h=B.p.create(),l=0;3>l;++l)h[l]=Math.ceil(d[l]);return A.c.getDefaults({numChannels:b.numChannels,volumeType:b.volumeType,dataType:b.dataType,voxelSize:f,transform:B.j.fromTranslation(B.j.create(),B.p.multiply(B.p.create(),d,f)),
+baseVoxelOffset:h,upperVoxelBound:c.imageSize,volumeSourceOptions:a}).map(function(a){return b.chunkManager.getChunkSource(G,{spec:a,parameters:{baseUrls:b.baseUrls,urlPrefix:b.urlPrefix,key:b.key,channel:b.channel,resolution:c.key,encoding:b.encoding,neariso:b.neariso}})})})}},{key:"getMeshSource",value:function(){return null}},{key:"dataType",get:function(){return this.channelInfo.dataType}},{key:"numChannels",get:function(){return 1}},{key:"volumeType",get:function(){return this.channelInfo.volumeType}}]);
+return a}(),D=/^([^\/?]+)(?:\/([^\/?]+))?(?:\?(.*))?$/,O=/^((?:http|https):\/\/[^\/?]+)\/(.*)$/,J=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);E(b,[{key:"volumeCompleter",value:function(a,b){return l(a,b)}},{key:"getVolume",value:function(a,b){return k(a,b)}},{key:"description",get:function(){return"NDstore"}}]);return b}(e.a),Q=function(a){function b(a,c,d){d=void 0===d?u.b:d;p(this,b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));
+f.description=a;f.hostnames=c;f.urlprefix=d;return f}m(b,a);E(b,[{key:"getVolume",value:function(a,b){return q(a,this.hostnames,b,this.urlprefix)}},{key:"volumeCompleter",value:function(a,b){return r(b,this.hostnames,a,this.urlprefix)}}]);return b}(e.a)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"c",function(){return b});a.d(e,"b",function(){return d});var n=a(65),m=a(3),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b;(function(a){a[a.LINE=0]="LINE";a[a.POINT=1]="POINT"})(b||(b={}));var d=function(a){function b(a){if(!(this instanceof
+b))throw new TypeError("Cannot call a class as a function");a=(b.__proto__||Object.getPrototypeOf(b)).call(this,a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);c(b,[{key:"toObject",value:function(){return{transform:this.chunkLayout.transform,chunkDataSize:this.chunkDataSize,voxelSize:this.voxelSize,lowerVoxelBound:this.lowerVoxelBound,upperVoxelBound:this.upperVoxelBound,lowerClipBound:this.lowerClipBound,
+upperClipBound:this.upperClipBound,baseVoxelOffset:this.baseVoxelOffset}}}],[{key:"make",value:function(a){return new b(Object.assign({},a,{transform:Object(n.e)(a.transform,a.vectorGraphicsSourceOptions)}))}},{key:"fromObject",value:function(a){return new b(a)}},{key:"withDefaults",value:function(a){var c=a.transform,d=a.lowerVoxelBound,f=a.upperVoxelBound,h=a.chunkDataSize;c=Object(n.e)(c,a.vectorGraphicsSourceOptions);if(void 0===h&&(h=m.p.clone(f),void 0!==d))for(f=0;3>f;f++)h[f]+=Math.abs(d[f]);
+console.log(h);console.log(a);return new b(Object.assign({},a,{transform:c,chunkDataSize:h}))}}]);return b}(n.c);e.a="vectorgraphics/RenderLayer"},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){return new u.a({shaderError:a.shaderError,fragmentMain:a.fragmentMain,fragmentMainStartLine:h.a})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"ImageUserLayer",function(){return y});var b=a(94);g=a(21);var d=a(20);e=a(45);var f=a(19),h=a(142),q=a(52),k=a(144),t=a(3),r=a(44),l=a(95),u=a(96),
+A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(146);a(97);a(147);var y=function(a){function c(a,f){p(this,c);var l=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));l.opacity=Object(q.a)(.5);l.blendMode=Object(k.c)();l.fragmentMain=Object(h.c)();l.shaderError=Object(r.b)();l.transform=new b.a;
+var e=f.source;if("string"!==typeof e)throw Error("Invalid image layer specification");l.opacity.restoreState(f.opacity);l.blendMode.restoreState(f.blend);l.fragmentMain.restoreState(f.shader);l.transform.restoreState(f.transform);l.registerDisposer(l.fragmentMain.changed.add(function(){l.specificationChanged.dispatch()}));l.volumePath=e;Object(d.d)(a.dataSourceProvider,a.chunkManager,e).then(function(a){l.wasDisposed||(a=l.renderLayer=new h.b(a,{opacity:l.opacity,blendMode:l.blendMode,fragmentMain:l.fragmentMain,
+shaderError:l.shaderError,sourceOptions:{transform:t.j.clone(l.transform.transform)}}),l.addRenderLayer(a),l.shaderError.changed.dispatch())});return l}m(c,a);A(c,[{key:"toJSON",value:function(){var a={type:"image"};a.source=this.volumePath;a.opacity=this.opacity.toJSON();a.blend=this.blendMode.toJSON();a.shader=this.fragmentMain.toJSON();a.transform=this.transform.toJSON();return a}},{key:"makeDropdown",value:function(a){return new z(a,this)}}]);return c}(g.f),z=function(a){function b(a,d){p(this,
+b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));f.element=a;f.layer=d;f.opacityWidget=f.registerDisposer(new l.a(f.layer.opacity));f.codeWidget=f.registerDisposer(c(f.layer));a.classList.add("image-dropdown");var h=f.opacityWidget;d=document.createElement("div");d.className="image-dropdown-top-row";h.promptElement.textContent="Opacity";h=document.createElement("div");h.style.flex="1";var k=document.createElement("a"),e=document.createElement("button");e.type="button";e.textContent=
+"?";e.className="help-link";k.appendChild(e);k.title="Documentation on image layer rendering";k.target="_blank";k.href="https://github.com/google/neuroglancer/blob/master/src/neuroglancer/sliceview/image_layer_rendering.md";e=document.createElement("button");e.innerHTML="&square;";e.className="maximize-button";e.title="Show larger editor view";f.registerEventListener(e,"click",function(){new B(f.layer)});d.appendChild(f.opacityWidget.element);d.appendChild(h);d.appendChild(e);d.appendChild(k);a.appendChild(d);
+a.appendChild(f.codeWidget.element);f.codeWidget.textEditor.refresh();return f}m(b,a);A(b,[{key:"onShow",value:function(){this.codeWidget.textEditor.refresh()}}]);return b}(g.g),B=function(a){function b(a){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.layer=a;d.codeWidget=d.registerDisposer(c(d.layer));d.content.classList.add("image-layer-shader-overlay");d.content.appendChild(d.codeWidget.element);d.codeWidget.textEditor.refresh();return d}m(b,a);return b}(e.a);Object(d.e)("image",
+y);Object(d.f)(f.d.IMAGE,y)},function(g,e,a){a.d(e,"a",function(){return b});var p=a(3),n=a(6),m=a(7),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function a(b){b=void 0===b?p.j.create():b;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.transform=b;this.changed=
+new m.a}c(a,[{key:"reset",value:function(){p.j.copy(this.transform,p.d);this.changed.dispatch()}},{key:"toJSON",value:function(){if(!p.j.equals(p.d,this.transform)){var a=this.transform;return[[a[0],a[4],a[8],a[12]],[a[1],a[5],a[9],a[13]],[a[2],a[6],a[10],a[14]],[a[3],a[7],a[11],a[15]]]}}},{key:"restoreState",value:function(a){if(null==a)this.reset();else if(Array.isArray(a))if(4===a.length)try{for(var b=0;4>b;++b)Object(n.b)(this.transform.subarray(4*b,4*(b+1)),a[b]);p.j.transpose(this.transform,
+this.transform)}catch(t){this.reset()}else if(16===a.length)try{Object(n.b)(this.transform,a),p.j.transpose(this.transform,this.transform)}catch(t){this.reset()}else this.reset();else if("object"===typeof a){b=p.l.create();var c=p.p.create(),d=p.p.fromValues(1,1,1);try{Object(n.b)(b,a.rotation),p.l.normalize(b,b)}catch(t){p.l.identity(b)}try{Object(n.b)(c,a.translation)}catch(t){p.p.copy(c,p.h)}try{Object(n.b)(d,a.scale)}catch(t){p.p.copy(d,p.g)}p.j.fromRotationTranslationScale(this.transform,b,c,
+d);this.changed.dispatch()}else this.reset()}},{key:"clone",value:function(){return new a(p.j.clone(this.transform))}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,
+enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return d});g=a(1);var m=a(9),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function h(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,
+b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return h(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(250);var d=function(a){function d(a,b){var c=void 0===b?{}:b;b=void 0===c.min?0:c.min;var l=void 0===c.max?1:c.max;c=void 0===c.step?.01:c.step;if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");var h=p(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));h.value=a;h.element=document.createElement("label");h.promptElement=
+document.createElement("span");h.inputElement=document.createElement("input");var k=h.element,e=h.promptElement,q=h.inputElement;k.className="range-slider";e.className="range-prompt";q.type="range";q.min=""+b;q.max=""+l;q.step=""+c;q.valueAsNumber=h.value.value;k.appendChild(e);k.appendChild(q);var g=function(){h.value.value=h.inputElement.valueAsNumber};h.registerEventListener(q,"change",g);h.registerEventListener(q,"input",g);h.registerEventListener(q,"wheel",function(a){a=a.deltaY;0<a?(h.inputElement.stepUp(),
+g()):0>a&&(h.inputElement.stepDown(),g())});a.changed.add(function(){h.inputElement.valueAsNumber=h.value.value});return h}n(d,a);c(d,[{key:"disposed",value:function(){Object(m.b)(this.element);b(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"disposed",this).call(this)}}]);return d}(g.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==
+typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});g=a(251);a.n(g);g=a(145);var m=a.n(g);g=a(24);var c=a.n(g);g=a(1);var b=a(9),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=
+!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(252);a(253);a(254);a(255)(m.a);var h=function(a){function h(a){if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");
+var b=p(this,(h.__proto__||Object.getPrototypeOf(h)).call(this));b.state=a;b.changingValue=!1;b.debouncedValueUpdater=c()(function(){b.changingValue=!0;try{b.state.fragmentMain.value=b.textEditor.getValue()}finally{b.changingValue=!1}},500);b.textEditor=m()(function(a){},{value:b.state.fragmentMain.value,mode:"glsl",gutters:["CodeMirror-lint-markers"]});b.textEditor.on("change",function(){b.setValidState(void 0);b.debouncedValueUpdater()});b.registerDisposer(b.state.fragmentMain.changed.add(function(){b.changingValue||
+b.textEditor.setValue(b.state.fragmentMain.value)}));b.element.classList.add("neuroglancer-shader-code-widget");b.registerDisposer(b.state.shaderError.changed.add(function(){b.updateErrorState()}));b.updateErrorState();return b}n(h,a);d(h,[{key:"updateErrorState",value:function(){var a=this,b=this.state.shaderError.value;void 0===b?this.setValidState(void 0):null!==b?(this.textEditor.setOption("lint",{getAnnotations:function(){if("ShaderCompilationError"===b.name){var c=b.source.split("\n").indexOf(a.state.fragmentMainStartLine)+
+2;return b.errorMessages.map(function(a){return{message:a.message,severity:"error",from:m.a.Pos(void 0===a.line?0:a.line-c)}})}return"ShaderLinkError"===b.name?[{message:b.log,severity:"error",from:m.a.Pos(0)}]:[{message:b.message,severity:"error",from:m.a.Pos(0)}]}}),this.setValidState(!1)):(this.textEditor.setOption("lint",void 0),this.setValidState(!0))}},{key:"setValidState",value:function(a){var b=this.element;b.classList.remove("invalid-input");b.classList.remove("valid-input");!0===a?b.classList.add("valid-input"):
+!1===a&&b.classList.add("invalid-input")}},{key:"disposed",value:function(){this.debouncedValueUpdater.flush();this.debouncedValueUpdater=void 0;Object(b.b)(this.element);this.textEditor=void 0;f(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"disposed",this).call(this)}},{key:"element",get:function(){return this.textEditor.getWrapperElement()}}]);return h}(g.a)},function(g,e){},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a){return a-Math.floor(a)}a.d(e,"b",function(){return q});a.d(e,"a",function(){return r});var m=a(99),c=a(100),b=a(260),d=a(7),f=a(18),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function(){function a(b){p(this,a);this.prefix=b;this.aName=this.prefix+"_a";this.bName=this.prefix+"_b"}h(a,
+[{key:"defineShader",value:function(a){var b=this.aName,d=this.bName;a.addUniform("highp vec4",b,4);a.addUniform("highp float",d,4);a.addFragmentCode(f.l);a.addFragmentCode(c.d);a.addFragmentCode(f.g);for(var h="\nvec3 "+this.prefix+"(uint64_t x) {\n  vec2 v;\n  float primeModulus = float("+m.b+");\n",l=0;2>l;++l){var k=2*l,e=2*l;h+="\n  v["+l+"] = computeHash(x,\n                        "+b+"["+e+"], "+b+"["+(e+1)+"],\n                        "+d+"["+k+"], "+d+"["+(k+1)+"],\n                        primeModulus, 1.0 / 256.0);\n"}a.addFragmentCode(h+
+"\n  vec3 hsv = vec3(v.x, 0.5 + v.y * 0.5, 1.0);\n  return hsvToRgb(hsv);\n}\n")}},{key:"enable",value:function(a,b,c){a.uniform4fv(b.uniform(this.aName),c.a_);a.uniform1fv(b.uniform(this.bName),c.b_)}}]);return a}(),k=new Float32Array(2),t=new Float32Array(3),r=function(){function a(b){p(this,a);this.a_=new Float32Array(16);this.b_=new Float32Array(4);this.changed=new d.a;null==b?(this.hashFunctions=Array(2),this.randomize_()):this.hashFunctions=b;this.computeGPUCoefficients_()}h(a,[{key:"compute",
+value:function(a,c){var d=c.low;c=c.high;for(var f=this.hashFunctions,h=0;2>h;++h)k[h]=n(f[h].compute(d,c)/256);Object(b.a)(a,k[0],.5+.5*k[1],1);return a}},{key:"computeCssColor",value:function(a){this.compute(t,a);return"rgb("+100*t[0]+"%,"+100*t[1]+"%,"+100*t[2]+"%)"}},{key:"debugCompute",value:function(a,b){var c=b.low;b=b.high;for(var d=this.b_,f=m.b,h=0;2>h;++h){for(var l=2*h,k=2*h,e=new Float32Array(2),q=0;4>q;++q)e[0]+=this.a_[4*k+q]*(c>>8*q&255),e[1]+=this.a_[4*(k+1)+q]*(b>>8*q&255);k=(e[0]+
+e[1])%f;q=k*k%f;var g=q*d[l+1]%f,r=(d[l]+k+g)%f;console.log("b = "+d[l]+", sums="+e[0]+" "+e[1]+", dotResult="+k+", "+("prod = "+k*k+" dotResult2="+q+", y="+g+", ")+("modResult="+r));a[h]=n(1/256*r)}return a}},{key:"randomize_",value:function(){for(var a=0;2>a;++a)this.hashFunctions[a]=m.a.generate()}},{key:"randomize",value:function(){this.randomize_();this.computeGPUCoefficients_();this.changed.dispatch()}},{key:"toString",value:function(){return"new SegmentColorHash(["+this.hashFunctions+"])"}},
+{key:"computeGPUCoefficients_",value:function(){for(var a=this.hashFunctions,b=this.a_,c=this.b_,d=0;2>d;++d){var f=a[d],h=2*d,l=8*d;c[h]=1*f.b;c[h+1]=1*f.c;for(h=0;4>h;++h)b[l+h]=1*f.a0[h],b[l+4+h]=1*f.a1[h]}}}],[{key:"getDefault",value:function(){return new a([new m.a(Float32Array.of(609,2364,3749,2289),Float32Array.of(2840,1186,3660,1833),1718,1109),new m.a(Float32Array.of(3466,3835,3345,2040),Float32Array.of(3382,901,18,3444),1534,1432)])}}]);return a}()},function(g,e,a){a.d(e,"a",function(){return n});
+var p=function(){function a(a,b){for(var c=0;c<b.length;c++){var f=b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(c,b,d){b&&a(c.prototype,b);d&&a(c,d);return c}}();e.b=4093;var n=function(){function a(c,b,d,f){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.a0=c;this.a1=b;this.b=d;this.c=f}p(a,[{key:"computeDotProduct",value:function(a,b){var c=this.a0,f=this.a1;return c[0]*(a&
+255)+c[1]*(a>>8&255)+c[2]*(a>>16&255)+c[3]*(a>>24&255)+(f[0]*(b&255)+f[1]*(b>>8&255)+f[2]*(b>>16&255)+f[3]*(b>>24&255))}},{key:"compute",value:function(a,b){var c=this.b,f=this.c;a=this.computeDotProduct(a,b);return(a+a*a%4093*f+c)%4093}},{key:"toString",value:function(){return"new HashFunction(Float32Array.of("+this.a0+"), "+("Float32Array.of("+this.a1+"), "+this.b+", "+this.c+")")}}],[{key:"generate",value:function(){function c(){return Math.floor(4093*Math.random())}return new a(Float32Array.of(c(),
+c(),c(),c()),Float32Array.of(c(),c(),c(),c()),c(),c())}}]);return a}()},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&
+b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return t});a.d(e,"c",function(){return r});a.d(e,"b",function(){return l});var c=a(99),b=a(53);g=a(1);var d=a(18),f=a(67),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,
+c);d&&a(b,d);return b}}(),q=function A(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return A(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=[d.o,d.l,d.d,d.h,"\nfloat computeHash(uint64_t x, vec4 a0, vec4 a1, float b, float c, float modulus, float scalar) {\n  x.low = unnormalizeUint8(x.low);\n  x.high = unnormalizeUint8(x.high);\n  float dotResult = imod(exactDot(a0, x.low) + exactDot(a1, x.high), modulus);\n  float dotResult2 = imod(dotResult * dotResult, modulus);\n  float y = imod(dotResult2 * c, modulus);\n  float modResult = imod(dotResult + y + b, modulus);\n  return fract(modResult * scalar);\n}\n"];
+e.d=k;var t=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.gl=a;d.hashTable=c;d.hashFunctions=null;d.generation=-1;d.texture=null;c=c.hashFunctions.length;d.a=new Float32Array(16*c);d.b=new Float32Array(4*c+5);d.texture=a.createTexture();return d}m(b,a);h(b,[{key:"computeCoefficients",value:function(){var a=this.hashTable,b=a.hashFunctions;if(this.hashFunctions!==b){this.hashFunctions=b;for(var d=this.a,f=this.b,h=b.length,l=a.width,k=[1/l,
+1/a.height],e=0;2>e;++e)f[4*h+e]=c.b,f[4*h+3+e]=k[e];f[4*h+2]=1/(a.entryStride*l);for(l=0;l<h;++l)for(k=b[l],e=0;2>e;++e){var q=k[e],g=4*l+2*e,r=4*(4*l+2*e);f[g]=q.b+(0===e?.5/a.entryStride:.5);f[g+1]=q.c;for(g=0;4>g;++g)d[r+g]=q.a0[g],d[r+4+g]=q.a1[g]}}}},{key:"copyToGPU",value:function(){this.computeCoefficients();var a=this.hashTable,b=a.generation;if(this.generation!==b){this.generation=b;var c=a.width,d=a.height,h=this.gl;b=this.texture;h.activeTexture(h.TEXTURE0+h.tempTextureUnit);h.bindTexture(h.TEXTURE_2D,
+b);h.pixelStorei(h.UNPACK_ALIGNMENT,1);Object(f.b)(h);var l=h.RGBA;a.tableWithMungedEmptyKey(function(b){h.texImage2D(h.TEXTURE_2D,0,l,c*a.entryStride,d,0,l,h.UNSIGNED_BYTE,new Uint8Array(b.buffer))});h.bindTexture(h.TEXTURE_2D,null)}}},{key:"disposed",value:function(){this.gl.deleteTexture(this.texture);this.texture=null;this.hashTable=this.gl=void 0;this.hashFunctions=null;q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}}],[{key:"get",value:function(a,b){var c=
+this;return a.memoize.get(b,function(){return new c(a,b)})}}]);return b}(g.a),r=function(){function a(c,d){d=void 0===d?b.c:d;p(this,a);this.prefix=c;this.numAlternatives=d;$jscomp.initSymbol();this.textureUnitSymbol=Symbol.for("gpuhashtable:"+this.prefix);this.aName=this.prefix+"_a";this.bName=this.prefix+"_b";this.samplerName=this.prefix+"_sampler"}h(a,[{key:"defineShader",value:function(a){var b=this.aName,c=this.bName,d=this.samplerName,f=this.numAlternatives;a.addUniform("highp vec4",b,4*f);
+a.addUniform("highp float",c,4*f+5);a.addTextureSampler2D(d,this.textureUnitSymbol);a.addFragmentCode(k);for(var h="",l=0;l<f;++l){for(var e=0;2>e;++e){var q=4*l+2*e,g=4*l+2*e;h+="\nfloat "+this.prefix+"_computeHash_"+l+"_"+e+"(uint64_t x) {\n  float primeModulus = "+c+"["+(4*f+e)+"];\n  float scalar = "+c+"["+(4*f+3+e)+"];\n  return computeHash(x,\n                     "+b+"["+g+"], "+b+"["+(g+1)+"],\n                     "+c+"["+q+"], "+c+"["+(q+1)+"],\n                     primeModulus, scalar);\n}\n"}h+=
+"\nvec2 "+this.prefix+"_computeHash_"+l+"(uint64_t x) {\n  vec2 v;\n  v[0] = "+this.prefix+"_computeHash_"+l+"_0(x);\n  v[1] = "+this.prefix+"_computeHash_"+l+"_1(x);\n  return v;\n}\n"}h+="\nbool "+this.hasFunctionName+"(uint64_t x) {\n  float highOffset = "+c+"["+(4*f+2)+"];\n";for(b=0;b<f;++b)h+="\n  {\n    vec2 v = "+this.prefix+"_computeHash_"+b+"(x);\n    vec4 lowResult = texture2D("+d+", v);\n    vec4 highResult = texture2D("+d+", vec2(v.x + highOffset, v.y));\n    if (lowResult == x.low && highResult == x.high) {\n      return true;\n    }\n  }\n";
+a.addFragmentCode(h+"\n  return false;\n}\n")}},{key:"enable",value:function(a,b,c){c.copyToGPU();var d=b.textureUnit(this.textureUnitSymbol);a.activeTexture(a.TEXTURE0+d);a.bindTexture(a.TEXTURE_2D,c.texture);a.uniform4fv(b.uniform(this.aName),c.a);a.uniform1fv(b.uniform(this.bName),c.b)}},{key:"disable",value:function(a,b){b=b.textureUnit(this.textureUnitSymbol);a.activeTexture(a.TEXTURE0+b);a.bindTexture(a.TEXTURE_2D,null)}},{key:"hasFunctionName",get:function(){return this.prefix+"_has"}}]);return a}(),
+l=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);h(b,[{key:"defineShader",value:function(a){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);for(var c=this.samplerName,d=this.numAlternatives,f="\nbool "+this.getFunctionName+"(uint64_t x, out uint64_t value) {\n  float highOffset = "+this.bName+"["+(4*d+2)+"];\n",h=0;h<d;++h)f+="\n  {\n    vec2 v = "+this.prefix+"_computeHash_"+h+"(x);\n    vec4 lowResult = texture2D("+
+c+", v);\n    vec4 highResult = texture2D("+c+", vec2(v.x + highOffset, v.y));\n    if (lowResult == x.low && highResult == x.high) {\n      value.low = texture2D("+c+", vec2(v.x + 2.0 * highOffset, v.y));\n      value.high = texture2D("+c+", vec2(v.x + 3.0 * highOffset, v.y));\n      return true;\n    }\n  }\n";a.addFragmentCode(f+"\n  return false;\n}\n")}},{key:"getFunctionName",get:function(){return this.prefix+"_get"}}]);return b}(r)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(){return new r.a([],function(a){return Object(A.a)(a,
+A.z)})}function b(a){return Object(F.a)(a.dataType,a.numComponents)}function d(a){return a.map(function(a){return Object(v.c)(new v.b,a.dataType,a.numComponents)})}function f(a,b){return a.memoize.getUncounted({type:"single_mesh:getMeshInfo",parameters:b},function(){return a.rpc.promiseInvoke(t.a,{chunkManager:a.addCounterpartRef(),parameters:b})})}a.d(e,"b",function(){return O});e.e=b;a.d(e,"d",function(){return T});a.d(e,"c",function(){return aa});e.f=function(a,b){return f(a,b).then(function(c){return a.getChunkSource(P,
+{parameters:Object.assign({},b,{info:c})})})};var h=a(25);g=a(23);var q=a(94),k=a(48),t=a(152),r=a(14),l=a(42),u=a(3),A=a(6),y=a(27),z=a(49),B=a(44),x=a(153),v=a(102),E=a(31),F=a(18),C=a(15),G=function M(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return M(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},H=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];
+d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();e.a="//NEUROGLANCER_SINGLE_MESH_LAYER_FRAGMENT_MAIN_START";var D=a(90),O=function Ba(){m(this,Ba);this.shaderError=Object(B.b)();var a=void 0;this.fragmentMain=new r.a(void 0===a?"void main() {\n  emitGray();\n}\n":a,A.B);this.attributeNames=c();this.objectToDataTransform=new q.a};$jscomp.initSymbol();var J=Symbol("SingleMeshShaderManager.vertexAttributeTextureUnit"),
+Q=Object(v.c)(new v.b,l.b.FLOAT32,3),T=function(){function a(b,c,d){m(this,a);this.attributeNames=b;this.attributeInfo=c;this.fragmentMain=d;this.tempLightVec=new Float32Array(4);this.tempPickID=new Float32Array(4);this.textureAccessHelper=new v.a("vertexData");this.indexBufferHelper=new x.a("VertexIndex")}H(a,[{key:"defineAttributeAccess",value:function(a,c){var d=this.textureAccessHelper;d.defineShader(a);a.addVertexCode(d.getAccessor("readVertexPosition","uVertexAttributeSampler[0]",l.b.FLOAT32,
+3));a.addVertexCode(d.getAccessor("readVertexNormal","uVertexAttributeSampler[1]",l.b.FLOAT32,3));var f=2,h="\nvec3 vertexPosition = readVertexPosition("+c+");\nvec3 vertexNormal = readVertexNormal("+c+");\n",k=this.attributeNames;this.attributeInfo.forEach(function(l,e){if(void 0!==k[e]){var q=b(l);a.addVarying("highp "+q,"vCustom"+e);a.addFragmentCode("\n#define "+k[e]+" vCustom"+e+"\n");a.addVertexCode(d.getAccessor("readAttribute"+e,"uVertexAttributeSampler["+f+"]",l.dataType,l.numComponents));
+h+="vCustom"+e+" = readAttribute"+e+"("+c+");\n";f+=1}});a.addTextureSampler2D("uVertexAttributeSampler",J,f);a.addVertexMain(h)}},{key:"defineShader",value:function(a){a.require(x.b);this.indexBufferHelper.defineShader(a);a.addVarying("highp float","vLightingFactor");a.addUniform("highp vec4","uLightDirection");a.addUniform("highp vec4","uColor");a.addUniform("highp mat4","uModelMatrix");a.addUniform("highp mat4","uProjection");a.addUniform("highp vec4","uPickID");a.addVarying("highp vec4","vPickID");
+a.addVertexCode(F.b);a.addVertexCode(F.c);a.addVertexMain("\nfloat vertexIndex = getVertexIndex();\nuint32_t triangleIndex;\ndivmod(getPrimitiveIndex(), 3.0, triangleIndex);\nuint32_t pickID; pickID.value = uPickID;\nvPickID = add(pickID, triangleIndex).value;\n");a.addFragmentCode("\nvoid emitPremultipliedRGBA(vec4 color) {\n  emit(vec4(color.rgb * vLightingFactor, color.a), vPickID);\n}\nvoid emitRGBA(vec4 color) {\n  color = clamp(color, 0.0, 1.0);\n  color.xyz *= color.a;\n  emitPremultipliedRGBA(color);\n}\nvoid emitRGB(vec3 color) {\n  emitRGBA(vec4(color, 1.0));\n}\nvoid emitGray() {\n  emitRGB(vec3(1.0, 1.0, 1.0));\n}\n");
+a.addFragmentCode(D);this.defineAttributeAccess(a,"vertexIndex");a.addVertexMain("\ngl_Position = uProjection * (uModelMatrix * vec4(vertexPosition, 1.0));\nvec3 normal = normalize((uModelMatrix * vec4(vertexNormal, 0.0)).xyz);\nvLightingFactor = abs(dot(normal, uLightDirection.xyz)) + uLightDirection.w;\n");a.setFragmentMainFunction("//NEUROGLANCER_SINGLE_MESH_LAYER_FRAGMENT_MAIN_START\n"+this.fragmentMain)}},{key:"beginLayer",value:function(a,b,c){var d=c.dataToDevice,f=c.lightDirection,h=c.ambientLighting;
+c=c.directionalLighting;a.uniformMatrix4fv(b.uniform("uProjection"),!1,d);d=this.tempLightVec;u.p.scale(d,f,c);d[3]=h;a.uniform4fv(b.uniform("uLightDirection"),d)}},{key:"setPickID",value:function(a,b,c){a.uniform4fv(b.uniform("uPickID"),Object(F.p)(this.tempPickID,c))}},{key:"beginObject",value:function(a,b,c){a.uniformMatrix4fv(b.uniform("uModelMatrix"),!1,c)}},{key:"getShader",value:function(a,b){var c=this,d={attributeNames:this.attributeNames,attributeInfo:this.attributeInfo,fragmentMain:this.fragmentMain};
+return a.memoize.get("single_mesh/SingleMeshShaderManager:"+Object(y.a)(b)+":"+Object(A.g)(d),function(){var d=new E.a(a);d.require(b);c.defineShader(d);return d.build()})}},{key:"bindVertexData",value:function(a,b,c){this.textureAccessHelper.setupTextureLayout(a,b,c);var d=b.textureUnit(J)+a.TEXTURE0,f=function(b){a.activeTexture(d++);a.bindTexture(a.TEXTURE_2D,b)};f(c.vertexTexture);f(c.normalTexture);var h=this.attributeNames;c.vertexAttributeTextures.forEach(function(a,b){void 0!==h[b]&&f(a)})}},
+{key:"disableVertexData",value:function(a,b){for(var c=2,d=this.attributeInfo.length,f=this.attributeNames,h=0;h<d;++h)void 0!==f[h]&&++c;b=b.textureUnit(J)+a.TEXTURE0;for(d=0;d<c;++d)a.activeTexture(b++),a.bindTexture(a.TEXTURE_2D,null)}},{key:"drawFragment",value:function(a,b,c,d){d.ensure(c.numIndices).bind(b);this.bindVertexData(a,b,c.vertexData);this.indexBufferHelper.bind(c.indexBuffer,b);a.drawArrays(a.TRIANGLES,0,c.numIndices)}},{key:"endLayer",value:function(a,b){Object(x.c)(a,b);this.indexBufferHelper.disable(b);
+this.disableVertexData(a,b)}}]);return a}(),S=function(){function a(){m(this,a)}H(a,[{key:"copyToGPU",value:function(a,b){var c=this;Object(v.d)(this,a,1,this.vertexPositions.length/3);var d=function(b,d){var f=a.createTexture();a.bindTexture(a.TEXTURE_2D,f);Object(v.f)(a,c,d,b);return f};this.vertexTexture=d(this.vertexPositions,Q);this.normalTexture=d(this.vertexNormals,Q);this.vertexAttributeTextures=this.vertexAttributes.map(function(a,c){return d(a,b[c])});a.bindTexture(a.TEXTURE_2D,null)}},
+{key:"freeGPUMemory",value:function(a){a.deleteTexture(this.vertexTexture);a.deleteTexture(this.normalTexture);for(var b=this.vertexAttributeTextures,c=$jscomp.makeIterator(b),d=c.next();!d.done;d=c.next())a.deleteTexture(d.value);b.length=0}}]);return a}(),L=function(a){function b(a,c){m(this,b);a=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a));var d=a.vertexData=new S;d.vertexPositions=c.vertexPositions;d.vertexNormals=c.vertexNormals;d.vertexAttributes=c.vertexAttributes;c=a.indices=
+c.indices;a.numIndices=c.length;return a}n(b,a);H(b,[{key:"copyToGPU",value:function(a){G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"copyToGPU",this).call(this,a);this.vertexData.copyToGPU(a,this.source.attributeTextureFormats);this.indexBuffer=Object(x.e)(a,this.indices)}},{key:"freeGPUMemory",value:function(a){G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"freeGPUMemory",this).call(this,a);this.vertexData.freeGPUMemory(a);this.indexBuffer.dispose()}}]);return b}(g.b),
+P=function(a){function b(){m(this,b);var a=p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.attributeTextureFormats=d(a.info.vertexAttributes);return a}n(b,a);H(b,[{key:"getChunk",value:function(a){return new L(this,a)}},{key:"info",get:function(){return this.parameters.info}}]);return b}(Object(g.f)(g.e,t.d)),Y=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(Object(z.c)(C.b)),aa=function(a){function b(a,
+c){m(this,b);var d=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.source=a;d.displayState=c;d.shaders=new Map;d.sharedObject=d.registerDisposer(new Y);d.fallbackFragmentMain="void main() {\n  emitGray();\n}\n";d.countingBuffer=d.registerDisposer(Object(x.d)(d.gl));d.displayState.shaderError.value=void 0;var f=function(){d.shaderManager=void 0;d.displayState.shaderError.value=void 0;d.disposeShaders();d.redrawNeeded.dispatch()};d.registerDisposer(c.fragmentMain.changed.add(f));d.registerDisposer(c.attributeNames.changed.add(f));
+d.registerDisposer(c.objectToDataTransform.changed.add(function(){d.redrawNeeded.dispatch()}));d.displayState.shaderError.value=void 0;c=d.sharedObject;c.visibility.add(d.visibility);c.RPC_TYPE_ID=t.c;c.initializeCounterpart(a.chunkManager.rpc,{chunkManager:a.chunkManager.rpcId,source:a.addCounterpartRef()});d.setReady(!0);return d}n(b,a);H(b,[{key:"disposeShaders",value:function(){for(var a=this.shaders,b=$jscomp.makeIterator(a.values()),c=b.next();!c.done;c=b.next())c=c.value,null!==c&&c.dispose();
+a.clear()}},{key:"disposed",value:function(){this.disposeShaders();G(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},{key:"makeShaderManager",value:function(a){a=void 0===a?this.displayState.fragmentMain.value:a;return new T(this.displayState.attributeNames.value,this.source.info.vertexAttributes,a)}},{key:"getShader",value:function(a){var b=this.shaders,c=b.get(a);if(void 0===c){c=null;var d=this.shaderManager;void 0===d&&(d=this.shaderManager=this.makeShaderManager());
+var f=this.displayState.fragmentMain.value;try{c=d.getShader(this.gl,a),this.fallbackFragmentMain=f,this.displayState.shaderError.value=null}catch(Ha){if(this.displayState.shaderError.value=Ha,d=this.fallbackFragmentMain,d!==f){d=this.shaderManager=this.makeShaderManager(d);try{c=d.getShader(this.gl,a)}catch(qc){}}}b.set(a,c)}return c}},{key:"draw",value:function(a){if(a.emitColor||!a.alreadyEmittedPickID){var b=this.source.chunks.get(t.b);if(void 0!==b&&b.state===h.d.GPU_MEMORY){var c=this.getShader(a.emitter);
+if(null!==c){var d=this.gl,f=this.shaderManager;c.bind();f.beginLayer(d,c,a);var l=a.pickIDs;f.beginObject(d,c,this.displayState.objectToDataTransform.transform);a.emitPickID&&f.setPickID(d,c,l.register(this,b.numIndices/3));f.drawFragment(d,c,b,this.countingBuffer);f.endLayer(d,c)}}}}},{key:"drawPicking",value:function(a){this.draw(a)}},{key:"transformPickedValue",value:function(a,b){a=this.source.chunks.get(t.b);if(void 0!==a){b*=3;var c=a.indices;if(!(b>=c.length)){var d=c[b],f=[],h=this.displayState.attributeNames.value;
+a.vertexData.vertexAttributes.forEach(function(a,b){b=h[b];void 0!==b&&f.push(b+"="+a[d].toPrecision(6))});return f.join(", ")}}}},{key:"isTransparent",get:function(){return null!==this.displayState.fragmentMain.value.match(/emitRGBA|emitPremultipliedRGBA/)}},{key:"gl",get:function(){return this.source.gl}}]);return b}(k.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b,c){c=Math.ceil(c/b);a.dataWidth=b;a.textureHeight=
+c;a.textureAccessCoefficients=Float32Array.of(1/b,1/(b*c),b)}a.d(e,"b",function(){return q});e.c=function(a,d,f){f=void 0===f?1:f;switch(d){case c.b.UINT8:if(1>f||4<f)break;a.texelsPerElement=1;a.textureFormat=k[f];a.texelType=b.t;a.arrayElementsPerTexel=f;a.arrayConstructor=Uint8Array;return a;case c.b.UINT16:if(1>f||2<f)break;a.texelsPerElement=1;a.textureFormat=k[2*f];a.texelType=b.t;a.arrayElementsPerTexel=2*f;a.arrayConstructor=Uint8Array;return a;case c.b.UINT64:if(1!==f)break;a.texelsPerElement=
+2;a.textureFormat=b.j;a.texelType=b.t;a.arrayElementsPerTexel=4;a.arrayConstructor=Uint8Array;return a;case c.b.UINT32:if(1!==f)break;a.texelsPerElement=1;a.textureFormat=b.j;a.texelType=b.t;a.arrayElementsPerTexel=4;a.arrayConstructor=Uint8Array;return a;case c.b.FLOAT32:if(!(1>f||4<f))return a.texelsPerElement=1,a.textureFormat=k[f],a.texelType=b.c,a.arrayElementsPerTexel=f,a.arrayConstructor=Float32Array,a}throw Error("No supported texture format for "+c.b[d]+"["+f+"].");};e.e=function(a,b,c,d,
+f,h){b=b.maxTextureSize;var l=d*f*h;if(!(c*d<=b&&f*h<=b))if(c*d*f<=b&&h<=b)d*=f;else if(d=Math.ceil(l/b),d*c>b)throw Error("Chunk data size exceeds maximum texture size: "+c+" * "+l);n(a,d,l)};e.d=function(a,b,c,d){b=b.maxTextureSize;var f=Math.ceil(d/b);if(f*c>b)throw Error("Number of elements exceeds maximum texture size: "+c+" * "+d);n(a,f,d)};e.f=function(a,c,d,h){var l=d.arrayConstructor,k=d.textureFormat,e=d.texelsPerElement,q=c.dataWidth;c=c.textureHeight;var g=q*c*d.arrayElementsPerTexel*
+e;h.constructor!==l&&(h=new l(h.buffer,h.byteOffset,h.byteLength/l.BYTES_PER_ELEMENT));h=Object(m.a)(h,g);a.pixelStorei(b.r,1);Object(f.b)(a);a.texImage2D(a.TEXTURE_2D,0,k,q*e,c,0,k,d.texelType,h)};a.d(e,"a",function(){return r});var m=a(132),c=a(42),b=a(35),d=a(18),f=a(67),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,
+d);return b}}(),q=function u(){p(this,u)},k=[-1,b.f,b.g,b.i,b.j],t=["","r","ra","rgb","rgba"],r=function(){function a(b){p(this,a);this.key=b;this.uniformName="uTextureAccessCoefficients_"+this.key;this.readTextureValue="readTextureValue_"+this.key}h(a,[{key:"defineShader",value:function(a){a.addUniform("highp vec3",this.uniformName)}},{key:"getReadTextureValueCode",value:function(a){for(var b=this.uniformName,c="\nvoid "+this.readTextureValue+"(highp sampler2D sampler, float index",d=0;d<a;++d)c+=
+", out vec4 output"+d;c+=") {\n  float offset = "+.5/a+";\n  float xCoord = fract((index + offset) * "+b+".x);\n  vec2 texCoords = vec2(xCoord,\n                        (index - (xCoord - 0.5 - offset * "+b+".x) * "+b+".z) *\n                        "+b+".y);\n";for(d=0;d<a;++d)c+="\n  output"+d+" = texture2D(sampler,\n                        vec2(texCoords.x +\n                             "+b+".x * "+(d/a).toFixed(8)+",\n                             texCoords.y));\n";return c+"\n}\n"}},{key:"getAccessor",
+value:function(a,b,f,h){h=void 0===h?1:h;var k=Object(d.a)(f,h),e=[];e.push(this.getReadTextureValueCode(f===c.b.UINT64?2:1));a="\n"+k+" "+a+"(float index) {\n";switch(f){case c.b.UINT8:e.push(d.m);a+="\n  "+k+" result;\n  vec4 temp;\n  "+this.readTextureValue+"("+b+", index, temp);\n  result.value = temp."+t[h]+";\n  return result;\n";break;case c.b.UINT16:e.push(d.j);a+="\n  "+k+" result;\n  vec4 temp;\n  "+this.readTextureValue+"("+b+", index, temp);\n  result.value = temp."+t[2*h]+";\n  return result;\n";
+break;case c.b.UINT32:e.push(d.k);a+="\n  "+k+" result;\n  "+this.readTextureValue+"("+b+", index, result.value);\n  return result;\n";break;case c.b.UINT64:e.push(d.l);a+="\n  "+k+" result;\n  "+this.readTextureValue+"("+b+", index, result.low, result.high);\n  return result;\n";break;case c.b.FLOAT32:e.push(d.e),a+="\n  vec4 temp;\n  "+this.readTextureValue+"("+b+", index, temp);\n  return temp."+t[h]+";\n"}e.push(a+"\n}\n");return e}},{key:"setupTextureLayout",value:function(a,b,c){a.uniform3fv(b.uniform(this.uniformName),
+c.textureAccessCoefficients)}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?
+Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a){a.addFragmentExtension("GL_EXT_draw_buffers");a.addFragmentCode(v)}function c(a){a.addFragmentExtension("GL_EXT_draw_buffers");a.addFragmentCode(E)}function b(a){a.setFragmentMain("\nvec4 v0 = getValue0();\nvec4 v1 = getValue1();\nvec4 accum = vec4(v0.rgb, v1.r);\nfloat revealage = v0.a;\n\ngl_FragColor = vec4(accum.rgb / accum.a, revealage);\n")}a.d(e,"a",function(){return x});e.c=m;e.d=c;a.d(e,"b",function(){return G});var d=a(126),f=a(21),
+h=a(128),q=a(48);g=a(129);var k=a(43),t=a(54),r=a(22),l=a(3),u=a(68),A=a(88),y=a(18),z=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),B=function D(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return D(a,b,c)}else{if("value"in
+d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(36);a(288);var x;(function(a){a[a.COLOR=0]="COLOR";a[a.Z=1]="Z";a[a.PICK=2]="PICK";a[a.NUM_TEXTURES=3]="NUM_TEXTURES"})(x||(x={}));var v=[y.i,"\nvoid emit(vec4 color, vec4 pickId) {\n  gl_FragData["+x.COLOR+"] = color;\n  gl_FragData["+x.Z+"] = packFloat01ToFixedPoint(1.0 - gl_FragCoord.z);\n  gl_FragData["+x.PICK+"] = pickId;\n}\n"],E=["\nfloat computeOITWeight(float alpha) {\n  float a = min(1.0, alpha) * 8.0 + 0.01;\n  float b = -gl_FragCoord.z * 0.95 + 1.0;\n  return a * a * a * b * b * b;\n}\n",
+"\nvoid emit(vec4 color, vec4 pickId) {\n  float weight = computeOITWeight(color.a);\n  vec4 accum = color * weight;\n  gl_FragData[0] = vec4(accum.rgb, color.a);\n  gl_FragData[1] = vec4(accum.a, 0.0, 0.0, 0.0);\n}\n"],F=l.p.create(),C=l.j.create(),G=function(a){function e(a,c,g){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var n=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,c,g));n.visibleLayerTracker=Object(f.i)(n.viewer.layerManager,q.a,n);n.sliceViews=
+new Set;n.projectionMat=l.j.create();n.inverseProjectionMat=l.j.create();n.modelViewMat=l.j.create();n.width=0;n.height=0;n.pickIDs=new h.a;n.axesLineHelper=n.registerDisposer(d.a.get(n.gl));n.sliceViewRenderHelper=n.registerDisposer(k.d.get(n.gl,m));n.offscreenFramebuffer=n.registerDisposer(new A.b(n.gl,{colorBuffers:Object(A.e)(n.gl,x.NUM_TEXTURES),depthBuffer:new A.a(n.gl)}));n.offscreenCopyHelper=n.registerDisposer(A.c.get(n.gl));n.transparencyCopyHelper=n.registerDisposer(A.c.get(n.gl,b,2));
+n.registerDisposer(n.navigationState.changed.add(function(){n.viewportChanged()}));Object(r.c)(c,"translate-via-mouse-drag",function(a){Object(u.a)(a.detail,function(a,b,c){a=n.width;var d=n.height,f=n.viewer.navigationState.position,h=f.spatialCoordinates;l.p.transformMat4(F,h,n.projectionMat);F[0]=2*b/a;F[1]=-2*c/d;l.p.transformMat4(h,F,n.inverseProjectionMat);f.changed.dispatch()})});Object(r.c)(c,"rotate-via-mouse-drag",function(a){Object(u.a)(a.detail,function(a,b,c){n.navigationState.pose.rotateRelative(l.e[1],
+-b/4*Math.PI/180);n.navigationState.pose.rotateRelative(l.e[0],c/4*Math.PI/180);n.viewer.navigationState.changed.dispatch()})});g.showSliceViewsCheckbox&&(a=n.registerDisposer(new t.c(g.showSliceViews)),a.element.className="perspective-panel-show-slice-views neuroglancer-noselect",c=document.createElement("label"),c.className="perspective-panel-show-slice-views neuroglancer-noselect",c.appendChild(document.createTextNode("Slices")),c.appendChild(a.element),n.element.appendChild(c));n.registerDisposer(g.showSliceViews.changed.add(function(){n.scheduleRedraw()}));
+n.registerDisposer(g.showAxisLines.changed.add(function(){n.scheduleRedraw()}));return n}n(e,a);z(e,[{key:"updateProjectionMatrix",value:function(){var a=this.projectionMat;l.j.perspective(a,Math.PI/4,this.width/this.height,10,5E3);var b=this.modelViewMat;this.navigationState.toMat4(b);l.p.set(F,1,-1,-1);l.j.scale(b,b,F);var c=l.p.set(F,0,0,100);l.j.translate(b,b,c);l.j.invert(C,b);l.j.multiply(a,a,C);l.j.invert(this.inverseProjectionMat,a)}},{key:"viewportChanged",value:function(){this.context.scheduleRedraw()}},
+{key:"onResize",value:function(){var a=this.element,b=a.clientHeight;if(a.clientWidth!==this.width||b!==this.height)this.width=this.element.clientWidth,this.height=this.element.clientHeight,this.viewportChanged()}},{key:"disposed",value:function(){for(var a=$jscomp.makeIterator(this.sliceViews),b=a.next();!b.done;b=a.next())b.value.dispose();this.sliceViews.clear();B(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}},{key:"updateMouseState",value:function(a){a.pickedRenderLayer=
+null;if(!this.navigationState.valid)return!1;var b=a.position,c=this.offscreenFramebuffer,d=this.width,f=this.height;if(!c.hasSize(d,f))return!1;var h=this.mouseX,e=f-this.mouseY,k=c.readPixel(x.Z,h,e);k=1-Object(y.q)(k);if(1===k)return!1;b[0]=2*h/d-1;b[1]=2*e/f-1;b[2]=2*k-1;l.p.transformMat4(b,b,this.inverseProjectionMat);this.pickIDs.setMouseState(a,c.readPixelAsUint32(x.PICK,h,e));return!0}},{key:"draw",value:function(){if(this.navigationState.valid){this.onResize();var a=this.width,b=this.height;
+if(0!==a&&0!==b){if(this.viewer.showSliceViews.value)for(var d=$jscomp.makeIterator(this.sliceViews),f=d.next();!f.done;f=d.next())f.value.updateRendering();d=this.gl;this.offscreenFramebuffer.bind(a,b);d.disable(d.SCISSOR_TEST);this.gl.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT|d.DEPTH_BUFFER_BIT);d.enable(d.DEPTH_TEST);f=this.projectionMat;this.updateProjectionMatrix();var h=l.p.create();Object(l.n)(h,l.e[2],this.modelViewMat);l.p.normalize(h,h);var e=this.pickIDs;e.clear();f={dataToDevice:f,
+lightDirection:h,ambientLighting:.2,directionalLighting:.8,pickIDs:e,emitter:m,emitColor:!0,emitPickID:!0,alreadyEmittedPickID:!1,viewportWidth:a,viewportHeight:b};h=this.visibleLayerTracker.getVisibleLayers();var k=!1,q=$jscomp.makeIterator(h);for(e=q.next();!e.done;e=q.next())e=e.value,e.isTransparent?k=!0:e.draw(f);this.viewer.showSliceViews.value&&this.drawSliceViews(f);this.viewer.showAxisLines.value&&this.drawAxisLines();if(k){d.depthMask(!1);d.enable(d.BLEND);k=this.transparentConfiguration;
+k.bind(a,b);this.gl.clearColor(0,0,0,1);d.clear(d.COLOR_BUFFER_BIT);f.emitter=c;d.blendFuncSeparate(d.ONE,d.ONE,d.ZERO,d.ONE_MINUS_SRC_ALPHA);f.emitPickID=!1;q=$jscomp.makeIterator(h);for(e=q.next();!e.done;e=q.next())e=e.value,e.isTransparent&&e.draw(f);d.disable(d.DEPTH_TEST);this.offscreenFramebuffer.bindSingle(x.COLOR);d.blendFunc(d.ONE_MINUS_SRC_ALPHA,d.SRC_ALPHA);this.transparencyCopyHelper.draw(k.colorBuffers[0].texture,k.colorBuffers[1].texture);d.depthMask(!0);d.disable(d.BLEND);d.enable(d.DEPTH_TEST);
+this.offscreenFramebuffer.bind(a,b)}d.WEBGL_draw_buffers.drawBuffersWEBGL([d.NONE,d.WEBGL_draw_buffers.COLOR_ATTACHMENT1_WEBGL,d.WEBGL_draw_buffers.COLOR_ATTACHMENT2_WEBGL]);f.emitter=m;f.emitPickID=!0;f.emitColor=!1;a=$jscomp.makeIterator(h);for(e=a.next();!e.done;e=a.next())b=e.value,f.alreadyEmittedPickID=!b.isTransparent,b.draw(f);d.disable(d.DEPTH_TEST);this.offscreenFramebuffer.unbind();this.setGLViewport();this.offscreenCopyHelper.draw(this.offscreenFramebuffer.colorBuffers[x.COLOR].texture)}}}},
+{key:"drawSliceViews",value:function(a){var b=this.sliceViewRenderHelper,c=a.lightDirection,d=a.ambientLighting,f=a.directionalLighting;a=a.dataToDevice;for(var h=$jscomp.makeIterator(this.sliceViews),e=h.next();!e.done;e=h.next())if(e=e.value,0!==e.width&&0!==e.height){var k=Math.abs(l.p.dot(c,e.viewportAxes[2]));k=d+k*f;var q=C;l.j.identity(q);q[0]=e.width/2;q[5]=-e.height/2;l.j.multiply(q,e.viewportToData,q);l.j.multiply(q,a,q);b.draw(e.offscreenFramebuffer.colorBuffers[0].texture,q,l.r.fromValues(k,
+k,k,1),l.r.fromValues(.5,.5,.5,1),0,0,1,1)}}},{key:"drawAxisLines",value:function(){var a=this.gl;l.j.identity(C);C[0]=1600;C[5]=1600;C[10]=1600;var b=this.navigationState.position.spatialCoordinates;C[12]=b[0];C[13]=b[1];C[14]=b[2];C[15]=1;l.j.multiply(C,this.projectionMat,C);a.WEBGL_draw_buffers.drawBuffersWEBGL([a.WEBGL_draw_buffers.COLOR_ATTACHMENT0_WEBGL]);this.axesLineHelper.draw(C,!1)}},{key:"zoomByMouse",value:function(a){this.navigationState.zoomBy(a)}},{key:"navigationState",get:function(){return this.viewer.navigationState}},
+{key:"transparentConfiguration",get:function(){var a=this.transparentConfiguration_;void 0===a&&(a=this.transparentConfiguration_=this.registerDisposer(new A.b(this.gl,{colorBuffers:Object(A.e)(this.gl,2,this.gl.RGBA,this.gl.FLOAT)})));return a}}]);return e}(g.a)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){var c=document.documentElement.scrollTop+Math.min(document.documentElement.clientHeight-a.offsetHeight,b.clientY);a.style.left=document.documentElement.scrollLeft+Math.min(document.documentElement.clientWidth-a.offsetWidth,b.clientX)+"px";a.style.top=c+"px";a.style.visibility=null}a.d(e,"a",function(){return f});var m=a(1),c=a(9),b=a(7),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=
+b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(301);var f=function(a){function f(a){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");var c=(f.__proto__||Object.getPrototypeOf(f)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?
+this:c;c.element=document.createElement("div");c.parentDisposers=new Map;c.disabledValue=!1;c.opened=new b.a;c.closed=new b.a;var d=c.element;d.className="neuroglancer-context-menu";d.style.visibility="hidden";d.tabIndex=-1;document.body.appendChild(d);void 0!==a&&c.registerParent(a);return c}p(f,a);d(f,[{key:"registerParent",value:function(a){var b=this,c=this.parentDisposers;c.has(a)||c.set(a,Object(m.c)(a,"contextmenu",function(a){b.show(a);a.stopPropagation();a.preventDefault()}))}},{key:"show",
+value:function(a){var b=this;if(!this.disabledValue){this.hide();var c=this.element,d=Object(m.c)(document,"mousedown",function(a){a.target instanceof Node&&!c.contains(a.target)&&b.hide()},!0),f=Object(m.c)(document,"keydown",function(a){"Escape"===a.code&&b.hide()},!0);c.style.display=null;c.style.visibility="hidden";this.opened.dispatch();n(c,a);this.menuDisposer=function(){f();d();c.style.display="none"}}}},{key:"unregisterParent",value:function(a){var b=this.parentDisposers,c=b.get(a);void 0!==
+c&&(c(),b.delete(a))}},{key:"disposed",value:function(){for(var a=this.parentDisposers,b=$jscomp.makeIterator(a.values()),d=b.next();!d.done;d=b.next())d=d.value,d();a.clear();Object(c.b)(this.element)}},{key:"hide",value:function(){void 0!==this.menuDisposer&&(this.menuDisposer(),this.menuDisposer=void 0,this.closed.dispatch())}},{key:"disabled",get:function(){return this.disabledValue},set:function(a){this.disabledValue!==a&&(this.disabledValue=a)&&this.hide()}},{key:"open",get:function(){return void 0!==
+this.menuDisposer}}]);return f}(m.a)},function(g,e,a){function p(a){return Object(b.a)(a.dataTransfer.types,"neuroglancer-layer\x00")}function n(a){if(void 0!==h&&h.manager.rootLayers===a.rootLayers)return h}function m(a,b,c){if(a.shiftKey)return"copy";if(a.ctrlKey)return"move";a=void 0===c?!1:c;a=void 0===a?!1:a;c=n(b);b=void 0===c?"copy":a||c.manager!==b?"link":"move";return b}e.e=function(a,c){a.dataTransfer.setData(Object(b.b)("neuroglancer-layer\x00",c.layers.map(function(a){return{name:a.name,
+visible:a.visible}})),JSON.stringify(c.layers.map(function(a){return a.toJSON()})));void 0!==h&&h.disposer();var d,f=function(){c.manager.unregisterDisposer(f);for(var a=$jscomp.makeIterator(c.layers),b=a.next();!b.done;b=a.next())b.value.dispose();c.manager.dispose();h===d&&(h=void 0)};h=d={manager:c.manager.addRef(),layers:c.layers.map(function(a){return a.addRef()}),disposer:f}};e.a=function(a){if(void 0!==h){if(a&&"move"===a.dataTransfer.dropEffect){var b=new Set(h.layers);h.manager.layerManager.filter(function(a){return!b.has(a)})}h.disposer()}};
+e.c=p;e.d=m;e.f=function(a,c,d){return Object(b.e)(a,m(a,c,void 0===d?!1:d))};e.b=function(a,b,f,h,e){var l=n(b),k=!e&&void 0!==l&&l.manager===b;if(!f&&void 0!==l){var g=new q;g.manager=b;g.numSourceLayers=l.layers.length;g.sourceManager=l.manager;g.moveSupported=k;g.layers=new Map;if(!e&&l.manager===b)if(h)l.layers.forEach(function(a,b){g.layers.set(a,b)});else return;l.layers.forEach(function(a,c){!e&&b.layerManager.has(a)||g.layers.set(a.addRef(),c)});return g}a=p(a);if(void 0!==a)try{var r=Object(d.a)(a.parameters,
+function(a,f){var h=Object(d.w)(a,"name",d.B);a=Object(d.w)(a,"visible",d.m);h=new c.b(h,null,b);h.visible=a;return[h,f]}),u=new q;u.numSourceLayers=r.length;u.moveSupported=k;u.manager=b;u.dragType=a.dragType;u.layers=new Map(r);return u}catch(v){}};var c=a(20),b=a(106),d=a(6),f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);
+d&&a(b,d);return b}}(),h,q=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");}f(a,[{key:"finalize",value:function(a){var b=this.dragType;if(void 0!==b)try{var c=JSON.parse(a.dataTransfer.getData(b));if(!Array.isArray(c)||this.numSourceLayers!==c.length)throw Error("Invalid layer drop data");for(var d=$jscomp.makeIterator(this.layers),f=d.next();!f.done;f=d.next()){var h=$jscomp.makeIterator(f.value),e=h.next().value,k=h.next().value;this.manager.initializeLayerFromSpec(e,
+c[k])}}catch(x){return!1}return!0}},{key:"compatibleWithMethod",value:function(a){return this.method===a||!this.moveSupported&&"move"===a?!0:!1}},{key:"method",get:function(){return void 0!==this.sourceManager?this.manager===this.sourceManager?"move":"link":"copy"}}]);return a}()},function(g,e,a){e.b=function(a,b){b=JSON.stringify(b);b=Object(p.b)((new TextEncoder).encode(b));return a+b};e.a=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;a:{var f=b;if(c.startsWith(f))try{var h=
+c.substring(f.length);var e=(new TextDecoder).decode(Object(p.a)(h));var k=JSON.parse(e);break a}catch(t){k=void 0;break a}k=void 0}f=k;if(void 0!==f)return{parameters:f,dragType:c}}};e.e=function(a,b){return m=a.dataTransfer.dropEffect=b};e.c=function(){return m};e.d=function(a){a.draggable=!0;return Object(n.c)(a,"dragstart",function(a){a.stopPropagation();a.preventDefault()})};var p=a(302),n=a(1),m},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"b",function(){return y});
+a.d(e,"c",function(){return z});a.d(e,"a",function(){return B});var c=a(40),b=a(162),d=a(163);g=a(1);var f=a(9),h=a(22),q=a(3),k=a(51),t=a(131),r=a(89),l=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=function v(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===
+d){if(a=Object.getPrototypeOf(a),null!==a)return v(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(303);a(72);e.d="neuroglancer-position";var A=h.a.fromObject({tab:{action:"tab-forward",preventDefault:!1},arrowup:{action:"adjust-up"},arrowdown:{action:"adjust-down"},wheel:{action:"adjust-via-wheel"},"shift+tab":{action:"tab-backward",preventDefault:!1},backspace:{action:"delete-backward",preventDefault:!1},escape:{action:"cancel"},mouseup0:{action:"select-all-if-was-not-focused",
+preventDefault:!1}}),y=function(a){function e(a,f){f=void 0===f?6:f;p(this,e);var l=n(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));l.position=a;l.maxNumberWidth=f;l.element=document.createElement("div");l.inputContainer=document.createElement("div");l.inputElement=document.createElement("input");l.hintElement=document.createElement("input");l.tempPosition=q.p.create();l.updateHintScrollPosition=l.registerCancellable(Object(b.a)(function(){l.hintElement.scrollLeft=l.inputElement.scrollLeft}));
+var g=l.element,r=l.inputElement,u=l.hintElement,m=l.inputContainer;m.className="neuroglancer-position-widget-input-container";r.className="neuroglancer-position-widget-input";u.className="neuroglancer-position-widget-hint";l.inputFieldWidth=3*f+11;f=$jscomp.makeIterator([r,u]);for(var y=f.next();!y.done;y=f.next())y=y.value,y.spellcheck=!1,y.autocomplete="off",y.type="text",y.style.width=l.inputFieldWidth+"ch";u.disabled=!0;f=document.createElement("div");f.textContent="\u29c9";f.className="neuroglancer-copy-button neuroglancer-button";
+f.title="Copy position to clipboard";f.addEventListener("click",function(){var a=Object(d.b)(l.getPositionText());c.a.showTemporaryMessage(a?"Position copied to clipboard":"Failed to copy position to clipboard")});f.addEventListener("dragstart",function(b){b.dataTransfer.setData("neuroglancer-position",JSON.stringify(a.toJSON()));b.dataTransfer.setData("text",l.getPositionText());b.stopPropagation()});f.draggable=!0;g.appendChild(f);g.appendChild(m);m.appendChild(r);m.appendChild(u);g.className="neuroglancer-position-widget";
+l.registerDisposer(a.changed.add(l.registerCancellable(Object(b.a)(function(){return l.updateView()}))));l.registerDisposer(new k.b(r,A)).allShortcutsAreGlobal=!0;l.registerDisposer(new t.a(r,A));l.registerEventListener(r,"change",function(){return l.updatePosition()});l.registerEventListener(r,"blur",function(){return l.updatePosition()});l.registerEventListener(r,"input",function(){return l.cleanInput()});l.registerEventListener(r,"keydown",l.updateHintScrollPosition);l.registerEventListener(r,
+"copy",function(a){var b=r.value.substring(r.selectionStart,r.selectionEnd);b=b.trim().replace(/\s+/g," ");a.clipboardData.setData("text/plain",b);a.stopPropagation();a.preventDefault()});var E=!1;l.registerEventListener(r,"mousedown",function(){E=document.activeElement===r});l.registerDisposer(Object(h.c)(r,"select-all-if-was-not-focused",function(a){E||(r.selectionStart=0,r.selectionEnd=r.value.length,r.selectionDirection="forward",a.preventDefault())}));l.registerDisposer(Object(h.c)(r,"tab-forward",
+function(a){var b=Math.min(r.selectionStart,r.selectionEnd),c=r.value.substring(b).match(/^([^,\s]*)((?:\s+)|(?:\s*,\s*))?([^,\s]*)/);null!==c&&void 0!==c[2]&&(r.selectionStart=b+c[1].length+c[2].length,r.selectionEnd=r.selectionStart+c[3].length,r.selectionDirection="forward",a.preventDefault())}));l.registerDisposer(Object(h.c)(r,"tab-backward",function(a){var b=r.value.substring(0,Math.max(r.selectionStart,r.selectionEnd)).match(/([^,\s]*)((?:\s+)|(?:\s*,\s*))?([^,\s]*)$/);null!==b&&void 0!==b[2]&&
+(r.selectionStart=b.index,r.selectionEnd=r.selectionStart+b[1].length,r.selectionDirection="forward",a.preventDefault())}));l.registerDisposer(Object(h.c)(r,"delete-backward",function(a){if(r.selectionStart===r.selectionEnd&&r.selectionStart===r.value.length){var b=r.value.match(/^(.*)(?![\s])(?:(?:\s+)|(?:\s*,\s*))$/);null!==b&&(r.value=b[1],l.cleanInput(),a.preventDefault())}}));l.registerDisposer(Object(h.c)(r,"cancel",function(){l.updateView();l.inputElement.blur()}));l.registerDisposer(Object(h.c)(r,
+"adjust-via-wheel",function(a){a=a.detail;var b=a.deltaY;0!==b&&l.adjustFromCursor(Math.ceil((r.scrollLeft+a.offsetX-r.clientLeft)/(r.scrollWidth/l.inputFieldWidth)),-Math.sign(b))}));l.registerDisposer(Object(h.c)(r,"adjust-up",function(){l.adjustFromCursor(void 0,1)}));l.registerDisposer(Object(h.c)(r,"adjust-down",function(){l.adjustFromCursor(void 0,-1)}));l.updateView();return l}m(e,a);l(e,[{key:"adjustFromCursor",value:function(a,b){var c=this.inputElement;void 0===a&&(a="forward"===c.selectionDirection?
+c.selectionEnd:c.selectionStart);void 0!==this.cleanInput()&&(a=c.value.substring(0,a).split(",").length-1,this.updatePosition(),c=this.tempPosition,this.position.getVoxelCoordinates(c)&&(c[a]+=b,this.position.setVoxelCoordinates(c),this.updateView()))}},{key:"cleanInput",value:function(){var a=this.inputElement.selectionStart,b=/(-?\d+(?:\.(?:\d+)?)?)/.source,c=/((?:\s+(?![\s,]))|(?:\s*,\s*))/.source,d=/([\[\]{}()\s]*)/.source;b=this.inputElement.value.match(new RegExp("^"+d+"(?![\\s])"+b+"?"+("(?:"+
+c+b+"?(?:"+c+b+"?)?)?")+(d+"$")));if(null!==b){var f="  ",h="x ",l=2,e=b[1].length;c=function(b,c,d){if(void 0!==b){var k=e+b.length;void 0===c&&(c=b,d=" ".repeat(c.length));a>=e&&(l=a===k?f.length+c.length:f.length+Math.min(c.length,a-e));f+=c;h+=d;e=k}};c(b[2]);c(b[3],",   ","  y ");c(b[4]);c(b[5],",   ","  z ");c(b[6]);this.hintElement.value=h;this.inputElement.value!==f&&(this.inputElement.value=f,this.inputElement.selectionEnd=l,this.inputElement.selectionStart=l);this.updateHintScrollPosition();
+return void 0!==b[2]&&void 0!==b[4]&&void 0!==b[6]?{position:q.p.set(this.tempPosition,parseFloat(b[2]),parseFloat(b[4]),parseFloat(b[6]))}:{}}this.hintElement.value=""}},{key:"updatePosition",value:function(){var a=this.cleanInput();void 0!==a&&void 0!==a.position&&this.position.setVoxelCoordinates(a.position)}},{key:"getPositionText",value:function(){var a=this.tempPosition;return this.position.getVoxelCoordinates(a)?Math.floor(a[0])+", "+Math.floor(a[1])+", "+Math.floor(a[2]):"<unspecified position>"}},
+{key:"updateView",value:function(){var a=this.tempPosition;if(this.position.getVoxelCoordinates(a)){var b=this.inputElement;a="  "+Math.floor(a[0])+",   "+Math.floor(a[1])+",   "+Math.floor(a[2]);var c=a.indexOf(","),d=a.indexOf(",",c+1)-c-4;c="x "+" ".repeat(c-2)+"  y "+" ".repeat(d)+"  z";d=b.selectionStart;var f=b.selectionEnd,h=b.selectionDirection;b.value=a;b.setSelectionRange(d,f,h);this.hintElement.value=c+" ".repeat(a.length-c.length);this.updateHintScrollPosition()}else this.inputElement.value=
+"",this.hintElement.value=""}},{key:"disposed",value:function(){Object(f.b)(this.element);u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}}]);return e}(g.a),z=function(a){function c(a,d){p(this,c);var f=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));f.element=a;f.voxelSize=d;f.dimensionsContainer=document.createElement("span");f.unitsElement=document.createElement("span");var h=f.dimensionsContainer,l=f.unitsElement;a.className="neuroglancer-voxel-size-widget";
+a.title="Voxel size";h.className="neuroglancer-voxel-size-dimensions-container";a.appendChild(h);a.appendChild(l);l.className="neuroglancer-voxel-size-units";f.registerDisposer(d.changed.add(f.registerCancellable(Object(b.a)(function(){return f.updateView()}))));f.updateView();return f}m(c,a);l(c,[{key:"updateView",value:function(){var a=this.dimensionsContainer,b=this.unitsElement;Object(f.a)(a);this.element.style.display=this.voxelSize.valid?null:"none";var c=this.voxelSize.size,d=Object(r.c)(Math.min(c[0],
+c[1],c[2]));b.textContent=d.unit;for(b=0;3>b;++b){for(var h=c[b]/d.lengthInNanometers,l="",e=0;2>=e&&(l=h.toFixed(e),parseFloat(l)!==h);++e);h=document.createElement("span");h.className="neuroglancer-voxel-size-dimension";h.textContent=l;a.appendChild(h)}}},{key:"disposed",value:function(){Object(f.b)(this.element);u(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}}]);return c}(g.a),B=function(a){function c(a,d,f){p(this,c);var h=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));
+h.element=a;h.mouseState=d;h.voxelSize=f;h.tempPosition=q.p.create();a.className="neuroglancer-mouse-position-widget";a=h.registerCancellable(Object(b.a)(function(){return h.updateView()}));h.registerDisposer(d.changed.add(a));h.registerDisposer(f.changed.add(a));return h}m(c,a);l(c,[{key:"updateView",value:function(){var a="",b=this.mouseState,c=this.voxelSize;b.active&&c.valid&&(a=this.tempPosition,c.voxelFromSpatial(a,b.position),a="x "+Math.floor(a[0])+",  y "+Math.floor(a[1])+",  z "+Math.floor(a[2]));
+this.element.textContent=a}},{key:"disposed",value:function(){Object(f.b)(this.element);u(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}}]);return c}(g.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a){return Object.assign({},Object(v.d)(a),{navigationState:a.perspectiveNavigationState,inputEventMap:a.inputEventBindings.perspectiveView})}function c(a){return Object.assign({},Object(v.d)(a),{navigationState:a.navigationState,inputEventMap:a.inputEventBindings.sliceView})}function b(a,b,c){c=void 0===
+b?a.navigationState:new l.e(new l.g(a.navigationState.pose.position,l.f.makeRelative(a.navigationState.pose.orientation,b)),c||a.navigationState.zoomFactor);a=new A.a(a.chunkManager,a.layerManager,c);a[S]=b||x.l.create();return a}function d(a,c,d){return a.map(function(a){return b(c,a[S],d)})}function f(a,b){Object(G.c)(a.element,"nehuba-rotate-via-mouse-drag",function(c){var d=a.viewer,f=a.sliceView,h=d.mouseState;if(h.updateUnconditionally()){var l=b.rotateAtViewCentre?void 0:x.p.clone(h.position);
+Object(H.a)(c.detail,function(a,b,c){a=f.viewportAxes;d.navigationState.pose.rotateAbsolute(a[1],b/4*Math.PI/180,l);d.navigationState.pose.rotateAbsolute(a[0],c/4*Math.PI/180,l)})}});return a}function h(a,b){var c=a.zoomByMouse;a.zoomByMouse=function(a){b.zoomAtViewCentre?this.navigationState.zoomBy(a):c.call(this,a)};return a}function q(a,b){var c=a.registerDisposer(new C.a),d=c.element;a.registerDisposer(new z.a(b,d));a.element.appendChild(d);var f=a.draw;a.draw=function(){f.call(this);var a=this.sliceView,
+b=c.dimensions;b.targetLengthInPixels=Math.min(a.width/4,100);b.nanometersPerPixel=a.pixelSize;c.update()};return a}function k(a){var b=a.draw;a.draw=function(){b.call(this);var c={missingImageChunks:t(this.sliceView,function(a){return a instanceof D.b}),missingChunks:t(this.sliceView),nanometersToOffsetPixels:function(b){b=x.p.transformMat4(x.p.create(),b,a.sliceView.dataToViewport);b[0]=b[0]+a.sliceView.width/2+a.element.clientLeft;b[1]=b[1]+a.sliceView.height/2+a.element.clientTop;return b}};c=
+new CustomEvent("sliceRenderEvent",{bubbles:!0,detail:c});this.element.dispatchEvent(c)}}function t(a,b){var c=a.visibleLayerList.filter(function(a){return b?b(a):!0});return 0===c.length?-1:c.map(function(b){return a.visibleLayers.get(b)}).reduce(function(a,b){return a.concat(b)},[]).filter(function(a){return a instanceof O.b}).map(function(a){return a}).map(function(b){var c=b.chunks;if(b=a.visibleChunks.get(b.spec.chunkLayout))return b.map(function(a){return c.get(a)}).filter(function(a){return!(a&&
+a.state===J.d.GPU_MEMORY)}).length;console.log("visibleChunks are not defined");return 0}).reduce(function(a,b){return a+b},0)}a.d(e,"a",function(){return P});var r=a(159),l=a(55),u=a(103),A=a(43),y=a(63),z=a(54);g=a(1);var B=a(9),x=a(3),v=a(71),E=a(165),F=a(166),C=a(315),G=a(22),H=a(68),D=a(142),O=a(28),J=a(25),Q=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,
+c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),T=function aa(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return aa(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};$jscomp.initSymbol();var S=Symbol("SliceQuat");$jscomp.initSymbol();var L=Symbol("config");e.b=L;e.c="layoutEvent";var P=function(a){function l(a,e,g){if(!(this instanceof l))throw new TypeError("Cannot call a class as a function");
+var t=p(this,(l.__proto__||Object.getPrototypeOf(l)).call(this));t.container=a;t.rootElement=e;t.viewer=g;var A=g.display.container[L];if(!A)throw Error("Are you trying to use nehuba classes directly? Use should use defined API instead");var n=A.layout||{};n.useNehubaPerspective&&!n.useNehubaPerspective.doNotRestrictUserNavigation&&Object(F.e)(g);var B=n.planarSlicesBackground||A.dataset&&A.dataset.imageBackground,v=function(a){B&&(a.backgroundColor=B);k(h(f(a,A),A));return a};n.views||(n.views="hbp-neuro");
+"hbp-neuro"===n.views&&(n.views={slice1:x.l.rotateX(x.l.create(),x.l.create(),-Math.PI/2),slice2:x.l.rotateY(x.l.create(),x.l.rotateX(x.l.create(),x.l.create(),-Math.PI/2),-Math.PI/2),slice3:x.l.rotateX(x.l.create(),x.l.create(),Math.PI)});a=n.views;var C=[a.slice1,a.slice2,a.slice3].map(function(a){return b(g,a)}),G,H=g.display,D=Object.assign({},m(g),{showSliceViews:g.showPerspectiveSliceViews,showSliceViewsCheckbox:!n.hideSliceViewsCheckbox,slicesNavigationState:g.navigationState}),M=Object.assign({},
+c(g),{showScaleBar:new z.b(!1,!1)}),Ba=Object.assign({},c(g),{showScaleBar:new z.b(!1,!1)});a=[r.b(1,r.a("column",[r.b(1,r.a("row",[r.b(1,function(a){t.registerDisposer(v(q(new y.a(H,a,C[0],M),g.showScaleBar)))}),r.b(1,function(a){t.registerDisposer(v(new y.a(H,a,C[1],Ba)))})])),r.b(1,r.a("row",[r.b(1,function(a){t.registerDisposer(v(new y.a(H,a,C[2],Ba)))}),r.b(1,function(a){if(n.useNehubaPerspective){var b=n.useNehubaPerspective;G=t.registerDisposer(new E.a(H,a,D,A));C.forEach(function(a){G.planarSlices.add(a.addRef())});
+if(b.fixedZoomPerspectiveSlices){var c=b.fixedZoomPerspectiveSlices;d(C,g,c.sliceZoom).forEach(function(a){var b=c.sliceViewportSizeMultiplier;a.setViewportSize(c.sliceViewportWidth*b,c.sliceViewportHeight*b);G.sliceViews.add(a)})}else for(b=$jscomp.makeIterator(C),a=b.next();!a.done;a=b.next())G.sliceViews.add(a.value.addRef())}else for(G=t.registerDisposer(new u.b(H,a,D)),b=$jscomp.makeIterator(C),a=b.next();!a.done;a=b.next())G.sliceViews.add(a.value.addRef())})]))]))];r.a("row",a)(e);H.onResize();
+e=new CustomEvent("layoutEvent",{detail:{perspective:G&&G.element}});g.display.container.dispatchEvent(e);return t}n(l,a);Q(l,[{key:"disposed",value:function(){Object(B.a)(this.rootElement);T(l.prototype.__proto__||Object.getPrototypeOf(l.prototype),"disposed",this).call(this)}}]);return l}(g.a);e.d="sliceRenderEvent"},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"b",function(){return k});a.d(e,"a",function(){return t});var c=a(7),b=a(16);g=a(98);var d=a(53),f=a(100),h=function(){function a(a,
+b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function l(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return l(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=function(a){function b(){p(this,b);
+var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.hashMapShaderManager=new f.b("customColors");return a}m(b,a);h(b,[{key:"defineShader",value:function(a){var c=this.prefix;this.prefix=c+"_NG";q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);this.hashMapShaderManager.defineShader(a);a.addFragmentCode("\nvec3 "+c+"(uint64_t x) {\n  uint64_t mappedValue;\n  if ("+this.hashMapShaderManager.getFunctionName+"(x, mappedValue)) {\n    return mappedValue.low.rgb;\n  }\n  return "+
+this.prefix+"(x);\n}\n");this.prefix=c}},{key:"enable",value:function(a,c,d){var h=f.a.get(a,d.gpuColorMap);this.hashMapShaderManager.enable(a,c,h);q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"enable",this).call(this,a,c,d)}}]);return b}(g.b),t=function(a){function f(a,b){p(this,f);a=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,a));a.gpuColorMap=new d.a;a.colorMap=new Map;a.changed.dispose();a.changed=b;return a}m(f,a);h(f,[{key:"setSegmentColor",value:function(a,c,d,f){var h=
+65536*f+256*d+c;this.colorMap.set(a,{red:c,green:d,blue:f,gpu:h});this.gpuColorMap.set(new b.a(a),new b.a(h))||this.repopulateGpuMap();this.changed.dispatch()}},{key:"unsetSegmentColor",value:function(a){this.colorMap.delete(a);this.repopulateGpuMap();this.changed.dispatch()}},{key:"batchUpdate",value:function(a){var b=this;a.forEach(function(a,c){var d=a.red,f=a.green;a=a.blue;b.colorMap.set(c,{red:d,green:f,blue:a,gpu:65536*a+256*f+d})});this.repopulateGpuMap();this.changed.dispatch()}},{key:"clearCustomSegmentColors",
+value:function(){this.colorMap.clear();this.gpuColorMap.clear();this.changed.dispatch()}},{key:"repopulateGpuMap",value:function(){var a=this.colorMap,c=this.gpuColorMap;c.clear();a.forEach(function(a,d){c.set(new b.a(d),new b.a(a.gpu))})}},{key:"compute",value:function(a,b){var c=this.colorMap.get(b.low);if(c){b=c.green;var d=c.blue;a[0]=c.red/255;a[1]=b/255;a[2]=d/255;return a}return q(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"compute",this).call(this,a,b)}},{key:"toString",value:function(){return"new NehubaSegmentColorHash(["+
+this.hashFunctions+"])"}}],[{key:"from",value:function(a){var b=new f(a.hashFunctions,a.changed);a.changed=new c.a;return b}},{key:"getDefault",value:function(){throw Error("NehubaSegmentColorHash is supposed to be created by `from` static method");}}]);return f}(g.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==
+typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){if(!a.showSliceViewsCheckboxValue)return y;var b=a&&a.config.layout.useNehubaPerspective.centerToOrigin,c=a&&a.config.layout.useNehubaPerspective.mesh,
+d=c&&c.backFaceColor||a&&a.config&&a.config.layout&&a.config.layout.useNehubaPerspective&&a.config.layout.useNehubaPerspective.perspectiveSlicesBackground||a&&a.config&&a.config.layout&&a.config.layout.planarSlicesBackground||a&&a.config.dataset&&a.config.dataset.imageBackground||f.r.fromValues(.5,.5,.5,1),h=f.j.create(),l=c&&c.removeOctant||f.r.fromValues(0,0,0,0);if(a&&c){var e=a.slicesPose;c.removeBasedOnNavigation&&(e.toMat4(h),f.j.invert(h,h));c.flipRemovedOctant&&(l=f.r.fromValues(0,0,-(b?a.perspectiveNavigationState.zoomFactor.value:
+1),1),a=a.perspectiveNavigationState.pose,b=b?e.position.spatialCoordinates:f.p.fromValues(0,0,0),a=a.orientation.orientation,e=f.l.invert(f.l.create(),e.orientation.orientation),e=f.l.multiply(f.l.create(),e,a),e=f.j.fromQuat(f.j.create(),e),f.r.transformMat4(l,l,e),l[0]=l[0]<b[0]/100?-1:1,l[1]=l[1]<b[1]/100?-1:1,l[2]=l[2]<b[2]/100?-1:1)}return{navState:h,octant:l,backFaceColor:d}}a.d(e,"a",function(){return A});e.c=c;a.d(e,"b",function(){return z});var b=a(25),d=a(50),f=a(3),h=a(27),q=a(31),k=a(16),
+t=a(53);g=a(15);a=a(61);var r=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),l=function x(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return x(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:
+b.call(c)}},u=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);r(b,[{key:"defineShader",value:function(a){l(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);a.addVarying("highp vec4","vNavPos");a.addUniform("highp mat4","uNavState");a.addUniform("highp vec4","uOctant");a.addUniform("highp vec4","uBackFaceColor");a.setVertexMain("\nvec4 position = uModelMatrix * vec4(aVertexPosition, 1.0);\nvNavPos = uNavState * position * uOctant;\ngl_Position = uProjection * position;\nvec3 normal = (uModelMatrix * vec4(aVertexNormal, 0.0)).xyz;\nfloat lightingFactor = abs(dot(normal, uLightDirection.xyz)) + uLightDirection.w;\nvColor = vec4(lightingFactor * uColor.rgb, uColor.a);\n\t\t");
+a.setFragmentMain("\nif (vNavPos.x > 0.0 && vNavPos.y > 0.0 && vNavPos.z > 0.0) {\n  discard;\n} else {\n  if (gl_FrontFacing) emit(vColor, uPickID);\n  else emit(uBackFaceColor, uPickID);\n}\n\t\t")}},{key:"setValuesForClipping",value:function(a,b,c){this.setNavState(a,b,c.navState);this.setOctant(a,b,c.octant);this.setBackFaceColor(a,b,c.backFaceColor)}},{key:"setNavState",value:function(a,b,c){a.uniformMatrix4fv(b.uniform("uNavState"),!1,c)}},{key:"setOctant",value:function(a,b,c){a.uniform4fv(b.uniform("uOctant"),
+c)}},{key:"setBackFaceColor",value:function(a,b,c){a.uniform4fv(b.uniform("uBackFaceColor"),c)}},{key:"getShader",value:function(a,b){var c=this;return a.memoize.get("mesh/NehubaMeshShaderManager:"+Object(h.a)(b),function(){var d=new q.a(a);d.require(b);c.defineShader(d);return d.build()})}}]);return b}(a.b),A=function(a){function f(a,b,c){p(this,f);a=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,a,b,c));a.meshShaderManager=new u;return a}m(f,a);r(f,[{key:"draw",value:function(a){var f=
+this;if(a.emitColor||!a.alreadyEmittedPickID){var h=this.gl,l=this.displayState,e=this.meshShaderManager,k=Math.min(1,l.objectAlpha.value);if(!(0>=k)){var q=this.getShader(a.emitter);q.bind();e.beginLayer(h,q,a);a.extra||console.error("Bad configuration. Nehuba mesh layer is used by neuroglancer code.");var g=c(a.extra);e.setValuesForClipping(h,q,g);var r=a.extra&&a.extra.config.layout.useNehubaPerspective.mesh,u=r&&r.surfaceParcellation;r=this.source.fragmentSource.objectChunks;var t=a.pickIDs,m=
+this.displayState.objectToDataTransform.transform,n=l.visibleSegments;var A=n instanceof z?u||a.extra.showSliceViewsCheckboxValue?n.getLoadedMeshes():0===n.size?n.getLoadedMeshes():n:n;var p=new Proxy(l,{get:function(a,b){if("visibleSegments"===b)return A;b=a[b];return"function"===typeof b?b.bind(a):b}}),E=0;Object(d.d)(p,r,function(c,r,A){a.emitColor&&e.setColor(h,q,Object(d.e)(l,c,k));a.emitPickID&&e.setPickID(h,q,t.registerUint64(f,r));a.extra.showSliceViewsCheckboxValue&&n instanceof z&&!u&&(n.has(c)?
+e.setValuesForClipping(h,q,y):e.setValuesForClipping(h,q,g));e.beginObject(h,q,m);c=$jscomp.makeIterator(A);for(r=c.next();!r.done;r=c.next())r=r.value,r.state===b.d.GPU_MEMORY&&(e.drawFragment(h,q,r),E++)});e.endLayer(h,q);a.extra.meshRendered=0<r.size;-1===a.extra.meshesLoaded&&(a.extra.meshesLoaded=0);a.extra.meshesLoaded+=r.size;-1===a.extra.meshFragmentsLoaded&&(a.extra.meshFragmentsLoaded=0);a.extra.meshFragmentsLoaded+=E;r=Array.from(r.keys());a.extra.lastMeshId=r[r.length-1]}}}}]);return f}(a.a),
+y={navState:f.j.create(),octant:f.r.fromValues(0,0,0,0),backFaceColor:f.r.fromValues(.5,.5,.5,1)},z=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.localHashTable=new t.b;c.wrapped=a;a=$jscomp.makeIterator(c.wrapped.hashTable);for(var d=a.next();!d.done;d=a.next())c.localHashTable.add(d.value);return c}m(b,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();r(b,[{key:"setMeshesToLoad",value:function(a){var b=this;this.wrapped.clear();a.forEach(function(a){a=
+new k.a(a);b.wrapped.add(a);b.wrapped.changed.dispatch(a,!1)})}},{key:"getLoadedMeshes",value:function(){return this.wrapped}},{key:"add_",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"add",value:function(a){this.localHashTable.add(a)&&this.changed.dispatch(a,!0)}},{key:"has",value:function(a){return this.localHashTable.has(a)}},{key:Symbol.iterator,value:function(){return this.localHashTable.keys()}},{key:"delete_",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");
+}},{key:"delete",value:function(a){this.localHashTable.delete(a)&&this.changed.dispatch(a,!1)}},{key:"clear",value:function(){this.localHashTable.clear()&&this.changed.dispatch(null,!1)}},{key:"toJSON",value:function(){for(var a=[],b=$jscomp.makeIterator(this),c=b.next();!c.done;c=b.next())a.push(c.value.toString());return a}},{key:"initializeSharedObject",value:function(a,b){b=void 0===b?a.newId():b;b;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"initializeCounterpart",
+value:function(a,b){b=void 0===b?{}:b;a;b;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"addCounterpartRef",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"ownerDispose",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"counterpartRefCountReachedZero",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"addRef",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");
+}},{key:"dispose",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"refCountReachedZero",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"disposed",value:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"registerDisposer",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"unregisterDisposer",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");
+}},{key:"registerEventListener",value:function(a,b,c,d){a;b;c;d;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"registerCancellable",value:function(a){a;throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"hashTable",get:function(){return this.localHashTable}},{key:"changed",get:function(){return this.wrapped.changed}},{key:"size",get:function(){return this.localHashTable.size}},{key:"rpcId",get:function(){return this.wrapped.rpcId},set:function(a){a}},
+{key:"rpc",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");},set:function(a){a}},{key:"isOwner",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"unreferencedGeneration",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"referencedGeneration",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"RPC_TYPE_ID",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");
+}},{key:"refCount",set:function(a){a},get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}},{key:"wasDisposed",get:function(){throw Error("Unexpected member access of VisibleSegmentsWrapper");}}]);return b}(g.b)},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b){a.call(this);this.value=
+c;this.scheduler=b;this._isScalar=!0;b&&(this._isScalar=!1)}p(e,a);e.create=function(a,b){return new e(a,b)};e.dispatch=function(a){var b=a.value,c=a.subscriber;a.done?c.complete():(c.next(b),c.closed||(a.done=!0,this.schedule(a)))};e.prototype._subscribe=function(a){var b=this.value,c=this.scheduler;if(c)return c.schedule(e.dispatch,0,{done:!1,value:b,subscriber:a});a.next(b);a.closed||a.complete()};return e}(a(0).Observable);e.ScalarObservable=g},function(g,e,a){var p=this&&this.__extends||function(a,
+b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(34),m=a(32);g=a(4);var c=a(5),b={};e.combineLatest=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];b=null;"function"===typeof a[a.length-1]&&(b=a.pop());1===a.length&&m.isArray(a[0])&&(a=a[0].slice());a.unshift(this);return this.lift.call(new n.ArrayObservable(a),new d(b))};var d=function(){function a(a){this.project=a}
+a.prototype.call=function(a,b){return b.subscribe(new f(a,this.project))};return a}();e.CombineLatestOperator=d;var f=function(a){function d(b,c){a.call(this,b);this.project=c;this.active=0;this.values=[];this.observables=[]}p(d,a);d.prototype._next=function(a){this.values.push(b);this.observables.push(a)};d.prototype._complete=function(){var a=this.observables,b=a.length;if(0===b)this.destination.complete();else{this.toRespond=this.active=b;for(var d=0;d<b;d++){var f=a[d];this.add(c.subscribeToResult(this,
+f,f,d))}}};d.prototype.notifyComplete=function(a){0===--this.active&&this.destination.complete()};d.prototype.notifyNext=function(a,c,d,f,h){a=this.values;f=a[d];f=this.toRespond?f===b?--this.toRespond:this.toRespond:0;a[d]=c;0===f&&(this.project?this._tryProject(a):this.destination.next(a.slice()))};d.prototype._tryProject=function(a){try{var b=this.project.apply(this,a)}catch(r){this.destination.error(r);return}this.destination.next(b)};return d}(g.OuterSubscriber);e.CombineLatestSubscriber=f},
+function(g,e,a){function p(){for(var a=[],f=0;f<arguments.length;f++)a[f-0]=arguments[f];f=null;m.isScheduler(a[a.length-1])&&(f=a.pop());return null===f&&1===a.length&&a[0]instanceof n.Observable?a[0]:(new c.ArrayObservable(a,f)).lift(new b.MergeAllOperator(1))}var n=a(0),m=a(33),c=a(34),b=a(78);e.concat=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return this.lift.call(p.apply(void 0,[this].concat(a)))};e.concatStatic=p},function(g,e,a){var p=this&&this.__extends||function(a,
+b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(57);e.observeOn=function(a,b){void 0===b&&(b=0);return this.lift(new m(a,b))};var m=function(){function a(a,b){void 0===b&&(b=0);this.scheduler=a;this.delay=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.scheduler,this.delay))};return a}();e.ObserveOnOperator=m;var c=function(a){function c(b,c,d){void 0===d&&(d=0);
+a.call(this,b);this.scheduler=c;this.delay=d}p(c,a);c.dispatch=function(a){a.notification.observe(a.destination);this.unsubscribe()};c.prototype.scheduleMessage=function(a){this.add(this.scheduler.schedule(c.dispatch,this.delay,new b(a,this.destination)))};c.prototype._next=function(a){this.scheduleMessage(n.Notification.createNext(a))};c.prototype._error=function(a){this.scheduleMessage(n.Notification.createError(a))};c.prototype._complete=function(){this.scheduleMessage(n.Notification.createComplete())};
+return c}(g.Subscriber);e.ObserveOnSubscriber=c;var b=function(){return function(a,b){this.notification=a;this.destination=b}}();e.ObserveOnMessage=b},function(g,e,a){function p(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];b=a[a.length-1];"function"===typeof b&&a.pop();return(new m.ArrayObservable(a)).lift(new h(b))}var n=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=
+b.prototype,new c)},m=a(34),c=a(32);g=a(2);var b=a(4),d=a(5),f=a(56);e.zipProto=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return this.lift.call(p.apply(void 0,[this].concat(a)))};e.zipStatic=p;var h=function(){function a(a){this.project=a}a.prototype.call=function(a,b){return b.subscribe(new q(a,this.project))};return a}();e.ZipOperator=h;var q=function(a){function b(b,c,d){void 0===d&&(d=Object.create(null));a.call(this,b);this.iterators=[];this.active=0;this.project=
+"function"===typeof c?c:null;this.values=d}n(b,a);b.prototype._next=function(a){var b=this.iterators;c.isArray(a)?b.push(new t(a)):"function"===typeof a[f.iterator]?b.push(new k(a[f.iterator]())):b.push(new r(this.destination,this,a))};b.prototype._complete=function(){var a=this.iterators,b=a.length;if(0===b)this.destination.complete();else{this.active=b;for(var c=0;c<b;c++){var d=a[c];d.stillUnsubscribed?this.add(d.subscribe(d,c)):this.active--}}};b.prototype.notifyInactive=function(){this.active--;
+0===this.active&&this.destination.complete()};b.prototype.checkIterators=function(){for(var a,b=this.iterators,c=b.length,d=this.destination,f=0;f<c;f++)if(a=b[f],"function"===typeof a.hasValue&&!a.hasValue())return;var h=!1,l=[];for(f=0;f<c;f++){a=b[f];var e=a.next();a.hasCompleted()&&(h=!0);if(e.done){d.complete();return}l.push(e.value)}this.project?this._tryProject(l):d.next(l);h&&d.complete()};b.prototype._tryProject=function(a){try{var b=this.project.apply(this,a)}catch(z){this.destination.error(z);
+return}this.destination.next(b)};return b}(g.Subscriber);e.ZipSubscriber=q;var k=function(){function a(a){this.iterator=a;this.nextResult=a.next()}a.prototype.hasValue=function(){return!0};a.prototype.next=function(){var a=this.nextResult;this.nextResult=this.iterator.next();return a};a.prototype.hasCompleted=function(){var a=this.nextResult;return a&&a.done};return a}(),t=function(){function a(a){this.array=a;this.length=this.index=0;this.length=a.length}a.prototype[f.iterator]=function(){return this};
+a.prototype.next=function(a){a=this.index++;var b=this.array;return a<this.length?{value:b[a],done:!1}:{value:null,done:!0}};a.prototype.hasValue=function(){return this.array.length>this.index};a.prototype.hasCompleted=function(){return this.array.length===this.index};return a}(),r=function(a){function b(b,c,d){a.call(this,b);this.parent=c;this.observable=d;this.stillUnsubscribed=!0;this.buffer=[];this.isComplete=!1}n(b,a);b.prototype[f.iterator]=function(){return this};b.prototype.next=function(){var a=
+this.buffer;return 0===a.length&&this.isComplete?{value:null,done:!0}:{value:a.shift(),done:!1}};b.prototype.hasValue=function(){return 0<this.buffer.length};b.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete};b.prototype.notifyComplete=function(){0<this.buffer.length?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()};b.prototype.notifyNext=function(a,b,c,d,f){this.buffer.push(b);this.parent.checkIterators()};b.prototype.subscribe=function(a,
+b){return d.subscribeToResult(this,this.observable,this,b)};return b}(b.OuterSubscriber)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.map=function(a,b){if("function"!==typeof a)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new n(a,b))};var n=function(){function a(a,c){this.project=
+a;this.thisArg=c}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.project,this.thisArg))};return a}();e.MapOperator=n;var m=function(a){function b(b,c,h){a.call(this,b);this.project=c;this.count=0;this.thisArg=h||this}p(b,a);b.prototype._next=function(a){try{var b=this.project.call(this.thisArg,a,this.count++)}catch(h){this.destination.error(h);return}this.destination.next(b)};return b}(g.Subscriber)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=
+a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.reduce=function(a,b){var c=!1;2<=arguments.length&&(c=!0);return this.lift(new n(a,b,c))};var n=function(){function a(a,c,f){void 0===f&&(f=!1);this.accumulator=a;this.seed=c;this.hasSeed=f}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.accumulator,this.seed,this.hasSeed))};return a}();e.ReduceOperator=n;var m=function(a){function b(b,c,h,e){a.call(this,
+b);this.accumulator=c;this.hasSeed=e;this.index=0;this.hasValue=!1;this.acc=h;this.hasSeed||this.index++}p(b,a);b.prototype._next=function(a){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(a):(this.acc=a,this.hasValue=!0)};b.prototype._tryReduce=function(a){try{var b=this.accumulator(this.acc,a,this.index++)}catch(h){this.destination.error(h);return}this.acc=b};b.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc);this.destination.complete()};
+return b}(g.Subscriber);e.ReduceSubscriber=m},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,
+{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){var b=a.match(/^([^:?]+:[^:?]+:[^:?]+)(?::([^:?]+))?(?:\?(.*))?$/);if(null===b)throw Error("Invalid Brain Maps volume key: "+JSON.stringify(a)+".");var c;void 0!==b[2]&&(c={changeStackId:b[2]});a=Object(x.e)(b[3]||"");return{volumeId:b[1],changeSpec:c,parameters:a}}function b(a){try{return Object(x.u)(a),{id:Object(x.w)(a,"id",x.B),label:Object(x.w)(a,
+"label",x.B),description:Object(x.w)(a,"description",x.z)}}catch(L){throw Error("Failed to parse project: "+L.message);}}function d(a){try{return Object(x.u)(a),Object(x.w)(a,"project",function(a){return void 0===a?[]:Object(x.a)(a,b)})}catch(L){throw Error("Error parsing project list: "+L.message);}}function f(a){return Object(x.w)(a,"changeStackId",function(a){return void 0===a?void 0:Object(x.a)(a,x.B)})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"BrainmapsSkeletonSource",function(){return C});
+a.d(e,"VolumeInfo",function(){return H});a.d(e,"MeshInfo",function(){return D});a.d(e,"MultiscaleVolumeChunkSource",function(){return O});e.parseVolumeKey=c;a.d(e,"VolumeList",function(){return Q});e.parseChangeStackList=f;a.d(e,"BrainmapsDataSource",function(){return T});g=a(23);var h=a(205),q=a(39),k=a(85),t=a(209),r=a(61),l=a(125),u=a(19),A=a(28),y=a(40),z=a(46),B=a(3),x=a(6),v=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in
+d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),E=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(Object(h.a)()(A.b),t.d)),F=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(Object(h.a)()(r.c),t.a)),C=function(a){function b(){p(this,b);return n(this,
+(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);v(b,[{key:"skeletonVertexCoordinatesInVoxels",get:function(){return!1}}]);return b}(Object(g.f)(Object(h.a)()(l.d),t.b)),G=new Map;G.set("UINT8",u.a.UINT8);G.set("FLOAT",u.a.FLOAT32);G.set("UINT64",u.a.UINT64);var H=function L(a){p(this,L);try{Object(x.u)(a),this.numChannels=Object(x.A)(a.channelCount),this.dataType=Object(x.t)(a.channelType,G),this.voxelSize=Object(x.f)(B.p.create(),a.pixelSize,x.p),this.upperVoxelBound=Object(x.f)(B.p.create(),
+a.volumeSize,x.A)}catch(Y){throw Error("Failed to parse BrainMaps volume geometry: "+Y.message);}},D=function P(a){p(this,P);Object(x.u)(a);this.name=Object(x.w)(a,"name",x.B);this.type=Object(x.w)(a,"type",x.B)},O=function(){function a(b,c,d,f,h,l,e,k){p(this,a);this.chunkManager=b;this.instance=c;this.credentialsProvider=d;this.volumeId=f;this.changeSpec=h;this.encoding=k.encoding;try{Object(x.u)(l);var q=this.scales=Object(x.w)(l,"geometry",function(a){return Object(x.a)(a,function(a){return new H(a)})});
+if(0===q.length)throw Error("Expected at least one scale.");var g=q[0],r=this.numChannels=g.numChannels,t=this.dataType=g.dataType;b=1;for(var m=q.length;b<m;++b){var n=q[b];if(n.dataType!==t)throw Error("Scale "+b+" has data type "+u.a[n.dataType]+" "+("but scale 0 has data type "+u.a[t]+"."));if(n.numChannels!==r)throw Error("Scale "+b+" has "+n.numChannels+" channel(s) "+("but scale 0 has "+r+" channels."));}if(1===r)switch(t){case u.a.UINT64:var A=u.d.SEGMENTATION}void 0===A&&(A=void 0!==k.volumeType?
+k.volumeType:u.d.IMAGE);this.volumeType=A}catch(lb){throw Error("Failed to parse BrainMaps multiscale volume specification: "+lb.message);}try{Object(x.u)(e),this.meshes=Object(x.w)(e,"meshes",function(a){return void 0===a?[]:Object(x.a)(a,function(a){return new D(a)})})}catch(lb){throw Error("Failed to parse BrainMaps meshes specification: "+lb.message);}}v(a,[{key:"getSources",value:function(a){var b=this,c=t.c.RAW;this.dataType===u.a.UINT64?c=t.c.COMPRESSED_SEGMENTATION:this.volumeType===u.d.IMAGE&&
+this.dataType===u.a.UINT8&&1===this.numChannels&&this.encoding!==t.c.RAW&&(c=t.c.JPEG);return this.scales.map(function(d,f){return u.c.getDefaults({voxelSize:d.voxelSize,dataType:d.dataType,numChannels:d.numChannels,upperVoxelBound:d.upperVoxelBound,volumeType:b.volumeType,volumeSourceOptions:a}).map(function(a){return b.chunkManager.getChunkSource(E,{credentialsProvider:b.credentialsProvider,spec:a,parameters:{instance:b.instance,volumeId:b.volumeId,changeSpec:b.changeSpec,scaleIndex:f,encoding:c}})})})}},
+{key:"getMeshSource",value:function(){var a=this.meshes.find(function(a){return"TRIANGLES"===a.type});return void 0===a?null:this.chunkManager.getChunkSource(F,{credentialsProvider:this.credentialsProvider,parameters:{instance:this.instance,volumeId:this.volumeId,meshName:a.name,changeSpec:this.changeSpec}})}}]);return a}(),J=/^([^\/]+)\/(.*)$/,Q=function Y(a,b){p(this,Y);this.projects=new Map;this.hierarchicalVolumeIds=new Map;var c=this.projects;a=$jscomp.makeIterator(d(a));for(var f=a.next();!f.done;f=
+a.next())f=f.value,c.set(f.id,f);try{Object(x.u)(b);var h=this.volumeIds=Object(x.w)(b,"volumeId",function(a){return void 0===a?[]:Object(x.a)(a,x.B)});h.sort();for(var l=new Map,e=$jscomp.makeIterator(h),k=e.next();!k.done;k=e.next()){var q=k.value;for(b=0;;){var g=q.indexOf(":",b);-1===g?g=void 0:++g;var r=q.substring(0,b),t=l.get(r);void 0===t&&(t=new Set,l.set(r,t));t.add(q.substring(b,g));if(void 0===g)break;b=g}}for(var u=this.hierarchicalVolumeIds,m=$jscomp.makeIterator(l),n=m.next();!n.done;n=
+m.next()){var A=$jscomp.makeIterator(n.value),y=A.next().value,B=A.next().value;u.set(y,Array.from(B))}}catch(sc){throw Error("Failed to parse Brain Maps volume list reply: "+sc.message);}},T=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.instance=a;d.credentialsProvider=c;return d}m(b,a);v(b,[{key:"getMeshSource",value:function(a,b){return a.getChunkSource(F,{credentialsProvider:this.credentialsProvider,parameters:this.getMeshSourceParameters(b)})}},
+{key:"getMeshSourceParameters",value:function(a){var b=a.match(J);if(null===b)throw Error("Invalid Brainmaps mesh URL: "+a);a=c(b[1]);return{instance:this.instance,volumeId:a.volumeId,changeSpec:a.changeSpec,meshName:b[2]}}},{key:"getSkeletonSource",value:function(a,b){return a.getChunkSource(C,{credentialsProvider:this.credentialsProvider,parameters:this.getMeshSourceParameters(b)})}},{key:"getVolume",value:function(a,b,d){var f=this;b=c(b);var h=b.volumeId,l=b.changeSpec,e=b.parameters;Object(x.u)(e);
+b=Object(x.w)(e,"encoding",function(a){return void 0===a?void 0:Object(x.n)(e.encoding,t.c)});var q=Object.assign({},d,{encoding:b});return a.memoize.getUncounted({type:"brainmaps:getVolume",instance:this.instance,volumeId:h,changeSpec:l,brainmapsOptions:q},function(){return Promise.all([Object(k.b)(f.instance,f.credentialsProvider,{method:"GET",path:"/v1beta2/volumes/"+h,responseType:"json"}),Object(k.b)(f.instance,f.credentialsProvider,{method:"GET",path:"/v1beta2/objects/"+h+"/meshes",responseType:"json"})]).then(function(b){var c=
+$jscomp.makeIterator(b);b=c.next().value;c=c.next().value;return new O(a,f.instance,f.credentialsProvider,h,l,b,c,q)})})}},{key:"getVolumeList",value:function(a){var b=this;return a.memoize.getUncounted({instance:this.instance,type:"brainmaps:getVolumeList"},function(){var a=Promise.all([Object(k.b)(b.instance,b.credentialsProvider,{method:"GET",path:"/v1beta2/projects",responseType:"json"}),Object(k.b)(b.instance,b.credentialsProvider,{method:"GET",path:"/v1beta2/volumes",responseType:"json"})]).then(function(a){var b=
+$jscomp.makeIterator(a);a=b.next().value;b=b.next().value;return new Q(a,b)}),c=b.instance.description+" volume list";y.a.forPromise(a,{delay:!0,initialMessage:"Retrieving "+c+".",errorPrefix:"Error retrieving "+c+": "});return a})}},{key:"getChangeStackList",value:function(a,b){var c=this;return a.memoize.getUncounted({instance:this.instance,type:"brainmaps:getChangeStackList",volumeId:b},function(){var a=Object(k.b)(c.instance,c.credentialsProvider,{method:"GET",path:"/v1beta2/changes/"+b+"/change_stacks",
+responseType:"json"}).then(function(a){return f(a)}),d="change stacks for "+b;y.a.forPromise(a,{delay:!0,initialMessage:"Retrieving "+d+".",errorPrefix:"Error retrieving "+d+": "});return a})}},{key:"volumeCompleter",value:function(a,b){var c=this;return this.getVolumeList(b).then(function(d){var f=a.match(/^([^:]+:[^:]+:[^:]+):(.*)$/);if(null!==f){var h=f[1],l=f[2];return c.getChangeStackList(b,h).then(function(a){if(void 0===a)throw null;return{offset:h.length+1,completions:Object(z.b)(l,a)}})}var e=
+a.lastIndexOf(":")+1;f=a.substring(0,e);e=a.substring(e);var k=d.hierarchicalVolumeIds.get(f);if(void 0===k)throw null;return f?{offset:f.length,completions:Object(z.b)(e,k)}:{offset:0,completions:Object(z.c)(e,k,function(a){return a},function(a){return(a=d.projects.get(a.substring(0,a.length-1)))&&a.label})}})}},{key:"description",get:function(){return this.instance.description}}]);return b}(q.a);e.productionInstance={description:"Google Brain Maps",serverUrls:["https://brainmaps.googleapis.com"]}},
+function(g,e,a){a(29);a(200);a(201);var p=a(120),n=a(202),m=a(203);a(204);var c=a(121),b=a(122);a.d(e,"a",function(){return p});a.d(e,"b",function(){return n});a.d(e,"c",function(){return m});a.d(e,"d",function(){return c});a.d(e,"e",function(){return b})},function(g,e,a){function p(a,b,d){var c=b[0],h=b[1],e=b[2],k=b[3],g=b[4],r=b[5],l=b[6],u=b[7];b=b[8];var m=d[0],n=d[1],p=d[2],B=d[3],x=d[4],v=d[5],E=d[6],F=d[7];d=d[8];a[0]=m*c+n*k+p*l;a[1]=m*h+n*g+p*u;a[2]=m*e+n*r+p*b;a[3]=B*c+x*k+v*l;a[4]=B*h+
+x*g+v*u;a[5]=B*e+x*r+v*b;a[6]=E*c+F*k+d*l;a[7]=E*h+F*g+d*u;a[8]=E*e+F*r+d*b;return a}function n(a,b,d){a[0]=b[0]-d[0];a[1]=b[1]-d[1];a[2]=b[2]-d[2];a[3]=b[3]-d[3];a[4]=b[4]-d[4];a[5]=b[5]-d[5];a[6]=b[6]-d[6];a[7]=b[7]-d[7];a[8]=b[8]-d[8];return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=function(){var a=new m.a(9);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};e.fromMat4=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[4];a[4]=b[5];a[5]=b[6];a[6]=b[8];
+a[7]=b[9];a[8]=b[10];return a};e.clone=function(a){var b=new m.a(9);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b};e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];return a};e.fromValues=function(a,b,d,f,h,e,k,g,r){var c=new m.a(9);c[0]=a;c[1]=b;c[2]=d;c[3]=f;c[4]=h;c[5]=e;c[6]=k;c[7]=g;c[8]=r;return c};e.set=function(a,b,d,f,h,e,k,g,r,l){a[0]=b;a[1]=d;a[2]=f;a[3]=h;a[4]=e;a[5]=k;a[6]=
+g;a[7]=r;a[8]=l;return a};e.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};e.transpose=function(a,b){if(a===b){var c=b[1],f=b[2],h=b[5];a[1]=b[3];a[2]=b[6];a[3]=c;a[5]=b[7];a[6]=f;a[7]=h}else a[0]=b[0],a[1]=b[3],a[2]=b[6],a[3]=b[1],a[4]=b[4],a[5]=b[7],a[6]=b[2],a[7]=b[5],a[8]=b[8];return a};e.invert=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[3],k=b[4],g=b[5],r=b[6],l=b[7];b=b[8];var u=b*k-g*l,m=-b*e+g*r,n=l*e-k*r,p=c*u+f*m+h*n;if(!p)return null;p=1/p;
+a[0]=u*p;a[1]=(-b*f+h*l)*p;a[2]=(g*f-h*k)*p;a[3]=m*p;a[4]=(b*c-h*r)*p;a[5]=(-g*c+h*e)*p;a[6]=n*p;a[7]=(-l*c+f*r)*p;a[8]=(k*c-f*e)*p;return a};e.adjoint=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[3],k=b[4],g=b[5],r=b[6],l=b[7];b=b[8];a[0]=k*b-g*l;a[1]=h*l-f*b;a[2]=f*g-h*k;a[3]=g*r-e*b;a[4]=c*b-h*r;a[5]=h*e-c*g;a[6]=e*l-k*r;a[7]=f*r-c*l;a[8]=c*k-f*e;return a};e.determinant=function(a){var b=a[3],c=a[4],f=a[5],h=a[6],e=a[7],k=a[8];return a[0]*(k*c-f*e)+a[1]*(-k*b+f*h)+a[2]*(e*b-c*h)};e.multiply=p;e.translate=
+function(a,b,d){var c=b[0],h=b[1],e=b[2],k=b[3],g=b[4],r=b[5],l=b[6],u=b[7];b=b[8];var m=d[0];d=d[1];a[0]=c;a[1]=h;a[2]=e;a[3]=k;a[4]=g;a[5]=r;a[6]=m*c+d*k+l;a[7]=m*h+d*g+u;a[8]=m*e+d*r+b;return a};e.rotate=function(a,b,d){var c=b[0],h=b[1],e=b[2],k=b[3],g=b[4],r=b[5],l=b[6],u=b[7];b=b[8];var m=Math.sin(d);d=Math.cos(d);a[0]=d*c+m*k;a[1]=d*h+m*g;a[2]=d*e+m*r;a[3]=d*k-m*c;a[4]=d*g-m*h;a[5]=d*r-m*e;a[6]=l;a[7]=u;a[8]=b;return a};e.scale=function(a,b,d){var c=d[0];d=d[1];a[0]=c*b[0];a[1]=c*b[1];a[2]=
+c*b[2];a[3]=d*b[3];a[4]=d*b[4];a[5]=d*b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];return a};e.fromTranslation=function(a,b){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=b[0];a[7]=b[1];a[8]=1;return a};e.fromRotation=function(a,b){var c=Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=c;a[2]=0;a[3]=-c;a[4]=b;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};e.fromScaling=function(a,b){a[0]=b[0];a[1]=0;a[2]=0;a[3]=0;a[4]=b[1];a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};e.fromMat2d=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=0;a[3]=b[2];a[4]=
+b[3];a[5]=0;a[6]=b[4];a[7]=b[5];a[8]=1;return a};e.fromQuat=function(a,b){var c=b[0],f=b[1],h=b[2];b=b[3];var e=c+c,k=f+f,g=h+h;c*=e;var r=f*e;f*=k;var l=h*e,u=h*k;h*=g;e*=b;k*=b;b*=g;a[0]=1-f-h;a[3]=r-b;a[6]=l+k;a[1]=r+b;a[4]=1-c-h;a[7]=u-e;a[2]=l-k;a[5]=u+e;a[8]=1-c-f;return a};e.normalFromMat4=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[3],k=b[4],g=b[5],r=b[6],l=b[7],u=b[8],m=b[9],n=b[10],p=b[11],B=b[12],x=b[13],v=b[14];b=b[15];var E=c*g-f*k,F=c*r-h*k,C=c*l-e*k,G=f*r-h*g,H=f*l-e*g,D=h*l-e*r,O=u*
+x-m*B,J=u*v-n*B;u=u*b-p*B;var Q=m*v-n*x;m=m*b-p*x;n=n*b-p*v;p=E*n-F*m+C*Q+G*u-H*J+D*O;if(!p)return null;p=1/p;a[0]=(g*n-r*m+l*Q)*p;a[1]=(r*u-k*n-l*J)*p;a[2]=(k*m-g*u+l*O)*p;a[3]=(h*m-f*n-e*Q)*p;a[4]=(c*n-h*u+e*J)*p;a[5]=(f*u-c*m-e*O)*p;a[6]=(x*D-v*H+b*G)*p;a[7]=(v*C-B*D-b*F)*p;a[8]=(B*H-x*C+b*E)*p;return a};e.projection=function(a,b,d){a[0]=2/b;a[1]=0;a[2]=0;a[3]=0;a[4]=-2/d;a[5]=0;a[6]=-1;a[7]=1;a[8]=1;return a};e.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+
+", "+a[6]+", "+a[7]+", "+a[8]+")"};e.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2))};e.add=function(a,b,d){a[0]=b[0]+d[0];a[1]=b[1]+d[1];a[2]=b[2]+d[2];a[3]=b[3]+d[3];a[4]=b[4]+d[4];a[5]=b[5]+d[5];a[6]=b[6]+d[6];a[7]=b[7]+d[7];a[8]=b[8]+d[8];return a};e.subtract=n;e.multiplyScalar=function(a,b,d){a[0]=b[0]*d;a[1]=b[1]*d;a[2]=b[2]*d;a[3]=b[3]*d;a[4]=b[4]*d;a[5]=
+b[5]*d;a[6]=b[6]*d;a[7]=b[7]*d;a[8]=b[8]*d;return a};e.multiplyScalarAndAdd=function(a,b,d,f){a[0]=b[0]+d[0]*f;a[1]=b[1]+d[1]*f;a[2]=b[2]+d[2]*f;a[3]=b[3]+d[3]*f;a[4]=b[4]+d[4]*f;a[5]=b[5]+d[5]*f;a[6]=b[6]+d[6]*f;a[7]=b[7]+d[7]*f;a[8]=b[8]+d[8]*f;return a};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&&a[8]===b[8]};e.equals=function(a,b){var c=a[0],f=a[1],h=a[2],e=a[3],k=a[4],g=a[5],r=a[6],l=a[7];a=a[8];var u=
+b[0],n=b[1],p=b[2],z=b[3],B=b[4],x=b[5],v=b[6],E=b[7];b=b[8];return Math.abs(c-u)<=m.b*Math.max(1,Math.abs(c),Math.abs(u))&&Math.abs(f-n)<=m.b*Math.max(1,Math.abs(f),Math.abs(n))&&Math.abs(h-p)<=m.b*Math.max(1,Math.abs(h),Math.abs(p))&&Math.abs(e-z)<=m.b*Math.max(1,Math.abs(e),Math.abs(z))&&Math.abs(k-B)<=m.b*Math.max(1,Math.abs(k),Math.abs(B))&&Math.abs(g-x)<=m.b*Math.max(1,Math.abs(g),Math.abs(x))&&Math.abs(r-v)<=m.b*Math.max(1,Math.abs(r),Math.abs(v))&&Math.abs(l-E)<=m.b*Math.max(1,Math.abs(l),
+Math.abs(E))&&Math.abs(a-b)<=m.b*Math.max(1,Math.abs(a),Math.abs(b))};var m=a(29);e.mul=p;e.sub=n},function(g,e,a){function p(){var a=new r.a(3);a[0]=0;a[1]=0;a[2]=0;return a}function n(a){var b=a[0],c=a[1];a=a[2];return Math.sqrt(b*b+c*c+a*a)}function m(a,b,c){var d=new r.a(3);d[0]=a;d[1]=b;d[2]=c;return d}function c(a,b,c){a[0]=b[0]-c[0];a[1]=b[1]-c[1];a[2]=b[2]-c[2];return a}function b(a,b,c){a[0]=b[0]*c[0];a[1]=b[1]*c[1];a[2]=b[2]*c[2];return a}function d(a,b,c){a[0]=b[0]/c[0];a[1]=b[1]/c[1];
+a[2]=b[2]/c[2];return a}function f(a,b){var c=b[0]-a[0],d=b[1]-a[1];a=b[2]-a[2];return Math.sqrt(c*c+d*d+a*a)}function h(a,b){var c=b[0]-a[0],d=b[1]-a[1];a=b[2]-a[2];return c*c+d*d+a*a}function q(a){var b=a[0],c=a[1];a=a[2];return b*b+c*c+a*a}function k(a,b){var c=b[0],d=b[1],f=b[2];c=c*c+d*d+f*f;0<c&&(c=1/Math.sqrt(c),a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c);return a}function t(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}Object.defineProperty(e,"__esModule",{value:!0});e.create=p;e.clone=function(a){var b=
+new r.a(3);b[0]=a[0];b[1]=a[1];b[2]=a[2];return b};e.length=n;e.fromValues=m;e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];return a};e.set=function(a,b,c,d){a[0]=b;a[1]=c;a[2]=d;return a};e.add=function(a,b,c){a[0]=b[0]+c[0];a[1]=b[1]+c[1];a[2]=b[2]+c[2];return a};e.subtract=c;e.multiply=b;e.divide=d;e.ceil=function(a,b){a[0]=Math.ceil(b[0]);a[1]=Math.ceil(b[1]);a[2]=Math.ceil(b[2]);return a};e.floor=function(a,b){a[0]=Math.floor(b[0]);a[1]=Math.floor(b[1]);a[2]=Math.floor(b[2]);return a};e.min=
+function(a,b,c){a[0]=Math.min(b[0],c[0]);a[1]=Math.min(b[1],c[1]);a[2]=Math.min(b[2],c[2]);return a};e.max=function(a,b,c){a[0]=Math.max(b[0],c[0]);a[1]=Math.max(b[1],c[1]);a[2]=Math.max(b[2],c[2]);return a};e.round=function(a,b){a[0]=Math.round(b[0]);a[1]=Math.round(b[1]);a[2]=Math.round(b[2]);return a};e.scale=function(a,b,c){a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;return a};e.scaleAndAdd=function(a,b,c,d){a[0]=b[0]+c[0]*d;a[1]=b[1]+c[1]*d;a[2]=b[2]+c[2]*d;return a};e.distance=f;e.squaredDistance=h;
+e.squaredLength=q;e.negate=function(a,b){a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];return a};e.inverse=function(a,b){a[0]=1/b[0];a[1]=1/b[1];a[2]=1/b[2];return a};e.normalize=k;e.dot=t;e.cross=function(a,b,c){var d=b[0],f=b[1];b=b[2];var h=c[0],e=c[1];c=c[2];a[0]=f*c-b*e;a[1]=b*h-d*c;a[2]=d*e-f*h;return a};e.lerp=function(a,b,c,d){var f=b[0],h=b[1];b=b[2];a[0]=f+d*(c[0]-f);a[1]=h+d*(c[1]-h);a[2]=b+d*(c[2]-b);return a};e.hermite=function(a,b,c,d,f,h){var e=h*h,l=e*(2*h-3)+1,k=e*(h-2)+h,q=e*(h-1);h=e*(3-2*h);
+a[0]=b[0]*l+c[0]*k+d[0]*q+f[0]*h;a[1]=b[1]*l+c[1]*k+d[1]*q+f[1]*h;a[2]=b[2]*l+c[2]*k+d[2]*q+f[2]*h;return a};e.bezier=function(a,b,c,d,f,h){var e=1-h,l=e*e,k=h*h,q=l*e;l*=3*h;e*=3*k;h*=k;a[0]=b[0]*q+c[0]*l+d[0]*e+f[0]*h;a[1]=b[1]*q+c[1]*l+d[1]*e+f[1]*h;a[2]=b[2]*q+c[2]*l+d[2]*e+f[2]*h;return a};e.random=function(a,b){b=b||1;var c=2*r.c()*Math.PI,d=2*r.c()-1,f=Math.sqrt(1-d*d)*b;a[0]=Math.cos(c)*f;a[1]=Math.sin(c)*f;a[2]=d*b;return a};e.transformMat4=function(a,b,c){var d=b[0],f=b[1];b=b[2];var h=
+c[3]*d+c[7]*f+c[11]*b+c[15];h=h||1;a[0]=(c[0]*d+c[4]*f+c[8]*b+c[12])/h;a[1]=(c[1]*d+c[5]*f+c[9]*b+c[13])/h;a[2]=(c[2]*d+c[6]*f+c[10]*b+c[14])/h;return a};e.transformMat3=function(a,b,c){var d=b[0],f=b[1];b=b[2];a[0]=d*c[0]+f*c[3]+b*c[6];a[1]=d*c[1]+f*c[4]+b*c[7];a[2]=d*c[2]+f*c[5]+b*c[8];return a};e.transformQuat=function(a,b,c){var d=b[0],f=b[1],h=b[2];b=c[0];var e=c[1],l=c[2];c=c[3];var k=c*d+e*h-l*f,q=c*f+l*d-b*h,g=c*h+b*f-e*d;d=-b*d-e*f-l*h;a[0]=k*c+d*-b+q*-l-g*-e;a[1]=q*c+d*-e+g*-b-k*-l;a[2]=
+g*c+d*-l+k*-e-q*-b;return a};e.rotateX=function(a,b,c,d){var f=[],h=[];f[0]=b[0]-c[0];f[1]=b[1]-c[1];f[2]=b[2]-c[2];h[0]=f[0];h[1]=f[1]*Math.cos(d)-f[2]*Math.sin(d);h[2]=f[1]*Math.sin(d)+f[2]*Math.cos(d);a[0]=h[0]+c[0];a[1]=h[1]+c[1];a[2]=h[2]+c[2];return a};e.rotateY=function(a,b,c,d){var f=[],h=[];f[0]=b[0]-c[0];f[1]=b[1]-c[1];f[2]=b[2]-c[2];h[0]=f[2]*Math.sin(d)+f[0]*Math.cos(d);h[1]=f[1];h[2]=f[2]*Math.cos(d)-f[0]*Math.sin(d);a[0]=h[0]+c[0];a[1]=h[1]+c[1];a[2]=h[2]+c[2];return a};e.rotateZ=function(a,
+b,c,d){var f=[],h=[];f[0]=b[0]-c[0];f[1]=b[1]-c[1];f[2]=b[2]-c[2];h[0]=f[0]*Math.cos(d)-f[1]*Math.sin(d);h[1]=f[0]*Math.sin(d)+f[1]*Math.cos(d);h[2]=f[2];a[0]=h[0]+c[0];a[1]=h[1]+c[1];a[2]=h[2]+c[2];return a};e.angle=function(a,b){a=m(a[0],a[1],a[2]);b=m(b[0],b[1],b[2]);k(a,a);k(b,b);b=t(a,b);return 1<b?0:-1>b?Math.PI:Math.acos(b)};e.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]};e.equals=function(a,b){var c=a[0],
+d=a[1];a=a[2];var f=b[0],h=b[1];b=b[2];return Math.abs(c-f)<=r.b*Math.max(1,Math.abs(c),Math.abs(f))&&Math.abs(d-h)<=r.b*Math.max(1,Math.abs(d),Math.abs(h))&&Math.abs(a-b)<=r.b*Math.max(1,Math.abs(a),Math.abs(b))};var r=a(29);e.sub=c;e.mul=b;e.div=d;e.dist=f;e.sqrDist=h;e.len=n;e.sqrLen=q;g=function(){var a=p();return function(b,c,d,f,h,e){c||(c=3);d||(d=0);for(f=f?Math.min(f*c+d,b.length):b.length;d<f;d+=c)a[0]=b[d],a[1]=b[d+1],a[2]=b[d+2],h(a,a,e),b[d]=a[0],b[d+1]=a[1],b[d+2]=a[2];return b}}();
+e.forEach=g},function(g,e,a){function p(){var a=new t.a(4);a[0]=0;a[1]=0;a[2]=0;a[3]=0;return a}function n(a,b,c){a[0]=b[0]-c[0];a[1]=b[1]-c[1];a[2]=b[2]-c[2];a[3]=b[3]-c[3];return a}function m(a,b,c){a[0]=b[0]*c[0];a[1]=b[1]*c[1];a[2]=b[2]*c[2];a[3]=b[3]*c[3];return a}function c(a,b,c){a[0]=b[0]/c[0];a[1]=b[1]/c[1];a[2]=b[2]/c[2];a[3]=b[3]/c[3];return a}function b(a,b,c){a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;return a}function d(a,b){var c=b[0]-a[0],d=b[1]-a[1],f=b[2]-a[2];a=b[3]-a[3];return Math.sqrt(c*
+c+d*d+f*f+a*a)}function f(a,b){var c=b[0]-a[0],d=b[1]-a[1],f=b[2]-a[2];a=b[3]-a[3];return c*c+d*d+f*f+a*a}function h(a){var b=a[0],c=a[1],d=a[2];a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)}function q(a){var b=a[0],c=a[1],d=a[2];a=a[3];return b*b+c*c+d*d+a*a}function k(a,b){var c=b[0],d=b[1],f=b[2];b=b[3];var h=c*c+d*d+f*f+b*b;0<h&&(h=1/Math.sqrt(h),a[0]=c*h,a[1]=d*h,a[2]=f*h,a[3]=b*h);return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=p;e.clone=function(a){var b=new t.a(4);b[0]=a[0];
+b[1]=a[1];b[2]=a[2];b[3]=a[3];return b};e.fromValues=function(a,b,c,d){var f=new t.a(4);f[0]=a;f[1]=b;f[2]=c;f[3]=d;return f};e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];return a};e.set=function(a,b,c,d,f){a[0]=b;a[1]=c;a[2]=d;a[3]=f;return a};e.add=function(a,b,c){a[0]=b[0]+c[0];a[1]=b[1]+c[1];a[2]=b[2]+c[2];a[3]=b[3]+c[3];return a};e.subtract=n;e.multiply=m;e.divide=c;e.ceil=function(a,b){a[0]=Math.ceil(b[0]);a[1]=Math.ceil(b[1]);a[2]=Math.ceil(b[2]);a[3]=Math.ceil(b[3]);return a};
+e.floor=function(a,b){a[0]=Math.floor(b[0]);a[1]=Math.floor(b[1]);a[2]=Math.floor(b[2]);a[3]=Math.floor(b[3]);return a};e.min=function(a,b,c){a[0]=Math.min(b[0],c[0]);a[1]=Math.min(b[1],c[1]);a[2]=Math.min(b[2],c[2]);a[3]=Math.min(b[3],c[3]);return a};e.max=function(a,b,c){a[0]=Math.max(b[0],c[0]);a[1]=Math.max(b[1],c[1]);a[2]=Math.max(b[2],c[2]);a[3]=Math.max(b[3],c[3]);return a};e.round=function(a,b){a[0]=Math.round(b[0]);a[1]=Math.round(b[1]);a[2]=Math.round(b[2]);a[3]=Math.round(b[3]);return a};
+e.scale=b;e.scaleAndAdd=function(a,b,c,d){a[0]=b[0]+c[0]*d;a[1]=b[1]+c[1]*d;a[2]=b[2]+c[2]*d;a[3]=b[3]+c[3]*d;return a};e.distance=d;e.squaredDistance=f;e.length=h;e.squaredLength=q;e.negate=function(a,b){a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=-b[3];return a};e.inverse=function(a,b){a[0]=1/b[0];a[1]=1/b[1];a[2]=1/b[2];a[3]=1/b[3];return a};e.normalize=k;e.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};e.lerp=function(a,b,c,d){var f=b[0],h=b[1],e=b[2];b=b[3];a[0]=f+d*(c[0]-f);a[1]=
+h+d*(c[1]-h);a[2]=e+d*(c[2]-e);a[3]=b+d*(c[3]-b);return a};e.random=function(a,c){c=c||1;a[0]=t.c();a[1]=t.c();a[2]=t.c();a[3]=t.c();k(a,a);b(a,a,c);return a};e.transformMat4=function(a,b,c){var d=b[0],f=b[1],h=b[2];b=b[3];a[0]=c[0]*d+c[4]*f+c[8]*h+c[12]*b;a[1]=c[1]*d+c[5]*f+c[9]*h+c[13]*b;a[2]=c[2]*d+c[6]*f+c[10]*h+c[14]*b;a[3]=c[3]*d+c[7]*f+c[11]*h+c[15]*b;return a};e.transformQuat=function(a,b,c){var d=b[0],f=b[1],h=b[2],e=c[0],k=c[1],l=c[2];c=c[3];var q=c*d+k*h-l*f,g=c*f+l*d-e*h,r=c*h+e*f-k*d;
+d=-e*d-k*f-l*h;a[0]=q*c+d*-e+g*-l-r*-k;a[1]=g*c+d*-k+r*-e-q*-l;a[2]=r*c+d*-l+q*-k-g*-e;a[3]=b[3];return a};e.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]};e.equals=function(a,b){var c=a[0],d=a[1],f=a[2];a=a[3];var h=b[0],e=b[1],k=b[2];b=b[3];return Math.abs(c-h)<=t.b*Math.max(1,Math.abs(c),Math.abs(h))&&Math.abs(d-e)<=t.b*Math.max(1,Math.abs(d),Math.abs(e))&&Math.abs(f-k)<=t.b*Math.max(1,
+Math.abs(f),Math.abs(k))&&Math.abs(a-b)<=t.b*Math.max(1,Math.abs(a),Math.abs(b))};var t=a(29);e.sub=n;e.mul=m;e.div=c;e.dist=d;e.sqrDist=f;e.len=h;e.sqrLen=q;g=function(){var a=p();return function(b,c,d,f,h,e){c||(c=4);d||(d=0);for(f=f?Math.min(f*c+d,b.length):b.length;d<f;d+=c)a[0]=b[d],a[1]=b[d+1],a[2]=b[d+2],a[3]=b[d+3],h(a,a,e),b[d]=a[0],b[d+1]=a[1],b[d+2]=a[2],b[d+3]=a[3];return b}}();e.forEach=g},function(g,e,a){e=a(212);a="object"==typeof self&&self&&self.Object===Object&&self;e=e||a||Function("return this")();
+g.exports=e},function(g,e,a){e=a(123).Symbol;g.exports=e},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&
+b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){switch(a){case t.b.FLOAT32:return B.c;default:throw Error("Data type not supported by WebGL: ${DataType[dataType]}");}}e.f=function(a){return new k.a(void 0===a?"void main() {\n  emitDefault();\n}\n":a,u.B)};a.d(e,"c",function(){return O});a.d(e,"b",function(){return J});a.d(e,"e",function(){return Q});a.d(e,"d",function(){return P});var b=
+a(25);g=a(23);var d=a(48),f=a(50),h=a(223),q=a(63),k=a(14),t=a(42),r=a(1),l=a(3),u=a(6),A=a(27),y=a(7),z=a(30),B=a(35),x=a(31),v=a(18),E=function aa(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return aa(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},F=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in
+d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),C=a(90),G=l.j.create(),H=new Float32Array(4);e.a="//NEUROGLANCER_SKELETON_LAYER_FRAGMENT_MAIN_START";var D=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.vertexAttributes=a;c.shaders=new Map;c.shaderGeneration=-1;c.vertexAttributesKey=Object(u.g)(c.vertexAttributes);return c}m(b,a);F(b,[{key:"defineShader",value:function(a,b){a.addUniform("highp vec4",
+"uColor");a.addUniform("highp mat4","uProjection");a.addUniform("highp vec4","uPickID");var c="\ngl_Position = uProjection * vec4(aVertex0, 1.0);\n";a.addFragmentCode("\nvec4 segmentColor() {\n  return uColor;\n}\nvoid emitRGB(vec3 color) {\n  emit(vec4(color * uColor.a, uColor.a), uPickID);\n}\nvoid emitDefault() {\n  emit(uColor, uPickID);\n}\n");a.addFragmentCode(C);this.vertexAttributes.forEach(function(b,d){a.addAttribute("highp "+b.glslDataType,"aVertex"+d);0!==d&&(a.addVarying("highp "+b.glslDataType,
+"vVertex"+d),c+="vVertex"+d+" = aVertex"+d+";\n",a.addFragmentCode("#define "+b.name+" vVertex"+d+"\n"))});a.setVertexMain(c);a.setFragmentMainFunction("//NEUROGLANCER_SKELETON_LAYER_FRAGMENT_MAIN_START\n"+b)}},{key:"beginLayer",value:function(a,b,c,d){c=l.j.multiply(G,c.dataToDevice,d);a.uniformMatrix4fv(b.uniform("uProjection"),!1,c)}},{key:"getShader",value:function(a,b,c){var d=this;return this.registerDisposer(a.memoize.get("skeleton/SkeletonShaderManager:"+Object(A.a)(b)+":"+this.vertexAttributesKey+
+":"+c,function(){var f=new x.a(a);f.require(b);d.defineShader(f,c);return f.build()}))}},{key:"setColor",value:function(a,b,c){a.uniform4fv(b.uniform("uColor"),c)}},{key:"setPickID",value:function(a,b,c){a.uniform4fv(b.uniform("uPickID"),Object(v.p)(H,c))}},{key:"drawSkeleton",value:function(a,b,c){for(var d=this.vertexAttributes,f=d.length,h=c.vertexAttributeOffsets,e=0;e<f;++e){var k=d[e];c.vertexBuffer.bindToVertexAttrib(b.attribute("aVertex"+e),k.numComponents,k.webglDataType,!1,0,h[e])}c.indexBuffer.bind();
+a.drawElements(a.LINES,c.numIndices,a.UNSIGNED_INT,0)}},{key:"endLayer",value:function(a,b){for(var c=this.vertexAttributes.length,d=0;d<c;++d)a.disableVertexAttribArray(b.attribute("aVertex"+d))}}]);return b}(r.a),O=function(a){function d(a,b,e,k){p(this,d);var q=n(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));q.chunkManager=a;q.source=b;q.voxelSizeObject=e;q.displayState=k;q.tempMat=l.j.create();q.redrawNeeded=new y.a;q.fallbackFragmentMain="void main() {\n  emitDefault();\n}\n";Object(f.f)(k,
+q);q.displayState.shaderError.value=void 0;q.registerDisposer(k.fragmentMain.changed.add(function(){q.displayState.shaderError.value=void 0;q.redrawNeeded.dispatch()}));a=q.sharedObject=q.registerDisposer(new f.b(a,k));a.RPC_TYPE_ID=h.a;a.initializeCounterpartWithChunkManager({source:b.addCounterpartRef()});a=q.vertexAttributes=[T];b=$jscomp.makeIterator(b.vertexAttributes);for(e=b.next();!e.done;e=b.next())k=$jscomp.makeIterator(e.value),e=k.next().value,k=k.next().value,a.push({name:e,dataType:k.dataType,
+numComponents:k.numComponents,webglDataType:c(k.dataType),glslDataType:1<k.numComponents?"vec"+k.numComponents:"float"});return q}m(d,a);F(d,[{key:"getShader",value:function(a,b,c){var d=this.displayState.fragmentMain,f=d.changed.count,h=b.shaders;b.shaderGeneration!==f&&(h.clear(),b.shaderGeneration=f);f=h.get(c);if(void 0===f){f=null;try{f=b.getShader(a,c,d.value),this.fallbackFragmentMain=d.value,this.displayState.shaderError.value=null}catch(tc){this.displayState.shaderError.value=tc;try{f=b.getShader(a,
+c,this.fallbackFragmentMain)}catch(Cb){}}h.set(c,f)}return f}},{key:"draw",value:function(a,c,d,h){void 0===h&&(h=a.emitColor?1:5);var e=this.gl,k=this.source,q=this.displayState,g=Math.min(1,q.objectAlpha.value);if(!(0>=g)){var r=this.getShader(e,d,a.emitter);if(null!==r){r.bind();var t=this.tempMat;l.j.identity(t);k.skeletonVertexCoordinatesInVoxels&&l.j.scale(t,t,this.voxelSizeObject.size);l.j.multiply(t,this.displayState.objectToDataTransform.transform,t);d.beginLayer(e,r,a,t);k=k.chunks;var m=
+a.pickIDs;e.lineWidth(h);Object(f.d)(q,k,function(h,k,l){l.state===b.d.GPU_MEMORY&&(a.emitColor&&d.setColor(e,r,Object(f.e)(q,h,g)),a.emitPickID&&d.setPickID(e,r,m.registerUint64(c,k)),d.drawSkeleton(e,r,l))});d.endLayer(e,r)}}}},{key:"visibility",get:function(){return this.sharedObject.visibility}},{key:"gl",get:function(){return this.chunkManager.chunkQueueManager.gl}}]);return d}(r.a),J=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.base=
+a;c.renderHelper=c.registerDisposer(new D(c.base.vertexAttributes));c.registerDisposer(a);c.registerDisposer(a.redrawNeeded.add(function(){c.redrawNeeded.dispatch()}));c.setReady(!0);c.registerDisposer(a.visibility.add(c.visibility));return c}m(b,a);F(b,[{key:"draw",value:function(a){this.base.draw(a,this,this.renderHelper)}},{key:"gl",get:function(){return this.base.gl}},{key:"isTransparent",get:function(){return 1>this.base.displayState.objectAlpha.value}}]);return b}(d.a),Q=function(a){function b(a){p(this,
+b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.base=a;c.renderHelper=c.registerDisposer(new D(c.base.vertexAttributes));c.registerDisposer(a);c.registerDisposer(a.redrawNeeded.add(function(){c.redrawNeeded.dispatch()}));c.setReady(!0);c.registerDisposer(a.visibility.add(c.visibility));return c}m(b,a);F(b,[{key:"draw",value:function(a){this.base.draw(a,this,this.renderHelper,10)}},{key:"gl",get:function(){return this.base.gl}}]);return b}(q.b),T={dataType:t.b.FLOAT32,numComponents:3,
+name:"",webglDataType:B.c,glslDataType:"vec3"},S=function(a){function b(a,c){p(this,b);a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a));a.vertexAttributes=c.vertexAttributes;var d=a.indices=c.indices;a.vertexAttributeOffsets=c.vertexAttributeOffsets;a.numIndices=d.length;return a}m(b,a);F(b,[{key:"copyToGPU",value:function(a){E(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"copyToGPU",this).call(this,a);this.vertexBuffer=z.a.fromData(a,this.vertexAttributes,a.ARRAY_BUFFER,
+a.STATIC_DRAW);this.indexBuffer=z.a.fromData(a,this.indices,a.ELEMENT_ARRAY_BUFFER,a.STATIC_DRAW)}},{key:"freeGPUMemory",value:function(a){E(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"freeGPUMemory",this).call(this,a);this.vertexBuffer.dispose();this.indexBuffer.dispose()}}]);return b}(g.b),L=new Map,P=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);F(b,[{key:"getChunk",value:function(a){return new S(this,a)}},
+{key:"skeletonVertexCoordinatesInVoxels",get:function(){return!0}},{key:"vertexAttributes",get:function(){return L}}]);return b}(g.e)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return b});g=
+a(1);var n=a(30),m=a(127),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(a){function b(a){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var c=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.gl=a;c.vertexBuffer=c.registerDisposer(n.a.fromData(a,new Float32Array([0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1]),a.ARRAY_BUFFER,a.STATIC_DRAW));c.colorBuffer=c.registerDisposer(n.a.fromData(a,new Float32Array([1,0,0,.5,1,0,0,.5,0,1,0,.5,0,1,0,.5,0,0,1,.5,0,0,1,.5]),a.ARRAY_BUFFER,a.STATIC_DRAW));c.trivialColorShader=c.registerDisposer(Object(m.c)(a));return c}p(b,a);c(b,[{key:"draw",value:function(a,b){b=void 0===b?!0:b;var c=this.trivialColorShader,
+d=this.gl;c.bind();d.uniformMatrix4fv(c.uniform("uProjectionMatrix"),!1,a);a=c.attribute("aVertexPosition");this.vertexBuffer.bindToVertexAttrib(a,4);c=c.attribute("aColor");this.colorBuffer.bindToVertexAttrib(c,4);b&&(d.colorMask(!1,!1,!1,!0),d.clearColor(0,0,0,0),d.clear(d.COLOR_BUFFER_BIT),d.colorMask(!0,!0,!0,!0),d.enable(d.BLEND),d.blendFunc(d.ONE_MINUS_DST_ALPHA,d.DST_ALPHA));d.lineWidth(1);d.drawArrays(d.LINES,0,6);b&&d.disable(d.BLEND);d.disableVertexAttribArray(a);d.disableVertexAttribArray(c)}}],
+[{key:"get",value:function(a){return a.memoize.get("SliceViewPanel:AxesLineHelper",function(){return new b(a)})}}]);return b}(g.a)},function(g,e,a){function p(a){a.setFragmentMain("gl_FragColor = getValue0();")}e.a=p;e.b=function(a,b,d){b=void 0===b?p:b;d=void 0===d?1:d;return a.memoize.get("elementWiseTextureShader:"+d+":"+Object(n.a)(b),function(){var c=new m.a(a);c.addVarying("vec2","vTexCoord");c.addUniform("sampler2D","uSampler",d);c.addInitializer(function(b){for(var c=[],f=0;f<d;++f)c[f]=f;
+a.uniform1iv(b.uniform("uSampler"),c)});for(var h=0;h<d;++h)c.addFragmentCode("\nvec4 getValue"+h+"() {\n  return texture2D(uSampler["+h+"], vTexCoord);\n}\n");c.addUniform("mat4","uProjectionMatrix");c.require(b);c.addAttribute("vec4","aVertexPosition");c.addAttribute("vec2","aTexCoord");c.setVertexMain("vTexCoord = aTexCoord; gl_Position = uProjectionMatrix * aVertexPosition;");return c.build()})};e.c=function(a){return a.memoize.get("trivialColorShader",function(){var b=new m.a(a);b.addVarying("vec4",
+"vColor");b.setFragmentMain("gl_FragColor = vColor;");b.addAttribute("vec4","aVertexPosition");b.addAttribute("vec4","aColor");b.addUniform("mat4","uProjectionMatrix");b.setVertexMain("vColor = aColor; gl_Position = uProjectionMatrix * aVertexPosition;");return b.build()})};var n=a(27),m=a(31)},function(g,e,a){a.d(e,"a",function(){return n});var p=function(){function a(a,b){for(var c=0;c<b.length;c++){var f=b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,
+f.key,f)}}return function(c,b,d){b&&a(c.prototype,b);d&&a(c,d);return c}}(),n=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.renderLayers=[null];this.values=[0,0,0];this.nextPickID=1}p(a,[{key:"clear",value:function(){this.renderLayers.length=1;this.values.length=3;this.nextPickID=1}},{key:"registerUint64",value:function(a,b,d){return this.register(a,void 0===d?1:d,b.low,b.high)}},{key:"register",value:function(a,b,d,f){var c=this.renderLayers,
+e=this.values,k=this.nextPickID;this.nextPickID+=void 0===b?1:b;b=c.length;c[b]=a;a=3*b;e[a]=k;e[a+1]=void 0===d?0:d;e[a+2]=void 0===f?0:f;return k}},{key:"setMouseState",value:function(a,b){for(var c=this.renderLayers,f=this.values,h=0,e=c.length-1;h<e;){var k=Math.ceil(h+(e-h)/2);f[3*k]>b?e=k-1:h=k}c=a.pickedRenderLayer=c[h];h*=3;b=a.pickedOffset=b-f[h];e=a.pickedValue;e.low=f[h+1];e.high=f[h+2];null!==c&&c.updateMouseState(a,e,b)}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return r});g=a(130);var m=a(64),c=a(22),b=a(3),d=a(51),f=a(131),h=a(227),q=function(){function a(a,b){for(var c=
+0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),k=function u(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return u(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(228);a(36);var t=b.p.create(),r=function(a){function e(a,
+k,g){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var q=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,k,g.visibility));q.viewer=g;q.mouseX=0;q.mouseY=0;q.mouseStateUpdater=q.updateMouseState.bind(q);q.inputEventMap=g.inputEventMap;k.classList.add("neuroglancer-rendered-data-panel");k.classList.add("neuroglancer-panel");k.classList.add("neuroglancer-noselect");q.registerDisposer(new m.a(k));q.registerDisposer(new d.b(k,q.inputEventMap));q.registerDisposer(new f.a(k,
+q.inputEventMap));q.registerEventListener(k,"mousemove",q.onMousemove.bind(q));q.registerEventListener(k,"mouseleave",q.onMouseout.bind(q));Object(c.c)(k,"snap",function(){q.navigationState.pose.snap()});Object(c.c)(k,"zoom-in",function(){q.navigationState.zoomBy(.5)});Object(c.c)(k,"zoom-out",function(){q.navigationState.zoomBy(2)});for(a={axis:0};3>a.axis;a={axis:a.axis},++a.axis){g=b.a[a.axis];for(var r={},n=$jscomp.makeIterator([-1,1]),u=n.next();!u.done;r={sign:r.sign,tempOffset:r.tempOffset},
+u=n.next())r.sign=u.value,u=0>r.sign?"-":"+",Object(c.c)(k,"rotate-relative-"+g+u,function(a,c){return function(){q.navigationState.pose.rotateRelative(b.e[a.axis],.1*c.sign)}}(a,r)),r.tempOffset=b.p.create(),Object(c.c)(k,""+g+u,function(a,b){return function(){var c=q.navigationState,d=a.tempOffset;d[0]=0;d[1]=0;d[2]=0;d[b.axis]=a.sign;c.pose.translateVoxelsRelative(d)}}(r,a))}Object(c.c)(k,"zoom-via-wheel",function(a){a=a.detail;q.onMousemove(a);q.zoomByMouse(Object(h.a)(a))});a={};g=$jscomp.makeIterator([1,
+10]);for(r=g.next();!r.done;a={amount:a.amount},r=g.next())a.amount=r.value,Object(c.c)(k,"z+"+a.amount+"-via-wheel",function(a){return function(b){var c=b.detail;b=q.navigationState;c=0!==c.deltaY?c.deltaY:c.deltaX;t[0]=0;t[1]=0;t[2]=(0<c?-1:1)*a.amount;b.pose.translateVoxelsRelative(t)}}(a));Object(c.c)(k,"move-to-mouse-position",function(){var a=q.viewer.mouseState;if(a.updateUnconditionally()){var c=q.navigationState.pose.position;b.p.copy(c.spatialCoordinates,a.position);c.changed.dispatch()}});
+Object(c.c)(k,"snap",function(){return q.navigationState.pose.snap()});return q}n(e,a);q(e,[{key:"onMouseout",value:function(a){a=this.viewer.mouseState;a.updater=void 0;a.setActive(!1)}},{key:"onMousemove",value:function(a){var b=this.element;a.target===b&&(this.mouseX=a.offsetX-b.clientLeft,this.mouseY=a.offsetY-b.clientTop,a=this.viewer.mouseState,a.updater=this.mouseStateUpdater,a.triggerUpdate())}},{key:"disposed",value:function(){var a=this.viewer.mouseState;a.updater===this.mouseStateUpdater&&
+(a.updater=void 0,a.setActive(!1));k(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}}]);return e}(g.b)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"b",function(){return h});a.d(e,"a",function(){return q});g=a(1);var c=a(7),b=a(224),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&
+a(b,d);return b}}(),f=function t(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return t(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},h=function(a){function b(a,c,d){p(this,b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));f.context=a;f.element=c;f.visibility=d;f.gl=a.gl;a.addPanel(f);return f}m(b,a);d(b,[{key:"scheduleRedraw",value:function(){this.context.scheduleRedraw()}},
+{key:"setGLViewport",value:function(){var a=this.element,b=a.getBoundingClientRect(),c=this.context.canvasRect,d=a.clientLeft+b.left-c.left,f=a.clientWidth,h=a.clientHeight;b=b.top-c.top+a.clientTop+h;a=this.gl;a.enable(a.SCISSOR_TEST);b=this.context.canvas.height-b;a.viewport(d,b,f,h);a.scissor(d,b,f,h)}},{key:"disposed",value:function(){this.context.removePanel(this);f(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},{key:"visible",get:function(){return this.visibility.visible}}]);
+return b}(g.a),q=function(a){function f(a){p(this,f);var d=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));d.container=a;d.canvas=document.createElement("canvas");d.updateStarted=new c.a;d.updateFinished=new c.a;d.panels=new Set;d.updatePending=null;d.needsRedraw=!1;var h=d.canvas;a.style.position="relative";h.style.position="absolute";h.style.top="0px";h.style.left="0px";h.style.width="100%";h.style.height="100%";h.style.zIndex="0";a.appendChild(h);d.gl=Object(b.a)(h);d.registerEventListener(window,
+"resize",d.onResize.bind(d));return d}m(f,a);d(f,[{key:"makeCanvasOverlayElement",value:function(){var a=document.createElement("div");a.style.position="absolute";a.style.top="0px";a.style.left="0px";a.style.width="100%";a.style.height="100%";a.style.zIndex="2";this.container.appendChild(a);return a}},{key:"disposed",value:function(){null!=this.updatePending&&(cancelAnimationFrame(this.updatePending),this.updatePending=null)}},{key:"addPanel",value:function(a){this.panels.add(a)}},{key:"removePanel",
+value:function(a){this.panels.delete(a);a.dispose()}},{key:"onResize",value:function(){this.scheduleRedraw();for(var a=$jscomp.makeIterator(this.panels),b=a.next();!b.done;b=a.next())b.value.onResize()}},{key:"scheduleUpdate",value:function(){null===this.updatePending&&(this.updatePending=requestAnimationFrame(this.update.bind(this)))}},{key:"scheduleRedraw",value:function(){this.needsRedraw||(this.needsRedraw=!0,this.scheduleUpdate())}},{key:"update",value:function(){this.updatePending=null;this.updateStarted.dispatch();
+if(this.needsRedraw){this.needsRedraw=!1;var a=this.gl,b=this.canvas;b.width=b.offsetWidth;b.height=b.offsetHeight;this.canvasRect=b.getBoundingClientRect();this.gl.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);b=$jscomp.makeIterator(this.panels);for(var c=b.next();!c.done;c=b.next()){c=c.value;var d=c.element;c.visible&&0!==d.clientWidth&&0!==d.clientHeight&&0!==d.offsetWidth&&0!==d.offsetHeight&&(c.setGLViewport(),c.draw())}a.disable(a.SCISSOR_TEST);this.gl.clearColor(1,1,1,
+1);this.gl.colorMask(!1,!1,!1,!0);a.clear(a.COLOR_BUFFER_BIT);this.gl.colorMask(!0,!0,!0,!0)}this.updateFinished.dispatch()}}]);return f}(g.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,
+{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return b});g=a(1);var m=a(22),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(a){function b(a,c){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");
+var d=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.target=a;d.eventMap=c;d.registerEventListener(a,"wheel",function(a){d.dispatch("wheel",a)});d.registerEventListener(a,"click",function(a){d.dispatch("click"+a.button,a)});d.registerEventListener(a,"dblclick",function(a){d.dispatch("dblclick"+a.button,a)});d.registerEventListener(a,"mousedown",function(a){d.dispatch("mousedown"+a.button,a)});d.registerEventListener(a,"mouseup",function(a){d.dispatch("mouseup"+a.button,a)});return d}
+n(b,a);c(b,[{key:"dispatch",value:function(a,b){Object(m.b)(a,b,this.eventMap)}}]);return b}(g.a)},function(g,e,a){e.b=function(a,e,g,c){for(;e<g;){var b=a[e];c(b)?++e:(--g,a[e]=a[g],a[g]=b)}return g};e.a=function(a,e){if(a.length===e)return a;e=new a.constructor(e);e.set(a);return e}},function(g,e,a){g=new (a(134).a);e.a=g},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){var c,d,f;return function(h,e){if(void 0!==d&&(void 0===c||void 0===h||c.generation!==h.generation))return void 0===
+c&&f.addConsumer(e),d;c=void 0;f=new b.c;return d=a(h,f).then(function(a){c=a;f=void 0;return a},function(a){f.isCanceled&&(d=f=void 0);throw a;})}}a.d(e,"b",function(){return h});e.c=function(a){var b=0;return c(function(c,d){return a(d).then(function(a){return{generation:++b,credentials:a}})})};a.d(e,"a",function(){return k});var b=a(26);g=a(1);var d=a(84),f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=
+!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),h=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(g.a),q=function(){function a(){p(this,a);this.providers=new Map}f(a,[{key:"register",value:function(a,b){this.providers.set(a,b)}},{key:"getCredentialsProvider",value:function(a,b){var c=this.providers.get(a);if(void 0===c)throw Error("No registered credentials provider: "+
+JSON.stringify(a));return c(b)}}]);return a}(),k=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,new q))}m(b,a);f(b,[{key:"register",value:function(a,b){this.base.register(a,b)}}]);return b}(function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.base=a;c.memoize=new d.b;return c}m(b,a);f(b,[{key:"getCredentialsProvider",value:function(a,b){var c=this;return this.memoize.get({key:a,parameters:b},function(){return c.registerDisposer(c.base.getCredentialsProvider(a,
+b).addRef())})}}]);return b}(g.a))},function(g,e,a){a.d(e,"c",function(){return p});e.a="/ocp/ca";e.b="/nd/sd";var p=function m(){if(!(this instanceof m))throw new TypeError("Cannot call a class as a function");};p.RPC_ID="ndstore/VolumeChunkSource"},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function c(a,b,c){Object(v.u)(a);var d=Object(v.w)(a,"Base",function(a){return new C(a)});switch(d.typeName){case "uint8blk":case "grayscale8":return new D(a,b,d,l.c.JPEG,c);case "imagetile":return new T(a,b,d);case "labels64":case "labelblk":return new D(a,
+b,d,l.c.COMPRESSED_SEGMENTATION,c);default:throw Error("DVID data type "+JSON.stringify(d.typeName)+" is not supported.");}}function b(a){try{for(var b=Object(v.v)(a,function(a){return new S(a)}),c=new Map,d=$jscomp.makeIterator(b),f=d.next();!f.done;f=d.next()){var h=$jscomp.makeIterator(f.value),e=h.next().value,k=h.next().value;c.set(e,k);for(var l=$jscomp.makeIterator(k.vnodes),g=l.next();!g.done;g=l.next()){var q=g.value;if(q!==e){var r=new S(k);c.set(q,r)}}}for(var t=$jscomp.makeIterator(c),
+m=t.next();!m.done;m=t.next()){var n=$jscomp.makeIterator(m.value),p=n.next().value;n.next().value.uuid=p}return c}catch(Ma){throw Error("Failed to parse DVID repositories info: "+Ma.message);}}function d(a,b){return a.memoize.getUncounted({type:"dvid:getServerInfo",baseUrls:b},function(){var a=Object(x.d)(Object(x.b)(b,"/api/repos/info","GET"),"json").then(function(a){return new L(a)}),c="repository info for DVID server "+b[0];y.a.forPromise(a,{initialMessage:"Retrieving "+c+".",delay:!0,errorPrefix:"Error retrieving "+
+c+": "});return a})}function f(a,b,c,d){return a.memoize.getUncounted({type:"dvid:getInstanceDetails",baseUrls:b,nodeKey:c,name:d.name},function(){var a=Object(x.d)(Object(x.b)(b,"/api/node/"+c+"/"+d.name+"/info","GET"),"json"),f="datainstance info for node "+c+" and instance "+d.name+" "+("on DVID server "+b[0]);y.a.forPromise(a,{initialMessage:"Retrieving "+f+".",delay:!0,errorPrefix:"Error retrieving "+f+": "});return a.then(function(a){a=Object(v.w)(a,"Extended",v.u);d.lowerVoxelBound=Object(v.w)(a,
+"MinPoint",function(a){return Object(v.d)(B.p.create(),a)});d.upperVoxelBound=Object(v.w)(a,"MaxPoint",function(a){return Object(v.d)(B.p.create(),a)});return d})})}function h(a,b,c,h){return d(a,b).then(function(d){d=d.getNode(c);if(void 0===d)throw Error("Invalid node: "+JSON.stringify(c)+".");d=d.dataInstances.get(h);if(!(d instanceof D||d instanceof T))throw Error("Invalid data instance "+h+".");return f(a,b,c,d)}).then(function(d){return a.memoize.getUncounted({type:"dvid:MultiscaleVolumeChunkSource",
+baseUrls:b,nodeKey:c,dataInstanceKey:h},function(){return new P(a,b,c,h,d)})})}function q(a,b){var c=b.match(Y);if(null===c)throw Error("Invalid DVID URL: "+JSON.stringify(b)+".");return h(a,[c[1]],c[2],c[3])}function k(a,b){return{offset:0,completions:Object(z.c)(b,a.dataInstances.values(),function(a){return a.name},function(a){return""+a.base.typeName})}}function t(a,b){var c=b.match(/^(?:([^\/]+)(?:\/([^\/]*))?)?$/);if(null===c)throw Error("Invalid DVID URL syntax.");if(void 0===c[2])return{offset:0,
+completions:Object(z.c)(b,a.repositories.values(),function(a){return a.uuid+"/"},function(a){return a.alias+": "+a.description})};b=c[1];a=a.getNode(b);return Object(z.a)(b.length+1,k(a,c[2]))}function r(a,b){a=a.match(/^((?:http|https):\/\/[^\/]+)\/(.*)$/);if(null===a)return Promise.reject(null);var c=a[1],f=a[2];return d(b,[c]).then(function(a){return Object(z.a)(c.length+1,t(a,f))})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"getVolume",function(){return q});a.d(e,"volumeCompleter",
+function(){return r});a.d(e,"DataInstanceBaseInfo",function(){return C});a.d(e,"DataInstanceInfo",function(){return G});a.d(e,"VolumeDataInstanceInfo",function(){return D});a.d(e,"TileLevelInfo",function(){return O});a.d(e,"TileDataInstanceInfo",function(){return T});e.parseDataInstance=c;a.d(e,"RepositoryInfo",function(){return S});e.parseRepositoriesInfo=b;a.d(e,"ServerInfo",function(){return L});e.getServerInfo=d;e.getDataInstanceDetails=f;a.d(e,"MultiscaleVolumeChunkSource",function(){return P});
+e.getShardedVolume=h;e.completeInstanceName=k;e.completeNodeAndInstance=t;a.d(e,"DVIDDataSource",function(){return aa});g=a(23);e=a(39);var l=a(238),u=a(19),A=a(28),y=a(40),z=a(46),B=a(3),x=a(47),v=a(6),E=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),F=new Map;F.set("uint8",u.a.UINT8);F.set("uint32",u.a.UINT32);
+F.set("uint64",u.a.UINT64);var C=function(){function a(b){m(this,a);this.obj=b;Object(v.u)(b);Object(v.w)(b,"TypeName",v.B)}E(a,[{key:"typeName",get:function(){return this.obj.TypeName}}]);return a}(),G=function M(a,b,c){m(this,M);this.obj=a;this.name=b;this.base=c},H=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(Object(g.f)(A.b,l.d)),D=function(a){function b(a,c,d,f,h){m(this,b);d=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,
+a,c,d));d.encoding=f;a=Object(v.w)(a,"Extended",v.u);f=Object(v.w)(a,"Values",function(a){return Object(v.a)(a,v.u)});if(1>f.length)throw Error("Expected Extended.Values property to have length >= 1, but received: ${JSON.stringify(extendedValues)}.");d.numLevels=1;for(h=new Set(h);h.has(c+"_"+d.numLevels.toString());)d.numLevels+=1;d.dataType=Object(v.w)(f[0],"DataType",function(a){return Object(v.t)(a,F)});d.voxelSize=Object(v.w)(a,"VoxelSize",function(a){return Object(v.c)(B.p.create(),a,v.p)});
+d.numChannels=1;return d}n(b,a);E(b,[{key:"getSources",value:function(a,b,c){for(var d=this.encoding,f=[],h={},e=0;e<this.numLevels;h={volParameters:h.volParameters},++e){for(var k=B.p.scale(B.p.create(),this.voxelSize,Math.pow(2,e)),g=B.p.create(),q=B.p.create(),r=0;3>r;++r)g[r]=Math.floor(this.voxelSize[r]/k[r]*this.lowerVoxelBound[r]),q[r]=Math.ceil(this.voxelSize[r]/k[r]*this.upperVoxelBound[r]);r=b.dataInstanceKey;0<e&&(r+="_"+e.toString());h.volParameters={baseUrls:b.baseUrls,nodeKey:b.nodeKey,
+dataInstanceKey:r,encoding:d};k=u.c.getDefaults({voxelSize:k,dataType:this.dataType,numChannels:this.numChannels,transform:B.j.fromTranslation(B.j.create(),B.p.multiply(B.p.create(),g,k)),baseVoxelOffset:g,upperVoxelBound:B.p.subtract(B.p.create(),q,g),volumeType:this.volumeType,volumeSourceOptions:c,compressedSegmentationBlockSize:d===l.c.COMPRESSED_SEGMENTATION?B.p.fromValues(8,8,8):void 0}).map(function(b){return function(c){return a.getChunkSource(H,{spec:c,parameters:b.volParameters})}}(h));
+f.push(k)}return f}},{key:"volumeType",get:function(){return this.encoding===l.c.COMPRESSED_SEGMENTATION?u.d.SEGMENTATION:u.d.IMAGE}}]);return b}(G),O=function Ba(a){m(this,Ba);Object(v.u)(a);this.resolution=Object(v.w)(a,"Resolution",function(a){return Object(v.c)(B.p.create(),a,v.p)});this.tileSize=Object(v.w)(a,"TileSize",function(a){return Object(v.c)(B.p.create(),a,v.A)})},J=[[0,1],[0,2],[1,2]],Q=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments))}n(b,a);return b}(Object(g.f)(A.b,l.a)),T=function(a){function b(a,c,d){m(this,b);c=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c,d));a=Object(v.w)(a,"Extended",v.u);c.levels=Object(v.w)(a,"Levels",function(a){return Object(v.v)(a,function(a){return new O(a)})});d=c.levels.get("0");if(void 0===d)throw Error("Level 0 is not defined.");c.voxelSize=d.resolution;var f=Object(v.w)(a,"MinTileCoord",function(a){return Object(v.c)(B.p.create(),a,v.s)}),h=Object(v.w)(a,"MaxTileCoord",
+function(a){return Object(v.c)(B.p.create(),a,v.s)});c.lowerVoxelBound=B.p.multiply(B.p.create(),d.tileSize,f);c.upperVoxelBound=B.p.multiply(B.p.create(),d.tileSize,h);a=Object(v.w)(a,"Encoding",function(a){return a});switch(a){case 2:c.encoding=l.b.JPEG;break;default:throw Error("Unsupported tile encoding: "+JSON.stringify(a)+".");}return c}n(b,a);E(b,[{key:"dataType",get:function(){return u.a.UINT8}},{key:"volumeType",get:function(){return u.d.IMAGE}},{key:"numChannels",get:function(){return 1}}]);
+E(b,[{key:"getSources",value:function(a,b,c){for(var d=this,f=[],h=this.numChannels,e=this.dataType,k=this.encoding,l={},g=$jscomp.makeIterator(this.levels),q=g.next();!q.done;l={levelInfo:l.levelInfo,level:l.level},q=g.next())q=$jscomp.makeIterator(q.value),l.level=q.next().value,l.levelInfo=q.next().value,q=J.map(function(f){return function(l){for(var g=B.p.clone(d.voxelSize),q=B.p.fromValues(1,1,1),r=0;2>r;++r)g[l[r]]=f.levelInfo.resolution[l[r]],q[l[r]]=f.levelInfo.tileSize[l[r]];r=B.p.create();
+for(var t=B.p.create(),m=0;3>m;++m)r[m]=Math.floor(d.voxelSize[m]/g[m]*d.lowerVoxelBound[m]),t[m]=Math.ceil(d.voxelSize[m]/g[m]*d.upperVoxelBound[m]);g=u.c.make({voxelSize:g,chunkDataSize:q,numChannels:h,dataType:e,lowerVoxelBound:r,upperVoxelBound:t,volumeSourceOptions:c});return a.getChunkSource(Q,{spec:g,parameters:{baseUrls:b.baseUrls,nodeKey:b.nodeKey,dataInstanceKey:b.dataInstanceKey,encoding:k,level:f.level,dims:l[0]+"_"+l[1]}})}}(l)),f.push(q);return f}}]);return b}(G),S=function Ua(a){m(this,
+Ua);this.errors=[];this.dataInstances=new Map;this.vnodes=new Set;if(a instanceof Ua)this.alias=a.alias,this.description=a.description,this.errors=a.errors,this.dataInstances=a.dataInstances;else{Object(v.u)(a);this.alias=Object(v.w)(a,"Alias",v.B);this.description=Object(v.w)(a,"Description",v.B);for(var b=Object(v.w)(a,"DataInstances",v.u),d=Object.keys(b),f=$jscomp.makeIterator(d),h=f.next();!h.done;h=f.next()){h=h.value;try{this.dataInstances.set(h,c(b[h],h,d))}catch(Ha){h="Failed to parse data instance "+
+JSON.stringify(h)+": "+Ha.message,console.log(h),this.errors.push(h)}}a=Object(v.w)(a,"DAG",v.u);a=Object(v.w)(a,"Nodes",v.u);a=$jscomp.makeIterator(Object.keys(a));for(h=a.next();!h.done;h=a.next())this.vnodes.add(h.value)}},L=function(){function a(c){m(this,a);this.repositories=b(c)}E(a,[{key:"getNode",value:function(a){for(var b=[],c=$jscomp.makeIterator(this.repositories.keys()),d=c.next();!d.done;d=c.next())d=d.value,d.startsWith(a)&&b.push(d);if(1!==b.length)throw Error("Node key "+JSON.stringify(a)+
+" matches "+JSON.stringify(b)+" nodes.");return this.repositories.get(b[0])}}]);return a}(),P=function(){function a(b,c,d,f,h){m(this,a);this.chunkManager=b;this.baseUrls=c;this.nodeKey=d;this.dataInstanceKey=f;this.info=h}E(a,[{key:"getSources",value:function(a){return this.info.getSources(this.chunkManager,{baseUrls:this.baseUrls,nodeKey:this.nodeKey,dataInstanceKey:this.dataInstanceKey},a)}},{key:"getMeshSource",value:function(){return null}},{key:"dataType",get:function(){return this.info.dataType}},
+{key:"numChannels",get:function(){return this.info.numChannels}},{key:"volumeType",get:function(){return this.info.volumeType}}]);return a}(),Y=/^((?:http|https):\/\/[^\/]+)\/([^\/]+)\/([^\/]+)$/,aa=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);E(b,[{key:"getVolume",value:function(a,b){return q(a,b)}},{key:"volumeCompleter",value:function(a,b){return r(a,b)}},{key:"description",get:function(){return"DVID"}}]);return b}(e.a)},
+function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){var c=Object(D.a)(a,D.u);if(1>c.length)throw Error("No stacks found for owner object.");a=new Map;var e=Object(D.w)(c[0],"stackId",d);c=$jscomp.makeIterator(c);for(var k=c.next();!k.done;k=c.next()){var l=k.value;k=Object(D.w)(l,"stackId",b);Object(D.u)(l);var g=Object(D.w)(l,"state",D.B);if(S.has(g)){g=Object(D.w)(l,"stats",D.u);var r=g;Object(D.u)(r);r=Object(D.w)(r,"stackBounds",D.u);var m=G.p.create();
+m[0]=Object(D.w)(r,"minX",D.q);m[1]=Object(D.w)(r,"minY",D.q);m[2]=Object(D.w)(r,"minZ",D.q);r=m;m=g;Object(D.u)(m);m=Object(D.w)(m,"stackBounds",D.u);var t=G.p.create();t[0]=Object(D.w)(m,"maxX",D.q);t[1]=Object(D.w)(m,"maxY",D.q);t[2]=Object(D.w)(m,"maxZ",D.q);m=t;t=[];g.hasOwnProperty("channelNames")&&(t=f(g));g=Object(D.w)(l,"currentVersion",h);l=Object(D.w)(l,"stackId",q);l={lowerVoxelBound:r,upperVoxelBound:m,voxelResolution:g,project:l,channels:t}}else l=void 0;void 0!==l&&(g=l.project,r=a.get(g),
+void 0===r&&(r=new Map,a.set(g,{stacks:r}),r=a.get(g)),r.stacks.set(k,l))}return{owner:e,projects:a}}function b(a){Object(D.u)(a);return Object(D.w)(a,"stack",D.B)}function d(a){Object(D.u)(a);return Object(D.w)(a,"owner",D.B)}function f(a){Object(D.u)(a);return Object(D.w)(a,"channelNames",function(a){return Object(D.a)(a,D.B)})}function h(a){Object(D.u)(a);var b=G.p.create();try{b[0]=Object(D.w)(a,"stackResolutionX",D.q),b[1]=Object(D.w)(a,"stackResolutionY",D.q),b[2]=Object(D.w)(a,"stackResolutionZ",
+D.q)}catch(Ua){b[0]=1,b[1]=1,b[2]=1}return b}function q(a){Object(D.u)(a);return Object(D.w)(a,"project",D.B)}function k(a,b){for(var c=0,d=0;2>d;d++)c<a.upperVoxelBound[d]&&(c=a.upperVoxelBound[d]);if(b>=c)return 1;for(a=0;c>b;)c/=2,a++;return a}function t(a,b,d){return a.memoize.getUncounted({type:"render:getOwnerInfo",hostnames:b,owner:d},function(){return Object(H.d)(Object(H.b)(b,"/render-ws/v1/owner/"+d+"/stacks"),"json").then(c)})}function r(a,b,c){var d=c.match(P);if(null===d)throw Error("Invalid volume path "+
+JSON.stringify(c));var f=d[1],h=d[2],e=d[3],k=d[4],l=Object(D.e)(d[5]||"");return a.memoize.getUncounted({type:"render:MultiscaleVolumeChunkSource",hostnames:b,path:c},function(){return t(a,b,f).then(function(c){return new L(a,b,c,e,h,k,l)})})}function l(a,b){var c=b.match(Y);if(null===c)throw Error("Invalid render volume path: "+JSON.stringify(b));b=c[1].split(",");return r(a,b,c[2])}function u(a,b,c){var d=c.match(/^(?:([^\/]+)(?:\/([^\/]*))?(?:\/([^\/]*))?(\/.*?)?)?$/);if(null===d||void 0===d[2])return Promise.reject(null);
+if(void 0===d[3]){var f=d[2]||"";return t(a,b,d[1]).then(function(a){a=Object(C.c)(f,a.projects,function(a){return a[0]+"/"},function(){});return{offset:d[1].length+1,completions:a}})}if(void 0===d[4]){var h=d[3]||"";return t(a,b,d[1]).then(function(a){a=a.projects.get(d[2]);if(void 0===a)return Promise.reject(null);a=Object(C.c)(h,a.stacks,function(a){return a[0]+"/"},function(a){return"("+a[1].project+")"});return{offset:d[1].length+d[2].length+2,completions:a}})}var e=d[4].substr(1)||"";return t(a,
+b,d[1]).then(function(a){a=a.projects.get(d[2]);if(void 0===a)return Promise.reject(null);a=a.stacks.get(d[3]);if(void 0===a)return Promise.reject(null);a=a.channels;if(0===a.length)return Promise.reject(null);a=Object(C.c)(e,a,function(a){return a},function(){});return{offset:d[1].length+d[2].length+d[3].length+3,completions:a}})}function A(a,b){var c=a.match(Y);if(null===c)return Promise.reject(null);a=c[1].split(",");return u(b,a,c[2]).then(function(a){return Object(C.a)(c[1].length+1,a)})}function y(a,
+b){var c=b.match(Y);if(null===c)throw Error("Invalid render point path: "+JSON.stringify(b));return z(a,[c[1]],c[2])}function z(a,b,c){var d=c.match(P);if(null===d)throw Error("Invalid point path "+JSON.stringify(c));var f=d[1],h=d[2],e=d[3],k=Object(D.e)(d[4]||"");return a.memoize.getUncounted({type:"render:MultiscaleVectorGraphicsChunkSource",hostnames:b,path:c},function(){return t(a,b,f).then(function(c){return new aa(a,b,c,e,h,k)})})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"getVolume",
+function(){return l});a.d(e,"volumeCompleter",function(){return A});a.d(e,"MultiscaleVolumeChunkSource",function(){return L});e.computeStackHierarchy=k;e.getOwnerInfo=t;e.getShardedVolume=r;e.stackAndProjectCompleter=u;a.d(e,"MultiscaleVectorGraphicsChunkSource",function(){return aa});e.getPointMatches=y;e.getShardedPointMatches=z;a.d(e,"RenderDataSource",function(){return I});g=a(23);e=a(39);var B=a(240),x=a(92),v=a(138),E=a(19),F=a(28),C=a(46),G=a(3),H=a(47),D=a(6),O=function(){function a(a,b){for(var c=
+0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),J=new Set(["jpg"]),Q=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(F.b,B.b)),T=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(v.b,
+B.a)),S=new Set(["COMPLETE"]),L=function(){function a(b,c,d,f,h,e,k){p(this,a);this.chunkManager=b;this.baseUrls=c;this.ownerInfo=d;this.project=h;this.parameters=k;b=d.projects.get(h);if(void 0===b)throw Error("Specified project "+JSON.stringify(h)+" does not exist for "+("specified owner "+JSON.stringify(d.owner)));if(void 0===f){f=Array.from(b.stacks.keys());if(1!==f.length)throw Error("Dataset contains multiple stacks: "+JSON.stringify(f));f=f[0]}d=b.stacks.get(f);if(void 0===d)throw Error("Specified stack "+
+JSON.stringify(f)+" is not one of the supported stacks: "+JSON.stringify(Array.from(b.stacks.keys())));this.stack=f;this.stackInfo=d;void 0!==e&&0<e.length&&(this.channel=e);this.minIntensity=Object(D.y)(k.minIntensity);this.maxIntensity=Object(D.y)(k.maxIntensity);this.maxTileSpecsToRender=Object(D.y)(k.maxTileSpecsToRender);this.filter=Object(D.x)(k.filter);e=Object(D.z)(k.encoding);if(void 0===e)e="jpg";else if(!J.has(e))throw Error("Invalid encoding: "+JSON.stringify(e)+".");this.encoding=e;this.numLevels=
+Object(D.y)(k.numlevels);this.dims=G.p.create();k=Object(D.y)(k.tilesize);void 0===k&&(k=1024);this.dims[0]=k;this.dims[1]=k;this.dims[2]=1}O(a,[{key:"getSources",value:function(a){var b=[],c=this.numLevels;void 0===c&&(c=k(this.stackInfo,this.dims[0]));for(var d=G.p.create(),f=G.p.create(),h=0;3>h;h++)d[h]=this.stackInfo.lowerVoxelBound[h]*this.stackInfo.voxelResolution[h],f[h]=this.stackInfo.upperVoxelBound[h]*this.stackInfo.voxelResolution[h];for(h=0;h<c;h++){for(var e=G.p.clone(this.stackInfo.voxelResolution),
+l=G.p.fromValues(1,1,1),g=0;2>g;++g)e[g]*=Math.pow(2,h),l[g]=this.dims[g];g=G.p.create();for(var q=G.p.create(),r=0;3>r;r++)g[r]=Math.floor(this.stackInfo.voxelResolution[r]/e[r]*this.stackInfo.lowerVoxelBound[r]),q[r]=Math.ceil(this.stackInfo.voxelResolution[r]/e[r]*this.stackInfo.upperVoxelBound[r]);e=E.c.make({voxelSize:e,chunkDataSize:l,numChannels:this.numChannels,dataType:this.dataType,lowerClipBound:d,upperClipBound:f,lowerVoxelBound:g,upperVoxelBound:q,volumeSourceOptions:a});e=this.chunkManager.getChunkSource(Q,
+{spec:e,parameters:{baseUrls:this.baseUrls,owner:this.ownerInfo.owner,project:this.stackInfo.project,stack:this.stack,channel:this.channel,minIntensity:this.minIntensity,maxIntensity:this.maxIntensity,maxTileSpecsToRender:this.maxTileSpecsToRender,filter:this.filter,dims:this.dims[0]+"_"+this.dims[1],level:h,encoding:this.encoding}});b.push([e])}return b}},{key:"getMeshSource",value:function(){return null}},{key:"dataType",get:function(){return E.a.UINT8}},{key:"numChannels",get:function(){return 3}},
+{key:"volumeType",get:function(){return E.d.IMAGE}}]);return a}(),P=/^([^\/?]+)(?:\/([^\/?]+))?(?:\/([^\/?]+))(?:\/([^\/?]*))?(?:\?(.*))?$/,Y=/^((?:(?:(?:http|https):\/\/[^,\/]+)[^\/?])+)\/(.*)$/,aa=function(){function a(b,c,d,f,h,e){p(this,a);this.chunkManager=b;this.baseUrls=c;this.ownerInfo=d;this.project=h;this.parameters=e;b=d.projects.get(h);if(void 0===b)throw Error("Specified project "+JSON.stringify(h)+" does not exist for "+("specified owner "+JSON.stringify(d.owner)));if(void 0===f){f=
+Array.from(b.stacks.keys());if(1!==f.length)throw Error("Dataset contains multiple stacks: "+JSON.stringify(f));f=f[0]}d=b.stacks.get(f);if(void 0===d)throw Error("Specified stack "+JSON.stringify(f)+" is not one of the supported stacks: "+JSON.stringify(Array.from(b.stacks.keys())));this.stack=f;this.stackInfo=d;d=Object(D.z)(e.matchCollection);void 0===d&&(d=f);this.matchCollection=d;f=Object(D.y)(e.zoffset);void 0===f&&(f=1);this.zoffset=f;this.dims=G.p.create();e=Object(D.y)(e.tilesize);void 0===
+e&&(e=1024);this.dims[0]=e;this.dims[1]=e;this.dims[2]=1}O(a,[{key:"getSources",value:function(a){for(var b=G.p.clone(this.stackInfo.voxelResolution),c=G.p.create(),d=G.p.create(),f=0;3>f;f++)c[f]=Math.floor(this.stackInfo.voxelResolution[f]/b[f]*this.stackInfo.lowerVoxelBound[f]),d[f]=Math.ceil(this.stackInfo.voxelResolution[f]/b[f]*this.stackInfo.upperVoxelBound[f]);f=G.p.clone(d);f[0]+=Math.abs(c[0]);f[1]+=Math.abs(c[1]);f[2]=1;a=x.b.make({voxelSize:b,lowerVoxelBound:c,upperVoxelBound:d,chunkDataSize:f,
+vectorGraphicsSourceOptions:a});return[[this.chunkManager.getChunkSource(T,{spec:a,parameters:{baseUrls:this.baseUrls,owner:this.ownerInfo.owner,project:this.stackInfo.project,stack:this.stack,encoding:"points",matchCollection:this.matchCollection,zoffset:this.zoffset}})]]}}]);return a}(),I=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);O(b,[{key:"getVolume",value:function(a,b){return l(a,b)}},{key:"volumeCompleter",value:function(a,
+b){return A(a,b)}},{key:"getVectorGraphicsSource",value:function(a,b){return y(a,b)}},{key:"description",get:function(){return"Render"}}]);return b}(e.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return q});a.d(e,"b",function(){return t});g=a(43);e=a(87);var c=a(92),b=a(30),d=a(15),f=function l(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return l(a,b,c)}else{if("value"in d)return d.value;b=d.get;
+return void 0===b?void 0:b.call(c)}},h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function(a){function b(a,f){f=void 0===f?{}:f;f=void 0===f.sourceOptions?{}:f.sourceOptions;p(this,b);a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a.chunkManager,a.getSources(f)));a.shader=void 0;a.shaderUpdated=
+!0;a.rpcId=null;f=a.registerDisposer(new d.b);f.RPC_TYPE_ID=c.a;f.initializeCounterpart(a.chunkManager.rpc,{sources:a.sourceIds});a.rpcId=f.rpcId;return a}m(b,a);h(b,[{key:"defineShader",value:function(a){a.addFragmentCode("\nvoid emit(vec4 color) {\n  gl_FragColor = color;\n}\nvoid emitRGBA(vec4 rgba) {\n  emit(vec4(rgba.rgb, rgba.a * uOpacity));\n}\nvoid emitRGB(vec3 rgb) {\n  emit(vec4(rgb, uOpacity));\n}\nvoid emitGrayscale(float value) {\n  emit(vec4(value, value, value, uOpacity));\n}\nvoid emitTransparent() {\n  emit(vec4(0.0, 0.0, 0.0, 0.0));\n}\n")}},
+{key:"beginSlice",value:function(a){a=this.shader;a.bind();return a}}]);return b}(e.a),k=function(a){function c(a,b){p(this,c);a=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,a,b));a.vertexPositions=b.vertexPositions;a.numPoints=Math.floor(a.vertexPositions.length/3);return a}m(c,a);h(c,[{key:"copyToGPU",value:function(a){f(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"copyToGPU",this).call(this,a);this.vertexBuffer=b.a.fromData(a,this.vertexPositions,a.ARRAY_BUFFER,a.STATIC_DRAW)}},
+{key:"freeGPUMemory",value:function(a){f(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"freeGPUMemory",this).call(this,a);this.vertexBuffer.dispose()}}]);return c}(g.b),t=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);h(b,[{key:"getChunk",value:function(a){return new k(this,a)}},{key:"vectorGraphicsCoordinatesInVoxels",get:function(){return!0}}]);return b}(g.c)},function(g,e,a){function p(a,c){if("function"!==typeof c&&
+null!==c)throw new TypeError("Super expression must either be null or a function, not "+typeof c);a.prototype=Object.create(c&&c.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});c&&(Object.setPrototypeOf?Object.setPrototypeOf(a,c):a.__proto__=c)}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"OpenConnectomeDataSource",function(){return c});var n=a(135),m=["http://openconnecto.me","http://www.openconnecto.me"],c=function(a){function b(){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");
+var a=(b.__proto__||Object.getPrototypeOf(b)).call(this,"NDstore server hosted at openconnecto.me",m,n.a);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);return b}(a(91).SingleServerDataSource)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){return a.getChunkSource(z,{parameters:b})}function b(a,b,c){return a.memoize.getUncounted({type:"precomputed:MultiscaleVolumeChunkSource",
+baseUrls:b,path:c},function(){return Object(l.d)(Object(l.b)(b,c+"/info"),"json").then(function(d){return new x(a,b,c,d)})})}function d(a,b){var d=$jscomp.makeIterator(Object(l.c)(b));b=d.next().value;d=d.next().value;return c(a,{baseUrls:b,path:d,lod:0})}function f(a,c){var d=$jscomp.makeIterator(Object(l.c)(c));c=d.next().value;d=d.next().value;return b(a,c,d)}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"getMeshSource",function(){return d});a.d(e,"getVolume",function(){return f});a.d(e,
+"MultiscaleVolumeChunkSource",function(){return x});e.getShardedMeshSource=c;e.getShardedVolume=b;a.d(e,"PrecomputedDataSource",function(){return v});g=a(23);e=a(39);var h=a(243),q=a(61),k=a(19),t=a(28),r=a(3),l=a(47),u=a(6),A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),y=function(a){function b(){p(this,
+b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(t.b,h.c)),z=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);return b}(Object(g.f)(q.c,h.a)),B=function F(a){p(this,F);Object(u.u)(a);this.resolution=Object(u.w)(a,"resolution",function(a){return Object(u.c)(r.p.create(),a,u.p)});this.voxelOffset=Object(u.w)(a,"voxel_offset",function(a){return Object(u.d)(r.p.create(),a)});
+this.size=Object(u.w)(a,"size",function(a){return Object(u.c)(r.p.create(),a,u.A)});this.chunkSizes=Object(u.w)(a,"chunk_sizes",function(a){return Object(u.a)(a,function(a){return Object(u.c)(r.p.create(),a,u.A)})});if(0===this.chunkSizes.length)throw Error("No chunk sizes specified.");(this.encoding=Object(u.w)(a,"encoding",function(a){return Object(u.n)(a,h.b)}))===h.b.COMPRESSED_SEGMENTATION&&(this.compressedSegmentationBlockSize=Object(u.w)(a,"compressed_segmentation_block_size",function(a){return Object(u.c)(r.p.create(),
+a,u.A)}));this.key=Object(u.w)(a,"key",u.B)},x=function(){function a(b,c,d,f){p(this,a);this.chunkManager=b;this.baseUrls=c;this.path=d;Object(u.u)(f);this.dataType=Object(u.w)(f,"data_type",function(a){return Object(u.n)(a,k.a)});this.numChannels=Object(u.w)(f,"num_channels",u.A);this.volumeType=Object(u.w)(f,"type",function(a){return Object(u.n)(a,k.d)});this.mesh=Object(u.w)(f,"mesh",u.z);this.scales=Object(u.w)(f,"scales",function(a){return Object(u.a)(a,function(a){return new B(a)})})}A(a,[{key:"getMeshSource",
+value:function(){var a=this.mesh;return void 0===a?null:c(this.chunkManager,{baseUrls:this.baseUrls,path:this.path+"/"+a,lod:0})}},{key:"getSources",value:function(a){var b=this;return this.scales.map(function(c){return k.c.getDefaults({voxelSize:c.resolution,dataType:b.dataType,numChannels:b.numChannels,transform:r.j.fromTranslation(r.j.create(),r.p.multiply(r.p.create(),c.resolution,c.voxelOffset)),upperVoxelBound:c.size,volumeType:b.volumeType,chunkDataSizes:c.chunkSizes,baseVoxelOffset:c.voxelOffset,
+compressedSegmentationBlockSize:c.compressedSegmentationBlockSize,volumeSourceOptions:a}).map(function(a){return b.chunkManager.getChunkSource(y,{spec:a,parameters:{baseUrls:b.baseUrls,path:b.path+"/"+c.key,encoding:c.encoding}})})})}}]);return a}(),v=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);A(b,[{key:"getVolume",value:function(a,b){return f(a,b)}},{key:"getMeshSource",value:function(a,b){return d(a,b)}},{key:"description",
+get:function(){return"Precomputed file-backed data source"}}]);return b}(e.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=
+Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c){return a.rpc.promiseInvoke(d.a,{chunkManager:a.addCounterpartRef(),url:b},c)}function b(a,b){return a.memoize.getUncounted({type:"nifti/getVolume",url:b},function(){return c(a,b,q.e).then(function(c){return new l(a,b,c)})})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"getVolume",function(){return b});a.d(e,
+"MultiscaleVolumeChunkSource",function(){return l});a.d(e,"NiftiDataSource",function(){return u});g=a(23);e=a(39);var d=a(245),f=a(19),h=a(28),q=a(26),k=a(3),t=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),r=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,
+arguments))}m(b,a);return b}(Object(g.f)(h.b,d.b)),l=function(){function a(b,c,d){p(this,a);this.chunkManager=b;this.url=c;this.info=d}t(a,[{key:"getSources",value:function(a){var b=this.info;a=f.c.withDefaultCompression({volumeType:b.volumeType,chunkDataSize:b.volumeSize,dataType:b.dataType,voxelSize:b.voxelSize,numChannels:b.numChannels,upperVoxelBound:b.volumeSize,transform:Object(k.o)(k.j.create(),b.qoffset,b.quatern,k.g,b.qfac),volumeSourceOptions:a});return[[this.chunkManager.getChunkSource(r,
+{spec:a,parameters:{url:this.url}})]]}},{key:"getMeshSource",value:function(){return null}},{key:"numChannels",get:function(){return this.info.numChannels}},{key:"dataType",get:function(){return this.info.dataType}},{key:"volumeType",get:function(){return this.info.volumeType}}]);return a}(),u=function(a){function c(){p(this,c);return n(this,(c.__proto__||Object.getPrototypeOf(c)).apply(this,arguments))}m(c,a);t(c,[{key:"getVolume",value:function(a,c){return b(a,c)}},{key:"description",get:function(){return"Single NIfTI file"}}]);
+return c}(e.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=
+b)}function m(a){return Object(f.a)(void 0===a?"void main() {\n  emitGrayscale(toNormalized(getDataValue()));\n}\n":a)}e.c=m;a.d(e,"b",function(){return t});g=a(143);var c=a(52),b=a(144),d=a(6),f=a(44),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function l(a,b,c){null===a&&(a=Function.prototype);var d=
+Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return l(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e.a="//NEUROGLANCER_IMAGE_RENDERLAYER_FRAGMENT_MAIN_START";var k=a(90),t=function(a){function e(a,d){var h=void 0===d?{}:d;d=void 0===h.opacity?Object(c.a)(.5):h.opacity;var k=void 0===h.blendMode?Object(b.c)():h.blendMode,l=void 0===h.fragmentMain?m():h.fragmentMain,g=void 0===h.shaderError?Object(f.b)():h.shaderError;
+h=void 0===h.sourceOptions?{}:h.sourceOptions;if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var q=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,{shaderError:g,sourceOptions:h}));q.fragmentMain=l;q.opacity=d;q.blendMode=k;q.registerDisposer(d.changed.add(function(){q.redrawNeeded.dispatch()}));q.registerDisposer(l.changed.add(function(){q.shaderUpdated=!0;q.redrawNeeded.dispatch()}));return q}n(e,a);h(e,[{key:"getShaderKey",value:function(){return"volume.ImageRenderLayer:"+
+JSON.stringify(this.fragmentMain.value)}},{key:"getValueAt",value:function(a){for(var b=$jscomp.makeIterator(this.sources),c=b.next();!c.done;c=b.next()){c=$jscomp.makeIterator(c.value);for(var d=c.next();!d.done;d=c.next())if(d=d.value.getValueAt(a),null!=d)return d}return null}},{key:"defineShader",value:function(a){q(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"defineShader",this).call(this,a);a.addUniform("highp float","uOpacity");a.addFragmentCode("\nvoid emitRGBA(vec4 rgba) {\n  emit(vec4(rgba.rgb, rgba.a * uOpacity));\n}\nvoid emitRGB(vec3 rgb) {\n  emit(vec4(rgb, uOpacity));\n}\nvoid emitGrayscale(float value) {\n  emit(vec4(value, value, value, uOpacity));\n}\nvoid emitTransparent() {\n  emit(vec4(0.0, 0.0, 0.0, 0.0));\n}\n");
+a.addFragmentCode(k);a.setFragmentMainFunction("//NEUROGLANCER_IMAGE_RENDERLAYER_FRAGMENT_MAIN_START\n"+this.fragmentMain.value)}},{key:"beginSlice",value:function(a){a=q(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"beginSlice",this).call(this,a);this.gl.uniform1f(a.uniform("uOpacity"),this.opacity.value);return a}},{key:"setGLBlendMode",value:function(a,c){var f=Object(d.n)(this.blendMode.value,b.b);if(f===b.b.ADDITIVE||0<c)a.enable(a.BLEND),b.a.get(f)(a)}}]);return e}(g.a)},function(g,
+e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){for(var b=0,c=0;3>c;++c)0>a[c]&&(b+=1<<c);return b}a.d(e,"a",function(){return B});var b=a(25);g=a(87);var d=a(19);e=a(1);var f=a(3),h=a(30),q=a(44),k=a(18),t=a(15),r=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),l=f.p.create(),
+u=f.p.create(),A=f.j.create(),y=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.outputVertexIndices=c.registerDisposer(h.a.fromData(a,new Float32Array([0,1,2,3,4,5]),a.ARRAY_BUFFER,a.STATIC_DRAW));c.vertexBasePositions=[0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1];a=[0,1,2,4,5,3,6,7];for(var d=[0,1,2,5,3,4,6,7],f=[0,1,1,4,4,7,4,7,1,5,0,1,1,4,4,7,0,2,2,5,5,7,5,7,2,6,0,2,2,5,5,7,0,3,3,6,6,7,6,7,3,4,0,3,3,6,6,7],e=[0,1,2,3,4,5,6,7,1,4,5,0,3,
+7,2,6,2,6,0,5,7,3,1,4,3,0,6,4,1,2,7,5,4,3,7,1,0,6,5,2,5,2,1,7,6,0,4,3,6,7,3,2,5,4,0,1,7,5,4,6,2,1,3,0],k=[],l=0;8>l;++l)for(var g=0;g<f.length;++g)k.push(a[e[8*d[l]+f[g]]]);c.vertexIndices=new Int32Array(k);return c}m(b,a);r(b,null,[{key:"get",value:function(a){return a.memoize.get("SliceViewShaderBuffers",function(){return new b(a)})}}]);return b}(e.a),z=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.data=c.registerDisposer(y.get(a));return c}
+m(b,a);r(b,null,[{key:"get",value:function(a){return a.memoize.get("volume.VolumeSliceVertexComputationManager",function(){return new b(a)})}}]);r(b,[{key:"defineShader",value:function(a){var b=this.data;a.addAttribute("highp float","aVertexIndexFloat");a.addUniform("highp vec3","uTranslation");a.addUniform("highp mat4","uProjectionMatrix");a.addUniform("highp vec3","uPlaneNormal");a.addUniform("highp float","uPlaneDistance");a.addUniform("highp ivec2","uVertexIndex",24);a.addUniform("highp vec3",
+"uVertexBasePosition",8);a.addInitializer(function(a){a.gl.uniform3fv(a.uniform("uVertexBasePosition"),new Float32Array(b.vertexBasePositions))});a.addUniform("highp vec3","uChunkDataSize");a.addUniform("highp vec3","uVoxelSize");a.addUniform("highp vec3","uLowerClipBound");a.addUniform("highp vec3","uUpperClipBound");a.addVarying("highp vec3","vChunkPosition");a.setVertexMain("\nvec3 chunkSize = uChunkDataSize * uVoxelSize;\nint vertexIndex = int(aVertexIndexFloat);\nfor (int e = 0; e < 4; ++e) {\n  highp ivec2 vidx = uVertexIndex[vertexIndex*4 + e];\n  highp vec3 v1 = max(uLowerClipBound, min(uUpperClipBound, chunkSize * uVertexBasePosition[vidx.x] + uTranslation));\n  highp vec3 v2 = max(uLowerClipBound, min(uUpperClipBound, chunkSize * uVertexBasePosition[vidx.y] + uTranslation));\n  highp vec3 vDir = v2 - v1;\n  highp float denom = dot(vDir, uPlaneNormal);\n  if (abs(denom) > 0.001) {\n    highp float lambda = (uPlaneDistance - dot(v1, uPlaneNormal)) / denom;\n    if ((lambda >= -0.001) && (lambda <= (1.0 + 0.001))) {\n      lambda = clamp(lambda, 0.0, 1.0);\n      highp vec3 position = v1 + lambda * vDir;\n      gl_Position = uProjectionMatrix * vec4(position, 1.0);\n      vChunkPosition = (position - uTranslation) / uVoxelSize + 0.001 * abs(uPlaneNormal);\n      break;\n    }\n  }\n}\n");
+a.addFragmentCode("\nvec3 getPositionWithinChunk () {\n  return floor(min(vChunkPosition, uChunkDataSize - 1.0));\n}\n")}},{key:"computeVerticesDebug",value:function(a,b,d,h,e,k,l,g){a=f.p.multiply(f.p.create(),a,b);var q=c(k);q=this.data.vertexIndices.subarray(48*q,48*(q+1));for(var r=[0,0],m=[f.p.create(),f.p.create()],t=f.p.create(),n=f.p.create(),p=f.p.create(),u=f.p.create(),A=f.p.fromValues(Math.abs(k[0]),Math.abs(k[1]),Math.abs(k[2])),x=new Float32Array(this.data.vertexBasePositions),B=function(a){return x.subarray(3*
+a,3*a+3)},v=0;6>v;++v)for(var y=0;4>y;++y){for(var E=0;2>E;++E)r[E]=q[2*(4*v+y)+E],f.p.multiply(m[E],a,B(r[E])),f.p.add(m[E],m[E],l),f.p.min(m[E],m[E],h),f.p.max(m[E],m[E],d);f.p.subtract(t,m[1],m[0]);E=f.p.dot(t,k);if(.001<Math.abs(E)){var C=(e-f.p.dot(m[0],k))/E;if(-.001<=C&&1.001>=C){C=Math.max(0,Math.min(1,C));f.p.scaleAndAdd(n,m[0],t,C);f.p.transformMat4(p,n,g);f.p.sub(u,n,l);f.p.divide(u,u,b);f.p.scaleAndAdd(u,u,A,.001);console.log("vertex "+v+", e = "+y+", at "+p+", "+("vChunkPosition = "+
+u+", edge dir = "+t+", denom = "+E));break}else console.log("vertex "+v+", e = "+y+", skipped, deom = "+E+", "+("vDir = "+Object(f.q)(t)+", ")+("uPlaneNormal = "+Object(f.q)(k)+", ")+("lambda="+C))}else console.log("vertex "+v+", e = "+y+", skipped, deom = "+E+", "+("vDir = "+Object(f.q)(t)+", uPlaneNormal = "+Object(f.q)(k)))}}},{key:"beginSlice",value:function(a,b){a=b.attribute("aVertexIndexFloat");this.data.outputVertexIndices.bindToVertexAttrib(a,1)}},{key:"endSlice",value:function(a,b){b=b.attribute("aVertexIndexFloat");
+a.disableVertexAttribArray(b)}},{key:"beginSource",value:function(a,b,d,h,e){var k=e.chunkLayout,g=k.globalToLocalSpatialVector(l,d.viewportAxes[2]);d=f.p.dot(k.globalToLocalSpatial(u,d.centerDataPosition),g);a.uniform3fv(b.uniform("uPlaneNormal"),g);a.uniform1f(b.uniform("uPlaneDistance"),d);g=c(g);a.uniform2iv(b.uniform("uVertexIndex"),this.data.vertexIndices.subarray(48*g,48*(g+1)));a.uniformMatrix4fv(b.uniform("uProjectionMatrix"),!1,f.j.multiply(A,h,k.transform));a.uniform3fv(b.uniform("uVoxelSize"),
+e.voxelSize);a.uniform3fv(b.uniform("uLowerClipBound"),e.lowerClipBound);a.uniform3fv(b.uniform("uUpperClipBound"),e.upperClipBound)}},{key:"setupChunkDataSize",value:function(a,b,c){a.uniform3fv(b.uniform("uChunkDataSize"),c)}},{key:"drawChunk",value:function(a,b,c){a.uniform3fv(b.uniform("uTranslation"),c);a.drawArrays(a.TRIANGLE_FAN,0,6)}}]);return b}(e.a),B=function(a){function c(a,b){var f=void 0===b?{}:b;b=void 0===f.shaderError?Object(q.b)():f.shaderError;f=void 0===f.sourceOptions?{}:f.sourceOptions;
+p(this,c);a=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,a.chunkManager,a.getSources(f),{shaderError:b}));a.vertexComputationManager=z.get(a.gl);b=a.registerDisposer(new t.b);b.RPC_TYPE_ID=d.b;b.initializeCounterpart(a.chunkManager.rpc,{sources:a.sourceIds});a.rpcId=b.rpcId;return a}m(c,a);r(c,[{key:"getValueAt",value:function(a){for(var b=$jscomp.makeIterator(this.sources),c=b.next();!c.done;c=b.next()){c=$jscomp.makeIterator(c.value);for(var d=c.next();!d.done;d=c.next())if(d=d.value.getValueAt(a),
+null!=d)return d}return null}},{key:"getShader",value:function(){var a=this,b=this.getShaderKey()+"/"+this.chunkFormat.shaderKey;return this.gl.memoize.get(b,function(){return a.buildShader()})}},{key:"defineShader",value:function(a){this.vertexComputationManager.defineShader(a);a.addFragmentCode("\nvoid emit(vec4 color) {\n  gl_FragData[0] = color;\n}\n");this.chunkFormat.defineShader(a);a.addFragmentCode("\n"+Object(k.a)(this.dataType)+" getDataValue() { return getDataValue(0); }\n")}},{key:"beginSlice",
+value:function(a){a=this.gl;var b=this.shader;b.bind();this.vertexComputationManager.beginSlice(a,b);return b}},{key:"endSlice",value:function(a){this.vertexComputationManager.endSlice(this.gl,a)}},{key:"draw",value:function(a){var c=a.visibleLayers.get(this);if(0!==c.length&&(this.initializeShader(),void 0!==this.shader)){var d=this.gl,h=f.p.create(),e=this.beginSlice(a),k=this.vertexComputationManager,l=this.chunkFormat;l.beginDrawing(d,e);var g={};c=$jscomp.makeIterator(c);for(var q=c.next();!q.done;g=
+{chunkDataSize:g.chunkDataSize},q=c.next()){var r=q.value,m=r.spec.chunkLayout;q=r.chunks;var t=m.size;g.chunkDataSize=void 0;var n=a.visibleChunks.get(m);if(n){k.beginSource(d,e,a,a.dataToDevice,r.spec);r=r.chunkFormat;r.beginSource(d,e);m=function(a){return function(b){a.chunkDataSize=b;k.setupChunkDataSize(d,e,a.chunkDataSize)}}(g);n=$jscomp.makeIterator(n);for(var p=n.next();!p.done;p=n.next())if((p=q.get(p.value))&&p.state===b.d.GPU_MEMORY){var u=p.chunkDataSize;u!==g.chunkDataSize&&m(u);f.p.multiply(h,
+t,p.chunkGridPosition);r.bindChunk(d,e,p);k.drawChunk(d,e,h)}}}l.endDrawing(d,e);this.endSlice(e)}}},{key:"dataType",get:function(){return this.sources[0][0].spec.dataType}},{key:"chunkFormat",get:function(){return this.sources[0][0].chunkFormat}}]);return c}(g.a)},function(g,e,a){function p(a){if(Object(m.n)(a,c))return Object(m.B)(a);throw Error();}a.d(e,"b",function(){return c});e.c=function(a){return new n.a(void 0===a?"default":a,p)};var n=a(14),m=a(6),c;(function(a){a[a.DEFAULT=0]="DEFAULT";
+a[a.ADDITIVE=1]="ADDITIVE"})(c||(c={}));g=new Map;e.a=g;g.set(c.DEFAULT,function(a){a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA)});g.set(c.ADDITIVE,function(a){a.blendFunc(a.SRC_ALPHA,a.ONE)})},function(g,e,a){(function(a,e){g.exports=e()})(this,function(){function a(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}function e(a){for(var b=a.childNodes.length;0<b;--b)a.removeChild(a.firstChild);return a}function g(a,b){return e(a).appendChild(b)}function c(a,b,c,d){a=document.createElement(a);c&&
+(a.className=c);d&&(a.style.cssText=d);if("string"==typeof b)a.appendChild(document.createTextNode(b));else if(b)for(c=0;c<b.length;++c)a.appendChild(b[c]);return a}function b(a,b,d,f){a=c(a,b,d,f);a.setAttribute("role","presentation");return a}function d(a,b){3==b.nodeType&&(b=b.parentNode);if(a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)}function f(){try{var a=document.activeElement}catch(K){a=document.body||null}for(;a&&a.shadowRoot&&a.shadowRoot.activeElement;)a=
+a.shadowRoot.activeElement;return a}function h(b,c){var d=b.className;a(c).test(d)||(b.className+=(d?" ":"")+c)}function q(b,c){b=b.split(" ");for(var d=0;d<b.length;d++)b[d]&&!a(b[d]).test(c)&&(c+=" "+b[d]);return c}function k(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function t(a,b,c){b||(b={});for(var d in a)!a.hasOwnProperty(d)||!1===c&&b.hasOwnProperty(d)||(b[d]=a[d]);return b}function r(a,b,c,d,f){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=
+a.length));d=d||0;for(f=f||0;;){var w=a.indexOf("\t",d);if(0>w||w>=b)return f+(b-d);f+=w-d;f+=c-f%c;d=w+1}}function l(a,b){for(var c=0;c<a.length;++c)if(a[c]==b)return c;return-1}function u(a,b,c){for(var d=0,f=0;;){var w=a.indexOf("\t",d);-1==w&&(w=a.length);var h=w-d;if(w==a.length||f+h>=b)return d+Math.min(h,b-f);f+=w-d;f+=c-f%c;d=w+1;if(f>=b)return d}}function A(a){for(;vc.length<=a;)vc.push(y(vc)+" ");return vc[a]}function y(a){return a[a.length-1]}function z(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=
+b(a[d],d);return c}function B(a,b,c){for(var d=0,f=c(b);d<a.length&&c(a[d])<=f;)d++;a.splice(d,0,b)}function x(){}function v(a,b){Object.create?a=Object.create(a):(x.prototype=a,a=new x);b&&t(b,a);return a}function E(a){return/\w/.test(a)||"\u0080"<a&&(a.toUpperCase()!=a.toLowerCase()||bg.test(a))}function F(a,b){return b?-1<b.source.indexOf("\\w")&&E(a)?!0:b.test(a):E(a)}function C(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;return!0}function G(a){return 768<=a.charCodeAt(0)&&cg.test(a)}
+function H(a,b,c){for(;(0>c?0<b:b<a.length)&&G(a.charAt(b));)b+=c;return b}function D(a,b,c){for(var d=b>c?-1:1;;){if(b==c)return b;var f=(b+c)/2;f=0>d?Math.ceil(f):Math.floor(f);if(f==b)return a(f)?b:c;a(f)?c=f:b=f+d}}function O(a,d,f){this.input=f;this.scrollbarFiller=c("div",null,"CodeMirror-scrollbar-filler");this.scrollbarFiller.setAttribute("cm-not-content","true");this.gutterFiller=c("div",null,"CodeMirror-gutter-filler");this.gutterFiller.setAttribute("cm-not-content","true");this.lineDiv=
+b("div",null,"CodeMirror-code");this.selectionDiv=c("div",null,null,"position: relative; z-index: 1");this.cursorDiv=c("div",null,"CodeMirror-cursors");this.measure=c("div",null,"CodeMirror-measure");this.lineMeasure=c("div",null,"CodeMirror-measure");this.lineSpace=b("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");var w=b("div",[this.lineSpace],"CodeMirror-lines");this.mover=c("div",[w],null,"position: relative");this.sizer=
+c("div",[this.mover],"CodeMirror-sizer");this.sizerWidth=null;this.heightForcer=c("div",null,null,"position: absolute; height: 30px; width: 1px;");this.gutters=c("div",null,"CodeMirror-gutters");this.lineGutter=null;this.scroller=c("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll");this.scroller.setAttribute("tabIndex","-1");this.wrapper=c("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror");U&&8>X&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=
+0);ka||Oa&&Db||(this.scroller.draggable=!0);a&&(a.appendChild?a.appendChild(this.wrapper):a(this.wrapper));this.reportedViewFrom=this.reportedViewTo=this.viewFrom=this.viewTo=d.first;this.view=[];this.externalMeasured=this.renderedView=null;this.lastWrapHeight=this.lastWrapWidth=this.viewOffset=0;this.updateLineNumbers=null;this.nativeBarWidth=this.barHeight=this.barWidth=0;this.scrollbarsClipped=!1;this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null;this.alignWidgets=!1;this.maxLine=
+this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null;this.maxLineLength=0;this.maxLineChanged=!1;this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null;this.shift=!1;this.activeTouch=this.selForContextMenu=null;f.init(this)}function J(a,b){b-=a.first;if(0>b||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(;!a.lines;)for(var c=0;;++c){var d=a.children[c],f=d.chunkSize();if(b<f){a=d;break}b-=f}return a.lines[b]}function Q(a,b,c){var d=[],f=b.line;
+a.iter(b.line,c.line+1,function(a){a=a.text;f==c.line&&(a=a.slice(0,c.ch));f==b.line&&(a=a.slice(b.ch));d.push(a);++f});return d}function T(a,b,c){var d=[];a.iter(b,c,function(a){d.push(a.text)});return d}function S(a,b){if(b-=a.height)for(;a;a=a.parent)a.height+=b}function L(a){if(null==a.parent)return null;var b=a.parent;a=l(b.lines,a);for(var c=b.parent;c;b=c,c=c.parent)for(var d=0;c.children[d]!=b;++d)a+=c.children[d].chunkSize();return a+b.first}function P(a,b){var c=a.first;a:do{for(var d=0;d<
+a.children.length;++d){var f=a.children[d],w=f.height;if(b<w){a=f;continue a}b-=w;c+=f.chunkSize()}return c}while(!a.lines);for(d=0;d<a.lines.length;++d){f=a.lines[d].height;if(b<f)break;b-=f}return c+d}function Y(a,b){return b>=a.first&&b<a.first+a.size}function aa(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function I(a,b,c){void 0===c&&(c=null);if(!(this instanceof I))return new I(a,b,c);this.line=a;this.ch=b;this.sticky=c}function M(a,b){return a.line-b.line||a.ch-b.ch}function Ba(a,
+b){return a.sticky==b.sticky&&0==M(a,b)}function Ua(a){return I(a.line,a.ch)}function pc(a,b){return 0>M(a,b)?b:a}function rc(a,b){return 0>M(a,b)?a:b}function R(a,b){if(b.line<a.first)return I(a.first,0);var c=a.first+a.size-1;if(b.line>c)return I(c,J(a,c).text.length);a=J(a,b.line).text.length;c=b.ch;b=null==c||c>a?I(b.line,a):0>c?I(b.line,0):b;return b}function tc(a,b){for(var c=[],d=0;d<b.length;d++)c[d]=R(a,b[d]);return c}function Cb(a,b,c){this.marker=a;this.from=b;this.to=c}function Ha(a,b){if(a)for(var c=
+0;c<a.length;++c){var d=a[c];if(d.marker==b)return d}}function qc(a,b){if(b.full)return null;var c=Y(a,b.from.line)&&J(a,b.from.line).markedSpans,d=Y(a,b.to.line)&&J(a,b.to.line).markedSpans;if(!c&&!d)return null;a=b.from.ch;var f=b.to.ch,h=0==M(b.from,b.to),w;if(c)for(var e=0;e<c.length;++e){var k=c[e],g=k.marker;if(null==k.from||(g.inclusiveLeft?k.from<=a:k.from<a)||!(k.from!=a||"bookmark"!=g.type||h&&k.marker.insertLeft)){var l=null==k.to||(g.inclusiveRight?k.to>=a:k.to>a);(w||(w=[])).push(new Cb(g,
+k.from,l?null:k.to))}}c=w;var K;if(d)for(w=0;w<d.length;++w)if(e=d[w],k=e.marker,null==e.to||(k.inclusiveRight?e.to>=f:e.to>f)||e.from==f&&"bookmark"==k.type&&(!h||e.marker.insertLeft))g=null==e.from||(k.inclusiveLeft?e.from<=f:e.from<f),(K||(K=[])).push(new Cb(k,g?null:e.from-f,null==e.to?null:e.to-f));d=1==b.text.length;f=y(b.text).length+(d?a:0);if(c)for(h=0;h<c.length;++h)if(w=c[h],null==w.to)(e=Ha(K,w.marker),e)?d&&(w.to=null==e.to?null:e.to+f):w.to=a;if(K)for(a=0;a<K.length;++a)h=K[a],null!=
+h.to&&(h.to+=f),null==h.from?Ha(c,h.marker)||(h.from=f,d&&(c||(c=[])).push(h)):(h.from+=f,d&&(c||(c=[])).push(h));c&&(c=Wd(c));K&&K!=c&&(K=Wd(K));a=[c];if(!d){b=b.text.length-2;var q;if(0<b&&c)for(d=0;d<c.length;++d)null==c[d].to&&(q||(q=[])).push(new Cb(c[d].marker,null,null));for(c=0;c<b;++c)a.push(q);a.push(K)}return a}function Wd(a){for(var b=0;b<a.length;++b){var c=a[b];null!=c.from&&c.from==c.to&&!1!==c.marker.clearWhenEmpty&&a.splice(b--,1)}return a.length?a:null}function ag(a,b,c){var d=null;
+a.iter(b.line,c.line+1,function(a){if(a.markedSpans)for(var b=0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&-1!=l(d,c)||(d||(d=[])).push(c)}});if(!d)return null;a=[{from:b,to:c}];for(b=0;b<d.length;++b){c=d[b];for(var f=c.find(0),h=0;h<a.length;++h){var w=a[h];if(!(0>M(w.to,f.from)||0<M(w.from,f.to))){var e=[h,1],k=M(w.from,f.from),g=M(w.to,f.to);(0>k||!c.inclusiveLeft&&!k)&&e.push({from:w.from,to:f.from});(0<g||!c.inclusiveRight&&!g)&&e.push({from:f.to,to:w.to});a.splice.apply(a,
+e);h+=e.length-3}}}return a}function lb(a){var b=a.markedSpans;if(b){for(var c=0;c<b.length;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function Xd(a,b){if(b){for(var c=0;c<b.length;++c)b[c].marker.attachLine(a);a.markedSpans=b}}function Xc(a,b){var c=a.lines.length-b.lines.length;if(0!=c)return c;c=a.find();var d=b.find(),f=M(c.from,d.from)||(a.inclusiveLeft?-1:0)-(b.inclusiveLeft?-1:0);return f?-f:(c=M(c.to,d.to)||(a.inclusiveRight?1:0)-(b.inclusiveRight?1:0))?c:b.id-a.id}function Ma(a,b){a=
+Ia&&a.markedSpans;if(a)for(var c,d=0;d<a.length;++d)if(c=a[d],c.marker.collapsed&&null==(b?c.from:c.to)&&(!f||0>Xc(f,c.marker)))var f=c.marker;return f}function sc(a,b,c,d,f){a=J(a,b);if(a=Ia&&a.markedSpans)for(b=0;b<a.length;++b){var h=a[b];if(h.marker.collapsed){var w=h.marker.find(0),e=M(w.from,c)||(h.marker.inclusiveLeft?-1:0)-(f.inclusiveLeft?-1:0),k=M(w.to,d)||(h.marker.inclusiveRight?1:0)-(f.inclusiveRight?1:0);if(!(0<=e&&0>=k||0>=e&&0<=k)&&(0>=e&&(h.marker.inclusiveRight&&f.inclusiveLeft?
+0<=M(w.to,c):0<M(w.to,c))||0<=e&&(h.marker.inclusiveRight&&f.inclusiveLeft?0>=M(w.from,d):0>M(w.from,d))))return!0}}}function Ca(a){for(var b;b=Ma(a,!0);)a=b.find(-1,!0).line;return a}function Yc(a,b){a=J(a,b);var c=Ca(a);return a==c?b:L(c)}function Yd(a,b){if(b>a.lastLine())return b;var c=J(a,b);if(!Va(a,c))return b;for(;a=Ma(c,!1);)c=a.find(1,!0).line;return L(c)+1}function Va(a,b){var c=Ia&&b.markedSpans;if(c)for(var d,f=0;f<c.length;++f)if(d=c[f],d.marker.collapsed&&(null==d.from||!d.marker.widgetNode&&
+0==d.from&&d.marker.inclusiveLeft&&Zc(a,b,d)))return!0}function Zc(a,b,c){if(null==c.to)return b=c.marker.find(1,!0),Zc(a,b.line,Ha(b.line.markedSpans,c.marker));if(c.marker.inclusiveRight&&c.to==b.text.length)return!0;for(var d,f=0;f<b.markedSpans.length;++f)if(d=b.markedSpans[f],d.marker.collapsed&&!d.marker.widgetNode&&d.from==c.to&&(null==d.to||d.to!=c.from)&&(d.marker.inclusiveLeft||c.marker.inclusiveRight)&&Zc(a,b,d))return!0}function Da(a){a=Ca(a);for(var b=0,c=a.parent,d=0;d<c.lines.length;++d){var f=
+c.lines[d];if(f==a)break;else b+=f.height}for(a=c.parent;a;c=a,a=c.parent)for(d=0;d<a.children.length&&(f=a.children[d],f!=c);++d)b+=f.height;return b}function wc(a){if(0==a.height)return 0;for(var b=a.text.length,c,d=a;c=Ma(d,!0);)c=c.find(0,!0),d=c.from.line,b+=c.from.ch-c.to.ch;for(d=a;c=Ma(d,!1);)a=c.find(0,!0),b-=d.text.length-a.from.ch,d=a.to.line,b+=d.text.length-a.to.ch;return b}function $c(a){var b=a.display;a=a.doc;b.maxLine=J(a,a.first);b.maxLineLength=wc(b.maxLine);b.maxLineChanged=!0;
+a.iter(function(a){var c=wc(a);c>b.maxLineLength&&(b.maxLineLength=c,b.maxLine=a)})}function dg(a,b,c,d){if(!a)return d(b,c,"ltr",0);for(var f=!1,h=0;h<a.length;++h){var w=a[h];if(w.from<c&&w.to>b||b==c&&w.to==b)d(Math.max(w.from,b),Math.min(w.to,c),1==w.level?"rtl":"ltr",h),f=!0}f||d(b,c,"ltr")}function Eb(a,b,c){var d;Fb=null;for(var f=0;f<a.length;++f){var h=a[f];if(h.from<b&&h.to>b)return f;h.to==b&&(h.from!=h.to&&"before"==c?d=f:Fb=f);h.from==b&&(h.from!=h.to&&"before"!=c?d=f:Fb=f)}return null!=
+d?d:Fb}function Ja(a,b){var c=a.order;null==c&&(c=a.order=eg(a.text,b));return c}function sa(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else{var d=(a=a._handlers)&&a[b];d&&(c=l(d,c),-1<c&&(a[b]=d.slice(0,c).concat(d.slice(c+1))))}}function ba(a,b){var c=a._handlers&&a._handlers[b]||xc;if(c.length)for(var d=Array.prototype.slice.call(arguments,2),f=0;f<c.length;++f)c[f].apply(null,d)}function ea(a,b,c){"string"==typeof b&&(b={type:b,
+preventDefault:function(){this.defaultPrevented=!0}});ba(a,c||b.type,a,b);return ad(b)||b.codemirrorIgnore}function $d(a){var b=a._handlers&&a._handlers.cursorActivity;if(b){a=a.curOp.cursorActivityHandlers||(a.curOp.cursorActivityHandlers=[]);for(var c=0;c<b.length;++c)-1==l(a,b[c])&&a.push(b[c])}}function va(a,b){return 0<(a._handlers&&a._handlers[b]||xc).length}function mb(a){a.prototype.on=function(a,b){N(this,a,b)};a.prototype.off=function(a,b){sa(this,a,b)}}function na(a){a.preventDefault?a.preventDefault():
+a.returnValue=!1}function ae(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function ad(a){return null!=a.defaultPrevented?a.defaultPrevented:0==a.returnValue}function Gb(a){na(a);ae(a)}function be(a){var b=a.which;null==b&&(a.button&1?b=1:a.button&2?b=3:a.button&4&&(b=2));wa&&a.ctrlKey&&1==b&&(b=3);return b}function fg(a){if(null==bd){var b=c("span","\u200b");g(a,c("span",[b,document.createTextNode("x")]));0!=a.firstChild.offsetHeight&&(bd=1>=b.offsetWidth&&2<b.offsetHeight&&!(U&&8>X))}a=
+bd?c("span","\u200b"):c("span","\u00a0",null,"display: inline-block; width: 1px; margin-right: -1px");a.setAttribute("cm-text","");return a}function gg(a,b){2<arguments.length&&(b.dependencies=Array.prototype.slice.call(arguments,2));cd[a]=b}function yc(a){if("string"==typeof a&&nb.hasOwnProperty(a))a=nb[a];else if(a&&"string"==typeof a.name&&nb.hasOwnProperty(a.name)){var b=nb[a.name];"string"==typeof b&&(b={name:b});a=v(b,a);a.name=b.name}else{if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return yc("application/xml");
+if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return yc("application/json")}return"string"==typeof a?{name:a}:a||{name:"null"}}function dd(a,b){b=yc(b);var c=cd[b.name];if(!c)return dd(a,"text/plain");a=c(a,b);if(ob.hasOwnProperty(b.name)){c=ob[b.name];for(var d in c)c.hasOwnProperty(d)&&(a.hasOwnProperty(d)&&(a["_"+d]=a[d]),a[d]=c[d])}a.name=b.name;b.helperType&&(a.helperType=b.helperType);if(b.modeProps)for(var f in b.modeProps)a[f]=b.modeProps[f];return a}function hg(a,b){a=ob.hasOwnProperty(a)?
+ob[a]:ob[a]={};t(b,a)}function Xa(a,b){if(!0===b)return b;if(a.copyState)return a.copyState(b);a={};for(var c in b){var d=b[c];d instanceof Array&&(d=d.concat([]));a[c]=d}return a}function ed(a,b){for(var c;a.innerMode;){c=a.innerMode(b);if(!c||c.mode==a)break;b=c.state;a=c.mode}return c||{mode:a,state:b}}function ce(a,b,c){return a.startState?a.startState(b,c):!0}function de(a,b,c,d){var f=[a.state.modeGen],h={};ee(a,b.text,a.doc.mode,c,function(a,b){return f.push(a,b)},h,d);var w=c.state;d=function(d){c.baseTokens=
+f;var e=a.state.overlays[d],k=1,g=0;c.state=!0;ee(a,b.text,e.mode,c,function(a,b){for(var c=k;g<a;){var d=f[k];d>a&&f.splice(k,1,a,f[k+1],d);k+=2;g=Math.min(a,d)}if(b)if(e.opaque)f.splice(c,k-c,a,"overlay "+b),k=c+2;else for(;c<k;c+=2)a=f[c+1],f[c+1]=(a?a+" ":"")+"overlay "+b},h);c.state=w;c.baseTokens=null;c.baseTokenPos=1};for(var e=0;e<a.state.overlays.length;++e)d(e);return{styles:f,classes:h.bgClass||h.textClass?h:null}}function fe(a,b,c){if(!b.styles||b.styles[0]!=a.state.modeGen){var d=Hb(a,
+L(b)),f=b.text.length>a.options.maxHighlightLength&&Xa(a.doc.mode,d.state),h=de(a,b,d);f&&(d.state=f);b.stateAfter=d.save(!f);b.styles=h.styles;h.classes?b.styleClasses=h.classes:b.styleClasses&&(b.styleClasses=null);c===a.doc.highlightFrontier&&(a.doc.modeFrontier=Math.max(a.doc.modeFrontier,++a.doc.highlightFrontier))}return b.styles}function Hb(a,b,c){var d=a.doc,f=a.display;if(!d.mode.startState)return new Ea(d,!0,b);var h=ig(a,b,c),w=h>d.first&&J(d,h-1).stateAfter,e=w?Ea.fromSaved(d,w,h):new Ea(d,
+ce(d.mode),h);d.iter(h,b,function(c){fd(a,c.text,e);var d=e.line;c.stateAfter=d==b-1||0==d%5||d>=f.viewFrom&&d<f.viewTo?e.save():null;e.nextLine()});c&&(d.modeFrontier=e.line);return e}function fd(a,b,c,d){var f=a.doc.mode;a=new ca(b,a.options.tabSize,c);a.start=a.pos=d||0;for(""==b&&ge(f,c.state);!a.eol();)gd(f,a,c.state),a.start=a.pos}function ge(a,b){if(a.blankLine)return a.blankLine(b);if(a.innerMode&&(a=ed(a,b),a.mode.blankLine))return a.mode.blankLine(a.state)}function gd(a,b,c,d){for(var f=
+0;10>f;f++){d&&(d[0]=ed(a,c).mode);var h=a.token(b,c);if(b.pos>b.start)return h}throw Error("Mode "+a.name+" failed to advance stream.");}function he(a,b,c,d){var f=a.doc,h=f.mode;b=R(f,b);var e=J(f,b.line);c=Hb(a,b.line,c);a=new ca(e.text,a.options.tabSize,c);var w;for(d&&(w=[]);(d||a.pos<b.ch)&&!a.eol();){a.start=a.pos;var k=gd(h,a,c.state);d&&w.push(new ie(a,k,Xa(f.mode,c.state)))}return d?w:new ie(a,k,c.state)}function je(a,b){if(a)for(;;){var c=a.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!c)break;
+a=a.slice(0,c.index)+a.slice(c.index+c[0].length);var d=c[1]?"bgClass":"textClass";null==b[d]?b[d]=c[2]:(new RegExp("(?:^|s)"+c[2]+"(?:$|s)")).test(b[d])||(b[d]+=" "+c[2])}return a}function ee(a,b,c,d,f,h,e){var w=c.flattenSpans;null==w&&(w=a.options.flattenSpans);var k=0,g=null,l=new ca(b,a.options.tabSize,d),q=a.options.addModeClass&&[null];for(""==b&&je(ge(c,d.state),h);!l.eol();){if(l.pos>a.options.maxHighlightLength){w=!1;e&&fd(a,b,d,l.pos);l.pos=b.length;var K=null}else K=je(gd(c,l,d.state,
+q),h);if(q){var r=q[0].name;r&&(K="m-"+(K?r+" "+K:r))}if(!w||g!=K){for(;k<l.start;)k=Math.min(l.start,k+5E3),f(k,g);g=K}l.start=l.pos}for(;k<l.pos;)a=Math.min(l.pos,k+5E3),f(a,g),k=a}function ig(a,b,c){for(var d,f,h=a.doc,e=c?-1:b-(a.doc.mode.innerMode?1E3:100);b>e;--b){if(b<=h.first)return h.first;var w=J(h,b-1),k=w.stateAfter;if(k&&(!c||b+(k instanceof zc?k.lookAhead:0)<=h.modeFrontier))return b;w=r(w.text,null,a.options.tabSize);if(null==f||d>w)f=b-1,d=w}return f}function jg(a,b){a.modeFrontier=
+Math.min(a.modeFrontier,b);if(!(a.highlightFrontier<b-10)){for(var c=a.first,d=b-1;d>c;d--){var f=J(a,d).stateAfter;if(f&&(!(f instanceof zc)||d+f.lookAhead<b)){c=d+1;break}}a.highlightFrontier=Math.min(a.highlightFrontier,c)}}function ke(a,b){if(!a||/^\s*$/.test(a))return null;b=b.addModeClass?kg:lg;return b[a]||(b[a]=a.replace(/\S+/g,"cm-$&"))}function le(a,c){var d=b("span",null,null,ka?"padding-right: .1px":null);d={pre:b("pre",[d],"CodeMirror-line"),content:d,col:0,pos:0,cm:a,trailingSpace:!1,
+splitSpaces:(U||ka)&&a.getOption("lineWrapping")};c.measure={};for(var f=0;f<=(c.rest?c.rest.length:0);f++){var h=f?c.rest[f-1]:c.line,w=void 0;d.pos=0;d.addToken=mg;var k=a.display.measure;if(null!=hd)k=hd;else{var l=g(k,document.createTextNode("A\u062eA")),K=Ib(l,0,1).getBoundingClientRect();l=Ib(l,1,2).getBoundingClientRect();e(k);k=K&&K.left!=K.right?hd=3>l.right-K.right:!1}k&&(w=Ja(h,a.doc.direction))&&(d.addToken=ng(d.addToken,w));d.map=[];var r=c!=a.display.externalMeasured&&L(h);a:{var m=
+l=K=k=void 0,t=void 0,n=void 0,p=void 0;w=d;r=fe(a,h,r);var u=h.markedSpans,A=h.text,x=0;if(u)for(var B=A.length,v=0,y=1,E="",C=0;;){if(C==v){t=m=l=K=n="";k=null;C=Infinity;for(var F=[],z=void 0,G=0;G<u.length;++G){var H=u[G],D=H.marker;"bookmark"==D.type&&H.from==v&&D.widgetNode?F.push(D):H.from<=v&&(null==H.to||H.to>v||D.collapsed&&H.to==v&&H.from==v)?(null!=H.to&&H.to!=v&&C>H.to&&(C=H.to,m=""),D.className&&(t+=" "+D.className),D.css&&(n=(n?n+";":"")+D.css),D.startStyle&&H.from==v&&(l+=" "+D.startStyle),
+D.endStyle&&H.to==C&&(z||(z=[])).push(D.endStyle,H.to),D.title&&!K&&(K=D.title),D.collapsed&&(!k||0>Xc(k.marker,D))&&(k=H)):H.from>v&&C>H.from&&(C=H.from)}if(z)for(G=0;G<z.length;G+=2)z[G+1]==C&&(m+=" "+z[G]);if(!k||k.from==v)for(z=0;z<F.length;++z)me(w,0,F[z]);if(k&&(k.from||0)==v){me(w,(null==k.to?B+1:k.to)-v,k.marker,null==k.from);if(null==k.to)break a;k.to==v&&(k=!1)}}if(v>=B)break;for(F=Math.min(B,C);;){if(E){z=v+E.length;k||(G=z>F?E.slice(0,F-v):E,w.addToken(w,G,p?p+t:t,l,v+G.length==C?m:"",
+K,n));if(z>=F){E=E.slice(F-v);v=F;break}v=z;l=""}E=A.slice(x,x=r[y++]);p=ke(r[y++],w.cm.options)}}else for(k=1;k<r.length;k+=2)w.addToken(w,A.slice(x,x=r[k]),ke(r[k+1],w.cm.options))}h.styleClasses&&(h.styleClasses.bgClass&&(d.bgClass=q(h.styleClasses.bgClass,d.bgClass||"")),h.styleClasses.textClass&&(d.textClass=q(h.styleClasses.textClass,d.textClass||"")));0==d.map.length&&d.map.push(0,0,d.content.appendChild(fg(a.display.measure)));0==f?(c.measure.map=d.map,c.measure.cache={}):((c.measure.maps||
+(c.measure.maps=[])).push(d.map),(c.measure.caches||(c.measure.caches=[])).push({}))}ka&&(f=d.content.lastChild,/\bcm-tab\b/.test(f.className)||f.querySelector&&f.querySelector(".cm-tab"))&&(d.content.className="cm-tab-wrap-hack");ba(a,"renderLine",a,c.line,d.pre);d.pre.className&&(d.textClass=q(d.pre.className,d.textClass||""));return d}function og(a){var b=c("span","\u2022","cm-invalidchar");b.title="\\u"+a.charCodeAt(0).toString(16);b.setAttribute("aria-label",b.title);return b}function mg(a,b,
+d,f,h,e,k){if(b){if(a.splitSpaces){var w=a.trailingSpace;if(1<b.length&&!/  /.test(b))w=b;else{for(var l="",g=0;g<b.length;g++){var q=b.charAt(g);" "!=q||!w||g!=b.length-1&&32!=b.charCodeAt(g+1)||(q="\u00a0");l+=q;w=" "==q}w=l}}else w=b;l=w;g=a.cm.state.specialChars;q=!1;if(g.test(b)){w=document.createDocumentFragment();for(var K=0;;){g.lastIndex=K;var r=g.exec(b),m=r?r.index-K:b.length-K;if(m){var t=document.createTextNode(l.slice(K,K+m));U&&9>X?w.appendChild(c("span",[t])):w.appendChild(t);a.map.push(a.pos,
+a.pos+m,t);a.col+=m;a.pos+=m}if(!r)break;K+=m+1;"\t"==r[0]?(r=a.cm.options.tabSize,r-=a.col%r,m=w.appendChild(c("span",A(r),"cm-tab")),m.setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),a.col+=r):("\r"==r[0]||"\n"==r[0]?(m=w.appendChild(c("span","\r"==r[0]?"\u240d":"\u2424","cm-invalidchar")),m.setAttribute("cm-text",r[0])):(m=a.cm.options.specialCharPlaceholder(r[0]),m.setAttribute("cm-text",r[0]),U&&9>X?w.appendChild(c("span",[m])):w.appendChild(m)),a.col+=1);a.map.push(a.pos,
+a.pos+1,m);a.pos++}}else a.col+=b.length,w=document.createTextNode(l),a.map.push(a.pos,a.pos+b.length,w),U&&9>X&&(q=!0),a.pos+=b.length;a.trailingSpace=32==l.charCodeAt(b.length-1);if(d||f||h||q||k)return b=d||"",f&&(b+=f),h&&(b+=h),f=c("span",[w],b,k),e&&(f.title=e),a.content.appendChild(f);a.content.appendChild(w)}}function ng(a,b){return function(c,d,f,h,e,w,k){f=f?f+" cm-force-border":"cm-force-border";for(var l=c.pos,g=l+d.length;;){for(var q=void 0,K=0;K<b.length&&!(q=b[K],q.to>l&&q.from<=l);K++);
+if(q.to>=g)return a(c,d,f,h,e,w,k);a(c,d.slice(0,q.to-l),f,h,null,w,k);h=null;d=d.slice(q.to-l);l=q.to}}}function me(a,b,c,d){var f=!d&&c.widgetNode;f&&a.map.push(a.pos,a.pos+b,f);!d&&a.cm.display.input.needsContentAttribute&&(f||(f=a.content.appendChild(document.createElement("span"))),f.setAttribute("cm-marker",c.id));f&&(a.cm.display.input.setUneditable(f),a.content.appendChild(f));a.pos+=b;a.trailingSpace=!1}function ne(a,b,c){for(var d=this.line=b,f;d=Ma(d,!1);)d=d.find(1,!0).line,(f||(f=[])).push(d);
+this.size=(this.rest=f)?L(y(this.rest))-c+1:1;this.node=this.text=null;this.hidden=Va(a,b)}function Ac(a,b,c){var d=[],f;for(f=b;f<c;)b=new ne(a.doc,J(a.doc,f),f),f+=b.size,d.push(b);return d}function pg(a,b){if(a=a.ownsGroup)try{var c=a.delayedCallbacks,d=0;do{for(;d<c.length;d++)c[d].call(null);for(var f=0;f<a.ops.length;f++){var h=a.ops[f];if(h.cursorActivityHandlers)for(;h.cursorActivityCalled<h.cursorActivityHandlers.length;)h.cursorActivityHandlers[h.cursorActivityCalled++].call(null,h.cm)}}while(d<
+c.length)}finally{pb=null,b(a)}}function ia(a,b){var c=a._handlers&&a._handlers[b]||xc;if(c.length){var d=Array.prototype.slice.call(arguments,2);if(pb)var f=pb.delayedCallbacks;else Jb?f=Jb:(f=Jb=[],setTimeout(qg,0));for(var h=function(a){f.push(function(){return c[a].apply(null,d)})},e=0;e<c.length;++e)h(e)}}function qg(){var a=Jb;Jb=null;for(var b=0;b<a.length;++b)a[b]()}function oe(a,b,c,d){for(var f=0;f<b.changes.length;f++){var h=b.changes[f];if("text"==h){h=a;var e=b,w=e.text.className,k=pe(h,
+e);e.text==e.node&&(e.node=k.pre);e.text.parentNode.replaceChild(k.pre,e.text);e.text=k.pre;k.bgClass!=e.bgClass||k.textClass!=e.textClass?(e.bgClass=k.bgClass,e.textClass=k.textClass,id(h,e)):w&&(e.text.className=w)}else if("gutter"==h)qe(a,b,c,d);else if("class"==h)id(a,b);else if("widget"==h){h=a;e=b;w=d;e.alignable&&(e.alignable=null);k=e.node.firstChild;for(var l;k;k=l)l=k.nextSibling,"CodeMirror-linewidget"==k.className&&e.node.removeChild(k);re(h,e,w)}}b.changes=null}function Kb(a){a.node==
+a.text&&(a.node=c("div",null,null,"position: relative"),a.text.parentNode&&a.text.parentNode.replaceChild(a.node,a.text),a.node.appendChild(a.text),U&&8>X&&(a.node.style.zIndex=2));return a.node}function pe(a,b){var c=a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):le(a,b)}function id(a,b){var d=b.bgClass?b.bgClass+" "+(b.line.bgClass||""):b.line.bgClass;d&&(d+=" CodeMirror-linebackground");if(b.background)d?b.background.className=
+d:(b.background.parentNode.removeChild(b.background),b.background=null);else if(d){var f=Kb(b);b.background=f.insertBefore(c("div",null,d),f.firstChild);a.display.input.setUneditable(b.background)}b.line.wrapClass?Kb(b).className=b.line.wrapClass:b.node!=b.text&&(b.node.className="");b.text.className=(b.textClass?b.textClass+" "+(b.line.textClass||""):b.line.textClass)||""}function qe(a,b,d,f){b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null);b.gutterBackground&&(b.node.removeChild(b.gutterBackground),
+b.gutterBackground=null);if(b.line.gutterClass){var h=Kb(b);b.gutterBackground=c("div",null,"CodeMirror-gutter-background "+b.line.gutterClass,"left: "+(a.options.fixedGutter?f.fixedPos:-f.gutterTotalWidth)+"px; width: "+f.gutterTotalWidth+"px");a.display.input.setUneditable(b.gutterBackground);h.insertBefore(b.gutterBackground,b.text)}h=b.line.gutterMarkers;if(a.options.lineNumbers||h){var e=Kb(b),w=b.gutter=c("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter?f.fixedPos:-f.gutterTotalWidth)+
+"px");a.display.input.setUneditable(w);e.insertBefore(w,b.text);b.line.gutterClass&&(w.className+=" "+b.line.gutterClass);!a.options.lineNumbers||h&&h["CodeMirror-linenumbers"]||(b.lineNumber=w.appendChild(c("div",aa(a.options,d),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+f.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px")));if(h)for(b=0;b<a.options.gutters.length;++b)d=a.options.gutters[b],(e=h.hasOwnProperty(d)&&h[d])&&w.appendChild(c("div",[e],"CodeMirror-gutter-elt",
+"left: "+f.gutterLeft[d]+"px; width: "+f.gutterWidth[d]+"px"))}}function rg(a,b,c,d){var f=pe(a,b);b.text=b.node=f.pre;f.bgClass&&(b.bgClass=f.bgClass);f.textClass&&(b.textClass=f.textClass);id(a,b);qe(a,b,c,d);re(a,b,d);return b.node}function re(a,b,c){se(a,b.line,b,c,!0);if(b.rest)for(var d=0;d<b.rest.length;d++)se(a,b.rest[d],b,c,!1)}function se(a,b,d,f,h){if(b.widgets){var e=Kb(d),w=0;for(b=b.widgets;w<b.length;++w){var k=b[w],l=c("div",[k.node],"CodeMirror-linewidget");k.handleMouseEvents||l.setAttribute("cm-ignore-events",
+"true");var g=k,q=l,K=f;if(g.noHScroll){(d.alignable||(d.alignable=[])).push(q);var r=K.wrapperWidth;q.style.left=K.fixedPos+"px";g.coverGutter||(r-=K.gutterTotalWidth,q.style.paddingLeft=K.gutterTotalWidth+"px");q.style.width=r+"px"}g.coverGutter&&(q.style.zIndex=5,q.style.position="relative",g.noHScroll||(q.style.marginLeft=-K.gutterTotalWidth+"px"));a.display.input.setUneditable(l);h&&k.above?e.insertBefore(l,d.gutter||d.text):e.appendChild(l);ia(k,"redraw")}}}function Lb(a){if(null!=a.height)return a.height;
+var b=a.doc.cm;if(!b)return 0;if(!d(document.body,a.node)){var f="position: relative;";a.coverGutter&&(f+="margin-left: -"+b.display.gutters.offsetWidth+"px;");a.noHScroll&&(f+="width: "+b.display.wrapper.clientWidth+"px;");g(b.display.measure,c("div",[a.node],null,f))}return a.height=a.node.parentNode.offsetHeight}function Ka(a,b){for(b=b.target||b.srcElement;b!=a.wrapper;b=b.parentNode)if(!b||1==b.nodeType&&"true"==b.getAttribute("cm-ignore-events")||b.parentNode==a.sizer&&b!=a.mover)return!0}function jd(a){return a.mover.offsetHeight-
+a.lineSpace.offsetHeight}function te(a){if(a.cachedPaddingH)return a.cachedPaddingH;var b=g(a.measure,c("pre","x"));b=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle;b={left:parseInt(b.paddingLeft),right:parseInt(b.paddingRight)};isNaN(b.left)||isNaN(b.right)||(a.cachedPaddingH=b);return b}function Fa(a){return 30-a.display.nativeBarWidth}function Ya(a){return a.display.scroller.clientWidth-Fa(a)-a.display.barWidth}function kd(a){return a.display.scroller.clientHeight-Fa(a)-a.display.barHeight}
+function ue(a,b,c){if(a.line==b)return{map:a.measure.map,cache:a.measure.cache};for(var d=0;d<a.rest.length;d++)if(a.rest[d]==b)return{map:a.measure.maps[d],cache:a.measure.caches[d]};for(b=0;b<a.rest.length;b++)if(L(a.rest[b])>c)return{map:a.measure.maps[b],cache:a.measure.caches[b],before:!0}}function ld(a,b){if(b>=a.display.viewFrom&&b<a.display.viewTo)return a.display.view[Za(a,b)];if((a=a.display.externalMeasured)&&b>=a.lineN&&b<a.lineN+a.size)return a}function $a(a,b){var c=L(b),d=ld(a,c);d&&
+!d.text?d=null:d&&d.changes&&(oe(a,d,c,md(a)),a.curOp.forceUpdate=!0);if(!d){var f=Ca(b);d=L(f);f=a.display.externalMeasured=new ne(a.doc,f,d);f.lineN=d;d=f.built=le(a,f);f.text=d.pre;g(a.display.lineMeasure,d.pre);d=f}a=ue(d,b,c);return{line:b,view:d,rect:null,map:a.map,cache:a.cache,before:a.before,hasHeights:!1}}function xa(a,b,d,f,h){b.before&&(d=-1);var e=d+(f||"");if(b.cache.hasOwnProperty(e))a=b.cache[e];else{b.rect||(b.rect=b.view.text.getBoundingClientRect());if(!b.hasHeights){var w=b.view,
+k=b.rect,l=a.options.lineWrapping,q=l&&Ya(a);if(!w.measure.heights||l&&w.measure.width!=q){var K=w.measure.heights=[];if(l)for(w.measure.width=q,w=w.text.firstChild.getClientRects(),l=0;l<w.length-1;l++){q=w[l];var r=w[l+1];2<Math.abs(q.bottom-r.bottom)&&K.push((q.bottom+r.top)/2-k.top)}K.push(k.bottom-k.top)}b.hasHeights=!0}K=f;w=ve(b.map,d,K);f=w.node;k=w.start;l=w.end;d=w.collapse;if(3==f.nodeType){for(var m=0;4>m;m++){for(;k&&G(b.line.text.charAt(w.coverStart+k));)--k;for(;w.coverStart+l<w.coverEnd&&
+G(b.line.text.charAt(w.coverStart+l));)++l;if(U&&9>X&&0==k&&l==w.coverEnd-w.coverStart)var t=f.parentNode.getBoundingClientRect();else{t=Ib(f,k,l).getClientRects();l=we;if("left"==K)for(q=0;q<t.length&&(l=t[q]).left==l.right;q++);else for(q=t.length-1;0<=q&&(l=t[q]).left==l.right;q--);t=l}if(t.left||t.right||0==k)break;l=k;--k;d="right"}U&&11>X&&((m=!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI)||(null!=nd?m=nd:(K=g(a.display.measure,c("span","x")),m=K.getBoundingClientRect(),
+K=Ib(K,0,1).getBoundingClientRect(),m=nd=1<Math.abs(m.left-K.left)),m=!m),m||(m=screen.logicalXDPI/screen.deviceXDPI,K=screen.logicalYDPI/screen.deviceYDPI,t={left:t.left*m,right:t.right*m,top:t.top*K,bottom:t.bottom*K}))}else 0<k&&(d=K="right"),t=a.options.lineWrapping&&1<(m=f.getClientRects()).length?m["right"==K?m.length-1:0]:f.getBoundingClientRect();!(U&&9>X)||k||t&&(t.left||t.right)||(t=(t=f.parentNode.getClientRects()[0])?{left:t.left,right:t.left+Mb(a.display),top:t.top,bottom:t.bottom}:we);
+f=t.top-b.rect.top;k=t.bottom-b.rect.top;m=(f+k)/2;K=b.view.measure.heights;for(w=0;w<K.length-1&&!(m<K[w]);w++);d={left:("right"==d?t.right:t.left)-b.rect.left,right:("left"==d?t.left:t.right)-b.rect.left,top:w?K[w-1]:0,bottom:K[w]};t.left||t.right||(d.bogus=!0);a.options.singleCursorHeightPerLine||(d.rtop=f,d.rbottom=k);a=d;a.bogus||(b.cache[e]=a)}return{left:a.left,right:a.right,top:h?a.rtop:a.top,bottom:h?a.rbottom:a.bottom}}function ve(a,b,c){for(var d,f,h,e,w,k,l=0;l<a.length;l+=3){w=a[l];k=
+a[l+1];if(b<w)f=0,h=1,e="left";else if(b<k)f=b-w,h=f+1;else if(l==a.length-3||b==k&&a[l+3]>b)h=k-w,f=h-1,b>=k&&(e="right");if(null!=f){d=a[l+2];w==k&&c==(d.insertLeft?"left":"right")&&(e=c);if("left"==c&&0==f)for(;l&&a[l-2]==a[l-3]&&a[l-1].insertLeft;)d=a[(l-=3)+2],e="left";if("right"==c&&f==k-w)for(;l<a.length-3&&a[l+3]==a[l+4]&&!a[l+5].insertLeft;)d=a[(l+=3)+2],e="right";break}}return{node:d,start:f,end:h,collapse:e,coverStart:w,coverEnd:k}}function xe(a){if(a.measure&&(a.measure.cache={},a.measure.heights=
+null,a.rest))for(var b=0;b<a.rest.length;b++)a.measure.caches[b]={}}function ye(a){a.display.externalMeasure=null;e(a.display.lineMeasure);for(var b=0;b<a.display.view.length;b++)xe(a.display.view[b])}function Nb(a){ye(a);a.display.cachedCharWidth=a.display.cachedTextHeight=a.display.cachedPaddingH=null;a.options.lineWrapping||(a.display.maxLineChanged=!0);a.display.lineNumChars=null}function ze(){return Bc&&Cc?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):
+window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Ae(){return Bc&&Cc?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function od(a){var b=0;if(a.widgets)for(var c=0;c<a.widgets.length;++c)a.widgets[c].above&&(b+=Lb(a.widgets[c]));return b}function Dc(a,b,c,d,f){f||(f=od(b),c.top+=f,c.bottom+=f);if("line"==d)return c;d||(d="local");b=Da(b);b="local"==
+d?b+a.display.lineSpace.offsetTop:b-a.display.viewOffset;if("page"==d||"window"==d)a=a.display.lineSpace.getBoundingClientRect(),b+=a.top+("window"==d?0:Ae()),d=a.left+("window"==d?0:ze()),c.left+=d,c.right+=d;c.top+=b;c.bottom+=b;return c}function Be(a,b,c){if("div"==c)return b;var d=b.left;b=b.top;"page"==c?(d-=ze(),b-=Ae()):"local"!=c&&c||(c=a.display.sizer.getBoundingClientRect(),d+=c.left,b+=c.top);a=a.display.lineSpace.getBoundingClientRect();return{left:d-a.left,top:b-a.top}}function pd(a,
+b,c,d,f){d||(d=J(a.doc,b.line));var h=d;b=b.ch;d=xa(a,$a(a,d),b,f);return Dc(a,h,d,c)}function ya(a,b,c,d,f,h){function e(b,e){b=xa(a,f,b,e?"right":"left",h);e?b.left=b.right:b.right=b.left;return Dc(a,d,b,c)}function w(a,b,c){return e(c?a-1:a,1==k[b].level!=c)}d=d||J(a.doc,b.line);f||(f=$a(a,d));var k=Ja(d,a.doc.direction),l=b.ch;b=b.sticky;l>=d.text.length?(l=d.text.length,b="before"):0>=l&&(l=0,b="after");if(!k)return e("before"==b?l-1:l,"before"==b);var g=Eb(k,l,b),q=Fb;g=w(l,g,"before"==b);null!=
+q&&(g.other=w(l,q,"before"!=b));return g}function Ce(a,b){var c=0;b=R(a.doc,b);a.options.lineWrapping||(c=Mb(a.display)*b.ch);b=J(a.doc,b.line);a=Da(b)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:a,bottom:a+b.height}}function qd(a,b,c,d,f){a=I(a,b,c);a.xRel=f;d&&(a.outside=!0);return a}function rd(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return qd(d.first,0,null,!0,-1);var f=P(d,c),h=d.first+d.size-1;if(f>h)return qd(d.first+d.size-1,J(d,h).text.length,null,!0,1);0>b&&(b=0);for(var e=
+J(d,f);;){h=sg(a,e,f,b,c);var w=void 0;var k=h.ch+(0<h.xRel?1:0);if(e=Ia&&e.markedSpans)for(var l=0;l<e.length;++l){var g=e[l];g.marker.collapsed&&(null==g.from||g.from<k)&&(null==g.to||g.to>k)&&(!w||0>Xc(w,g.marker))&&(w=g.marker)}if(!w)return h;h=w.find(1);if(h.line==f)return h;e=J(d,f=h.line)}}function De(a,b,c,d){d-=od(b);b=b.text.length;var f=D(function(b){return xa(a,c,b-1).bottom<=d},b,0);b=D(function(b){return xa(a,c,b).top>d},f,b);return{begin:f,end:b}}function Ee(a,b,c,d){c||(c=$a(a,b));
+d=Dc(a,b,xa(a,c,d),"line").top;return De(a,b,c,d)}function sd(a,b,c,d){return a.bottom<=c?!1:a.top>c?!0:(d?a.left:a.right)>b}function sg(a,b,c,d,f){f-=Da(b);var h=$a(a,b),e=od(b),k=0,w=b.text.length,l=!0,g=Ja(b,a.doc.direction);g&&(g=(a.options.lineWrapping?tg:ug)(a,b,c,h,g,d,f),k=(l=1!=g.level)?g.from:g.to-1,w=l?g.to:g.from-1);var q=null,K=null;g=D(function(b){var c=xa(a,h,b);c.top+=e;c.bottom+=e;if(!sd(c,d,f,!1))return!1;c.top<=f&&c.left<=d&&(q=b,K=c);return!0},k,w);var r=!1;K?(k=d-K.left<K.right-
+d,l=k==l,g=q+(l?0:1),l=l?"after":"before",k=k?K.left:K.right):(l||g!=w&&g!=k||g++,l=0==g?"after":g==b.text.length?"before":xa(a,h,g-(l?1:0)).bottom+e<=f==l?"after":"before",r=ya(a,I(c,g,l),"line",b,h),k=r.left,r=f<r.top||f>=r.bottom);g=H(b.text,g,1);return qd(c,g,l,r,d-k)}function ug(a,b,c,d,f,h,e){var k=D(function(k){k=f[k];var w=1!=k.level;return sd(ya(a,I(c,w?k.to:k.from,w?"before":"after"),"line",b,d),h,e,!0)},0,f.length-1),w=f[k];if(0<k){var l=1!=w.level;l=ya(a,I(c,l?w.from:w.to,l?"after":"before"),
+"line",b,d);sd(l,h,e,!0)&&l.top>e&&(w=f[k-1])}return w}function tg(a,b,c,d,f,h,e){e=De(a,b,d,e);c=e.begin;e=e.end;/\s/.test(b.text.charAt(e-1))&&e--;for(var k=b=null,w=0;w<f.length;w++){var l=f[w];if(!(l.from>=e||l.to<=c)){var g=xa(a,d,1!=l.level?Math.min(e,l.to)-1:Math.max(c,l.from)).right;g=g<h?h-g+1E9:g-h;if(!b||k>g)b=l,k=g}}b||(b=f[f.length-1]);b.from<c&&(b={from:c,to:b.to,level:b.level});b.to>e&&(b={from:b.from,to:e,level:b.level});return b}function ab(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;
+if(null==bb){bb=c("pre");for(var b=0;49>b;++b)bb.appendChild(document.createTextNode("x")),bb.appendChild(c("br"));bb.appendChild(document.createTextNode("x"))}g(a.measure,bb);b=bb.offsetHeight/50;3<b&&(a.cachedTextHeight=b);e(a.measure);return b||1}function Mb(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var b=c("span","xxxxxxxxxx"),d=c("pre",[b]);g(a.measure,d);b=b.getBoundingClientRect();b=(b.right-b.left)/10;2<b&&(a.cachedCharWidth=b);return b||10}function md(a){for(var b=a.display,
+c={},d={},f=b.gutters.clientLeft,h=b.gutters.firstChild,e=0;h;h=h.nextSibling,++e)c[a.options.gutters[e]]=h.offsetLeft+h.clientLeft+f,d[a.options.gutters[e]]=h.clientWidth;return{fixedPos:td(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:c,gutterWidth:d,wrapperWidth:b.wrapper.clientWidth}}function td(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function Fe(a){var b=ab(a.display),c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/
+Mb(a.display)-3);return function(f){if(Va(a.doc,f))return 0;var h=0;if(f.widgets)for(var e=0;e<f.widgets.length;e++)f.widgets[e].height&&(h+=f.widgets[e].height);return c?h+(Math.ceil(f.text.length/d)||1)*b:h+b}}function ud(a){var b=a.doc,c=Fe(a);b.iter(function(a){var b=c(a);b!=a.height&&S(a,b)})}function cb(a,b,c,d){var f=a.display;if(!c&&"true"==(b.target||b.srcElement).getAttribute("cm-not-content"))return null;c=f.lineSpace.getBoundingClientRect();try{var h=b.clientX-c.left;var e=b.clientY-c.top}catch(Zd){return null}b=
+rd(a,h,e);var k;d&&1==b.xRel&&(k=J(a.doc,b.line).text).length==b.ch&&(d=r(k,k.length,a.options.tabSize)-k.length,b=I(b.line,Math.max(0,Math.round((h-te(a.display).left)/Mb(a.display))-d)));return b}function Za(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;a=a.display.view;for(var c=0;c<a.length;c++)if(b-=a[c].size,0>b)return c}function Ob(a){a.display.input.showSelection(a.display.input.prepareSelection())}function Ge(a,b){void 0===b&&(b=!0);for(var c=a.doc,d={},
+f=d.cursors=document.createDocumentFragment(),h=d.selection=document.createDocumentFragment(),e=0;e<c.sel.ranges.length;e++)if(b||e!=c.sel.primIndex){var k=c.sel.ranges[e];if(!(k.from().line>=a.display.viewTo||k.to().line<a.display.viewFrom)){var w=k.empty();(w||a.options.showCursorWhenSelecting)&&He(a,k.head,f);w||vg(a,k,h)}}return d}function He(a,b,d){b=ya(a,b,"div",null,null,!a.options.singleCursorHeightPerLine);var f=d.appendChild(c("div","\u00a0","CodeMirror-cursor"));f.style.left=b.left+"px";
+f.style.top=b.top+"px";f.style.height=Math.max(0,b.bottom-b.top)*a.options.cursorHeight+"px";b.other&&(a=d.appendChild(c("div","\u00a0","CodeMirror-cursor CodeMirror-secondarycursor")),a.style.display="",a.style.left=b.other.left+"px",a.style.top=b.other.top+"px",a.style.height=.85*(b.other.bottom-b.other.top)+"px")}function Ec(a,b){return a.top-b.top||a.left-b.left}function vg(a,b,d){function f(a,b,d,f){0>b&&(b=0);b=Math.round(b);f=Math.round(f);w.appendChild(c("div",null,"CodeMirror-selected","position: absolute; left: "+
+a+"px;\n                             top: "+b+"px; width: "+(null==d?q-a:d)+"px;\n                             height: "+(f-b)+"px"))}function h(b,c,d){function h(c,d){return pd(a,I(b,c),"div",w,d)}function e(b,c,d){b=Ee(a,w,null,b);c="ltr"==c==("after"==d)?"left":"right";d="after"==d?b.begin:b.end-(/\s/.test(w.text.charAt(b.end-1))?2:1);return h(d,c)[c]}var w=J(k,b),l=w.text.length,m,t,K=Ja(w,k.direction);dg(K,c||0,null==d?l:d,function(a,b,k,w){var n="ltr"==k,p=h(a,n?"left":"right"),u=h(b-1,n?"right":
+"left"),Wa=null==c&&0==a,Na=null==d&&b==l,uc=0==w;w=!K||w==K.length-1;3>=u.top-p.top?(b=(r?Wa:Na)&&uc?g:(n?p:u).left,f(b,p.top,((r?Na:Wa)&&w?q:(n?u:p).right)-b,p.bottom)):(n?(n=r&&Wa&&uc?g:p.left,Wa=r?q:e(a,k,"before"),a=r?g:e(b,k,"after"),Na=r&&Na&&w?q:u.right):(n=r?e(a,k,"before"):g,Wa=!r&&Wa&&uc?q:p.right,a=!r&&Na&&w?g:u.left,Na=r?e(b,k,"after"):q),f(n,p.top,Wa-n,p.bottom),p.bottom<u.top&&f(g,p.bottom,null,u.top),f(a,u.top,Na-a,u.bottom));if(!m||0>Ec(p,m))m=p;0>Ec(u,m)&&(m=u);if(!t||0>Ec(p,t))t=
+p;0>Ec(u,t)&&(t=u)});return{start:m,end:t}}var e=a.display,k=a.doc,w=document.createDocumentFragment(),l=te(a.display),g=l.left,q=Math.max(e.sizerWidth,Ya(a)-e.sizer.offsetLeft)-l.right,r="ltr"==k.direction;e=b.from();b=b.to();if(e.line==b.line)h(e.line,e.ch,b.ch);else{var m=J(k,e.line);l=J(k,b.line);l=Ca(m)==Ca(l);e=h(e.line,e.ch,l?m.text.length+1:null).end;b=h(b.line,l?0:null,b.ch).start;l&&(e.top<b.top-2?(f(e.right,e.top,null,e.bottom),f(g,b.top,b.left,b.bottom)):f(e.right,e.top,b.left-e.right,
+e.bottom));e.bottom<b.top&&f(g,e.bottom,null,b.top)}d.appendChild(w)}function vd(a){if(a.state.focused){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursorDiv.style.visibility="";0<a.options.cursorBlinkRate?b.blinker=setInterval(function(){return b.cursorDiv.style.visibility=(c=!c)?"":"hidden"},a.options.cursorBlinkRate):0>a.options.cursorBlinkRate&&(b.cursorDiv.style.visibility="hidden")}}function Ie(a){a.state.focused||(a.display.input.focus(),wd(a))}function Je(a){a.state.delayingBlurEvent=
+!0;setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,Pb(a))},100)}function wd(a,b){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1);"nocursor"!=a.options.readOnly&&(a.state.focused||(ba(a,"focus",a,b),a.state.focused=!0,h(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),ka&&setTimeout(function(){return a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),vd(a))}function Pb(a,b){a.state.delayingBlurEvent||
+(a.state.focused&&(ba(a,"blur",a,b),a.state.focused=!1,db(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function Fc(a){a=a.display;for(var b=a.lineDiv.offsetTop,c=0;c<a.view.length;c++){var d=a.view[c];if(!d.hidden){if(U&&8>X){var f=d.node.offsetTop+d.node.offsetHeight;var h=f-b;b=f}else h=d.node.getBoundingClientRect(),h=h.bottom-h.top;f=d.line.height-h;2>h&&(h=ab(a));if(.005<f||-.005>f)if(S(d.line,h),
+Ke(d.line),d.rest)for(h=0;h<d.rest.length;h++)Ke(d.rest[h])}}}function Ke(a){if(a.widgets)for(var b=0;b<a.widgets.length;++b){var c=a.widgets[b],d=c.node.parentNode;d&&(c.height=d.offsetHeight)}}function xd(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop;d=Math.floor(d-a.lineSpace.offsetTop);var f=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight;d=P(b,d);f=P(b,f);if(c&&c.ensure){var h=c.ensure.from.line;c=c.ensure.to.line;h<d?(d=h,f=P(b,Da(J(b,h))+a.wrapper.clientHeight)):Math.min(c,
+b.lastLine())>=f&&(d=P(b,Da(J(b,c))-a.wrapper.clientHeight),f=c)}return{from:d,to:Math.max(f,d+1)}}function Le(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=td(b)-b.scroller.scrollLeft+a.doc.scrollLeft,f=b.gutters.offsetWidth,h=d+"px",e=0;e<c.length;e++)if(!c[e].hidden){a.options.fixedGutter&&(c[e].gutter&&(c[e].gutter.style.left=h),c[e].gutterBackground&&(c[e].gutterBackground.style.left=h));var k=c[e].alignable;if(k)for(var w=0;w<k.length;w++)k[w].style.left=
+h}a.options.fixedGutter&&(b.gutters.style.left=d+f+"px")}}function Me(a){if(!a.options.lineNumbers)return!1;var b=a.doc;b=aa(a.options,b.first+b.size-1);var d=a.display;if(b.length!=d.lineNumChars){var f=d.measure.appendChild(c("div",[c("div",b)],"CodeMirror-linenumber CodeMirror-gutter-elt")),h=f.firstChild.offsetWidth;f=f.offsetWidth-h;d.lineGutter.style.width="";d.lineNumInnerWidth=Math.max(h,d.lineGutter.offsetWidth-f)+1;d.lineNumWidth=d.lineNumInnerWidth+f;d.lineNumChars=d.lineNumInnerWidth?
+b.length:-1;d.lineGutter.style.width=d.lineNumWidth+"px";yd(a);return!0}return!1}function zd(a,b){var c=a.display,d=ab(a.display);0>b.top&&(b.top=0);var f=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:c.scroller.scrollTop,h=kd(a),e={};b.bottom-b.top>h&&(b.bottom=b.top+h);var k=a.doc.height+jd(c),w=b.top<d;d=b.bottom>k-d;b.top<f?e.scrollTop=w?0:b.top:b.bottom>f+h&&(h=Math.min(b.top,(d?k:b.bottom)-h),h!=f&&(e.scrollTop=h));f=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:c.scroller.scrollLeft;
+a=Ya(a)-(a.options.fixedGutter?c.gutters.offsetWidth:0);if(c=b.right-b.left>a)b.right=b.left+a;10>b.left?e.scrollLeft=0:b.left<f?e.scrollLeft=Math.max(0,b.left-(c?0:10)):b.right>a+f-3&&(e.scrollLeft=b.right+(c?0:10)-a);return e}function Gc(a,b){null!=b&&(Hc(a),a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+b)}function qb(a){Hc(a);var b=a.getCursor();a.curOp.scrollToPos={from:b,to:b,margin:a.options.cursorScrollMargin}}function Qb(a,b,c){null==b&&null==c||Hc(a);null!=
+b&&(a.curOp.scrollLeft=b);null!=c&&(a.curOp.scrollTop=c)}function Hc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=Ce(a,b.from),d=Ce(a,b.to);Ne(a,c,d,b.margin)}}function Ne(a,b,c,d){b=zd(a,{left:Math.min(b.left,c.left),top:Math.min(b.top,c.top)-d,right:Math.max(b.right,c.right),bottom:Math.max(b.bottom,c.bottom)+d});Qb(a,b.scrollLeft,b.scrollTop)}function Rb(a,b){2>Math.abs(a.doc.scrollTop-b)||(Oa||Ad(a,{top:b}),Oe(a,b,!0),Oa&&Ad(a),Sb(a,100))}function Oe(a,b,c){b=Math.min(a.display.scroller.scrollHeight-
+a.display.scroller.clientHeight,b);if(a.display.scroller.scrollTop!=b||c)a.doc.scrollTop=b,a.display.scrollbars.setScrollTop(b),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b)}function eb(a,b,c,d){b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth);(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))&&!d||(a.doc.scrollLeft=b,Le(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function Tb(a){var b=
+a.display,c=b.gutters.offsetWidth,d=Math.round(a.doc.height+jd(a.display));return{clientHeight:b.scroller.clientHeight,viewHeight:b.wrapper.clientHeight,scrollWidth:b.scroller.scrollWidth,clientWidth:b.scroller.clientWidth,viewWidth:b.wrapper.clientWidth,barLeft:a.options.fixedGutter?c:0,docHeight:d,scrollHeight:d+Fa(a)+b.barHeight,nativeBarWidth:b.nativeBarWidth,gutterWidth:c}}function rb(a,b){b||(b=Tb(a));var c=a.display.barWidth,d=a.display.barHeight;Pe(a,b);for(b=0;4>b&&c!=a.display.barWidth||
+d!=a.display.barHeight;b++)c!=a.display.barWidth&&a.options.lineWrapping&&Fc(a),Pe(a,Tb(a)),c=a.display.barWidth,d=a.display.barHeight}function Pe(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px";c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px";c.heightForcer.style.borderBottom=d.bottom+"px solid transparent";d.right&&d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=d.bottom+"px",c.scrollbarFiller.style.width=
+d.right+"px"):c.scrollbarFiller.style.display="";d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function Qe(a){a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&db(a.display.wrapper,a.display.scrollbars.addClass));a.display.scrollbars=new Re[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,
+a.display.scrollbarFiller);N(b,"mousedown",function(){a.state.focused&&setTimeout(function(){return a.display.input.focus()},0)});b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?eb(a,b):Rb(a,b)},a);a.display.scrollbars.addClass&&h(a.display.wrapper,a.display.scrollbars.addClass)}function fb(a){a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,
+updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++wg};a=a.curOp;pb?pb.ops.push(a):a.ownsGroup=pb={ops:[a],delayedCallbacks:[]}}function gb(a){pg(a.curOp,function(a){for(var b=0;b<a.ops.length;b++)a.ops[b].cm.curOp=null;a=a.ops;for(b=0;b<a.length;b++){var d=a[b],h=d.cm,e=h.display,k=h.display;!k.scrollbarsClipped&&k.scroller.offsetWidth&&(k.nativeBarWidth=k.scroller.offsetWidth-k.scroller.clientWidth,k.heightForcer.style.height=Fa(h)+"px",k.sizer.style.marginBottom=-k.nativeBarWidth+
+"px",k.sizer.style.borderRightWidth=Fa(h)+"px",k.scrollbarsClipped=!0);d.updateMaxLine&&$c(h);d.mustUpdate=d.viewChanged||d.forceUpdate||null!=d.scrollTop||d.scrollToPos&&(d.scrollToPos.from.line<e.viewFrom||d.scrollToPos.to.line>=e.viewTo)||e.maxLineChanged&&h.options.lineWrapping;d.update=d.mustUpdate&&new Ic(h,d.mustUpdate&&{top:d.scrollTop,ensure:d.scrollToPos},d.forceUpdate)}for(b=0;b<a.length;b++)d=a[b],d.updatedDisplay=d.mustUpdate&&Bd(d.cm,d.update);for(b=0;b<a.length;b++)if(d=a[b],h=d.cm,
+e=h.display,d.updatedDisplay&&Fc(h),d.barMeasure=Tb(h),e.maxLineChanged&&!h.options.lineWrapping&&(k=e.maxLine.text.length,k=xa(h,$a(h,e.maxLine),k,void 0),d.adjustWidthTo=k.left+3,h.display.sizerWidth=d.adjustWidthTo,d.barMeasure.scrollWidth=Math.max(e.scroller.clientWidth,e.sizer.offsetLeft+d.adjustWidthTo+Fa(h)+h.display.barWidth),d.maxScrollLeft=Math.max(0,e.sizer.offsetLeft+d.adjustWidthTo-Ya(h))),d.updatedDisplay||d.selectionChanged)d.preparedSelection=e.input.prepareSelection();for(b=0;b<a.length;b++)d=
+a[b],h=d.cm,null!=d.adjustWidthTo&&(h.display.sizer.style.minWidth=d.adjustWidthTo+"px",d.maxScrollLeft<h.doc.scrollLeft&&eb(h,Math.min(h.display.scroller.scrollLeft,d.maxScrollLeft),!0),h.display.maxLineChanged=!1),e=d.focus&&d.focus==f(),d.preparedSelection&&h.display.input.showSelection(d.preparedSelection,e),(d.updatedDisplay||d.startHeight!=h.doc.height)&&rb(h,d.barMeasure),d.updatedDisplay&&Cd(h,d.barMeasure),d.selectionChanged&&vd(h),h.state.focused&&d.updateInput&&h.display.input.reset(d.typing),
+e&&Ie(d.cm);for(b=0;b<a.length;b++){var l=void 0;d=a[b];h=d.cm;e=h.display;k=h.doc;d.updatedDisplay&&Se(h,d.update);null==e.wheelStartX||null==d.scrollTop&&null==d.scrollLeft&&!d.scrollToPos||(e.wheelStartX=e.wheelStartY=null);null!=d.scrollTop&&Oe(h,d.scrollTop,d.forceScroll);null!=d.scrollLeft&&eb(h,d.scrollLeft,!0,!0);if(d.scrollToPos){var g=R(k,d.scrollToPos.from),w=R(k,d.scrollToPos.to),q=d.scrollToPos.margin;null==q&&(q=0);h.options.lineWrapping||g!=w||(g=g.ch?I(g.line,"before"==g.sticky?g.ch-
+1:g.ch,"after"):g,w="before"==g.sticky?I(g.line,g.ch+1,"before"):g);for(var r=0;5>r;r++){var m=!1;l=ya(h,g);var t=w&&w!=g?ya(h,w):l;l={left:Math.min(l.left,t.left),top:Math.min(l.top,t.top)-q,right:Math.max(l.left,t.left),bottom:Math.max(l.bottom,t.bottom)+q};t=zd(h,l);var K=h.doc.scrollTop,n=h.doc.scrollLeft;null!=t.scrollTop&&(Rb(h,t.scrollTop),1<Math.abs(h.doc.scrollTop-K)&&(m=!0));null!=t.scrollLeft&&(eb(h,t.scrollLeft),1<Math.abs(h.doc.scrollLeft-n)&&(m=!0));if(!m)break}w=l;ea(h,"scrollCursorIntoView")||
+(q=h.display,r=q.sizer.getBoundingClientRect(),g=null,0>w.top+r.top?g=!0:w.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(g=!1),null==g||xg||(w=c("div","\u200b",null,"position: absolute;\n                         top: "+(w.top-q.viewOffset-h.display.lineSpace.offsetTop)+"px;\n                         height: "+(w.bottom-w.top+Fa(h)+q.barHeight)+"px;\n                         left: "+w.left+"px; width: "+Math.max(2,w.right-w.left)+"px;"),h.display.lineSpace.appendChild(w),
+w.scrollIntoView(g),h.display.lineSpace.removeChild(w)))}w=d.maybeHiddenMarkers;g=d.maybeUnhiddenMarkers;if(w)for(q=0;q<w.length;++q)w[q].lines.length||ba(w[q],"hide");if(g)for(w=0;w<g.length;++w)g[w].lines.length&&ba(g[w],"unhide");e.wrapper.offsetHeight&&(k.scrollTop=h.display.scroller.scrollTop);d.changeObjs&&ba(h,"changes",h,d.changeObjs);d.update&&d.update.finish()}})}function qa(a,b){if(a.curOp)return b();fb(a);try{return b()}finally{gb(a)}}function fa(a,b){return function(){if(a.curOp)return b.apply(a,
+arguments);fb(a);try{return b.apply(a,arguments)}finally{gb(a)}}}function la(a){return function(){if(this.curOp)return a.apply(this,arguments);fb(this);try{return a.apply(this,arguments)}finally{gb(this)}}}function ha(a){return function(){var b=this.cm;if(!b||b.curOp)return a.apply(this,arguments);fb(b);try{return a.apply(this,arguments)}finally{gb(b)}}}function oa(a,b,c,d){null==b&&(b=a.doc.first);null==c&&(c=a.doc.first+a.doc.size);d||(d=0);var f=a.display;d&&c<f.viewTo&&(null==f.updateLineNumbers||
+f.updateLineNumbers>b)&&(f.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=f.viewTo)Ia&&Yc(a.doc,b)<f.viewTo&&Pa(a);else if(c<=f.viewFrom)Ia&&Yd(a.doc,c+d)>f.viewFrom?Pa(a):(f.viewFrom+=d,f.viewTo+=d);else if(b<=f.viewFrom&&c>=f.viewTo)Pa(a);else if(b<=f.viewFrom){var h=Jc(a,c,c+d,1);h?(f.view=f.view.slice(h.index),f.viewFrom=h.lineN,f.viewTo+=d):Pa(a)}else if(c>=f.viewTo)(h=Jc(a,b,b,-1))?(f.view=f.view.slice(0,h.index),f.viewTo=h.lineN):Pa(a);else{h=Jc(a,b,b,-1);var e=Jc(a,c,c+d,1);h&&e?(f.view=
+f.view.slice(0,h.index).concat(Ac(a,h.lineN,e.lineN)).concat(f.view.slice(e.index)),f.viewTo+=d):Pa(a)}if(a=f.externalMeasured)c<a.lineN?a.lineN+=d:b<a.lineN+a.size&&(f.externalMeasured=null)}function Qa(a,b,c){a.curOp.viewChanged=!0;var d=a.display,f=a.display.externalMeasured;f&&b>=f.lineN&&b<f.lineN+f.size&&(d.externalMeasured=null);b<d.viewFrom||b>=d.viewTo||(a=d.view[Za(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==l(a,c)&&a.push(c)))}function Pa(a){a.display.viewFrom=a.display.viewTo=
+a.doc.first;a.display.view=[];a.display.viewOffset=0}function Jc(a,b,c,d){var f=Za(a,b),h=a.display.view;if(!Ia||c==a.doc.first+a.doc.size)return{index:f,lineN:c};for(var e=a.display.viewFrom,k=0;k<f;k++)e+=h[k].size;if(e!=b){if(0<d){if(f==h.length-1)return null;b=e+h[f].size-b;f++}else b=e-b;c+=b}for(;Yc(a.doc,c)!=c;){if(f==(0>d?0:h.length-1))return null;c+=d*h[f-(0>d?1:0)].size;f+=d}return{index:f,lineN:c}}function Te(a){a=a.display.view;for(var b=0,c=0;c<a.length;c++){var d=a[c];d.hidden||d.node&&
+!d.changes||++b}return b}function Sb(a,b){a.doc.highlightFrontier<a.display.viewTo&&a.state.highlight.set(b,k(yg,a))}function yg(a){var b=a.doc;if(!(b.highlightFrontier>=a.display.viewTo)){var c=+new Date+a.options.workTime,d=Hb(a,b.highlightFrontier),f=[];b.iter(d.line,Math.min(b.first+b.size,a.display.viewTo+500),function(h){if(d.line>=a.display.viewFrom){var e=h.styles,k=h.text.length>a.options.maxHighlightLength?Xa(b.mode,d.state):null,l=de(a,h,d,!0);k&&(d.state=k);h.styles=l.styles;k=h.styleClasses;
+(l=l.classes)?h.styleClasses=l:k&&(h.styleClasses=null);l=!e||e.length!=h.styles.length||k!=l&&(!k||!l||k.bgClass!=l.bgClass||k.textClass!=l.textClass);for(k=0;!l&&k<e.length;++k)l=e[k]!=h.styles[k];l&&f.push(d.line);h.stateAfter=d.save()}else h.text.length<=a.options.maxHighlightLength&&fd(a,h.text,d),h.stateAfter=0==d.line%5?d.save():null;d.nextLine();if(+new Date>c)return Sb(a,a.options.workDelay),!0});b.highlightFrontier=d.line;b.modeFrontier=Math.max(b.modeFrontier,d.line);f.length&&qa(a,function(){for(var b=
+0;b<f.length;b++)Qa(a,f[b],"text")})}}function Bd(a,b){var c=a.display,h=a.doc;if(b.editorIsHidden)return Pa(a),!1;if(!b.force&&b.visible.from>=c.viewFrom&&b.visible.to<=c.viewTo&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo)&&c.renderedView==c.view&&0==Te(a))return!1;Me(a)&&(Pa(a),b.dims=md(a));var k=h.first+h.size,l=Math.max(b.visible.from-a.options.viewportMargin,h.first),g=Math.min(k,b.visible.to+a.options.viewportMargin);c.viewFrom<l&&20>l-c.viewFrom&&(l=Math.max(h.first,c.viewFrom));
+c.viewTo>g&&20>c.viewTo-g&&(g=Math.min(k,c.viewTo));Ia&&(l=Yc(a.doc,l),g=Yd(a.doc,g));h=l!=c.viewFrom||g!=c.viewTo||c.lastWrapHeight!=b.wrapperHeight||c.lastWrapWidth!=b.wrapperWidth;k=a.display;0==k.view.length||l>=k.viewTo||g<=k.viewFrom?(k.view=Ac(a,l,g),k.viewFrom=l):(k.viewFrom>l?k.view=Ac(a,l,k.viewFrom).concat(k.view):k.viewFrom<l&&(k.view=k.view.slice(Za(a,l))),k.viewFrom=l,k.viewTo<g?k.view=k.view.concat(Ac(a,k.viewTo,g)):k.viewTo>g&&(k.view=k.view.slice(0,Za(a,g))));k.viewTo=g;c.viewOffset=
+Da(J(a.doc,c.viewFrom));a.display.mover.style.top=c.viewOffset+"px";g=Te(a);if(!h&&0==g&&!b.force&&c.renderedView==c.view&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo))return!1;a.hasFocus()?l=null:(l=f())&&d(a.display.lineDiv,l)?(l={activeElt:l},window.getSelection&&(k=window.getSelection(),k.anchorNode&&k.extend&&d(a.display.lineDiv,k.anchorNode)&&(l.anchorNode=k.anchorNode,l.anchorOffset=k.anchorOffset,l.focusNode=k.focusNode,l.focusOffset=k.focusOffset))):l=null;4<g&&(c.lineDiv.style.display=
+"none");zg(a,c.updateLineNumbers,b.dims);4<g&&(c.lineDiv.style.display="");c.renderedView=c.view;(g=l)&&g.activeElt&&g.activeElt!=f()&&(g.activeElt.focus(),g.anchorNode&&d(document.body,g.anchorNode)&&d(document.body,g.focusNode)&&(l=window.getSelection(),k=document.createRange(),k.setEnd(g.anchorNode,g.anchorOffset),k.collapse(!1),l.removeAllRanges(),l.addRange(k),l.extend(g.focusNode,g.focusOffset)));e(c.cursorDiv);e(c.selectionDiv);c.gutters.style.height=c.sizer.style.minHeight=0;h&&(c.lastWrapHeight=
+b.wrapperHeight,c.lastWrapWidth=b.wrapperWidth,Sb(a,400));c.updateLineNumbers=null;return!0}function Se(a,b){for(var c=b.viewport,d=!0;;d=!1){if(!d||!a.options.lineWrapping||b.oldDisplayWidth==Ya(a))if(c&&null!=c.top&&(c={top:Math.min(a.doc.height+jd(a.display)-kd(a),c.top)}),b.visible=xd(a.display,a.doc,c),b.visible.from>=a.display.viewFrom&&b.visible.to<=a.display.viewTo)break;if(!Bd(a,b))break;Fc(a);d=Tb(a);Ob(a);rb(a,d);Cd(a,d);b.force=!1}b.signal(a,"update",a);if(a.display.viewFrom!=a.display.reportedViewFrom||
+a.display.viewTo!=a.display.reportedViewTo)b.signal(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo}function Ad(a,b){b=new Ic(a,b);if(Bd(a,b)){Fc(a);Se(a,b);var c=Tb(a);Ob(a);rb(a,c);Cd(a,c);b.finish()}}function zg(a,b,c){function d(b){var c=b.nextSibling;ka&&wa&&a.display.currentWheelTarget==b?b.style.display="none":b.parentNode.removeChild(b);return c}var f=a.display,h=a.options.lineNumbers,k=f.lineDiv,
+g=k.firstChild,q=f.view;f=f.viewFrom;for(var w=0;w<q.length;w++){var r=q[w];if(!r.hidden)if(r.node&&r.node.parentNode==k){for(;g!=r.node;)g=d(g);g=h&&null!=b&&b<=f&&r.lineNumber;r.changes&&(-1<l(r.changes,"gutter")&&(g=!1),oe(a,r,f,c));g&&(e(r.lineNumber),r.lineNumber.appendChild(document.createTextNode(aa(a.options,f))));g=r.node.nextSibling}else{var m=rg(a,r,f,c);k.insertBefore(m,g)}f+=r.size}for(;g;)g=d(g)}function yd(a){a.display.sizer.style.marginLeft=a.display.gutters.offsetWidth+"px"}function Cd(a,
+b){a.display.sizer.style.minHeight=b.docHeight+"px";a.display.heightForcer.style.top=b.docHeight+"px";a.display.gutters.style.height=b.docHeight+a.display.barHeight+Fa(a)+"px"}function Ue(a){var b=a.display.gutters,d=a.options.gutters;e(b);for(var f=0;f<d.length;++f){var h=d[f],k=b.appendChild(c("div",null,"CodeMirror-gutter "+h));"CodeMirror-linenumbers"==h&&(a.display.lineGutter=k,k.style.width=(a.display.lineNumWidth||1)+"px")}b.style.display=f?"":"none";yd(a)}function Dd(a){var b=l(a.gutters,
+"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]):-1<b&&!a.lineNumbers&&(a.gutters=a.gutters.slice(0),a.gutters.splice(b,1))}function Ve(a){var b=a.wheelDeltaX,c=a.wheelDeltaY;null==b&&a.detail&&a.axis==a.HORIZONTAL_AXIS&&(b=a.detail);null==c&&a.detail&&a.axis==a.VERTICAL_AXIS?c=a.detail:null==c&&(c=a.wheelDelta);return{x:b,y:c}}function Ag(a){a=Ve(a);a.x*=ta;a.y*=ta;return a}function We(a,b){var c=Ve(b),d=c.x;c=c.y;var f=a.display,h=f.scroller,
+e=h.scrollWidth>h.clientWidth,k=h.scrollHeight>h.clientHeight;if(d&&e||c&&k){if(c&&wa&&ka){e=b.target;var l=f.view;a:for(;e!=h;e=e.parentNode)for(var g=0;g<l.length;g++)if(l[g].node==e){a.display.currentWheelTarget=e;break a}}!d||Oa||za||null==ta?(c&&null!=ta&&(b=c*ta,k=a.doc.scrollTop,e=k+f.wrapper.clientHeight,0>b?k=Math.max(0,k+b-50):e=Math.min(a.doc.height,e+b+50),Ad(a,{top:k,bottom:e})),20>Kc&&(null==f.wheelStartX?(f.wheelStartX=h.scrollLeft,f.wheelStartY=h.scrollTop,f.wheelDX=d,f.wheelDY=c,
+setTimeout(function(){if(null!=f.wheelStartX){var a=h.scrollLeft-f.wheelStartX,b=h.scrollTop-f.wheelStartY;a=b&&f.wheelDY&&b/f.wheelDY||a&&f.wheelDX&&a/f.wheelDX;f.wheelStartX=f.wheelStartY=null;a&&(ta=(ta*Kc+a)/(Kc+1),++Kc)}},200)):(f.wheelDX+=d,f.wheelDY+=c))):(c&&k&&Rb(a,Math.max(0,h.scrollTop+c*ta)),eb(a,Math.max(0,h.scrollLeft+d*ta)),(!c||c&&k)&&na(b),f.wheelStartX=null)}}function Aa(a,b){b=a[b];a.sort(function(a,b){return M(a.from(),b.from())});b=l(a,b);for(var c=1;c<a.length;c++){var d=a[c],
+f=a[c-1];if(0<=M(f.to(),d.from())){var h=rc(f.from(),d.from()),e=pc(f.to(),d.to());d=f.empty()?d.from()==d.head:f.from()==f.head;c<=b&&--b;a.splice(--c,2,new V(d?e:h,d?h:e))}}return new ua(a,b)}function La(a,b){return new ua([new V(a,b||a)],0)}function Ra(a){return a.text?I(a.from.line+a.text.length-1,y(a.text).length+(1==a.text.length?a.from.ch:0)):a.to}function Xe(a,b){if(0>M(a,b.from))return a;if(0>=M(a,b.to))return Ra(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&
+(d+=Ra(b).ch-b.to.ch);return I(c,d)}function Ed(a,b){for(var c=[],d=0;d<a.sel.ranges.length;d++){var f=a.sel.ranges[d];c.push(new V(Xe(f.anchor,b),Xe(f.head,b)))}return Aa(c,a.sel.primIndex)}function Ye(a,b,c){return a.line==b.line?I(c.line,a.ch-b.ch+c.ch):I(c.line+(a.line-b.line),a.ch)}function Fd(a){a.doc.mode=dd(a.options,a.doc.modeOption);Ub(a)}function Ub(a){a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null)});a.doc.modeFrontier=a.doc.highlightFrontier=a.doc.first;
+Sb(a,100);a.state.modeGen++;a.curOp&&oa(a)}function Ze(a,b){return 0==b.from.ch&&0==b.to.ch&&""==y(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function Gd(a,b,c,d){function f(a,c,f){a.text=c;a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);lb(a);Xd(a,f);c=d?d(a):1;c!=a.height&&S(a,c);ia(a,"change",a,b)}function h(a,b){for(var f=[];a<b;++a)f.push(new sb(l[a],c?c[a]:null,d));return f}var e=b.from,k=b.to,l=b.text,g=J(a,e.line),q=J(a,k.line),w=y(l),r=
+c?c[l.length-1]:null,m=k.line-e.line;b.full?(a.insert(0,h(0,l.length)),a.remove(l.length,a.size-l.length)):Ze(a,b)?(k=h(0,l.length-1),f(q,q.text,r),m&&a.remove(e.line,m),k.length&&a.insert(e.line,k)):g==q?1==l.length?f(g,g.text.slice(0,e.ch)+w+g.text.slice(k.ch),r):(m=h(1,l.length-1),m.push(new sb(w+g.text.slice(k.ch),r,d)),f(g,g.text.slice(0,e.ch)+l[0],c?c[0]:null),a.insert(e.line+1,m)):1==l.length?(f(g,g.text.slice(0,e.ch)+l[0]+q.text.slice(k.ch),c?c[0]:null),a.remove(e.line+1,m)):(f(g,g.text.slice(0,
+e.ch)+l[0],c?c[0]:null),f(q,w+q.text.slice(k.ch),r),r=h(1,l.length-1),1<m&&a.remove(e.line+1,m-1),a.insert(e.line+1,r));ia(a,"change",a,b)}function hb(a,b,c){function d(a,f,h){if(a.linked)for(var e=0;e<a.linked.length;++e){var k=a.linked[e];if(k.doc!=f){var l=h&&k.sharedHist;if(!c||l)b(k.doc,l),d(k.doc,a,l)}}}d(a,null,!0)}function $e(a,b){if(b.cm)throw Error("This document is already in use.");a.doc=b;b.cm=a;ud(a);Fd(a);af(a);a.options.lineWrapping||$c(a);a.options.mode=b.modeOption;oa(a)}function af(a){("rtl"==
+a.doc.direction?h:db)(a.display.lineDiv,"CodeMirror-rtl")}function Bg(a){qa(a,function(){af(a);oa(a)})}function Lc(a){this.done=[];this.undone=[];this.undoDepth=Infinity;this.lastModTime=this.lastSelTime=0;this.lastOrigin=this.lastSelOrigin=this.lastOp=this.lastSelOp=null;this.generation=this.maxGeneration=a||1}function Hd(a,b){var c={from:Ua(b.from),to:Ra(b),text:Q(a,b.from,b.to)};bf(a,c,b.from.line,b.to.line+1);hb(a,function(a){return bf(a,c,b.from.line,b.to.line+1)},!0);return c}function cf(a){for(;a.length;)if(y(a).ranges)a.pop();
+else break}function df(a,b,c,d){var f=a.history;f.undone.length=0;var h=+new Date,e;if(e=f.lastOp==d||f.lastOrigin==b.origin&&b.origin&&("+"==b.origin.charAt(0)&&f.lastModTime>h-(a.cm?a.cm.options.historyEventDelay:500)||"*"==b.origin.charAt(0))){if(f.lastOp==d){cf(f.done);var k=y(f.done)}else f.done.length&&!y(f.done).ranges?k=y(f.done):1<f.done.length&&!f.done[f.done.length-2].ranges?(f.done.pop(),k=y(f.done)):k=void 0;e=k}if(e){var l=y(k.changes);0==M(b.from,b.to)&&0==M(b.from,l.to)?l.to=Ra(b):
+k.changes.push(Hd(a,b))}else for((k=y(f.done))&&k.ranges||Mc(a.sel,f.done),k={changes:[Hd(a,b)],generation:f.generation},f.done.push(k);f.done.length>f.undoDepth;)f.done.shift(),f.done[0].ranges||f.done.shift();f.done.push(c);f.generation=++f.maxGeneration;f.lastModTime=f.lastSelTime=h;f.lastOp=f.lastSelOp=d;f.lastOrigin=f.lastSelOrigin=b.origin;l||ba(a,"historyAdded")}function Mc(a,b){var c=y(b);c&&c.ranges&&c.equals(a)||b.push(a)}function bf(a,b,c,d){var f=b["spans_"+a.id],h=0;a.iter(Math.max(a.first,
+c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((f||(f=b["spans_"+a.id]={}))[h]=c.markedSpans);++h})}function Cg(a){if(!a)return null;for(var b,c=0;c<a.length;++c)a[c].marker.explicitlyCleared?b||(b=a.slice(0,c)):b&&b.push(a[c]);return b?b.length?b:null:a}function ef(a,b){var c;if(c=b["spans_"+a.id]){for(var d=[],f=0;f<b.text.length;++f)d.push(Cg(c[f]));c=d}else c=null;a=qc(a,b);if(!c)return a;if(!a)return c;for(b=0;b<c.length;++b)if(d=c[b],f=a[b],d&&f){var h=0;a:for(;h<f.length;++h){for(var e=
+f[h],k=0;k<d.length;++k)if(d[k].marker==e.marker)continue a;d.push(e)}}else f&&(c[b]=f);return c}function tb(a,b,c){for(var d=[],f=0;f<a.length;++f){var h=a[f];if(h.ranges)d.push(c?ua.prototype.deepCopy.call(h):h);else{h=h.changes;var e=[];d.push({changes:e});for(var k=0;k<h.length;++k){var g=h[k],q;e.push({from:g.from,to:g.to,text:g.text});if(b)for(var w in g)(q=w.match(/^spans_(\d+)$/))&&-1<l(b,Number(q[1]))&&(y(e)[w]=g[w],delete g[w])}}}return d}function Id(a,b,c,d){return d?(a=a.anchor,c&&(d=
+0>M(b,a),d!=0>M(c,a)?(a=b,b=c):d!=0>M(b,c)&&(b=c)),new V(a,b)):new V(c||b,b)}function Nc(a,b,c,d,f){null==f&&(f=a.cm&&(a.cm.display.shift||a.extend));ja(a,new ua([Id(a.sel.primary(),b,c,f)],0),d)}function ff(a,b,c){for(var d=[],f=a.cm&&(a.cm.display.shift||a.extend),h=0;h<a.sel.ranges.length;h++)d[h]=Id(a.sel.ranges[h],b[h],null,f);b=Aa(d,a.sel.primIndex);ja(a,b,c)}function Jd(a,b,c,d){var f=a.sel.ranges.slice(0);f[b]=c;ja(a,Aa(f,a.sel.primIndex),d)}function Dg(a,b,c){c={ranges:b.ranges,update:function(b){this.ranges=
+[];for(var c=0;c<b.length;c++)this.ranges[c]=new V(R(a,b[c].anchor),R(a,b[c].head))},origin:c&&c.origin};ba(a,"beforeSelectionChange",a,c);a.cm&&ba(a.cm,"beforeSelectionChange",a.cm,c);return c.ranges!=b.ranges?Aa(c.ranges,c.ranges.length-1):b}function gf(a,b,c){var d=a.history.done,f=y(d);f&&f.ranges?(d[d.length-1]=b,Oc(a,b,c)):ja(a,b,c)}function ja(a,b,c){Oc(a,b,c);b=a.sel;var d=a.cm?a.cm.curOp.id:NaN,f=a.history,h=c&&c.origin,e;if(!(e=d==f.lastSelOp)&&(e=h&&f.lastSelOrigin==h)&&!(e=f.lastModTime==
+f.lastSelTime&&f.lastOrigin==h)){e=y(f.done);var k=h.charAt(0);e="*"==k||"+"==k&&e.ranges.length==b.ranges.length&&e.somethingSelected()==b.somethingSelected()&&new Date-a.history.lastSelTime<=(a.cm?a.cm.options.historyEventDelay:500)}e?f.done[f.done.length-1]=b:Mc(b,f.done);f.lastSelTime=+new Date;f.lastSelOrigin=h;f.lastSelOp=d;c&&!1!==c.clearRedo&&cf(f.undone)}function Oc(a,b,c){if(va(a,"beforeSelectionChange")||a.cm&&va(a.cm,"beforeSelectionChange"))b=Dg(a,b,c);var d=c&&c.bias||(0>M(b.primary().head,
+a.sel.primary().head)?-1:1);hf(a,jf(a,b,d,!0));c&&!1===c.scroll||!a.cm||qb(a.cm)}function hf(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,$d(a.cm)),ia(a,"cursorActivity",a))}function kf(a){hf(a,jf(a,a.sel,null,!1))}function jf(a,b,c,d){for(var f,h=0;h<b.ranges.length;h++){var e=b.ranges[h],k=b.ranges.length==a.sel.ranges.length&&a.sel.ranges[h],l=Kd(a,e.anchor,k&&k.anchor,c,d);k=Kd(a,e.head,k&&k.head,c,d);if(f||l!=e.anchor||k!=e.head)f||(f=b.ranges.slice(0,
+h)),f[h]=new V(l,k)}return f?Aa(f,b.primIndex):b}function ub(a,b,c,d,f){var h=J(a,b.line);if(h.markedSpans)for(var e=0;e<h.markedSpans.length;++e){var k=h.markedSpans[e],l=k.marker;if((null==k.from||(l.inclusiveLeft?k.from<=b.ch:k.from<b.ch))&&(null==k.to||(l.inclusiveRight?k.to>=b.ch:k.to>b.ch))){if(f&&(ba(l,"beforeCursorEnter"),l.explicitlyCleared))if(h.markedSpans){--e;continue}else break;if(l.atomic){if(c){e=l.find(0>d?1:-1);k=void 0;if(0>d?l.inclusiveRight:l.inclusiveLeft)e=lf(a,e,-d,e&&e.line==
+b.line?h:null);if(e&&e.line==b.line&&(k=M(e,c))&&(0>d?0>k:0<k))return ub(a,e,b,d,f)}c=l.find(0>d?-1:1);if(0>d?l.inclusiveLeft:l.inclusiveRight)c=lf(a,c,d,c.line==b.line?h:null);return c?ub(a,c,b,d,f):null}}}return b}function Kd(a,b,c,d,f){d=d||1;b=ub(a,b,c,d,f)||!f&&ub(a,b,c,d,!0)||ub(a,b,c,-d,f)||!f&&ub(a,b,c,-d,!0);return b?b:(a.cantEdit=!0,I(a.first,0))}function lf(a,b,c,d){return 0>c&&0==b.ch?b.line>a.first?R(a,I(b.line-1)):null:0<c&&b.ch==(d||J(a,b.line)).text.length?b.line<a.first+a.size-1?
+I(b.line+1,0):null:new I(b.line,b.ch+c)}function mf(a){a.setSelection(I(a.firstLine(),0),I(a.lastLine()),Ga)}function nf(a,b,c){var d={canceled:!1,from:b.from,to:b.to,text:b.text,origin:b.origin,cancel:function(){return d.canceled=!0}};c&&(d.update=function(b,c,f,h){b&&(d.from=R(a,b));c&&(d.to=R(a,c));f&&(d.text=f);void 0!==h&&(d.origin=h)});ba(a,"beforeChange",a,d);a.cm&&ba(a.cm,"beforeChange",a.cm,d);return d.canceled?null:{from:d.from,to:d.to,text:d.text,origin:d.origin}}function vb(a,b,c){if(a.cm){if(!a.cm.curOp)return fa(a.cm,
+vb)(a,b,c);if(a.cm.state.suppressEdits)return}if(va(a,"beforeChange")||a.cm&&va(a.cm,"beforeChange"))if(b=nf(a,b,!0),!b)return;if(c=of&&!c&&ag(a,b.from,b.to))for(var d=c.length-1;0<=d;--d)pf(a,{from:c[d].from,to:c[d].to,text:d?[""]:b.text,origin:b.origin});else pf(a,b)}function pf(a,b){if(1!=b.text.length||""!=b.text[0]||0!=M(b.from,b.to)){var c=Ed(a,b);df(a,b,c,a.cm?a.cm.curOp.id:NaN);Vb(a,b,c,qc(a,b));var d=[];hb(a,function(a,c){c||-1!=l(d,a.history)||(qf(a.history,b),d.push(a.history));Vb(a,b,
+null,qc(a,b))})}}function Pc(a,b,c){var d=a.cm&&a.cm.state.suppressEdits;if(!d||c){for(var f=a.history,h,e=a.sel,k="undo"==b?f.done:f.undone,g="undo"==b?f.undone:f.done,q=0;q<k.length&&(h=k[q],c?!h.ranges||h.equals(a.sel):h.ranges);q++);if(q!=k.length){for(f.lastOrigin=f.lastSelOrigin=null;;)if(h=k.pop(),h.ranges){Mc(h,g);if(c&&!h.equals(a.sel)){ja(a,h,{clearRedo:!1});return}e=h}else{if(d){k.push(h);return}break}var w=[];Mc(e,g);g.push({changes:w,generation:f.generation});f.generation=h.generation||
+++f.maxGeneration;var r=va(a,"beforeChange")||a.cm&&va(a.cm,"beforeChange");c=function(c){var d=h.changes[c];d.origin=b;if(r&&!nf(a,d,!1))return k.length=0,{};w.push(Hd(a,d));var f=c?Ed(a,d):y(k);Vb(a,d,f,ef(a,d));!c&&a.cm&&a.cm.scrollIntoView({from:d.from,to:Ra(d)});var e=[];hb(a,function(a,b){b||-1!=l(e,a.history)||(qf(a.history,d),e.push(a.history));Vb(a,d,null,ef(a,d))})};for(d=h.changes.length-1;0<=d;--d)if(f=c(d))return f.v}}}function rf(a,b){if(0!=b&&(a.first+=b,a.sel=new ua(z(a.sel.ranges,
+function(a){return new V(I(a.anchor.line+b,a.anchor.ch),I(a.head.line+b,a.head.ch))}),a.sel.primIndex),a.cm)){oa(a.cm,a.first,a.first-b,b);for(var c=a.cm.display,d=c.viewFrom;d<c.viewTo;d++)Qa(a.cm,d,"gutter")}}function Vb(a,b,c,d){if(a.cm&&!a.cm.curOp)return fa(a.cm,Vb)(a,b,c,d);if(b.to.line<a.first)rf(a,b.text.length-1-(b.to.line-b.from.line));else if(!(b.from.line>a.lastLine())){if(b.from.line<a.first){var f=b.text.length-1-(a.first-b.from.line);rf(a,f);b={from:I(a.first,0),to:I(b.to.line+f,b.to.ch),
+text:[y(b.text)],origin:b.origin}}f=a.lastLine();b.to.line>f&&(b={from:b.from,to:I(f,J(a,f).text.length),text:[b.text[0]],origin:b.origin});b.removed=Q(a,b.from,b.to);c||(c=Ed(a,b));a.cm?Eg(a.cm,b,d):Gd(a,b,d);Oc(a,c,Ga)}}function Eg(a,b,c){var d=a.doc,f=a.display,h=b.from,e=b.to,k=!1,l=h.line;a.options.lineWrapping||(l=L(Ca(J(d,h.line))),d.iter(l,e.line+1,function(a){if(a==f.maxLine)return k=!0}));-1<d.sel.contains(b.from,b.to)&&$d(a);Gd(d,b,c,Fe(a));a.options.lineWrapping||(d.iter(l,h.line+b.text.length,
+function(a){var b=wc(a);b>f.maxLineLength&&(f.maxLine=a,f.maxLineLength=b,f.maxLineChanged=!0,k=!1)}),k&&(a.curOp.updateMaxLine=!0));jg(d,h.line);Sb(a,400);c=b.text.length-(e.line-h.line)-1;b.full?oa(a):h.line!=e.line||1!=b.text.length||Ze(a.doc,b)?oa(a,h.line,e.line+1,c):Qa(a,h.line,"text");c=va(a,"changes");if((d=va(a,"change"))||c)b={from:h,to:e,text:b.text,removed:b.removed,origin:b.origin},d&&ia(a,"change",a,b),c&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(b);a.display.selForContextMenu=
+null}function wb(a,b,c,d,f){d||(d=c);0>M(d,c)&&(d=[d,c],c=d[0],d=d[1]);"string"==typeof b&&(b=a.splitLines(b));vb(a,{from:c,to:d,text:b,origin:f})}function sf(a,b,c,d){c<a.line?a.line+=d:b<a.line&&(a.line=b,a.ch=0)}function tf(a,b,c,d){for(var f=0;f<a.length;++f){var h=a[f],e=!0;if(h.ranges)for(h.copied||(h=a[f]=h.deepCopy(),h.copied=!0),e=0;e<h.ranges.length;e++)sf(h.ranges[e].anchor,b,c,d),sf(h.ranges[e].head,b,c,d);else{for(var k=0;k<h.changes.length;++k){var l=h.changes[k];if(c<l.from.line)l.from=
+I(l.from.line+d,l.from.ch),l.to=I(l.to.line+d,l.to.ch);else if(b<=l.to.line){e=!1;break}}e||(a.splice(0,f+1),f=0)}}}function qf(a,b){var c=b.from.line,d=b.to.line;b=b.text.length-(d-c)-1;tf(a.done,c,d,b);tf(a.undone,c,d,b)}function Wb(a,b,c,d){var f=b,h=b;"number"==typeof b?h=J(a,Math.max(a.first,Math.min(b,a.first+a.size-1))):f=L(b);if(null==f)return null;d(h,f)&&a.cm&&Qa(a.cm,f,c);return h}function Xb(a){this.lines=a;this.parent=null;for(var b=0,c=0;c<a.length;++c)a[c].parent=this,b+=a[c].height;
+this.height=b}function Yb(a){this.children=a;for(var b=0,c=0,d=0;d<a.length;++d){var f=a[d];b+=f.chunkSize();c+=f.height;f.parent=this}this.size=b;this.height=c;this.parent=null}function Fg(a,b,c,d){var f=new Zb(a,c,d),h=a.cm;h&&f.noHScroll&&(h.display.alignWidgets=!0);Wb(a,b,"widget",function(b){var c=b.widgets||(b.widgets=[]);null==f.insertAt?c.push(f):c.splice(Math.min(c.length-1,Math.max(0,f.insertAt)),0,f);f.line=b;h&&!Va(a,b)&&(c=Da(b)<a.scrollTop,S(b,b.height+Lb(f)),c&&Gc(h,f.height),h.curOp.forceUpdate=
+!0);return!0});h&&ia(h,"lineWidgetAdded",h,f,"number"==typeof b?b:L(b));return f}function xb(a,c,d,f,h){if(f&&f.shared)return Gg(a,c,d,f,h);if(a.cm&&!a.cm.curOp)return fa(a.cm,xb)(a,c,d,f,h);var e=new Sa(a,h);h=M(c,d);f&&t(f,e,!1);if(0<h||0==h&&!1!==e.clearWhenEmpty)return e;e.replacedWith&&(e.collapsed=!0,e.widgetNode=b("span",[e.replacedWith],"CodeMirror-widget"),f.handleMouseEvents||e.widgetNode.setAttribute("cm-ignore-events","true"),f.insertLeft&&(e.widgetNode.insertLeft=!0));if(e.collapsed){if(sc(a,
+c.line,c,d,e)||c.line!=d.line&&sc(a,d.line,c,d,e))throw Error("Inserting collapsed marker partially overlapping an existing one");Ia=!0}e.addToHistory&&df(a,{from:c,to:d,origin:"markText"},a.sel,NaN);var k=c.line,l=a.cm,g;a.iter(k,d.line+1,function(a){l&&e.collapsed&&!l.options.lineWrapping&&Ca(a)==l.display.maxLine&&(g=!0);e.collapsed&&k!=c.line&&S(a,0);var b=new Cb(e,k==c.line?c.ch:null,k==d.line?d.ch:null);a.markedSpans=a.markedSpans?a.markedSpans.concat([b]):[b];b.marker.attachLine(a);++k});e.collapsed&&
+a.iter(c.line,d.line+1,function(b){Va(a,b)&&S(b,0)});e.clearOnEnter&&N(e,"beforeCursorEnter",function(){return e.clear()});e.readOnly&&(of=!0,(a.history.done.length||a.history.undone.length)&&a.clearHistory());e.collapsed&&(e.id=++uf,e.atomic=!0);if(l){g&&(l.curOp.updateMaxLine=!0);if(e.collapsed)oa(l,c.line,d.line+1);else if(e.className||e.title||e.startStyle||e.endStyle||e.css)for(f=c.line;f<=d.line;f++)Qa(l,f,"text");e.atomic&&kf(l.doc);ia(l,"markerAdded",l,e)}return e}function Gg(a,b,c,d,f){d=
+t(d);d.shared=!1;var h=[xb(a,b,c,d,f)],e=h[0],k=d.widgetNode;hb(a,function(a){k&&(d.widgetNode=k.cloneNode(!0));h.push(xb(a,R(a,b),R(a,c),d,f));for(var l=0;l<a.linked.length;++l)if(a.linked[l].isParent)return;e=y(h)});return new $b(h,e)}function vf(a){return a.findMarks(I(a.first,0),a.clipPos(I(a.lastLine())),function(a){return a.parent})}function Hg(a){for(var b=function(b){b=a[b];var c=[b.primary.doc];hb(b.primary.doc,function(a){return c.push(a)});for(var d=0;d<b.markers.length;d++){var f=b.markers[d];
+-1==l(c,f.doc)&&(f.parent=null,b.markers.splice(d--,1))}},c=0;c<a.length;c++)b(c)}function Ig(a){var b=this;wf(b);if(!ea(b,a)&&!Ka(b.display,a)){na(a);U&&(xf=+new Date);var c=cb(b,a,!0),d=a.dataTransfer.files;if(c&&!b.isReadOnly())if(d&&d.length&&window.FileReader&&window.File)for(var f=d.length,h=Array(f),e=0,k=function(a,d){if(!b.options.allowDropFileTypes||-1!=l(b.options.allowDropFileTypes,a.type)){var k=new FileReader;k.onload=fa(b,function(){var a=k.result;/[\x00-\x08\x0e-\x1f]{2}/.test(a)&&
+(a="");h[d]=a;++e==f&&(c=R(b.doc,c),a={from:c,to:c,text:b.doc.splitLines(h.join(b.doc.lineSeparator())),origin:"paste"},vb(b.doc,a),gf(b.doc,La(c,Ra(a))))});k.readAsText(a)}},g=0;g<f;++g)k(d[g],g);else if(b.state.draggingText&&-1<b.doc.sel.contains(c))b.state.draggingText(a),setTimeout(function(){return b.display.input.focus()},20);else try{if(k=a.dataTransfer.getData("Text")){b.state.draggingText&&!b.state.draggingText.copy&&(g=b.listSelections());Oc(b.doc,La(c,c));if(g)for(d=0;d<g.length;++d)wb(b.doc,
+"",g[d].anchor,g[d].head,"drag");b.replaceSelection(k,"around","paste");b.display.input.focus()}}catch(mh){}}}function wf(a){a.display.dragCursor&&(a.display.lineSpace.removeChild(a.display.dragCursor),a.display.dragCursor=null)}function yf(a){if(document.getElementsByClassName)for(var b=document.getElementsByClassName("CodeMirror"),c=0;c<b.length;c++){var d=b[c].CodeMirror;d&&a(d)}}function Jg(){var a;N(window,"resize",function(){null==a&&(a=setTimeout(function(){a=null;yf(Kg)},100))});N(window,
+"blur",function(){return yf(Pb)})}function Kg(a){var b=a.display;if(b.lastWrapHeight!=b.wrapper.clientHeight||b.lastWrapWidth!=b.wrapper.clientWidth)b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null,b.scrollbarsClipped=!1,a.setSize()}function Lg(a){var b=a.split(/-(?!$)/);a=b[b.length-1];for(var c,d,f,h,e=0;e<b.length-1;e++){var k=b[e];if(/^(cmd|meta|m)$/i.test(k))h=!0;else if(/^a(lt)?$/i.test(k))c=!0;else if(/^(c|ctrl|control)$/i.test(k))d=!0;else if(/^s(hift)?$/i.test(k))f=!0;else throw Error("Unrecognized modifier name: "+
+k);}c&&(a="Alt-"+a);d&&(a="Ctrl-"+a);h&&(a="Cmd-"+a);f&&(a="Shift-"+a);return a}function Mg(a){var b={},c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!/^(name|fallthrough|(de|at)tach)$/.test(c)){if("..."!=d)for(var f=z(c.split(" "),Lg),h=0;h<f.length;h++){if(h==f.length-1){var e=f.join(" ");var k=d}else e=f.slice(0,h+1).join(" "),k="...";var l=b[e];if(!l)b[e]=k;else if(l!=k)throw Error("Inconsistent bindings for "+e);}delete a[c]}}for(var g in b)a[g]=b[g];return a}function yb(a,b,c,d){b=Qc(b);
+var f=b.call?b.call(a,d):b[a];if(!1===f)return"nothing";if("..."===f)return"multi";if(null!=f&&c(f))return"handled";if(b.fallthrough){if("[object Array]"!=Object.prototype.toString.call(b.fallthrough))return yb(a,b.fallthrough,c,d);for(f=0;f<b.fallthrough.length;f++){var h=yb(a,b.fallthrough[f],c,d);if(h)return h}}}function zf(a){a="string"==typeof a?a:Ta[a.keyCode];return"Ctrl"==a||"Alt"==a||"Shift"==a||"Mod"==a}function Af(a,b,c){var d=a;b.altKey&&"Alt"!=d&&(a="Alt-"+a);(Bf?b.metaKey:b.ctrlKey)&&
+"Ctrl"!=d&&(a="Ctrl-"+a);(Bf?b.ctrlKey:b.metaKey)&&"Cmd"!=d&&(a="Cmd-"+a);!c&&b.shiftKey&&"Shift"!=d&&(a="Shift-"+a);return a}function Cf(a,b){if(za&&34==a.keyCode&&a["char"])return!1;var c=Ta[a.keyCode];if(null==c||a.altGraphKey)return!1;3==a.keyCode&&a.code&&(c=a.code);return Af(c,a,b)}function Qc(a){return"string"==typeof a?ac[a]:a}function zb(a,b){for(var c=a.doc.sel.ranges,d=[],f=0;f<c.length;f++){for(var h=b(c[f]);d.length&&0>=M(h.from,y(d).to);){var e=d.pop();if(0>M(e.from,h.from)){h.from=
+e.from;break}}d.push(h)}qa(a,function(){for(var b=d.length-1;0<=b;b--)wb(a.doc,"",d[b].from,d[b].to,"+delete");qb(a)})}function Ld(a,b,c){b=H(a.text,b+c,c);return 0>b||b>a.text.length?null:b}function Md(a,b,c){a=Ld(a,b.ch,c);return null==a?null:new I(b.line,a,0>c?"after":"before")}function Nd(a,b,c,d,f){if(a&&(a=Ja(c,b.doc.direction))){a=0>f?y(a):a[0];var h=0>f==(1==a.level)?"after":"before";if(0<a.level||"rtl"==b.doc.direction){var e=$a(b,c);var k=0>f?c.text.length-1:0;var l=xa(b,e,k).top;k=D(function(a){return xa(b,
+e,a).top==l},0>f==(1==a.level)?a.from:a.to-1,k);"before"==h&&(k=Ld(c,k,1))}else k=0>f?a.to:a.from;return new I(d,k,h)}return new I(d,0>f?c.text.length:0,0>f?"before":"after")}function Ng(a,b,c,d){var f=Ja(b,a.doc.direction);if(!f)return Md(b,c,d);c.ch>=b.text.length?(c.ch=b.text.length,c.sticky="before"):0>=c.ch&&(c.ch=0,c.sticky="after");var h=Eb(f,c.ch,c.sticky),e=f[h];if("ltr"==a.doc.direction&&0==e.level%2&&(0<d?e.to>c.ch:e.from<c.ch))return Md(b,c,d);var k=function(a,c){return Ld(b,a instanceof
+I?a.ch:a,c)},l,g=function(c){if(!a.options.lineWrapping)return{begin:0,end:b.text.length};l=l||$a(a,b);return Ee(a,b,l,c)},q=g("before"==c.sticky?k(c,-1):c.ch);if("rtl"==a.doc.direction||1==e.level){var r=1==e.level==0>d,m=k(c,r?1:-1);if(null!=m&&(r?m<=e.to&&m<=q.end:m>=e.from&&m>=q.begin))return new I(c.line,m,r?"before":"after")}e=function(a,b,d){for(var h=function(a,b){return b?new I(c.line,k(a,1),"before"):new I(c.line,a,"after")};0<=a&&a<f.length;a+=b){var e=f[a],l=0<b==(1!=e.level),g=l?d.begin:
+k(d.end,-1);if(e.from<=g&&g<e.to)return h(g,l);g=l?e.from:k(e.to,-1);if(d.begin<=g&&g<d.end)return h(g,l)}};if(h=e(h+d,d,q))return h;q=0<d?q.end:k(q.begin,-1);return null==q||0<d&&q==b.text.length||!(h=e(0<d?0:f.length-1,d,g(q)))?null:h}function Df(a,b){var c=J(a.doc,b),d=Ca(c);d!=c&&(b=L(d));return Nd(!0,a,d,b,1)}function Ef(a,b){var c=Df(a,b.line),d=J(a.doc,c.line);a=Ja(d,a.doc.direction);return a&&0!=a[0].level?c:(d=Math.max(0,d.text.search(/\S/)),I(c.line,b.line==c.line&&b.ch<=d&&b.ch?0:d,c.sticky))}
+function Rc(a,b,c){if("string"==typeof b&&(b=bc[b],!b))return!1;a.display.input.ensurePolled();var d=a.display.shift,f=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),c&&(a.display.shift=!1),f=b(a)!=Sc}finally{a.display.shift=d,a.state.suppressEdits=!1}return f}function cc(a,b,c,d){var f=a.state.keySeq;if(f){if(zf(b))return"handled";/\'$/.test(b)?a.state.keySeq=null:Og.set(50,function(){a.state.keySeq==f&&(a.state.keySeq=null,a.display.input.reset())});if(Ff(a,f+" "+b,c,d))return!0}return Ff(a,
+b,c,d)}function Ff(a,b,c,d){a:{for(var f=0;f<a.state.keyMaps.length;f++){var h=yb(b,a.state.keyMaps[f],d,a);if(h){d=h;break a}}d=a.options.extraKeys&&yb(b,a.options.extraKeys,d,a)||yb(b,a.options.keyMap,d,a)}"multi"==d&&(a.state.keySeq=b);"handled"==d&&ia(a,"keyHandled",a,b,c);if("handled"==d||"multi"==d)na(c),vd(a);return!!d}function Gf(a,b){var c=Cf(b,!0);return c?b.shiftKey&&!a.state.keySeq?cc(a,"Shift-"+c,b,function(b){return Rc(a,b,!0)})||cc(a,c,b,function(b){if("string"==typeof b?/^go[A-Z]/.test(b):
+b.motion)return Rc(a,b)}):cc(a,c,b,function(b){return Rc(a,b)}):!1}function Pg(a,b,c){return cc(a,"'"+c+"'",b,function(b){return Rc(a,b,!0)})}function Hf(a){this.curOp.focus=f();if(!ea(this,a)){U&&11>X&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey;var c=Gf(this,a);za&&(Od=c?b:null,!c&&88==b&&!Qg&&(wa?a.metaKey:a.ctrlKey)&&this.replaceSelection("",null,"cut"));18!=b||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||Rg(this)}}function Rg(a){function b(a){18!=
+a.keyCode&&a.altKey||(db(c,"CodeMirror-crosshair"),sa(document,"keyup",b),sa(document,"mouseover",b))}var c=a.display.lineDiv;h(c,"CodeMirror-crosshair");N(document,"keyup",b);N(document,"mouseover",b)}function If(a){16==a.keyCode&&(this.doc.sel.shift=!1);ea(this,a)}function Jf(a){if(!(Ka(this.display,a)||ea(this,a)||a.ctrlKey&&!a.altKey||wa&&a.metaKey)){var b=a.keyCode,c=a.charCode;if(za&&b==Od)Od=null,na(a);else if(!za||a.which&&!(10>a.which)||!Gf(this,a))if(b=String.fromCharCode(null==c?b:c),"\b"!=
+b&&!Pg(this,a,b))this.display.input.onKeyPress(a)}}function Sg(a,b){var c=+new Date;if(dc&&dc.compare(c,a,b))return ec=dc=null,"triple";if(ec&&ec.compare(c,a,b))return dc=new Pd(c,a,b),ec=null,"double";ec=new Pd(c,a,b);dc=null;return"single"}function Kf(a){var b=this.display;if(!(ea(this,a)||b.activeTouch&&b.input.supportsTouch()))if(b.input.ensurePolled(),b.shift=a.shiftKey,Ka(b,a))ka||(b.scroller.draggable=!1,setTimeout(function(){return b.scroller.draggable=!0},100));else if(!Tc(this,a,"gutterClick",
+!0)){var c=cb(this,a),d=be(a),f=c?Sg(c,d):"single";window.focus();1==d&&this.state.selectingText&&this.state.selectingText(a);c&&Tg(this,d,c,f,a)||(1==d?c?Ug(this,c,f,a):(a.target||a.srcElement)==b.scroller&&na(a):2==d?(c&&Nc(this.doc,c),setTimeout(function(){return b.input.focus()},20)):3==d&&(Qd?Lf(this,a):Je(this)))}}function Tg(a,b,c,d,f){var h="Click";"double"==d?h="Double"+h:"triple"==d&&(h="Triple"+h);return cc(a,Af((1==b?"Left":2==b?"Middle":"Right")+h,f),f,function(b){"string"==typeof b&&
+(b=bc[b]);if(!b)return!1;var d=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),d=b(a,c)!=Sc}finally{a.state.suppressEdits=!1}return d})}function Ug(a,b,c,d){U?setTimeout(k(Ie,a),0):a.curOp.focus=f();var h=a.getOption("configureMouse");h=h?h(a,c,d):{};null==h.unit&&(h.unit=(Vg?d.shiftKey&&d.metaKey:d.altKey)?"rectangle":"single"==c?"char":"double"==c?"word":"line");if(null==h.extend||a.doc.extend)h.extend=a.doc.extend||d.shiftKey;null==h.addNew&&(h.addNew=wa?d.metaKey:d.ctrlKey);null==h.moveOnDrag&&
+(h.moveOnDrag=!(wa?d.altKey:d.ctrlKey));var e=a.doc.sel,l;a.options.dragDrop&&Wg&&!a.isReadOnly()&&"single"==c&&-1<(l=e.contains(b))&&(0>M((l=e.ranges[l]).from(),b)||0<b.xRel)&&(0<M(l.to(),b)||0>b.xRel)?Xg(a,d,b,h):Yg(a,d,b,h)}function Xg(a,b,c,d){var f=a.display,h=!1,e=fa(a,function(b){ka&&(f.scroller.draggable=!1);a.state.draggingText=!1;sa(f.wrapper.ownerDocument,"mouseup",e);sa(f.wrapper.ownerDocument,"mousemove",k);sa(f.scroller,"dragstart",l);sa(f.scroller,"drop",e);h||(na(b),d.addNew||Nc(a.doc,
+c,null,null,d.extend),ka||U&&9==X?setTimeout(function(){f.wrapper.ownerDocument.body.focus();f.input.focus()},20):f.input.focus())}),k=function(a){h=h||10<=Math.abs(b.clientX-a.clientX)+Math.abs(b.clientY-a.clientY)},l=function(){return h=!0};ka&&(f.scroller.draggable=!0);a.state.draggingText=e;e.copy=!d.moveOnDrag;f.scroller.dragDrop&&f.scroller.dragDrop();N(f.wrapper.ownerDocument,"mouseup",e);N(f.wrapper.ownerDocument,"mousemove",k);N(f.scroller,"dragstart",l);N(f.scroller,"drop",e);Je(a);setTimeout(function(){return f.input.focus()},
+20)}function Mf(a,b,c){if("char"==c)return new V(b,b);if("word"==c)return a.findWordAt(b);if("line"==c)return new V(I(b.line,0),R(a.doc,I(b.line+1,0)));a=c(a,b);return new V(a.from,a.to)}function Yg(a,b,c,d){function h(b){if(0!=M(w,b))if(w=b,"rectangle"==d.unit){var f=[],h=a.options.tabSize,e=r(J(g,c.line).text,c.ch,h),k=r(J(g,b.line).text,b.ch,h),l=Math.min(e,k);e=Math.max(e,k);k=Math.min(c.line,b.line);for(var m=Math.min(a.lastLine(),Math.max(c.line,b.line));k<=m;k++){var p=J(g,k).text,A=u(p,l,
+h);l==e?f.push(new V(I(k,A),I(k,A))):p.length>A&&f.push(new V(I(k,A),I(k,u(p,e,h))))}f.length||f.push(new V(c,c));ja(g,Aa(q.ranges.slice(0,t).concat(f),t),{origin:"*mouse",scroll:!1});a.scrollIntoView(b)}else f=n,l=Mf(a,b,d.unit),b=f.anchor,0<M(l.anchor,b)?(h=l.head,b=rc(f.from(),l.anchor)):(h=l.anchor,b=pc(f.to(),l.head)),f=q.ranges.slice(0),f[t]=Zg(a,new V(R(g,b),h)),ja(g,Aa(f,t),Rd)}function e(b){var c=++A,k=cb(a,b,!0,"rectangle"==d.unit);if(k)if(0!=M(k,w)){a.curOp.focus=f();h(k);var q=xd(l,g);
+(k.line>=q.to||k.line<q.from)&&setTimeout(fa(a,function(){A==c&&e(b)}),150)}else{var r=b.clientY<p.top?-20:b.clientY>p.bottom?20:0;r&&setTimeout(fa(a,function(){A==c&&(l.scroller.scrollTop+=r,e(b))}),50)}}function k(b){a.state.selectingText=!1;A=Infinity;na(b);l.input.focus();sa(l.wrapper.ownerDocument,"mousemove",v);sa(l.wrapper.ownerDocument,"mouseup",K);g.history.lastSelOrigin=null}var l=a.display,g=a.doc;na(b);var q=g.sel,m=q.ranges;if(d.addNew&&!d.extend){var t=g.sel.contains(c);var n=-1<t?m[t]:
+new V(c,c)}else n=g.sel.primary(),t=g.sel.primIndex;"rectangle"==d.unit?(d.addNew||(n=new V(c,c)),c=cb(a,b,!0,!0),t=-1):(b=Mf(a,c,d.unit),n=d.extend?Id(n,b.anchor,b.head,d.extend):b);d.addNew?-1==t?(t=m.length,ja(g,Aa(m.concat([n]),t),{scroll:!1,origin:"*mouse"})):1<m.length&&m[t].empty()&&"char"==d.unit&&!d.extend?(ja(g,Aa(m.slice(0,t).concat(m.slice(t+1)),0),{scroll:!1,origin:"*mouse"}),q=g.sel):Jd(g,t,n,Rd):(t=0,ja(g,new ua([n],0),Rd),q=g.sel);var w=c,p=l.wrapper.getBoundingClientRect(),A=0,v=
+fa(a,function(a){0!==a.buttons&&be(a)?e(a):k(a)}),K=fa(a,k);a.state.selectingText=K;N(l.wrapper.ownerDocument,"mousemove",v);N(l.wrapper.ownerDocument,"mouseup",K)}function Zg(a,b){var c=b.anchor,d=b.head,f=J(a.doc,c.line);if(0==M(c,d)&&c.sticky==d.sticky)return b;f=Ja(f);if(!f)return b;var h=Eb(f,c.ch,c.sticky),e=f[h];if(e.from!=c.ch&&e.to!=c.ch)return b;var k=h+(e.from==c.ch==(1!=e.level)?0:1);if(0==k||k==f.length)return b;d.line!=c.line?a=0<(d.line-c.line)*("ltr"==a.doc.direction?1:-1):(a=Eb(f,
+d.ch,d.sticky),h=a-h||(d.ch-c.ch)*(1==e.level?-1:1),a=a==k-1||a==k?0>h:0<h);f=f[k+(a?-1:0)];f=(k=a==(1==f.level))?f.from:f.to;k=k?"after":"before";return c.ch==f&&c.sticky==k?b:new V(new I(c.line,f,k),d)}function Tc(a,b,c,d){if(b.touches){var f=b.touches[0].clientX;var h=b.touches[0].clientY}else try{f=b.clientX,h=b.clientY}catch(Zd){return!1}if(f>=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&na(b);d=a.display;var e=d.lineDiv.getBoundingClientRect();if(h>e.bottom||!va(a,
+c))return ad(b);h-=e.top-d.viewOffset;for(e=0;e<a.options.gutters.length;++e){var k=d.gutters.childNodes[e];if(k&&k.getBoundingClientRect().right>=f)return f=P(a.doc,h),ba(a,c,a,f,a.options.gutters[e],b),ad(b)}}function Lf(a,b){var c;(c=Ka(a.display,b))||(c=va(a,"gutterContextMenu")?Tc(a,b,"gutterContextMenu",!1):!1);if(!c&&!ea(a,b,"contextmenu"))a.display.input.onContextMenu(b)}function Nf(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g,
+" cm-s-");Nb(a)}function fc(a){Ue(a);oa(a);Le(a)}function $g(a,b,c){!b!=!(c&&c!=Ab)&&(c=a.display.dragFunctions,b=b?N:sa,b(a.display.scroller,"dragstart",c.start),b(a.display.scroller,"dragenter",c.enter),b(a.display.scroller,"dragover",c.over),b(a.display.scroller,"dragleave",c.leave),b(a.display.scroller,"drop",c.drop))}function ah(a){a.options.lineWrapping?(h(a.display.wrapper,"CodeMirror-wrap"),a.display.sizer.style.minWidth="",a.display.sizerWidth=null):(db(a.display.wrapper,"CodeMirror-wrap"),
+$c(a));ud(a);oa(a);Nb(a);setTimeout(function(){return rb(a)},100)}function Z(a,b){var c=this;if(!(this instanceof Z))return new Z(a,b);this.options=b=b?t(b):{};t(Of,b,!1);Dd(b);var d=b.value;"string"==typeof d&&(d=new pa(d,b.mode,null,b.lineSeparator,b.direction));this.doc=d;var f=new Z.inputStyles[b.inputStyle](this);a=this.display=new O(a,d,f);a.wrapper.CodeMirror=this;Ue(this);Nf(this);b.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");Qe(this);this.state={keyMaps:[],overlays:[],
+modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new ib,keySeq:null,specialChars:null};b.autofocus&&!Db&&a.input.focus();U&&11>X&&setTimeout(function(){return c.display.input.reset(!0)},20);bh(this);Pf||(Jg(),Pf=!0);fb(this);this.curOp.forceUpdate=!0;$e(this,d);b.autofocus&&!Db||this.hasFocus()?setTimeout(k(wd,this),20):Pb(this);for(var h in Uc)if(Uc.hasOwnProperty(h))Uc[h](c,b[h],Ab);Me(this);b.finishInit&&
+b.finishInit(this);for(d=0;d<Sd.length;++d)Sd[d](c);gb(this);ka&&b.lineWrapping&&"optimizelegibility"==getComputedStyle(a.lineDiv).textRendering&&(a.lineDiv.style.textRendering="auto")}function bh(a){function b(){f.activeTouch&&(h=setTimeout(function(){return f.activeTouch=null},1E3),e=f.activeTouch,e.end=+new Date)}function d(a,b){if(null==b.left)return!0;var c=b.left-a.left;a=b.top-a.top;return 400<c*c+a*a}var f=a.display;N(f.scroller,"mousedown",fa(a,Kf));U&&11>X?N(f.scroller,"dblclick",fa(a,function(b){if(!ea(a,
+b)){var c=cb(a,b);!c||Tc(a,b,"gutterClick",!0)||Ka(a.display,b)||(na(b),b=a.findWordAt(c),Nc(a.doc,b.anchor,b.head))}})):N(f.scroller,"dblclick",function(b){return ea(a,b)||na(b)});Qd||N(f.scroller,"contextmenu",function(b){return Lf(a,b)});var h,e={end:0};N(f.scroller,"touchstart",function(b){var c;if(c=!ea(a,b))1!=b.touches.length?c=!1:(c=b.touches[0],c=1>=c.radiusX&&1>=c.radiusY),c=!c;c&&!Tc(a,b,"gutterClick",!0)&&(f.input.ensurePolled(),clearTimeout(h),c=+new Date,f.activeTouch={start:c,moved:!1,
+prev:300>=c-e.end?e:null},1==b.touches.length&&(f.activeTouch.left=b.touches[0].pageX,f.activeTouch.top=b.touches[0].pageY))});N(f.scroller,"touchmove",function(){f.activeTouch&&(f.activeTouch.moved=!0)});N(f.scroller,"touchend",function(c){var h=f.activeTouch;if(h&&!Ka(f,c)&&null!=h.left&&!h.moved&&300>new Date-h.start){var e=a.coordsChar(f.activeTouch,"page");h=!h.prev||d(h,h.prev)?new V(e,e):!h.prev.prev||d(h,h.prev.prev)?a.findWordAt(e):new V(I(e.line,0),R(a.doc,I(e.line+1,0)));a.setSelection(h.anchor,
+h.head);a.focus();na(c)}b()});N(f.scroller,"touchcancel",b);N(f.scroller,"scroll",function(){f.scroller.clientHeight&&(Rb(a,f.scroller.scrollTop),eb(a,f.scroller.scrollLeft,!0),ba(a,"scroll",a))});N(f.scroller,"mousewheel",function(b){return We(a,b)});N(f.scroller,"DOMMouseScroll",function(b){return We(a,b)});N(f.wrapper,"scroll",function(){return f.wrapper.scrollTop=f.wrapper.scrollLeft=0});f.dragFunctions={enter:function(b){ea(a,b)||Gb(b)},over:function(b){if(!ea(a,b)){var d=cb(a,b);if(d){var f=
+document.createDocumentFragment();He(a,d,f);a.display.dragCursor||(a.display.dragCursor=c("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),a.display.lineSpace.insertBefore(a.display.dragCursor,a.display.cursorDiv));g(a.display.dragCursor,f)}Gb(b)}},start:function(b){if(U&&(!a.state.draggingText||100>+new Date-xf))Gb(b);else if(!ea(a,b)&&!Ka(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.effectAllowed="copyMove",b.dataTransfer.setDragImage&&!Qf)){var d=c("img",
+null,null,"position: fixed; left: 0; top: 0;");d.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";za&&(d.width=d.height=1,a.display.wrapper.appendChild(d),d._top=d.offsetTop);b.dataTransfer.setDragImage(d,0,0);za&&d.parentNode.removeChild(d)}},drop:fa(a,Ig),leave:function(b){ea(a,b)||wf(a)}};var k=f.input.getField();N(k,"keyup",function(b){return If.call(a,b)});N(k,"keydown",fa(a,Hf));N(k,"keypress",fa(a,Jf));N(k,"focus",function(b){return wd(a,b)});N(k,"blur",function(b){return Pb(a,
+b)})}function gc(a,b,c,d){var f=a.doc,h;null==c&&(c="add");"smart"==c&&(f.mode.indent?h=Hb(a,b).state:c="prev");var e=a.options.tabSize,k=J(f,b),l=r(k.text,null,e);k.stateAfter&&(k.stateAfter=null);var g=k.text.match(/^\s*/)[0];if(!d&&!/\S/.test(k.text)){var q=0;c="not"}else if("smart"==c&&(q=f.mode.indent(h,k.text.slice(g.length),k.text),q==Sc||150<q)){if(!d)return;c="prev"}"prev"==c?q=b>f.first?r(J(f,b-1).text,null,e):0:"add"==c?q=l+a.options.indentUnit:"subtract"==c?q=l-a.options.indentUnit:"number"==
+typeof c&&(q=l+c);q=Math.max(0,q);c="";d=0;if(a.options.indentWithTabs)for(a=Math.floor(q/e);a;--a)d+=e,c+="\t";d<q&&(c+=A(q-d));if(c!=g)return wb(f,c,I(b,0),I(b,g.length),"+input"),k.stateAfter=null,!0;for(e=0;e<f.sel.ranges.length;e++)if(k=f.sel.ranges[e],k.head.line==b&&k.head.ch<g.length){b=I(b,g.length);Jd(f,e,new V(b,b));break}}function Td(a,b,c,d,f){var h=a.doc;a.display.shift=!1;d||(d=h.sel);var e=a.state.pasteIncoming||"paste"==f,k=Ud(b),l=null;if(e&&1<d.ranges.length)if(ra&&ra.text.join("\n")==
+b){if(0==d.ranges.length%ra.text.length){l=[];for(var g=0;g<ra.text.length;g++)l.push(h.splitLines(ra.text[g]))}}else k.length==d.ranges.length&&a.options.pasteLinesPerSelection&&(l=z(k,function(a){return[a]}));for(g=d.ranges.length-1;0<=g;g--){var q=d.ranges[g];var r=q.from(),m=q.to();q.empty()&&(c&&0<c?r=I(r.line,r.ch-c):a.state.overwrite&&!e?m=I(m.line,Math.min(J(h,m.line).text.length,m.ch+y(k).length)):ra&&ra.lineWise&&ra.text.join("\n")==b&&(r=m=I(r.line,0)));q=a.curOp.updateInput;r={from:r,
+to:m,text:l?l[g%l.length]:k,origin:f||(e?"paste":a.state.cutIncoming?"cut":"+input")};vb(a.doc,r);ia(a,"inputRead",a,r)}b&&!e&&Rf(a,b);qb(a);a.curOp.updateInput=q;a.curOp.typing=!0;a.state.pasteIncoming=a.state.cutIncoming=!1}function Sf(a,b){var c=a.clipboardData&&a.clipboardData.getData("Text");if(c)return a.preventDefault(),b.isReadOnly()||b.options.disableInput||qa(b,function(){return Td(b,c,0,null,"paste")}),!0}function Rf(a,b){if(a.options.electricChars&&a.options.smartIndent)for(var c=a.doc.sel,
+d=c.ranges.length-1;0<=d;d--){var f=c.ranges[d];if(!(100<f.head.ch||d&&c.ranges[d-1].head.line==f.head.line)){var h=a.getModeAt(f.head),e=!1;if(h.electricChars)for(var k=0;k<h.electricChars.length;k++){if(-1<b.indexOf(h.electricChars.charAt(k))){e=gc(a,f.head.line,"smart");break}}else h.electricInput&&h.electricInput.test(J(a.doc,f.head.line).text.slice(0,f.head.ch))&&(e=gc(a,f.head.line,"smart"));e&&ia(a,"electricInput",a,f.head.line)}}}function Tf(a){for(var b=[],c=[],d=0;d<a.doc.sel.ranges.length;d++){var f=
+a.doc.sel.ranges[d].head.line;f={anchor:I(f,0),head:I(f+1,0)};c.push(f);b.push(a.getRange(f.anchor,f.head))}return{text:b,ranges:c}}function Uf(a,b){a.setAttribute("autocorrect","off");a.setAttribute("autocapitalize","off");a.setAttribute("spellcheck",!!b)}function Vf(){var a=c("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),b=c("div",[a],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");ka?a.style.width="1000px":a.setAttribute("wrap",
+"off");hc&&(a.style.border="1px solid black");Uf(a);return b}function Vd(a,b,c,d,f){function h(d){var h=f?Ng(a.cm,l,b,c):Md(l,b,c);if(null==h){if(d=!d)d=b.line+c,d<a.first||d>=a.first+a.size?d=!1:(b=new I(d,b.ch,b.sticky),d=l=J(a,d));if(d)b=Nd(f,a.cm,l,b.line,c);else return!1}else b=h;return!0}var e=b,k=c,l=J(a,b.line);if("char"==d)h();else if("column"==d)h(!0);else if("word"==d||"group"==d){var g=null;d="group"==d;for(var q=a.cm&&a.cm.getHelper(b,"wordChars"),r=!0;!(0>c)||h(!r);r=!1){var m=l.text.charAt(b.ch)||
+"\n";m=F(m,q)?"w":d&&"\n"==m?"n":!d||/\s/.test(m)?null:"p";!d||r||m||(m="s");if(g&&g!=m){0>c&&(c=1,h(),b.sticky="after");break}m&&(g=m);if(0<c&&!h(!r))break}}k=Kd(a,b,e,k,!0);Ba(e,k)&&(k.hitSide=!0);return k}function Wf(a,b,c,d){var f=a.doc,h=b.left;if("page"==d){var e=Math.max(Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight)-.5*ab(a.display),3);e=(0<c?b.bottom:b.top)+c*e}else"line"==d&&(e=0<c?b.bottom+3:b.top-3);for(;;){b=rd(a,h,e);if(!b.outside)break;
+if(0>c?0>=e:e>=f.height){b.hitSide=!0;break}e+=5*c}return b}function Xf(a,b){var c=ld(a,b.line);if(!c||c.hidden)return null;var d=J(a.doc,b.line);c=ue(c,d,b.line);a=Ja(d,a.doc.direction);d="left";a&&(d=Eb(a,b.ch)%2?"right":"left");b=ve(c.map,b.ch,d);b.offset="right"==b.collapse?b.end:b.start;return b}function ch(a){for(;a;a=a.parentNode)if(/CodeMirror-gutter-wrapper/.test(a.className))return!0;return!1}function Bb(a,b){b&&(a.bad=!0);return a}function dh(a,b,c,d,f){function h(a){return function(b){return b.id==
+a}}function e(){q&&(g+=r,m&&(g+=r),q=m=!1)}function k(a){a&&(e(),g+=a)}function l(b){if(1==b.nodeType){var c=b.getAttribute("cm-text");if(c)k(c);else{c=b.getAttribute("cm-marker");var g;if(c)b=a.findMarks(I(d,0),I(f+1,0),h(+c)),b.length&&(g=b[0].find(0))&&k(Q(a.doc,g.from,g.to).join(r));else if("false"!=b.getAttribute("contenteditable")&&(g=/^(pre|div|p|li|table|br)$/i.test(b.nodeName),/^br$/i.test(b.nodeName)||0!=b.textContent.length)){g&&e();for(c=0;c<b.childNodes.length;c++)l(b.childNodes[c]);
+/^(pre|p)$/i.test(b.nodeName)&&(m=!0);g&&(q=!0)}}}else 3==b.nodeType&&k(b.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "))}for(var g="",q=!1,r=a.doc.lineSeparator(),m=!1;;){l(b);if(b==c)break;b=b.nextSibling;m=!1}return g}function Vc(a,b,c){if(b==a.display.lineDiv){var d=a.display.lineDiv.childNodes[c];if(!d)return Bb(a.clipPos(I(a.display.viewTo-1)),!0);b=null;c=0}else for(d=b;;d=d.parentNode){if(!d||d==a.display.lineDiv)return null;if(d.parentNode&&d.parentNode==a.display.lineDiv)break}for(var f=
+0;f<a.display.view.length;f++){var h=a.display.view[f];if(h.node==d)return eh(h,b,c)}}function eh(a,b,c){function f(b,c,d){for(var f=-1;f<(q?q.length:0);f++)for(var h=0>f?g.map:q[f],e=0;e<h.length;e+=3){var k=h[e+2];if(k==b||k==c){c=L(0>f?a.line:a.rest[f]);f=h[e]+d;if(0>d||k!=b)f=h[e+(d?1:0)];return I(c,f)}}}var h=a.text.firstChild,e=!1;if(!b||!d(h,b))return Bb(I(L(a.line),0),!0);if(b==h&&(e=!0,b=h.childNodes[c],c=0,!b))return c=a.rest?y(a.rest):a.line,Bb(I(L(c),c.text.length),e);var k=3==b.nodeType?
+b:null,l=b;k||1!=b.childNodes.length||3!=b.firstChild.nodeType||(k=b.firstChild,c&&(c=k.nodeValue.length));for(;l.parentNode!=h;)l=l.parentNode;var g=a.measure,q=g.maps;if(b=f(k,l,c))return Bb(b,e);h=l.nextSibling;for(k=k?k.nodeValue.length-c:0;h;h=h.nextSibling){if(b=f(h,h.firstChild,0))return Bb(I(b.line,b.ch-k),e);k+=h.textContent.length}for(l=l.previousSibling;l;l=l.previousSibling){if(b=f(l,l.firstChild,-1))return Bb(I(b.line,b.ch+c),e);c+=l.textContent.length}}var ma=navigator.userAgent,Yf=
+navigator.platform,Oa=/gecko\/\d/i.test(ma),Zf=/MSIE \d/.test(ma),$f=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ma),ic=/Edge\/(\d+)/.exec(ma),U=Zf||$f||ic,X=U&&(Zf?document.documentMode||6:+(ic||$f)[1]),ka=!ic&&/WebKit\//.test(ma),fh=ka&&/Qt\/\d+\.\d+/.test(ma),Bc=!ic&&/Chrome\//.test(ma),za=/Opera\//.test(ma),Qf=/Apple Computer/.test(navigator.vendor),gh=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(ma),xg=/PhantomJS/.test(ma),hc=!ic&&/AppleWebKit/.test(ma)&&/Mobile\/\w+/.test(ma),Cc=/Android/.test(ma),
+Db=hc||Cc||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(ma),wa=hc||/Mac/.test(Yf),Vg=/\bCrOS\b/.test(ma),hh=/win/i.test(Yf),jb=za&&ma.match(/Version\/(\d*\.\d*)/);jb&&(jb=Number(jb[1]));jb&&15<=jb&&(za=!1,ka=!0);var Bf=wa&&(fh||za&&(null==jb||12.11>jb)),Qd=Oa||U&&9<=X,db=function(b,c){var d=b.className;if(c=a(c).exec(d)){var f=d.slice(c.index+c[0].length);b.className=d.slice(0,c.index)+(f?c[1]+f:"")}};var Ib=document.createRange?function(a,b,c,d){var f=document.createRange();f.setEnd(d||
+a,c);f.setStart(a,b);return f}:function(a,b,c){var d=document.body.createTextRange();try{d.moveToElementText(a.parentNode)}catch(uc){return d}d.collapse(!0);d.moveEnd("character",c);d.moveStart("character",b);return d};var jc=function(a){a.select()};hc?jc=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:U&&(jc=function(a){try{a.select()}catch(K){}});var ib=function(){this.id=null};ib.prototype.set=function(a,b){clearTimeout(this.id);this.id=setTimeout(b,a)};var Sc={toString:function(){return"CodeMirror.Pass"}},
+Ga={scroll:!1},Rd={origin:"*mouse"},kc={origin:"+move"},vc=[""],bg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,cg=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,
+of=!1,Ia=!1,Fb=null,eg=function(){function a(a){return 247>=a?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a):1424<=a&&1524>=a?"R":1536<=a&&1785>=a?"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111".charAt(a-
+1536):1774<=a&&2220>=a?"r":8192<=a&&8203>=a?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,d=/[stwN]/,f=/[LRr]/,h=/[Lb1n]/,e=/[1n]/;return function(k,l){var g="ltr"==l?"L":"R";if(0==k.length||"ltr"==l&&!c.test(k))return!1;for(var q=k.length,r=[],m=0;m<q;++m)r.push(a(k.charCodeAt(m)));m=0;for(var t=g;m<q;++m){var n=r[m];"m"==n?r[m]=t:t=n}m=0;for(t=g;m<q;++m)n=r[m],"1"==n&&"r"==t?r[m]="n":f.test(n)&&(t=n,"r"==n&&(r[m]="R"));
+m=1;for(t=r[0];m<q-1;++m)n=r[m],"+"==n&&"1"==t&&"1"==r[m+1]?r[m]="1":","!=n||t!=r[m+1]||"1"!=t&&"n"!=t||(r[m]=t),t=n;for(m=0;m<q;++m)if(t=r[m],","==t)r[m]="N";else if("%"==t){for(t=m+1;t<q&&"%"==r[t];++t);for(n=m&&"!"==r[m-1]||t<q&&"1"==r[t]?"1":"N";m<t;++m)r[m]=n;m=t-1}m=0;for(t=g;m<q;++m)n=r[m],"L"==t&&"1"==n?r[m]="L":f.test(n)&&(t=n);for(t=0;t<q;++t)if(d.test(r[t])){for(m=t+1;m<q&&d.test(r[m]);++m);n="L"==(t?r[t-1]:g);for(n=n==("L"==(m<q?r[m]:g))?n?"L":"R":g;t<m;++t)r[t]=n;t=m-1}g=[];var p;for(m=
+0;m<q;)if(h.test(r[m])){t=m;for(++m;m<q&&h.test(r[m]);++m);g.push(new b(0,t,m))}else{var u=m;t=g.length;for(++m;m<q&&"L"!=r[m];++m);for(n=u;n<m;)if(e.test(r[n])){u<n&&g.splice(t,0,new b(1,u,n));u=n;for(++n;n<m&&e.test(r[n]);++n);g.splice(t,0,new b(2,u,n));u=n}else++n;u<m&&g.splice(t,0,new b(1,u,m))}"ltr"==l&&(1==g[0].level&&(p=k.match(/^\s+/))&&(g[0].from=p[0].length,g.unshift(new b(0,0,p[0].length))),1==y(g).level&&(p=k.match(/\s+$/))&&(y(g).to-=p[0].length,g.push(new b(0,q-p[0].length,q))));return"rtl"==
+l?g.reverse():g}}(),xc=[],N=function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):(a=a._handlers||(a._handlers={}),a[b]=(a[b]||xc).concat(c))},Wg=function(){if(U&&9>X)return!1;var a=c("div");return"draggable"in a||"dragDrop"in a}(),bd,hd,Ud=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;b<=d;){var f=a.indexOf("\n",b);-1==f&&(f=a.length);var h=a.slice(b,"\r"==a.charAt(f-1)?f-1:f),e=h.indexOf("\r");-1!=e?(c.push(h.slice(0,e)),b+=e+
+1):(c.push(h),b=f+1)}return c}:function(a){return a.split(/\r\n?|\n/)},ih=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(K){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(Na){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},Qg=function(){var a=c("div");if("oncopy"in a)return!0;a.setAttribute("oncopy","return;");return"function"==typeof a.oncopy}(),nd=null,cd={},nb={},ob={},ca=function(a,b,c){this.pos=this.start=
+0;this.string=a;this.tabSize=b||8;this.lineStart=this.lastColumnPos=this.lastColumnValue=0;this.lineOracle=c};ca.prototype.eol=function(){return this.pos>=this.string.length};ca.prototype.sol=function(){return this.pos==this.lineStart};ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0};ca.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)};ca.prototype.eat=function(a){var b=this.string.charAt(this.pos);if("string"==typeof a?b==a:b&&
+(a.test?a.test(b):a(b)))return++this.pos,b};ca.prototype.eatWhile=function(a){for(var b=this.pos;this.eat(a););return this.pos>b};ca.prototype.eatSpace=function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a};ca.prototype.skipToEnd=function(){this.pos=this.string.length};ca.prototype.skipTo=function(a){a=this.string.indexOf(a,this.pos);if(-1<a)return this.pos=a,!0};ca.prototype.backUp=function(a){this.pos-=a};ca.prototype.column=function(){this.lastColumnPos<
+this.start&&(this.lastColumnValue=r(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start);return this.lastColumnValue-(this.lineStart?r(this.string,this.lineStart,this.tabSize):0)};ca.prototype.indentation=function(){return r(this.string,null,this.tabSize)-(this.lineStart?r(this.string,this.lineStart,this.tabSize):0)};ca.prototype.match=function(a,b,c){if("string"==typeof a){var d=function(a){return c?a.toLowerCase():a},f=this.string.substr(this.pos,
+a.length);if(d(f)==d(a))return!1!==b&&(this.pos+=a.length),!0}else{if((a=this.string.slice(this.pos).match(a))&&0<a.index)return null;a&&!1!==b&&(this.pos+=a[0].length);return a}};ca.prototype.current=function(){return this.string.slice(this.start,this.pos)};ca.prototype.hideFirstChars=function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}};ca.prototype.lookAhead=function(a){var b=this.lineOracle;return b&&b.lookAhead(a)};ca.prototype.baseToken=function(){var a=this.lineOracle;
+return a&&a.baseToken(this.pos)};var zc=function(a,b){this.state=a;this.lookAhead=b},Ea=function(a,b,c,d){this.state=b;this.doc=a;this.line=c;this.maxLookAhead=d||0;this.baseTokens=null;this.baseTokenPos=1};Ea.prototype.lookAhead=function(a){var b=this.doc.getLine(this.line+a);null!=b&&a>this.maxLookAhead&&(this.maxLookAhead=a);return b};Ea.prototype.baseToken=function(a){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=a;)this.baseTokenPos+=2;var b=this.baseTokens[this.baseTokenPos+
+1];return{type:b&&b.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-a}};Ea.prototype.nextLine=function(){this.line++;0<this.maxLookAhead&&this.maxLookAhead--};Ea.fromSaved=function(a,b,c){return b instanceof zc?new Ea(a,Xa(a.mode,b.state),c,b.lookAhead):new Ea(a,Xa(a.mode,b),c)};Ea.prototype.save=function(a){a=!1!==a?Xa(this.doc.mode,this.state):this.state;return 0<this.maxLookAhead?new zc(a,this.maxLookAhead):a};var ie=function(a,b,c){this.start=a.start;this.end=a.pos;this.string=
+a.current();this.type=b||null;this.state=c},sb=function(a,b,c){this.text=a;Xd(this,b);this.height=c?c(this):1};sb.prototype.lineNo=function(){return L(this)};mb(sb);var lg={},kg={},pb=null,Jb=null,we={left:0,right:0,top:0,bottom:0},bb,kb=function(a,b,d){this.cm=d;var f=this.vert=c("div",[c("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),h=this.horiz=c("div",[c("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");f.tabIndex=h.tabIndex=-1;a(f);a(h);N(f,"scroll",function(){f.clientHeight&&
+b(f.scrollTop,"vertical")});N(h,"scroll",function(){h.clientWidth&&b(h.scrollLeft,"horizontal")});this.checkedZeroWidth=!1;U&&8>X&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};kb.prototype.update=function(a){var b=a.scrollWidth>a.clientWidth+1,c=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;c?(this.vert.style.display="block",this.vert.style.bottom=b?d+"px":"0",this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+(a.viewHeight-(b?d:0)))+"px"):(this.vert.style.display=
+"",this.vert.firstChild.style.height="0");b?(this.horiz.style.display="block",this.horiz.style.right=c?d+"px":"0",this.horiz.style.left=a.barLeft+"px",this.horiz.firstChild.style.width=Math.max(0,a.scrollWidth-a.clientWidth+(a.viewWidth-a.barLeft-(c?d:0)))+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0");!this.checkedZeroWidth&&0<a.clientHeight&&(0==d&&this.zeroWidthHack(),this.checkedZeroWidth=!0);return{right:c?d:0,bottom:b?d:0}};kb.prototype.setScrollLeft=function(a){this.horiz.scrollLeft!=
+a&&(this.horiz.scrollLeft=a);this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")};kb.prototype.setScrollTop=function(a){this.vert.scrollTop!=a&&(this.vert.scrollTop=a);this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")};kb.prototype.zeroWidthHack=function(){this.horiz.style.height=this.vert.style.width=wa&&!gh?"12px":"18px";this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none";this.disableHoriz=new ib;this.disableVert=new ib};kb.prototype.enableZeroWidthBar=
+function(a,b,c){function d(){var f=a.getBoundingClientRect();("vert"==c?document.elementFromPoint(f.right-1,(f.top+f.bottom)/2):document.elementFromPoint((f.right+f.left)/2,f.bottom-1))!=a?a.style.pointerEvents="none":b.set(1E3,d)}a.style.pointerEvents="auto";b.set(1E3,d)};kb.prototype.clear=function(){var a=this.horiz.parentNode;a.removeChild(this.horiz);a.removeChild(this.vert)};var lc=function(){};lc.prototype.update=function(){return{bottom:0,right:0}};lc.prototype.setScrollLeft=function(){};
+lc.prototype.setScrollTop=function(){};lc.prototype.clear=function(){};var Re={"native":kb,"null":lc},wg=0,Ic=function(a,b,c){var d=a.display;this.viewport=b;this.visible=xd(d,a.doc,b);this.editorIsHidden=!d.wrapper.offsetWidth;this.wrapperHeight=d.wrapper.clientHeight;this.wrapperWidth=d.wrapper.clientWidth;this.oldDisplayWidth=Ya(a);this.force=c;this.dims=md(a);this.events=[]};Ic.prototype.signal=function(a,b){va(a,b)&&this.events.push(arguments)};Ic.prototype.finish=function(){for(var a=0;a<this.events.length;a++)ba.apply(null,
+this.events[a])};var Kc=0,ta=null;U?ta=-.53:Oa?ta=15:Bc?ta=-.7:Qf&&(ta=-1/3);var ua=function(a,b){this.ranges=a;this.primIndex=b};ua.prototype.primary=function(){return this.ranges[this.primIndex]};ua.prototype.equals=function(a){if(a==this)return!0;if(a.primIndex!=this.primIndex||a.ranges.length!=this.ranges.length)return!1;for(var b=0;b<this.ranges.length;b++){var c=this.ranges[b],d=a.ranges[b];if(!Ba(c.anchor,d.anchor)||!Ba(c.head,d.head))return!1}return!0};ua.prototype.deepCopy=function(){for(var a=
+[],b=0;b<this.ranges.length;b++)a[b]=new V(Ua(this.ranges[b].anchor),Ua(this.ranges[b].head));return new ua(a,this.primIndex)};ua.prototype.somethingSelected=function(){for(var a=0;a<this.ranges.length;a++)if(!this.ranges[a].empty())return!0;return!1};ua.prototype.contains=function(a,b){b||(b=a);for(var c=0;c<this.ranges.length;c++){var d=this.ranges[c];if(0<=M(b,d.from())&&0>=M(a,d.to()))return c}return-1};var V=function(a,b){this.anchor=a;this.head=b};V.prototype.from=function(){return rc(this.anchor,
+this.head)};V.prototype.to=function(){return pc(this.anchor,this.head)};V.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};Xb.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=a,d=a+b;c<d;++c){var f=this.lines[c];this.height-=f.height;var h=f;h.parent=null;lb(h);ia(f,"delete")}this.lines.splice(a,b)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(a,b,c){this.height+=c;this.lines=this.lines.slice(0,
+a).concat(b).concat(this.lines.slice(a));for(a=0;a<b.length;++a)b[a].parent=this},iterN:function(a,b,c){for(b=a+b;a<b;++a)if(c(this.lines[a]))return!0}};Yb.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){this.size-=b;for(var c=0;c<this.children.length;++c){var d=this.children[c],f=d.chunkSize();if(a<f){var h=Math.min(b,f-a),e=d.height;d.removeInner(a,h);this.height-=e-d.height;f==h&&(this.children.splice(c--,1),d.parent=null);if(0==(b-=h))break;a=0}else a-=f}25>this.size-
+b&&(1<this.children.length||!(this.children[0]instanceof Xb))&&(a=[],this.collapse(a),this.children=[new Xb(a)],this.children[0].parent=this)},collapse:function(a){for(var b=0;b<this.children.length;++b)this.children[b].collapse(a)},insertInner:function(a,b,c){this.size+=b.length;this.height+=c;for(var d=0;d<this.children.length;++d){var f=this.children[d],h=f.chunkSize();if(a<=h){f.insertInner(a,b,c);if(f.lines&&50<f.lines.length){for(b=a=f.lines.length%25+25;b<f.lines.length;)c=new Xb(f.lines.slice(b,
+b+=25)),f.height-=c.height,this.children.splice(++d,0,c),c.parent=this;f.lines=f.lines.slice(0,a);this.maybeSpill()}break}a-=h}},maybeSpill:function(){if(!(10>=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length-5,5);b=new Yb(b);if(a.parent){a.size-=b.size;a.height-=b.height;var c=l(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else c=new Yb(a.children),c.parent=a,a.children=[c,b],a=c;b.parent=a.parent}while(10<a.children.length);a.parent.maybeSpill()}},iterN:function(a,
+b,c){for(var d=0;d<this.children.length;++d){var f=this.children[d],h=f.chunkSize();if(a<h){h=Math.min(b,h-a);if(f.iterN(a,h,c))return!0;if(0==(b-=h))break;a=0}else a-=h}}};var Zb=function(a,b,c){if(c)for(var d in c)c.hasOwnProperty(d)&&(this[d]=c[d]);this.doc=a;this.node=b};Zb.prototype.clear=function(){var a=this.doc.cm,b=this.line.widgets,c=this.line,d=L(c);if(null!=d&&b){for(var f=0;f<b.length;++f)b[f]==this&&b.splice(f--,1);b.length||(c.widgets=null);var h=Lb(this);S(c,Math.max(0,c.height-h));
+a&&(qa(a,function(){var b=-h;Da(c)<(a.curOp&&a.curOp.scrollTop||a.doc.scrollTop)&&Gc(a,b);Qa(a,d,"widget")}),ia(a,"lineWidgetCleared",a,this,d))}};Zb.prototype.changed=function(){var a=this,b=this.height,c=this.doc.cm,d=this.line;this.height=null;var f=Lb(this)-b;f&&(S(d,d.height+f),c&&qa(c,function(){c.curOp.forceUpdate=!0;Da(d)<(c.curOp&&c.curOp.scrollTop||c.doc.scrollTop)&&Gc(c,f);ia(c,"lineWidgetChanged",c,a,L(d))}))};mb(Zb);var uf=0,Sa=function(a,b){this.lines=[];this.type=b;this.doc=a;this.id=
+++uf};Sa.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;b&&fb(a);if(va(this,"clear")){var c=this.find();c&&ia(this,"clear",c.from,c.to)}for(var d=c=null,f=0;f<this.lines.length;++f){var h=this.lines[f],e=Ha(h.markedSpans,this);a&&!this.collapsed?Qa(a,L(h),"text"):a&&(null!=e.to&&(d=L(h)),null!=e.from&&(c=L(h)));for(var k=h,l=void 0,g=h.markedSpans,q=e,r=0;r<g.length;++r)g[r]!=q&&(l||(l=[])).push(g[r]);k.markedSpans=l;null==e.from&&this.collapsed&&!Va(this.doc,
+h)&&a&&S(h,ab(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(f=0;f<this.lines.length;++f)h=Ca(this.lines[f]),e=wc(h),e>a.display.maxLineLength&&(a.display.maxLine=h,a.display.maxLineLength=e,a.display.maxLineChanged=!0);null!=c&&a&&this.collapsed&&oa(a,c,d+1);this.lines.length=0;this.explicitlyCleared=!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&kf(a.doc));a&&ia(a,"markerCleared",a,this,c,d);b&&gb(a);this.parent&&this.parent.clear()}};Sa.prototype.find=function(a,b){null==
+a&&"bookmark"==this.type&&(a=1);for(var c,d,f=0;f<this.lines.length;++f){var h=this.lines[f],e=Ha(h.markedSpans,this);if(null!=e.from&&(c=I(b?h:L(h),e.from),-1==a))return c;if(null!=e.to&&(d=I(b?h:L(h),e.to),1==a))return d}return c&&{from:c,to:d}};Sa.prototype.changed=function(){var a=this,b=this.find(-1,!0),c=this,d=this.doc.cm;b&&d&&qa(d,function(){var f=b.line,h=L(b.line);if(h=ld(d,h))xe(h),d.curOp.selectionChanged=d.curOp.forceUpdate=!0;d.curOp.updateMaxLine=!0;Va(c.doc,f)||null==c.height||(h=
+c.height,c.height=null,(h=Lb(c)-h)&&S(f,f.height+h));ia(d,"markerChanged",d,a)})};Sa.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&-1!=l(b.maybeHiddenMarkers,this)||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)};Sa.prototype.detachLine=function(a){this.lines.splice(l(this.lines,a),1);!this.lines.length&&this.doc.cm&&(a=this.doc.cm.curOp,(a.maybeHiddenMarkers||(a.maybeHiddenMarkers=[])).push(this))};
+mb(Sa);var $b=function(a,b){this.markers=a;this.primary=b;for(b=0;b<a.length;++b)a[b].parent=this};$b.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;a<this.markers.length;++a)this.markers[a].clear();ia(this,"clear")}};$b.prototype.find=function(a,b){return this.primary.find(a,b)};mb($b);var jh=0,pa=function(a,b,c,d,f){if(!(this instanceof pa))return new pa(a,b,c,d,f);null==c&&(c=0);Yb.call(this,[new Xb([new sb("",null)])]);this.first=c;this.scrollTop=
+this.scrollLeft=0;this.cantEdit=!1;this.cleanGeneration=1;this.modeFrontier=this.highlightFrontier=c;c=I(c,0);this.sel=La(c);this.history=new Lc(null);this.id=++jh;this.modeOption=b;this.lineSep=d;this.direction="rtl"==f?"rtl":"ltr";this.extend=!1;"string"==typeof a&&(a=this.splitLines(a));Gd(this,{from:c,to:c,text:a});ja(this,La(c),Ga)};pa.prototype=v(Yb.prototype,{constructor:pa,iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,
+b){for(var c=0,d=0;d<b.length;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=T(this,this.first,this.first+this.size);return!1===a?b:b.join(a||this.lineSeparator())},setValue:ha(function(a){var b=I(this.first,0),c=this.first+this.size-1;vb(this,{from:b,to:I(c,J(this,c).text.length),text:this.splitLines(a),origin:"setValue",full:!0},!0);this.cm&&Qb(this.cm,0,0);ja(this,La(b),Ga)}),replaceRange:function(a,b,c,d){b=
+R(this,b);c=c?R(this,c):b;wb(this,a,b,c,d)},getRange:function(a,b,c){a=Q(this,R(this,a),R(this,b));return!1===c?a:a.join(c||this.lineSeparator())},getLine:function(a){return(a=this.getLineHandle(a))&&a.text},getLineHandle:function(a){if(Y(this,a))return J(this,a)},getLineNumber:function(a){return L(a)},getLineHandleVisualStart:function(a){"number"==typeof a&&(a=J(this,a));return Ca(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+
+this.size-1},clipPos:function(a){return R(this,a)},getCursor:function(a){var b=this.sel.primary();return null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||"to"==a||!1===a?b.to():b.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:ha(function(a,b,c){a=R(this,"number"==typeof a?I(a,b||0):a);ja(this,La(a,null),c)}),setSelection:ha(function(a,b,c){var d=R(this,a);a=R(this,b||a);ja(this,La(d,a),c)}),extendSelection:ha(function(a,
+b,c){Nc(this,R(this,a),b&&R(this,b),c)}),extendSelections:ha(function(a,b){ff(this,tc(this,a),b)}),extendSelectionsBy:ha(function(a,b){a=z(this.sel.ranges,a);ff(this,tc(this,a),b)}),setSelections:ha(function(a,b,c){if(a.length){for(var d=[],f=0;f<a.length;f++)d[f]=new V(R(this,a[f].anchor),R(this,a[f].head));null==b&&(b=Math.min(a.length-1,this.sel.primIndex));ja(this,Aa(d,b),c)}}),addSelection:ha(function(a,b,c){var d=this.sel.ranges.slice(0);d.push(new V(R(this,a),R(this,b||a)));ja(this,Aa(d,d.length-
+1),c)}),getSelection:function(a){for(var b=this.sel.ranges,c,d=0;d<b.length;d++){var f=Q(this,b[d].from(),b[d].to());c=c?c.concat(f):f}return!1===a?c:c.join(a||this.lineSeparator())},getSelections:function(a){for(var b=[],c=this.sel.ranges,d=0;d<c.length;d++){var f=Q(this,c[d].from(),c[d].to());!1!==a&&(f=f.join(a||this.lineSeparator()));b[d]=f}return b},replaceSelection:function(a,b,c){for(var d=[],f=0;f<this.sel.ranges.length;f++)d[f]=a;this.replaceSelections(d,b,c||"+input")},replaceSelections:ha(function(a,
+b,c){for(var d=[],f=this.sel,h=0;h<f.ranges.length;h++){var e=f.ranges[h];d[h]={from:e.from(),to:e.to(),text:this.splitLines(a[h]),origin:c}}if(a=b&&"end"!=b){a=[];f=c=I(this.first,0);for(h=0;h<d.length;h++){var k=d[h];e=Ye(k.from,c,f);var l=Ye(Ra(k),c,f);c=k.to;f=l;"around"==b?(k=this.sel.ranges[h],k=0>M(k.head,k.anchor),a[h]=new V(k?l:e,k?e:l)):a[h]=new V(e,e)}a=new ua(a,this.sel.primIndex)}b=a;for(a=d.length-1;0<=a;a--)vb(this,d[a]);b?gf(this,b):this.cm&&qb(this.cm)}),undo:ha(function(){Pc(this,
+"undo")}),redo:ha(function(){Pc(this,"redo")}),undoSelection:ha(function(){Pc(this,"undo",!0)}),redoSelection:ha(function(){Pc(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d<a.done.length;d++)a.done[d].ranges||++b;for(d=0;d<a.undone.length;d++)a.undone[d].ranges||++c;return{undo:b,redo:c}},clearHistory:function(){this.history=new Lc(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=
+this.changeGeneration(!0)},changeGeneration:function(a){a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null);return this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)},getHistory:function(){return{done:tb(this.history.done),undone:tb(this.history.undone)}},setHistory:function(a){var b=this.history=new Lc(this.history.maxGeneration);b.done=tb(a.done.slice(0),null,!0);b.undone=tb(a.undone.slice(0),null,!0)},setGutterMarker:ha(function(a,
+b,c){return Wb(this,a,"gutter",function(a){var d=a.gutterMarkers||(a.gutterMarkers={});d[b]=c;!c&&C(d)&&(a.gutterMarkers=null);return!0})}),clearGutter:ha(function(a){var b=this;this.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&Wb(b,c,"gutter",function(){c.gutterMarkers[a]=null;C(c.gutterMarkers)&&(c.gutterMarkers=null);return!0})})}),lineInfo:function(a){if("number"==typeof a){if(!Y(this,a))return null;var b=a;a=J(this,a);if(!a)return null}else if(b=L(a),null==b)return null;return{line:b,
+handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},addLineClass:ha(function(b,c,d){return Wb(this,b,"gutter"==c?"gutter":"class",function(b){var f="text"==c?"textClass":"background"==c?"bgClass":"gutter"==c?"gutterClass":"wrapClass";if(b[f]){if(a(d).test(b[f]))return!1;b[f]+=" "+d}else b[f]=d;return!0})}),removeLineClass:ha(function(b,c,d){return Wb(this,b,"gutter"==c?"gutter":"class",function(b){var f="text"==c?"textClass":
+"background"==c?"bgClass":"gutter"==c?"gutterClass":"wrapClass",h=b[f];if(h)if(null==d)b[f]=null;else{var e=h.match(a(d));if(!e)return!1;var k=e.index+e[0].length;b[f]=h.slice(0,e.index)+(e.index&&k!=h.length?" ":"")+h.slice(k)||null}else return!1;return!0})}),addLineWidget:ha(function(a,b,c){return Fg(this,a,b,c)}),removeLineWidget:function(a){a.clear()},markText:function(a,b,c){return xb(this,R(this,a),R(this,b),c,c&&c.type||"range")},setBookmark:function(a,b){b={replacedWith:b&&(null==b.nodeType?
+b.widget:b),insertLeft:b&&b.insertLeft,clearWhenEmpty:!1,shared:b&&b.shared,handleMouseEvents:b&&b.handleMouseEvents};a=R(this,a);return xb(this,a,a,b,"bookmark")},findMarksAt:function(a){a=R(this,a);var b=[],c=J(this,a.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var f=c[d];(null==f.from||f.from<=a.ch)&&(null==f.to||f.to>=a.ch)&&b.push(f.marker.parent||f.marker)}return b},findMarks:function(a,b,c){a=R(this,a);b=R(this,b);var d=[],f=a.line;this.iter(a.line,b.line+1,function(h){if(h=h.markedSpans)for(var e=
+0;e<h.length;e++){var k=h[e];null!=k.to&&f==a.line&&a.ch>=k.to||null==k.from&&f!=a.line||null!=k.from&&f==b.line&&k.from>=b.ch||c&&!c(k.marker)||d.push(k.marker.parent||k.marker)}++f});return d},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c=0;c<b.length;++c)null!=b[c].from&&a.push(b[c].marker)});return a},posFromIndex:function(a){var b,c=this.first,d=this.lineSeparator().length;this.iter(function(f){f=f.text.length+d;if(f>a)return b=a,!0;a-=f;++c});return R(this,
+I(c,b))},indexFromPos:function(a){a=R(this,a);var b=a.ch;if(a.line<this.first||0>a.ch)return 0;var c=this.lineSeparator().length;this.iter(this.first,a.line,function(a){b+=a.text.length+c});return b},copy:function(a){var b=new pa(T(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);b.scrollTop=this.scrollTop;b.scrollLeft=this.scrollLeft;b.sel=this.sel;b.extend=!1;a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory()));return b},linkedDoc:function(a){a||
+(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from);null!=a.to&&a.to<c&&(c=a.to);b=new pa(T(this,b,c),a.mode||this.modeOption,b,this.lineSep,this.direction);a.sharedHist&&(b.history=this.history);(this.linked||(this.linked=[])).push({doc:b,sharedHist:a.sharedHist});b.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}];a=vf(this);for(c=0;c<a.length;c++){var d=a[c],f=d.find(),h=b.clipPos(f.from);f=b.clipPos(f.to);M(h,f)&&(h=xb(b,h,f,d.primary,d.primary.type),d.markers.push(h),
+h.parent=d)}return b},unlinkDoc:function(a){a instanceof Z&&(a=a.doc);if(this.linked)for(var b=0;b<this.linked.length;++b)if(this.linked[b].doc==a){this.linked.splice(b,1);a.unlinkDoc(this);Hg(vf(this));break}if(a.history==this.history){var c=[a.id];hb(a,function(a){return c.push(a.id)},!0);a.history=new Lc(null);a.history.done=tb(this.history.done,c);a.history.undone=tb(this.history.undone,c)}},iterLinkedDocs:function(a){hb(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm},
+splitLines:function(a){return this.lineSep?a.split(this.lineSep):Ud(a)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:ha(function(a){"rtl"!=a&&(a="ltr");a!=this.direction&&(this.direction=a,this.iter(function(a){return a.order=null}),this.cm&&Bg(this.cm))})});pa.prototype.eachLine=pa.prototype.iter;for(var xf=0,Pf=!1,Ta={3:"Pause",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",
+37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",145:"ScrollLock",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},mc=0;10>mc;mc++)Ta[mc+48]=Ta[mc+96]=String(mc);for(var Wc=65;90>=Wc;Wc++)Ta[Wc]=
+String.fromCharCode(Wc);for(var nc=1;12>=nc;nc++)Ta[nc+111]=Ta[nc+63235]="F"+nc;var ac={basic:{Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},pcDefault:{"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo",
+"Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection",
+"Alt-U":"redoSelection",fallthrough:"basic"},emacsy:{"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},macDefault:{"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo",
+"Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft",
+"Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]}};ac["default"]=wa?ac.macDefault:ac.pcDefault;var bc={selectAll:mf,singleSelection:function(a){return a.setSelection(a.getCursor("anchor"),a.getCursor("head"),Ga)},killLine:function(a){return zb(a,function(b){if(b.empty()){var c=J(a.doc,b.head.line).text.length;return b.head.ch==c&&b.head.line<a.lastLine()?{from:b.head,to:I(b.head.line+
+1,0)}:{from:b.head,to:I(b.head.line,c)}}return{from:b.from(),to:b.to()}})},deleteLine:function(a){return zb(a,function(b){return{from:I(b.from().line,0),to:R(a.doc,I(b.to().line+1,0))}})},delLineLeft:function(a){return zb(a,function(a){return{from:I(a.from().line,0),to:a.from()}})},delWrappedLineLeft:function(a){return zb(a,function(b){var c=a.charCoords(b.head,"div").top+5;return{from:a.coordsChar({left:0,top:c},"div"),to:b.from()}})},delWrappedLineRight:function(a){return zb(a,function(b){var c=
+a.charCoords(b.head,"div").top+5;c=a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div");return{from:b.from(),to:c}})},undo:function(a){return a.undo()},redo:function(a){return a.redo()},undoSelection:function(a){return a.undoSelection()},redoSelection:function(a){return a.redoSelection()},goDocStart:function(a){return a.extendSelection(I(a.firstLine(),0))},goDocEnd:function(a){return a.extendSelection(I(a.lastLine()))},goLineStart:function(a){return a.extendSelectionsBy(function(b){return Df(a,
+b.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(a){return a.extendSelectionsBy(function(b){return Ef(a,b.head)},{origin:"+move",bias:1})},goLineEnd:function(a){return a.extendSelectionsBy(function(b){b=b.head.line;var c=J(a.doc,b);var d=c;for(var f;f=Ma(d,!1);)d=f.find(1,!0).line;d!=c&&(b=L(d));return Nd(!0,a,c,b,-1)},{origin:"+move",bias:-1})},goLineRight:function(a){return a.extendSelectionsBy(function(b){b=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:a.display.lineDiv.offsetWidth+
+100,top:b},"div")},kc)},goLineLeft:function(a){return a.extendSelectionsBy(function(b){b=a.cursorCoords(b.head,"div").top+5;return a.coordsChar({left:0,top:b},"div")},kc)},goLineLeftSmart:function(a){return a.extendSelectionsBy(function(b){var c=a.cursorCoords(b.head,"div").top+5;c=a.coordsChar({left:0,top:c},"div");return c.ch<a.getLine(c.line).search(/\S/)?Ef(a,b.head):c},kc)},goLineUp:function(a){return a.moveV(-1,"line")},goLineDown:function(a){return a.moveV(1,"line")},goPageUp:function(a){return a.moveV(-1,
+"page")},goPageDown:function(a){return a.moveV(1,"page")},goCharLeft:function(a){return a.moveH(-1,"char")},goCharRight:function(a){return a.moveH(1,"char")},goColumnLeft:function(a){return a.moveH(-1,"column")},goColumnRight:function(a){return a.moveH(1,"column")},goWordLeft:function(a){return a.moveH(-1,"word")},goGroupRight:function(a){return a.moveH(1,"group")},goGroupLeft:function(a){return a.moveH(-1,"group")},goWordRight:function(a){return a.moveH(1,"word")},delCharBefore:function(a){return a.deleteH(-1,
+"char")},delCharAfter:function(a){return a.deleteH(1,"char")},delWordBefore:function(a){return a.deleteH(-1,"word")},delWordAfter:function(a){return a.deleteH(1,"word")},delGroupBefore:function(a){return a.deleteH(-1,"group")},delGroupAfter:function(a){return a.deleteH(1,"group")},indentAuto:function(a){return a.indentSelection("smart")},indentMore:function(a){return a.indentSelection("add")},indentLess:function(a){return a.indentSelection("subtract")},insertTab:function(a){return a.replaceSelection("\t")},
+insertSoftTab:function(a){for(var b=[],c=a.listSelections(),d=a.options.tabSize,f=0;f<c.length;f++){var h=c[f].from();h=r(a.getLine(h.line),h.ch,d);b.push(A(d-h%d))}a.replaceSelections(b)},defaultTab:function(a){a.somethingSelected()?a.indentSelection("add"):a.execCommand("insertTab")},transposeChars:function(a){return qa(a,function(){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++)if(b[d].empty()){var f=b[d].head,h=J(a.doc,f.line).text;if(h)if(f.ch==h.length&&(f=new I(f.line,f.ch-1)),0<f.ch)f=
+new I(f.line,f.ch+1),a.replaceRange(h.charAt(f.ch-1)+h.charAt(f.ch-2),I(f.line,f.ch-2),f,"+transpose");else if(f.line>a.doc.first){var e=J(a.doc,f.line-1).text;e&&(f=new I(f.line,1),a.replaceRange(h.charAt(0)+a.doc.lineSeparator()+e.charAt(e.length-1),I(f.line-1,e.length-1),f,"+transpose"))}c.push(new V(f,f))}a.setSelections(c)})},newlineAndIndent:function(a){return qa(a,function(){for(var b=a.listSelections(),c=b.length-1;0<=c;c--)a.replaceRange(a.doc.lineSeparator(),b[c].anchor,b[c].head,"+input");
+b=a.listSelections();for(c=0;c<b.length;c++)a.indentLine(b[c].from().line,null,!0);qb(a)})},openLine:function(a){return a.replaceSelection("\n","start")},toggleOverwrite:function(a){return a.toggleOverwrite()}},Og=new ib,Od=null,Pd=function(a,b,c){this.time=a;this.pos=b;this.button=c};Pd.prototype.compare=function(a,b,c){return this.time+400>a&&0==M(b,this.pos)&&c==this.button};var ec,dc,Ab={toString:function(){return"CodeMirror.Init"}},Of={},Uc={};Z.defaults=Of;Z.optionHandlers=Uc;var Sd=[];Z.defineInitHook=
+function(a){return Sd.push(a)};var ra=null,W=function(a){this.cm=a;this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null;this.polling=new ib;this.composing=null;this.gracePeriod=!1;this.readDOMTimeout=null};W.prototype.init=function(a){function b(a){if(!ea(f,a)){if(f.somethingSelected())ra={lineWise:!1,text:f.getSelections()},"cut"==a.type&&f.replaceSelection("",null,"cut");else if(f.options.lineWiseCopyCut){var b=Tf(f);ra={lineWise:!0,text:b.text};"cut"==a.type&&
+f.operation(function(){f.setSelections(b.ranges,0,Ga);f.replaceSelection("",null,"cut")})}else return;if(a.clipboardData){a.clipboardData.clearData();var c=ra.text.join("\n");a.clipboardData.setData("Text",c);if(a.clipboardData.getData("Text")==c){a.preventDefault();return}}var e=Vf();a=e.firstChild;f.display.lineSpace.insertBefore(e,f.display.lineSpace.firstChild);a.value=ra.text.join("\n");var k=document.activeElement;jc(a);setTimeout(function(){f.display.lineSpace.removeChild(e);k.focus();k==h&&
+d.showPrimarySelection()},50)}}var c=this,d=this,f=d.cm,h=d.div=a.lineDiv;Uf(h,f.options.spellcheck);N(h,"paste",function(a){ea(f,a)||Sf(a,f)||11>=X&&setTimeout(fa(f,function(){return c.updateFromDOM()}),20)});N(h,"compositionstart",function(a){c.composing={data:a.data,done:!1}});N(h,"compositionupdate",function(a){c.composing||(c.composing={data:a.data,done:!1})});N(h,"compositionend",function(a){c.composing&&(a.data!=c.composing.data&&c.readFromDOMSoon(),c.composing.done=!0)});N(h,"touchstart",
+function(){return d.forceCompositionEnd()});N(h,"input",function(){c.composing||c.readFromDOMSoon()});N(h,"copy",b);N(h,"cut",b)};W.prototype.prepareSelection=function(){var a=Ge(this.cm,!1);a.focus=this.cm.state.focused;return a};W.prototype.showSelection=function(a,b){a&&this.cm.display.view.length&&((a.focus||b)&&this.showPrimarySelection(),this.showMultipleSelections(a))};W.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()};W.prototype.showPrimarySelection=
+function(){var a=this.getSelection(),b=this.cm,c=b.doc.sel.primary(),d=c.from();c=c.to();if(b.display.viewTo==b.display.viewFrom||d.line>=b.display.viewTo||c.line<b.display.viewFrom)a.removeAllRanges();else{var f=Vc(b,a.anchorNode,a.anchorOffset),h=Vc(b,a.focusNode,a.focusOffset);if(!f||f.bad||!h||h.bad||0!=M(rc(f,h),d)||0!=M(pc(f,h),c))if(f=b.display.view,d=d.line>=b.display.viewFrom&&Xf(b,d)||{node:f[0].measure.map[2],offset:0},c=c.line<b.display.viewTo&&Xf(b,c),c||(c=f[f.length-1].measure,c=c.maps?
+c.maps[c.maps.length-1]:c.map,c={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}),d&&c){f=a.rangeCount&&a.getRangeAt(0);try{var e=Ib(d.node,d.offset,c.offset,c.node)}catch(lh){}e&&(!Oa&&b.state.focused?(a.collapse(d.node,d.offset),e.collapsed||(a.removeAllRanges(),a.addRange(e))):(a.removeAllRanges(),a.addRange(e)),f&&null==a.anchorNode?a.addRange(f):Oa&&this.startGracePeriod());this.rememberSelection()}else a.removeAllRanges()}};W.prototype.startGracePeriod=function(){var a=this;clearTimeout(this.gracePeriod);
+this.gracePeriod=setTimeout(function(){a.gracePeriod=!1;a.selectionChanged()&&a.cm.operation(function(){return a.cm.curOp.selectionChanged=!0})},20)};W.prototype.showMultipleSelections=function(a){g(this.cm.display.cursorDiv,a.cursors);g(this.cm.display.selectionDiv,a.selection)};W.prototype.rememberSelection=function(){var a=this.getSelection();this.lastAnchorNode=a.anchorNode;this.lastAnchorOffset=a.anchorOffset;this.lastFocusNode=a.focusNode;this.lastFocusOffset=a.focusOffset};W.prototype.selectionInEditor=
+function(){var a=this.getSelection();if(!a.rangeCount)return!1;a=a.getRangeAt(0).commonAncestorContainer;return d(this.div,a)};W.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())};W.prototype.blur=function(){this.div.blur()};W.prototype.getField=function(){return this.div};W.prototype.supportsTouch=function(){return!0};W.prototype.receivedFocus=function(){function a(){b.cm.state.focused&&(b.pollSelection(),
+b.polling.set(b.cm.options.pollInterval,a))}var b=this;this.selectionInEditor()?this.pollSelection():qa(this.cm,function(){return b.cm.curOp.selectionChanged=!0});this.polling.set(this.cm.options.pollInterval,a)};W.prototype.selectionChanged=function(){var a=this.getSelection();return a.anchorNode!=this.lastAnchorNode||a.anchorOffset!=this.lastAnchorOffset||a.focusNode!=this.lastFocusNode||a.focusOffset!=this.lastFocusOffset};W.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&
+this.selectionChanged()){var a=this.getSelection(),b=this.cm;if(Cc&&Bc&&this.cm.options.gutters.length&&ch(a.anchorNode))this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),this.focus();else if(!this.composing){this.rememberSelection();var c=Vc(b,a.anchorNode,a.anchorOffset),d=Vc(b,a.focusNode,a.focusOffset);c&&d&&qa(b,function(){ja(b.doc,La(c,d),Ga);if(c.bad||d.bad)b.curOp.selectionChanged=!0})}}};W.prototype.pollContent=function(){null!=this.readDOMTimeout&&
+(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var a=this.cm,b=a.display,c=a.doc.sel.primary(),d=c.from(),f=c.to();0==d.ch&&d.line>a.firstLine()&&(d=I(d.line-1,J(a.doc,d.line-1).length));f.ch==J(a.doc,f.line).text.length&&f.line<a.lastLine()&&(f=I(f.line+1,0));if(d.line<b.viewFrom||f.line>b.viewTo-1)return!1;var h;d.line==b.viewFrom||0==(h=Za(a,d.line))?(c=L(b.view[0].line),h=b.view[0].node):(c=L(b.view[h].line),h=b.view[h-1].node.nextSibling);var e=Za(a,f.line);e==b.view.length-1?(f=
+b.viewTo-1,b=b.lineDiv.lastChild):(f=L(b.view[e+1].line)-1,b=b.view[e+1].node.previousSibling);if(!h)return!1;b=a.doc.splitLines(dh(a,h,b,c,f));for(h=Q(a.doc,I(c,0),I(f,J(a.doc,f).text.length));1<b.length&&1<h.length;)if(y(b)==y(h))b.pop(),h.pop(),f--;else if(b[0]==h[0])b.shift(),h.shift(),c++;else break;var k=0;e=0;for(var l=b[0],g=h[0],q=Math.min(l.length,g.length);k<q&&l.charCodeAt(k)==g.charCodeAt(k);)++k;l=y(b);g=y(h);for(q=Math.min(l.length-(1==b.length?k:0),g.length-(1==h.length?k:0));e<q&&
+l.charCodeAt(l.length-e-1)==g.charCodeAt(g.length-e-1);)++e;if(1==b.length&&1==h.length&&c==d.line)for(;k&&k>d.ch&&l.charCodeAt(l.length-e-1)==g.charCodeAt(g.length-e-1);)k--,e++;b[b.length-1]=l.slice(0,l.length-e).replace(/^\u200b+/,"");b[0]=b[0].slice(k).replace(/\u200b+$/,"");d=I(c,k);c=I(f,h.length?y(h).length-e:0);if(1<b.length||b[0]||M(d,c))return wb(a.doc,b,d,c,"+input"),!0};W.prototype.ensurePolled=function(){this.forceCompositionEnd()};W.prototype.reset=function(){this.forceCompositionEnd()};
+W.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())};W.prototype.readFromDOMSoon=function(){var a=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){a.readDOMTimeout=null;if(a.composing)if(a.composing.done)a.composing=null;else return;a.updateFromDOM()},80))};W.prototype.updateFromDOM=function(){var a=this;!this.cm.isReadOnly()&&this.pollContent()||qa(this.cm,
+function(){return oa(a.cm)})};W.prototype.setUneditable=function(a){a.contentEditable="false"};W.prototype.onKeyPress=function(a){0==a.charCode||this.composing||(a.preventDefault(),this.cm.isReadOnly()||fa(this.cm,Td)(this.cm,String.fromCharCode(null==a.charCode?a.keyCode:a.charCode),0))};W.prototype.readOnlyChanged=function(a){this.div.contentEditable=String("nocursor"!=a)};W.prototype.onContextMenu=function(){};W.prototype.resetPosition=function(){};W.prototype.needsContentAttribute=!0;var da=function(a){this.cm=
+a;this.prevInput="";this.pollingFast=!1;this.polling=new ib;this.hasSelection=!1;this.composing=null};da.prototype.init=function(a){function b(a){if(!ea(f,a)){if(f.somethingSelected())ra={lineWise:!1,text:f.getSelections()};else if(f.options.lineWiseCopyCut){var b=Tf(f);ra={lineWise:!0,text:b.text};"cut"==a.type?f.setSelections(b.ranges,null,Ga):(d.prevInput="",h.value=b.text.join("\n"),jc(h))}else return;"cut"==a.type&&(f.state.cutIncoming=!0)}}var c=this,d=this,f=this.cm;this.createField(a);var h=
+this.textarea;a.wrapper.insertBefore(this.wrapper,a.wrapper.firstChild);hc&&(h.style.width="0px");N(h,"input",function(){U&&9<=X&&c.hasSelection&&(c.hasSelection=null);d.poll()});N(h,"paste",function(a){ea(f,a)||Sf(a,f)||(f.state.pasteIncoming=!0,d.fastPoll())});N(h,"cut",b);N(h,"copy",b);N(a.scroller,"paste",function(b){Ka(a,b)||ea(f,b)||(f.state.pasteIncoming=!0,d.focus())});N(a.lineSpace,"selectstart",function(b){Ka(a,b)||na(b)});N(h,"compositionstart",function(){var a=f.getCursor("from");d.composing&&
+d.composing.range.clear();d.composing={start:a,range:f.markText(a,f.getCursor("to"),{className:"CodeMirror-composing"})}});N(h,"compositionend",function(){d.composing&&(d.poll(),d.composing.range.clear(),d.composing=null)})};da.prototype.createField=function(a){this.wrapper=Vf();this.textarea=this.wrapper.firstChild};da.prototype.prepareSelection=function(){var a=this.cm,b=a.display,c=a.doc,d=Ge(a);if(a.options.moveInputWithCursor){a=ya(a,c.sel.primary().head,"div");c=b.wrapper.getBoundingClientRect();
+var f=b.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(b.wrapper.clientHeight-10,a.top+f.top-c.top));d.teLeft=Math.max(0,Math.min(b.wrapper.clientWidth-10,a.left+f.left-c.left))}return d};da.prototype.showSelection=function(a){var b=this.cm.display;g(b.cursorDiv,a.cursors);g(b.selectionDiv,a.selection);null!=a.teTop&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left=a.teLeft+"px")};da.prototype.reset=function(a){if(!this.contextMenuPending&&!this.composing){var b=this.cm;b.somethingSelected()?
+(this.prevInput="",a=b.getSelection(),this.textarea.value=a,b.state.focused&&jc(this.textarea),U&&9<=X&&(this.hasSelection=a)):a||(this.prevInput=this.textarea.value="",U&&9<=X&&(this.hasSelection=null))}};da.prototype.getField=function(){return this.textarea};da.prototype.supportsTouch=function(){return!1};da.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Db||f()!=this.textarea))try{this.textarea.focus()}catch(w){}};da.prototype.blur=function(){this.textarea.blur()};da.prototype.resetPosition=
+function(){this.wrapper.style.top=this.wrapper.style.left=0};da.prototype.receivedFocus=function(){this.slowPoll()};da.prototype.slowPoll=function(){var a=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){a.poll();a.cm.state.focused&&a.slowPoll()})};da.prototype.fastPoll=function(){function a(){c.poll()||b?(c.pollingFast=!1,c.slowPoll()):(b=!0,c.polling.set(60,a))}var b=!1,c=this;c.pollingFast=!0;c.polling.set(20,a)};da.prototype.poll=function(){var a=this,b=this.cm,
+c=this.textarea,d=this.prevInput;if(this.contextMenuPending||!b.state.focused||ih(c)&&!d&&!this.composing||b.isReadOnly()||b.options.disableInput||b.state.keySeq)return!1;var f=c.value;if(f==d&&!b.somethingSelected())return!1;if(U&&9<=X&&this.hasSelection===f||wa&&/[\uf700-\uf7ff]/.test(f))return b.display.input.reset(),!1;if(b.doc.sel==b.display.selForContextMenu){var h=f.charCodeAt(0);8203!=h||d||(d="\u200b");if(8666==h)return this.reset(),this.cm.execCommand("undo")}var e=0;for(h=Math.min(d.length,
+f.length);e<h&&d.charCodeAt(e)==f.charCodeAt(e);)++e;qa(b,function(){Td(b,f.slice(e),d.length-e,null,a.composing?"*compose":null);1E3<f.length||-1<f.indexOf("\n")?c.value=a.prevInput="":a.prevInput=f;a.composing&&(a.composing.range.clear(),a.composing.range=b.markText(a.composing.start,b.getCursor("to"),{className:"CodeMirror-composing"}))});return!0};da.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)};da.prototype.onKeyPress=function(){U&&9<=X&&(this.hasSelection=
+null);this.fastPoll()};da.prototype.onContextMenu=function(a){function b(){if(null!=e.selectionStart){var a=f.somethingSelected(),b="\u200b"+(a?e.value:"");e.value="\u21da";e.value=b;d.prevInput=a?"":"\u200b";e.selectionStart=1;e.selectionEnd=b.length;h.selForContextMenu=f.doc.sel}}function c(){d.contextMenuPending=!1;d.wrapper.style.cssText=q;e.style.cssText=g;U&&9>X&&h.scrollbars.setScrollTop(h.scroller.scrollTop=l);if(null!=e.selectionStart){(!U||U&&9>X)&&b();var a=0,c=function(){h.selForContextMenu==
+f.doc.sel&&0==e.selectionStart&&0<e.selectionEnd&&"\u200b"==d.prevInput?fa(f,mf)(f):10>a++?h.detectingSelectAll=setTimeout(c,500):(h.selForContextMenu=null,h.input.reset())};h.detectingSelectAll=setTimeout(c,200)}}var d=this,f=d.cm,h=f.display,e=d.textarea,k=cb(f,a),l=h.scroller.scrollTop;if(k&&!za){f.options.resetSelectionOnContextMenu&&-1==f.doc.sel.contains(k)&&fa(f,ja)(f.doc,La(k),Ga);var g=e.style.cssText,q=d.wrapper.style.cssText;d.wrapper.style.cssText="position: absolute";k=d.wrapper.getBoundingClientRect();
+e.style.cssText="position: absolute; width: 30px; height: 30px;\n      top: "+(a.clientY-k.top-5)+"px; left: "+(a.clientX-k.left-5)+"px;\n      z-index: 1000; background: "+(U?"rgba(255, 255, 255, .05)":"transparent")+";\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";if(ka)var r=window.scrollY;h.input.focus();ka&&window.scrollTo(null,r);h.input.reset();f.somethingSelected()||(e.value=d.prevInput=" ");d.contextMenuPending=!0;h.selForContextMenu=
+f.doc.sel;clearTimeout(h.detectingSelectAll);U&&9<=X&&b();if(Qd){Gb(a);var m=function(){sa(window,"mouseup",m);setTimeout(c,20)};N(window,"mouseup",m)}else setTimeout(c,50)}};da.prototype.readOnlyChanged=function(a){a||this.reset();this.textarea.disabled="nocursor"==a};da.prototype.setUneditable=function(){};da.prototype.needsContentAttribute=!1;(function(a){function b(b,d,f,h){a.defaults[b]=d;f&&(c[b]=h?function(a,b,c){c!=Ab&&f(a,b,c)}:f)}var c=a.optionHandlers;a.defineOption=b;a.Init=Ab;b("value",
+"",function(a,b){return a.setValue(b)},!0);b("mode",null,function(a,b){a.doc.modeOption=b;Fd(a)},!0);b("indentUnit",2,Fd,!0);b("indentWithTabs",!1);b("smartIndent",!0);b("tabSize",4,function(a){Ub(a);Nb(a);oa(a)},!0);b("lineSeparator",null,function(a,b){if(a.doc.lineSep=b){var c=[],d=a.doc.first;a.doc.iter(function(a){for(var f=0;;){var h=a.text.indexOf(b,f);if(-1==h)break;f=h+b.length;c.push(I(d,h))}d++});for(var f=c.length-1;0<=f;f--)wb(a.doc,b,c[f],I(c[f].line,c[f].ch+b.length))}});b("specialChars",
+/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(a,b,c){a.state.specialChars=new RegExp(b.source+(b.test("\t")?"":"|\t"),"g");c!=Ab&&a.refresh()});b("specialCharPlaceholder",og,function(a){return a.refresh()},!0);b("electricChars",!0);b("inputStyle",Db?"contenteditable":"textarea",function(){throw Error("inputStyle can not (yet) be changed in a running editor");},!0);b("spellcheck",!1,function(a,b){return a.getInputField().spellcheck=b},!0);b("rtlMoveVisually",!hh);
+b("wholeLineUpdateBefore",!0);b("theme","default",function(a){Nf(a);fc(a)},!0);b("keyMap","default",function(a,b,c){b=Qc(b);(c=c!=Ab&&Qc(c))&&c.detach&&c.detach(a,b);b.attach&&b.attach(a,c||null)});b("extraKeys",null);b("configureMouse",null);b("lineWrapping",!1,ah,!0);b("gutters",[],function(a){Dd(a.options);fc(a)},!0);b("fixedGutter",!0,function(a,b){a.display.gutters.style.left=b?td(a.display)+"px":"0";a.refresh()},!0);b("coverGutterNextToScrollbar",!1,function(a){return rb(a)},!0);b("scrollbarStyle",
+"native",function(a){Qe(a);rb(a);a.display.scrollbars.setScrollTop(a.doc.scrollTop);a.display.scrollbars.setScrollLeft(a.doc.scrollLeft)},!0);b("lineNumbers",!1,function(a){Dd(a.options);fc(a)},!0);b("firstLineNumber",1,fc,!0);b("lineNumberFormatter",function(a){return a},fc,!0);b("showCursorWhenSelecting",!1,Ob,!0);b("resetSelectionOnContextMenu",!0);b("lineWiseCopyCut",!0);b("pasteLinesPerSelection",!0);b("readOnly",!1,function(a,b){"nocursor"==b&&(Pb(a),a.display.input.blur());a.display.input.readOnlyChanged(b)});
+b("disableInput",!1,function(a,b){b||a.display.input.reset()},!0);b("dragDrop",!0,$g);b("allowDropFileTypes",null);b("cursorBlinkRate",530);b("cursorScrollMargin",0);b("cursorHeight",1,Ob,!0);b("singleCursorHeightPerLine",!0,Ob,!0);b("workTime",100);b("workDelay",100);b("flattenSpans",!0,Ub,!0);b("addModeClass",!1,Ub,!0);b("pollInterval",100);b("undoDepth",200,function(a,b){return a.doc.history.undoDepth=b});b("historyEventDelay",1250);b("viewportMargin",10,function(a){return a.refresh()},!0);b("maxHighlightLength",
+1E4,Ub,!0);b("moveInputWithCursor",!0,function(a,b){b||a.display.input.resetPosition()});b("tabindex",null,function(a,b){return a.display.input.getField().tabIndex=b||""});b("autofocus",null);b("direction","ltr",function(a,b){return a.doc.setDirection(b)},!0)})(Z);(function(a){var b=a.optionHandlers,c=a.helpers={};a.prototype={constructor:a,focus:function(){window.focus();this.display.input.focus()},setOption:function(a,c){var d=this.options,f=d[a];if(d[a]!=c||"mode"==a)d[a]=c,b.hasOwnProperty(a)&&
+fa(this,b[a])(this,c,f),ba(this,"optionChange",this,a)},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](Qc(a))},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;c<b.length;++c)if(b[c]==a||b[c].name==a)return b.splice(c,1),!0},addOverlay:la(function(b,c){var d=b.token?b:a.getMode(this.options,b);if(d.startState)throw Error("Overlays may not be stateful.");B(this.state.overlays,{mode:d,modeSpec:b,
+opaque:c&&c.opaque,priority:c&&c.priority||0},function(a){return a.priority});this.state.modeGen++;oa(this)}),removeOverlay:la(function(a){for(var b=this.state.overlays,c=0;c<b.length;++c){var d=b[c].modeSpec;if(d==a||"string"==typeof a&&d.name==a){b.splice(c,1);this.state.modeGen++;oa(this);break}}}),indentLine:la(function(a,b,c){"string"!=typeof b&&"number"!=typeof b&&(b=null==b?this.options.smartIndent?"smart":"prev":b?"add":"subtract");Y(this.doc,a)&&gc(this,a,b,c)}),indentSelection:la(function(a){for(var b=
+this.doc.sel.ranges,c=-1,d=0;d<b.length;d++){var f=b[d];if(f.empty())f.head.line>c&&(gc(this,f.head.line,a,!0),c=f.head.line,d==this.doc.sel.primIndex&&qb(this));else{var h=f.from();f=f.to();var e=Math.max(c,h.line);c=Math.min(this.lastLine(),f.line-(f.ch?0:1))+1;for(f=e;f<c;++f)gc(this,f,a);f=this.doc.sel.ranges;0==h.ch&&b.length==f.length&&0<f[d].from().ch&&Jd(this.doc,d,new V(h,f[d].to()),Ga)}}}),getTokenAt:function(a,b){return he(this,a,b)},getLineTokens:function(a,b){return he(this,I(a),b,!0)},
+getTokenTypeAt:function(a){a=R(this.doc,a);var b=fe(this,J(this.doc,a.line)),c=0,d=(b.length-1)/2;a=a.ch;if(0==a)b=b[2];else for(;;){var f=c+d>>1;if((f?b[2*f-1]:0)>=a)d=f;else if(b[2*f+1]<a)c=f+1;else{b=b[2*f+2];break}}c=b?b.indexOf("overlay "):-1;return 0>c?b:0==c?null:b.slice(0,c-1)},getModeAt:function(b){var c=this.doc.mode;return c.innerMode?a.innerMode(c,this.getTokenAt(b).state).mode:c},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(a,b){var d=[];if(!c.hasOwnProperty(b))return d;
+var f=c[b];a=this.getModeAt(a);if("string"==typeof a[b])f[a[b]]&&d.push(f[a[b]]);else if(a[b])for(var h=0;h<a[b].length;h++){var e=f[a[b][h]];e&&d.push(e)}else a.helperType&&f[a.helperType]?d.push(f[a.helperType]):f[a.name]&&d.push(f[a.name]);for(b=0;b<f._global.length;b++)h=f._global[b],h.pred(a,this)&&-1==l(d,h.val)&&d.push(h.val);return d},getStateAfter:function(a,b){var c=this.doc;a=Math.max(c.first,Math.min(null==a?c.first+c.size-1:a,c.first+c.size-1));return Hb(this,a+1,b).state},cursorCoords:function(a,
+b){var c=this.doc.sel.primary();a=null==a?c.head:"object"==typeof a?R(this.doc,a):a?c.from():c.to();return ya(this,a,b||"page")},charCoords:function(a,b){return pd(this,R(this.doc,a),b||"page")},coordsChar:function(a,b){a=Be(this,a,b||"page");return rd(this,a.left,a.top)},lineAtHeight:function(a,b){a=Be(this,{top:a,left:0},b||"page").top;return P(this.doc,a+this.display.viewOffset)},heightAtLine:function(a,b,c){var d=!1;if("number"==typeof a){var f=this.doc.first+this.doc.size-1;a<this.doc.first?
+a=this.doc.first:a>f&&(a=f,d=!0);a=J(this.doc,a)}return Dc(this,a,{top:0,left:0},b||"page",c||d).top+(d?this.doc.height-Da(a):0)},defaultTextHeight:function(){return ab(this.display)},defaultCharWidth:function(){return Mb(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,f){var h=this.display;a=ya(this,R(this.doc,a));var e=a.bottom,k=a.left;b.style.position="absolute";b.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(b);
+h.sizer.appendChild(b);if("over"==d)e=a.top;else if("above"==d||"near"==d){var l=Math.max(h.wrapper.clientHeight,this.doc.height),g=Math.max(h.sizer.clientWidth,h.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>l)&&a.top>b.offsetHeight?e=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=l&&(e=a.bottom);k+b.offsetWidth>g&&(k=g-b.offsetWidth)}b.style.top=e+"px";b.style.left=b.style.right="";"right"==f?(k=h.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==f?k=0:"middle"==f&&(k=(h.sizer.clientWidth-
+b.offsetWidth)/2),b.style.left=k+"px");c&&(a=zd(this,{left:k,top:e,right:k+b.offsetWidth,bottom:e+b.offsetHeight}),null!=a.scrollTop&&Rb(this,a.scrollTop),null!=a.scrollLeft&&eb(this,a.scrollLeft))},triggerOnKeyDown:la(Hf),triggerOnKeyPress:la(Jf),triggerOnKeyUp:If,triggerOnMouseDown:la(Kf),execCommand:function(a){if(bc.hasOwnProperty(a))return bc[a].call(null,this)},triggerElectric:la(function(a){Rf(this,a)}),findPosH:function(a,b,c,d){var f=1;0>b&&(f=-1,b=-b);a=R(this.doc,a);for(var h=0;h<b&&(a=
+Vd(this.doc,a,f,c,d),!a.hitSide);++h);return a},moveH:la(function(a,b){var c=this;this.extendSelectionsBy(function(d){return c.display.shift||c.doc.extend||d.empty()?Vd(c.doc,d.head,a,b,c.options.rtlMoveVisually):0>a?d.from():d.to()},kc)}),deleteH:la(function(a,b){var c=this.doc;this.doc.sel.somethingSelected()?c.replaceSelection("",null,"+delete"):zb(this,function(d){var f=Vd(c,d.head,a,b,!1);return 0>a?{from:f,to:d.head}:{from:d.head,to:f}})}),findPosV:function(a,b,c,d){var f=1;0>b&&(f=-1,b=-b);
+var h=R(this.doc,a);for(a=0;a<b&&(h=ya(this,h,"div"),null==d?d=h.left:h.left=d,h=Wf(this,h,f,c),!h.hitSide);++a);return h},moveV:la(function(a,b){var c=this,d=this.doc,f=[],h=!this.display.shift&&!d.extend&&d.sel.somethingSelected();d.extendSelectionsBy(function(e){if(h)return 0>a?e.from():e.to();var k=ya(c,e.head,"div");null!=e.goalColumn&&(k.left=e.goalColumn);f.push(k.left);var l=Wf(c,k,a,b);"page"==b&&e==d.sel.primary()&&Gc(c,pd(c,l,"div").top-k.top);return l},kc);if(f.length)for(var e=0;e<d.sel.ranges.length;e++)d.sel.ranges[e].goalColumn=
+f[e]}),findWordAt:function(a){var b=J(this.doc,a.line).text,c=a.ch,d=a.ch;if(b){var f=this.getHelper(a,"wordChars");"before"!=a.sticky&&d!=b.length||!c?++d:--c;var h=b.charAt(c);for(h=F(h,f)?function(a){return F(a,f)}:/\s/.test(h)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!F(a)};0<c&&h(b.charAt(c-1));)--c;for(;d<b.length&&h(b.charAt(d));)++d}return new V(I(a.line,c),I(a.line,d))},toggleOverwrite:function(a){if(null==a||a!=this.state.overwrite)(this.state.overwrite=!this.state.overwrite)?
+h(this.display.cursorDiv,"CodeMirror-overwrite"):db(this.display.cursorDiv,"CodeMirror-overwrite"),ba(this,"overwriteToggle",this,this.state.overwrite)},hasFocus:function(){return this.display.input.getField()==f()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:la(function(a,b){Qb(this,a,b)}),getScrollInfo:function(){var a=this.display.scroller;return{left:a.scrollLeft,top:a.scrollTop,height:a.scrollHeight-Fa(this)-this.display.barHeight,width:a.scrollWidth-Fa(this)-
+this.display.barWidth,clientHeight:kd(this),clientWidth:Ya(this)}},scrollIntoView:la(function(a,b){null==a?(a={from:this.doc.sel.primary().head,to:null},null==b&&(b=this.options.cursorScrollMargin)):"number"==typeof a?a={from:I(a,0),to:null}:null==a.from&&(a={from:a,to:null});a.to||(a.to=a.from);a.margin=b||0;null!=a.from.line?(Hc(this),this.curOp.scrollToPos=a):Ne(this,a.from,a.to,a.margin)}),setSize:la(function(a,b){var c=this,d=function(a){return"number"==typeof a||/^\d+$/.test(String(a))?a+"px":
+a};null!=a&&(this.display.wrapper.style.width=d(a));null!=b&&(this.display.wrapper.style.height=d(b));this.options.lineWrapping&&ye(this);var f=this.display.viewFrom;this.doc.iter(f,this.display.viewTo,function(a){if(a.widgets)for(var b=0;b<a.widgets.length;b++)if(a.widgets[b].noHScroll){Qa(c,f,"widget");break}++f});this.curOp.forceUpdate=!0;ba(this,"refresh",this)}),operation:function(a){return qa(this,a)},startOperation:function(){return fb(this)},endOperation:function(){return gb(this)},refresh:la(function(){var a=
+this.display.cachedTextHeight;oa(this);this.curOp.forceUpdate=!0;Nb(this);Qb(this,this.doc.scrollLeft,this.doc.scrollTop);yd(this);(null==a||.5<Math.abs(a-ab(this.display)))&&ud(this);ba(this,"refresh",this)}),swapDoc:la(function(a){var b=this.doc;b.cm=null;$e(this,a);Nb(this);this.display.input.reset();Qb(this,a.scrollLeft,a.scrollTop);this.curOp.forceScroll=!0;ia(this,"swapDoc",this,b);return b}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},
+getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};mb(a);a.registerHelper=function(b,d,f){c.hasOwnProperty(b)||(c[b]=a[b]={_global:[]});c[b][d]=f};a.registerGlobalHelper=function(b,d,f,h){a.registerHelper(b,d,h);c[b]._global.push({pred:f,val:h})}})(Z);var kh="iter insert remove copy getEditor constructor".split(" "),oc;for(oc in pa.prototype)pa.prototype.hasOwnProperty(oc)&&0>l(kh,oc)&&(Z.prototype[oc]=function(a){return function(){return a.apply(this.doc,
+arguments)}}(pa.prototype[oc]));mb(pa);Z.inputStyles={textarea:da,contenteditable:W};Z.defineMode=function(a){Z.defaults.mode||"null"==a||(Z.defaults.mode=a);gg.apply(this,arguments)};Z.defineMIME=function(a,b){nb[a]=b};Z.defineMode("null",function(){return{token:function(a){return a.skipToEnd()}}});Z.defineMIME("text/plain","null");Z.defineExtension=function(a,b){Z.prototype[a]=b};Z.defineDocExtension=function(a,b){pa.prototype[a]=b};Z.fromTextArea=function(a,b){function c(){a.value=l.getValue()}
+b=b?t(b):{};b.value=a.value;!b.tabindex&&a.tabIndex&&(b.tabindex=a.tabIndex);!b.placeholder&&a.placeholder&&(b.placeholder=a.placeholder);if(null==b.autofocus){var d=f();b.autofocus=d==a||null!=a.getAttribute("autofocus")&&d==document.body}if(a.form&&(N(a.form,"submit",c),!b.leaveSubmitMethodAlone)){var h=a.form;var e=h.submit;try{var k=h.submit=function(){c();h.submit=e;h.submit();h.submit=k}}catch(Zd){}}b.finishInit=function(b){b.save=c;b.getTextArea=function(){return a};b.toTextArea=function(){b.toTextArea=
+isNaN;c();a.parentNode.removeChild(b.getWrapperElement());a.style.display="";a.form&&(sa(a.form,"submit",c),"function"==typeof a.form.submit&&(a.form.submit=e))}};a.style.display="none";var l=Z(function(b){return a.parentNode.insertBefore(b,a.nextSibling)},b);return l};(function(a){a.off=sa;a.on=N;a.wheelEventPixels=Ag;a.Doc=pa;a.splitLines=Ud;a.countColumn=r;a.findColumn=u;a.isWordChar=E;a.Pass=Sc;a.signal=ba;a.Line=sb;a.changeEnd=Ra;a.scrollbarModel=Re;a.Pos=I;a.cmpPos=M;a.modes=cd;a.mimeModes=
+nb;a.resolveMode=yc;a.getMode=dd;a.modeExtensions=ob;a.extendMode=hg;a.copyState=Xa;a.startState=ce;a.innerMode=ed;a.commands=bc;a.keyMap=ac;a.keyName=Cf;a.isModifierKey=zf;a.lookupKey=yb;a.normalizeKeyMap=Mg;a.StringStream=ca;a.SharedTextMarker=$b;a.TextMarker=Sa;a.LineWidget=Zb;a.e_preventDefault=na;a.e_stopPropagation=ae;a.e_stop=Gb;a.addClass=h;a.contains=d;a.rmClass=db;a.keyNames=Ta})(Z);Z.version="5.38.0";return Z})},function(g,e){},function(g,e){},function(g,e,a){e.a=function(a){return new p.a(void 0===
+a?1:a,n.o)};var p=a(14),n=a(6)},function(g,e,a){e.a=function(a){a=void 0===a?p.p.create():a;return new b(a,a)};var p=a(3),n=a(6),m=a(7),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function a(b,c){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.value_=
+b;this.defaultValue=c;this.changed=new m.a}c(a,[{key:"toJSON",value:function(){if(this.value_!==this.defaultValue)return this.value_.toString()}},{key:"restoreState",value:function(a){try{this.value=Object(n.l)(a.split(","))}catch(h){this.value=this.defaultValue}}},{key:"reset",value:function(){this.value=this.defaultValue}},{key:"value",get:function(){return this.value_},set:function(a){a!==this.value_&&(this.value_=a,this.changed.dispatch())}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"a",function(){return l});var c=
+a(53),b=a(100),d=a(98),f=a(50);g=a(143);var h=a(18),q=function A(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return A(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&
+a(b.prototype,c);d&&a(b,d);return b}}(),t=new Float32Array(8),r=function(){function a(b){m(this,a);this.disjointSets=b;this.generation=Number.NaN;this.hashMap=new c.a}k(a,[{key:"update",value:function(){var a=this.disjointSets,b=a.generation;if(this.generation!==b){this.generation=b;b=this.hashMap;b.clear();a=$jscomp.makeIterator(a.mappings());for(var c=a.next();!c.done;c=a.next()){var d=$jscomp.makeIterator(c.value);c=d.next().value;d=d.next().value;b.set(c,d)}}}}]);return a}(),l=function(a){function c(a,
+h){m(this,c);var e=p(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,a,{sourceOptions:h.volumeSourceOptions}));e.displayState=h;e.segmentColorShaderManager=new d.b("segmentColorHash");e.hashTableManager=new b.c("visibleSegments");e.gpuHashTable=b.a.get(e.gl,e.displayState.visibleSegments.hashTable);e.equivalencesShaderManager=new b.b("equivalences");e.equivalencesHashMap=new r(e.displayState.segmentEquivalences.disjointSets);e.gpuEquivalencesHashTable=b.a.get(e.gl,e.equivalencesHashMap.hashMap);
+Object(f.g)(h,e);e.registerDisposer(h.selectedAlpha.changed.add(function(){e.redrawNeeded.dispatch()}));e.registerDisposer(h.hideSegmentZero.changed.add(function(){e.redrawNeeded.dispatch();e.shaderUpdated=!0}));e.hasEquivalences=0!==e.displayState.segmentEquivalences.size;h.segmentEquivalences.changed.add(function(){var a=0!==e.displayState.segmentEquivalences.size;a!==e.hasEquivalences&&(e.hasEquivalences=a,e.shaderUpdated=!0)});e.registerDisposer(h.notSelectedAlpha.changed.add(function(){e.redrawNeeded.dispatch()}));
+return e}n(c,a);k(c,[{key:"getValueAt",value:function(a){for(var b=$jscomp.makeIterator(this.sources),c=b.next();!c.done;c=b.next()){c=$jscomp.makeIterator(c.value);for(var d=c.next();!d.done;d=c.next())if(d=d.value.getValueAt(a),null!=d)return d}return null}},{key:"getShaderKey",value:function(){return"sliceview.SegmentationRenderLayer/"+this.hasEquivalences+"/"+this.displayState.hideSegmentZero.value}},{key:"defineShader",value:function(a){q(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),
+"defineShader",this).call(this,a);this.hashTableManager.defineShader(a);a.addFragmentCode("\nuint64_t getUint64DataValue() {\n  return toUint64(getDataValue());\n}\n");this.hasEquivalences?(this.equivalencesShaderManager.defineShader(a),a.addFragmentCode("\nuint64_t getMappedObjectId() {\n  uint64_t value = getUint64DataValue();\n  uint64_t mappedValue;\n  if ("+this.equivalencesShaderManager.getFunctionName+"(value, mappedValue)) {\n    return mappedValue;\n  }\n  return value;\n}\n")):a.addFragmentCode("\nuint64_t getMappedObjectId() {\n  return getUint64DataValue();\n}\n");
+this.segmentColorShaderManager.defineShader(a);a.addUniform("highp vec4","uSelectedSegment",2);a.addUniform("highp float","uShowAllSegments");a.addUniform("highp float","uSelectedAlpha");a.addUniform("highp float","uNotSelectedAlpha");a.addFragmentCode(h.o);var b="\n  uint64_t value = getMappedObjectId();\n  \n  float alpha = uSelectedAlpha;\n  float saturation = 1.0;\n";this.displayState.hideSegmentZero.value&&(b+="\n  if (value.low == vec4(0,0,0,0) && value.high == vec4(0,0,0,0)) {\n    emit(vec4(vec4(0, 0, 0, 0)));\n    return;\n  }\n");
+b+="\n  bool has = uShowAllSegments > 0.0 ? true : "+this.hashTableManager.hasFunctionName+"(value);\n  if (uSelectedSegment[0] == unnormalizeUint8(value.low) &&\n      uSelectedSegment[1] == unnormalizeUint8(value.high)) {\n    saturation = has ? 0.5 : 0.75;\n  } else if (!has) {\n    alpha = uNotSelectedAlpha;\n  }\n  vec3 rgb = segmentColorHash(value);\n  emit(vec4(mix(vec3(1.0,1.0,1.0), rgb, saturation), alpha));\n";a.setFragmentMain(b)}},{key:"beginSlice",value:function(a){a=q(c.prototype.__proto__||
+Object.getPrototypeOf(c.prototype),"beginSlice",this).call(this,a);var b=this.gl,d=this.displayState,f=this.displayState,h=f.segmentSelectionState;f=f.visibleSegments;if(h.hasSelectedSegment){var e=h.selectedSegment;h=e.low;e=e.high;for(var k=0;4>k;++k)t[k]=h>>8*k&255,t[4+k]=e>>8*k&255}else t.fill(0);b.uniform1f(a.uniform("uSelectedAlpha"),this.displayState.selectedAlpha.value);b.uniform1f(a.uniform("uNotSelectedAlpha"),this.displayState.notSelectedAlpha.value);b.uniform4fv(a.uniform("uSelectedSegment"),
+t);b.uniform1f(a.uniform("uShowAllSegments"),f.hashTable.size?0:1);this.hashTableManager.enable(b,a,this.gpuHashTable);this.hasEquivalences&&(this.equivalencesHashMap.update(),this.equivalencesShaderManager.enable(b,a,this.gpuEquivalencesHashTable));this.segmentColorShaderManager.enable(b,a,d.segmentColorHash);return a}},{key:"endSlice",value:function(a){this.hashTableManager.disable(this.gl,a);q(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"endSlice",this).call(this,a)}}]);return c}(g.a)},
+function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){return a.split(/[^a-zA-Z0-9]+/).filter(function(a){return a}).join("_")}function b(a){var b=new Set,d=[];a=$jscomp.makeIterator(a);for(var f=a.next();!f.done;f=a.next()){f=c(f.value);for(var h="",e=0;b.has(f+h);)h=""+ ++e;d.push(f+h)}return d}function d(a){return new u.a({fragmentMain:a.displayState.fragmentMain,shaderError:a.displayState.shaderError,fragmentMainStartLine:k.a})}function f(a){return new z(a.displayState.attributeNames,
+function(){return a.meshSource&&a.meshSource.info.vertexAttributes})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"SingleMeshUserLayer",function(){return y});g=a(24);var h=a.n(g);g=a(21);e=a(20);var q=a(45),k=a(101),t=a(1),r=a(9),l=a(6),u=a(96),A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(269);
+var y=function(a){function c(a,d){p(this,c);var f=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,[]));f.manager=a;f.displayState=new k.b;f.parameters={meshSourceUrl:Object(l.w)(d,"source",l.B),attributeSourceUrls:Object(l.w)(d,"vertexAttributeSources",function(a){return void 0!==a?Object(l.a)(a,l.B):[]})};f.displayState.objectToDataTransform.restoreState(d.transform);f.displayState.fragmentMain.restoreState(d.shader);f.userSpecifiedAttributeNames=Object(l.w)(d,"vertexAttributeNames",function(a){if(void 0!==
+a)return Object(l.a)(a,function(a){if(a=Object(l.z)(a))return a})});Object(k.f)(a.chunkManager,f.parameters).then(function(a){if(!f.wasDisposed){f.meshSource=a;var c=f.defaultAttributeNames=b(a.info.vertexAttributes.map(function(a){return a.name})),d=f.userSpecifiedAttributeNames;void 0!==d&&d.length===c.length?(c=d,f.userSpecifiedAttributeNames=void 0):c=Array.from(c);f.displayState.attributeNames.value=c;f.addRenderLayer(new k.c(a,f.displayState))}});f.registerDisposer(f.displayState.fragmentMain.changed.add(function(){f.specificationChanged.dispatch()}));
+f.registerDisposer(f.displayState.attributeNames.changed.add(function(){f.specificationChanged.dispatch()}));return f}m(c,a);A(c,[{key:"toJSON",value:function(){var a={type:"mesh"},b=this.parameters.attributeSourceUrls;a.source=this.parameters.meshSourceUrl;b&&(a.vertexAttributeSources=b);a.shader=this.displayState.fragmentMain.toJSON();a.transform=this.displayState.objectToDataTransform.toJSON();if(void 0===this.meshSource)b=this.userSpecifiedAttributeNames;else{b=this.defaultAttributeNames;for(var c=
+this.displayState.attributeNames.value,d=!0,f=c.length,h=0;h<f;++h)if(c[h]!==b[h]){d=!1;break}b=d?void 0:Array.from(c)}a.vertexAttributeNames=b;return a}},{key:"makeDropdown",value:function(a){return new B(a,this)}}]);return c}(g.f),z=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.attributeNames=a;d.getAttributeInfo=c;d.element=document.createElement("div");d.debouncedValueUpdater=h()(function(){d.updateAttributeNames()},500);d.element.className=
+"neuroglancer-single-mesh-attribute-widget";d.updateInputElements();d.registerDisposer(a.changed.add(function(){d.updateInputElements()}));return d}m(b,a);A(b,[{key:"updateInputElements",value:function(){var a=this.attributeNames,b=this.attributeNameElements;if(void 0===b){var c=this.getAttributeInfo();if(void 0===c)return;b=this.attributeNameElements=[];for(var d=void 0,f=a.value.length,h=this.element,e=0;e<f;++e){var l=c[e],g=l.source;if(g!==d&&void 0!==g){d=g;var q=document.createElement("div");
+q.className="neuroglancer-single-mesh-source-header";q.textContent=g;h.appendChild(q)}g=document.createElement("div");g.className="neuroglancer-single-mesh-attribute";q=document.createElement("input");q.title=l.name;this.registerEventListener(q,"input",this.debouncedValueUpdater);q.type="text";g.textContent=Object(k.e)(l);g.appendChild(q);if(void 0!==l.min&&void 0!==l.max){var r=document.createElement("span");r.className="neuroglancer-single-mesh-attribute-range";r.textContent="["+l.min.toPrecision(6)+
+", "+l.max.toPrecision(6)+"]";g.appendChild(r)}b[e]=q;h.appendChild(g)}}a.value.forEach(function(a,c){b[c].value=a||""})}},{key:"disposed",value:function(){Object(r.b)(this.element)}},{key:"updateAttributeNames",value:function(){var a=this.attributeNames.value,b=this.attributeNameElements,c=!1;a.forEach(function(d,f){var h=b[f].value;h||(h=void 0);h!==d&&(c=!0,a[f]=h)});c&&this.attributeNames.changed.dispatch()}}]);return b}(t.a),B=function(a){function b(a,c){p(this,b);var h=n(this,(b.__proto__||
+Object.getPrototypeOf(b)).call(this));h.element=a;h.layer=c;h.attributeWidget=h.registerDisposer(f(h.layer));h.codeWidget=h.registerDisposer(d(h.layer));a.classList.add("neuroglancer-single-mesh-dropdown");c=document.createElement("div");c.className="neuroglancer-single-mesh-dropdown-top-row";var e=document.createElement("div");e.style.flex="1";var k=document.createElement("a"),l=document.createElement("button");l.type="button";l.textContent="?";l.className="help-link";k.appendChild(l);k.title="Documentation on single mesh layer rendering";
+k.target="_blank";k.href="https://github.com/google/neuroglancer/blob/master/src/neuroglancer/sliceview/image_layer_rendering.md";l=document.createElement("button");l.innerHTML="&square;";l.className="maximize-button";l.title="Show larger editor view";h.registerEventListener(l,"click",function(){new x(h.layer)});c.appendChild(e);c.appendChild(l);c.appendChild(k);a.appendChild(c);a.appendChild(h.attributeWidget.element);a.appendChild(h.codeWidget.element);h.codeWidget.textEditor.refresh();return h}
+m(b,a);A(b,[{key:"onShow",value:function(){this.codeWidget.textEditor.refresh()}}]);return b}(g.g),x=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.layer=a;c.attributeWidget=c.registerDisposer(f(c.layer));c.codeWidget=c.registerDisposer(d(c.layer));c.content.classList.add("neuroglancer-single-mesh-layer-shader-overlay");c.content.appendChild(c.attributeWidget.element);c.content.appendChild(c.codeWidget.element);c.codeWidget.textEditor.refresh();
+return c}m(b,a);return b}(q.a);Object(e.e)("mesh",y)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"d",function(){return m});
+e.c="single_mesh/SingleMeshLayer";e.a="single_mesh/getSingleMeshInfo";e.b="";var m=function(a){function b(){n(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);return b}(function b(){n(this,b)});m.RPC_ID="single_mesh/SingleMeshSource"},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}e.c=function(a,b,c){c=void 0===c?!1:c;b=b.attribute("aIndexRaw");0<=b&&(c&&a.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(b,0),a.disableVertexAttribArray(b))};e.d=function(a){return a.memoize.get("IndexBuffer",
+function(){return new f(a)})};e.b=function(a){a.addAttribute("highp vec3","aIndexRaw");a.addVertexCode(b.k);a.addVertexCode("\nuint32_t getPrimitiveIndex() {\n  uint32_t result;\n  result.value = vec4(aIndexRaw, 0.0);\n  return result;\n}\n")};a.d(e,"a",function(){return h});e.e=function(a,b){return m.a.fromData(a,new Uint8Array(b.buffer,b.byteOffset,b.byteLength),c.a,c.k)};g=a(1);var m=a(30),c=a(35),b=a(18),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||
+!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function(a){function b(a){p(this,b);var c=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.gl=a;c.buffer=c.registerDisposer(new m.a(a));return c}n(b,a);d(b,[{key:"resize",value:function(a){var b;
+if(256>a){var c=b=new Uint8Array(a);for(var d=0;d<a;++d)c[d]=d;c=1}else if(65536>a){c=b=new Uint8Array(2*a);d=0;for(var f=2*a,h=0;h<f;h+=2)c[h]=d,c[h+1]=d>>8,++d;c=2}else if(16777216>a){c=b=new Uint8Array(3*a);d=3*a;for(h=f=0;h<d;h+=3)c[h]=f,c[h+1]=f>>8,c[h+2]=f>>16,++f;c=3}else throw Error("Length of index buffer must not exceed 2^24.");this.buffer.setData(b);this.numComponents=c;this.length=a}},{key:"ensure",value:function(a){(void 0===this.length||this.length<a)&&this.resize(a);return this}},{key:"bindToVertexAttrib",
+value:function(a){this.buffer.bindToVertexAttrib(a,this.numComponents,c.t,!0)}},{key:"bind",value:function(a,b){b=void 0===b?0:b;a=a.attribute("aIndexRaw");0<=a&&(this.bindToVertexAttrib(a),0!==b&&this.gl.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(a,b))}}]);return b}(g.a),h=function(){function a(b){p(this,a);this.name=b;this.attributeName="a"+this.name;this.getterName="get"+this.name}d(a,[{key:"defineShader",value:function(a){a.addAttribute("highp vec4",this.attributeName);a.addVertexCode("\nfloat "+
+this.getterName+" () {\n  vec4 temp = "+this.attributeName+";\n  return temp.x + temp.y * 256.0 + temp.z * 65536.0;\n}\n")}},{key:"bind",value:function(a,b){a.bindToVertexAttrib(b.attribute(this.attributeName),4,c.t,!1)}},{key:"disable",value:function(a){a.gl.disableVertexAttribArray(a.attribute(this.attributeName))}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==
+typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});g=a(24);var m=a.n(g),c=a(14);g=a(1);var b=a(6),d=a(70),f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||
+!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),h=function(a){function h(a,b){b=void 0===b?200:b;if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");var d=p(this,(h.__proto__||Object.getPrototypeOf(h)).call(this));d.root=a;d.parseError=new c.b(void 0);d.registerEventListener(window,"hashchange",function(){return d.updateFromUrlHash()});var f=m()(function(){return d.setUrlHash()},
+b);d.registerDisposer(a.changed.add(f));d.registerDisposer(function(){return f.cancel()});return d}n(h,a);f(h,[{key:"setUrlHash",value:function(){var a=Object(d.b)(this.root);a.generation!==this.prevStateGeneration&&(this.prevStateGeneration=a.generation,a=Object(b.i)(a.value),a!==this.prevStateString&&(this.prevStateString=a,"{}"===a?history.replaceState(null,"","#"):history.replaceState(null,"","#!"+a)))}},{key:"updateFromUrlHash",value:function(){try{var a=location.href.replace(/^[^#]+/,"");if(""===
+a||"#"===a||"#!"===a)a="#!{}";if(a.startsWith("#!+")){a=a.slice(3);a=decodeURI(a);var c=Object(b.h)(a);Object(b.u)(c);this.root.restoreState(c);this.prevStateString=void 0}else if(a.startsWith("#!")){a=a.slice(2);a=decodeURI(a);if(a===this.prevStateString)return;this.prevStateString=a;this.root.reset();var d=Object(b.h)(a);Object(b.u)(d);this.root.restoreState(d)}else throw Error('URL hash is expected to be of the form "#!{...}" or "#!+{...}".');this.parseError.value=void 0}catch(u){this.parseError.value=
+u}}}]);return h}(g.a)},function(g,e,a){var p=a(3);a.d(e,"g",function(){return p.p});a.d(e,"h",function(){return p.r});a.d(e,"e",function(){return p.l});var n=a(278);a.d(e,"b",function(){return n.b});a.d(e,"a",function(){return n.a});var m=a(165);a.d(e,"d",function(){return m.b});var c=a(108);a.d(e,"c",function(){return c.c});a.d(e,"f",function(){return c.d})},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});a.d(e,"b",function(){return q});g=a(28);a=a(1);var c=function t(a,b,c){null===a&&(a=Function.prototype);
+var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return t(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},b=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();$jscomp.initSymbol();var d=Symbol("SingleTextureVolumeChunk.textureUnit");
+$jscomp.initSymbol();var f=Symbol("SingleTextureVolumeChunk.textureLayout"),h=function(a){function c(a){p(this,c);var b=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));b.shaderKey=a;return b}m(c,a);b(c,[{key:"defineShader",value:function(a){a.addTextureSampler2D("uVolumeChunkSampler",d)}},{key:"beginDrawing",value:function(a,b){var c=b.textureUnit(d);a.activeTexture(a.TEXTURE0+c);b[f]=null}},{key:"endDrawing",value:function(a,b){a.bindTexture(a.TEXTURE_2D,null);b[f]=null}},{key:"bindChunk",
+value:function(a,b,c){var d=c.textureLayout;b[f]!==d&&(b[f]=d,this.setupTextureLayout(a,b,d));a.bindTexture(a.TEXTURE_2D,c.texture)}},{key:"beginSource",value:function(a,b){}}]);return c}(a.a),q=function(a){function d(a,b){p(this,d);a=n(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,a,b));a.texture=null;a.data=b.data;return a}m(d,a);b(d,[{key:"copyToGPU",value:function(a){c(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"copyToGPU",this).call(this,a);var b=this.texture=a.createTexture();
+a.bindTexture(a.TEXTURE_2D,b);this.setTextureData(a);a.bindTexture(a.TEXTURE_2D,null)}},{key:"freeGPUMemory",value:function(a){c(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"freeGPUMemory",this).call(this,a);a.deleteTexture(this.texture);this.texture=null;this.textureLayout.dispose();this.textureLayout=null}}]);return d}(g.a)},function(g,e,a){e.a=function(a,e,g,c,b,d){for(var f=0,h=0,q=1,k=1,m=0;3>m;++m){var r=b[m],l=c[m],n=r%l;f+=Math.floor(r/l)*q;q*=Math.ceil(g[m]/l);h+=n*k;k*=l}c=
+e+2*f;g=a[c];c=a[c+1];b=g&16777215;g=g>>24&255;0<g&&(b+=d*(a[(e+c&16777215)+Math.floor(h*g/32)]>>h*g%32&(1<<g)-1));return b}},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a){var b=new z.a,c=b.element;c.classList.add("neuroglancer-viewer-context-menu");var d=function(a,d){a=b.registerDisposer(new D.a(d,{label:a}));a.element.classList.add("neuroglancer-viewer-context-menu-limit-widget");c.appendChild(a.element)};d("GPU memory limit",a.chunkQueueManager.capacities.gpuMemory.sizeLimit);
+d("System memory limit",a.chunkQueueManager.capacities.systemMemory.sizeLimit);d("Concurrent chunk requests",a.chunkQueueManager.capacities.download.itemLimit);d=function(a,d){var f=document.createElement("label");f.textContent=a;a=b.registerDisposer(new y.c(d));f.appendChild(a.element);c.appendChild(f)};d("Show axis lines",a.showAxisLines);d("Show scale bar",a.showScaleBar);d("Show cross sections in 3-d",a.showPerspectiveSliceViews);return b}a.d(e,"a",function(){return L});g=a(24);var b=a.n(g),d=
+a(23),f=a(133);g=a(71);var h=a(37),q=a(289),k=a(21),t=a(160),r=a(298),l=a(20),u=a(55),A=a(45),y=a(54),z=a(104),B=a(164),x=a(64);e=a(1);var v=a(9),E=a(22),F=a(51),C=a(7),G=a(70),H=a(49),D=a(308),O=a(107),J=a(15),Q=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(309);a(97);a(36);a(72);var T=function(a){function b(a){p(this,
+b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.gl=a;c.worker=new Worker("chunk_worker.bundle.js");c.chunkQueueManager=c.registerDisposer(new d.d(new J.a(c.worker),c.gl,{gpuMemory:new d.a({defaultItemLimit:1E6,defaultSizeLimit:1E9}),systemMemory:new d.a({defaultItemLimit:1E7,defaultSizeLimit:2E9}),download:new d.a({defaultItemLimit:32,defaultSizeLimit:Number.POSITIVE_INFINITY})}));c.chunkManager=c.registerDisposer(new d.c(c.chunkQueueManager));c.chunkQueueManager.registerDisposer(function(){return c.worker.terminate()});
+return c}m(b,a);Q(b,[{key:"rpc",get:function(){return this.chunkQueueManager.rpc}}]);return b}(e.a);(function(a){function b(){p(this,b);var a=n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments));a.global=new F.a;return a}m(b,a);return b})(g.b);var S={showHelpButton:!0,showLayerDialog:!0,showLayerPanel:!0,showLocation:!0,resetStateWhenEmpty:!0},L=function(a){function d(a,c){c=void 0===c?{}:c;p(this,d);var e=n(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));e.display=a;e.navigationState=
+e.registerDisposer(new u.e);e.perspectiveNavigationState=new u.e(new u.g(e.navigationState.position),1);e.mouseState=new k.d;e.layerManager=e.registerDisposer(new k.a);e.showAxisLines=new y.b(!0,!0);e.showScaleBar=new y.b(!0,!0);e.showPerspectiveSliceViews=new y.b(!0,!0);e.layerSelectedValues=e.registerDisposer(new k.b(e.layerManager,e.mouseState));e.resetInitiated=new C.a;e.state=new G.a;e.visible=!0;var g=c,q=void 0===g.dataContext?new T(a.gl):g.dataContext,m=void 0===g.visibility?new H.b(H.b.VISIBLE):
+g.visibility,r=void 0===g.inputEventBindings?{global:new F.a,sliceView:new F.a,perspectiveView:new F.a}:g.inputEventBindings,x=void 0===g.element?a.makeCanvasOverlayElement():g.element;g=void 0===g.dataSourceProvider?Object(h.a)({credentialsManager:f.a}):g.dataSourceProvider;e.registerDisposer(function(){return Object(v.b)(e.element)});e.registerDisposer(q);e.options=Object.assign({},S,c,{dataContext:q,visibility:m,inputEventBindings:r,element:x,dataSourceProvider:g});e.layerSpecification=new l.c(e.dataSourceProvider,
+e.layerManager,e.chunkManager,e.layerSelectedValues,e.navigationState.voxelSize);e.registerDisposer(a.updateStarted.add(function(){e.onUpdateDisplay()}));e.registerDisposer(a.updateFinished.add(function(){e.onUpdateDisplayFinished()}));c=e.state;c.add("layers",e.layerSpecification);c.add("navigation",e.navigationState);c.add("showAxisLines",e.showAxisLines);c.add("showScaleBar",e.showScaleBar);c.add("perspectiveOrientation",e.perspectiveNavigationState.pose.orientation);c.add("perspectiveZoom",e.perspectiveNavigationState.zoomFactor);
+c.add("showSlices",e.showPerspectiveSliceViews);c.add("gpuMemoryLimit",e.dataContext.chunkQueueManager.capacities.gpuMemory.sizeLimit);c.add("systemMemoryLimit",e.dataContext.chunkQueueManager.capacities.systemMemory.sizeLimit);c.add("concurrentDownloads",e.dataContext.chunkQueueManager.capacities.download.itemLimit);e.registerDisposer(e.navigationState.changed.add(function(){e.handleNavigationStateChanged()}));e.layerManager.initializePosition(e.navigationState.position);e.registerDisposer(e.layerSpecification.voxelCoordinatesSet.add(function(a){e.navigationState.position.setVoxelCoordinates(a)}));
+q=e.registerCancellable(b()(function(){!e.wasDisposed&&0===e.layerManager.managedLayers.length&&e.options.resetStateWhenEmpty&&(e.navigationState.reset(),e.perspectiveNavigationState.pose.orientation.reset(),e.perspectiveNavigationState.zoomFactor.reset(),e.resetInitiated.dispatch(),!A.b&&e.options.showLayerDialog&&e.visibility.visible&&new t.a(e.layerSpecification))}));e.layerManager.layersChanged.add(q);q();e.registerDisposer(e.dataContext.chunkQueueManager.visibleChunksChanged.add(function(){e.layerSelectedValues.handleLayerChange()}));
+e.registerDisposer(e.dataContext.chunkQueueManager.visibleChunksChanged.add(function(){e.visible&&a.scheduleRedraw()}));e.makeUI();c.add("layout",e.layout);e.registerActionListeners();e.registerEventActionBindings();e.registerDisposer(Object(B.a)(x,e.navigationState.position));return e}m(d,a);Q(d,[{key:"makeUI",value:function(){var a=this,b=this.options,d=this.element;d.classList.add("neuroglancer-viewer");d.classList.add("neuroglancer-noselect");d.style.display="flex";d.style.flexDirection="column";
+if(b.showHelpButton||b.showLocation){var f=document.createElement("div");f.title="Right click for settings";(this.contextMenu=this.registerDisposer(c(this))).registerParent(f);f.style.display="flex";f.style.flexDirection="row";f.style.alignItems="stretch";if(b.showLocation){var h=this.registerDisposer(new O.c(document.createElement("div"),this.navigationState.voxelSize));f.appendChild(h.element);h=this.registerDisposer(new O.b(this.navigationState.position));f.appendChild(h.element);h=this.registerDisposer(new O.a(document.createElement("div"),
+this.mouseState,this.navigationState.voxelSize));h.element.style.flex="1";h.element.style.alignSelf="center";f.appendChild(h.element)}b.showHelpButton&&(b=document.createElement("div"),b.className="neuroglancer-help-button neuroglancer-button",b.textContent="?",b.title="Help",this.registerEventListener(b,"click",function(){a.showHelpDialog()}),f.appendChild(b));d.appendChild(f)}this.layout=this.registerDisposer(new r.a(this,"4panel"));d.appendChild(this.layout.element);this.display.onResize();f=function(){var b=
+a.visibility.visible;b!==a.visible&&(d.style.visibility=b?"inherit":"hidden",a.visible=b)};f();this.registerDisposer(this.visibility.changed.add(f))}},{key:"registerEventActionBindings",value:function(){var a=this.element;this.registerDisposer(new F.b(a,this.inputEventMap));this.registerDisposer(new x.a(a))}},{key:"bindAction",value:function(a,b){this.registerDisposer(Object(E.c)(this.element,a,b))}},{key:"registerActionListeners",value:function(){for(var a=this,b={},c=$jscomp.makeIterator(["recolor",
+"clear-segments"]),d=c.next();!d.done;b={action:b.action},d=c.next())b.action=d.value,this.bindAction(b.action,function(b){return function(){a.layerManager.invokeAction(b.action)}}(b));b={};c=$jscomp.makeIterator(["select","annotate"]);for(d=c.next();!d.done;b={action$231:b.action$231},d=c.next())b.action$231=d.value,this.bindAction(b.action$231,function(b){return function(){a.mouseState.updateUnconditionally();a.layerManager.invokeAction(b.action$231)}}(b));this.bindAction("help",function(){return a.showHelpDialog()});
+for(d={i:1};9>=d.i;d={i:d.i},++d.i)this.bindAction("toggle-layer-"+d.i,function(b){return function(){var c=b.i-1,d=a.layerManager.managedLayers;c<d.length&&(c=d[c],c.setVisible(!c.visible))}}(d));this.bindAction("toggle-axis-lines",function(){return a.showAxisLines.toggle()});this.bindAction("toggle-scale-bar",function(){return a.showScaleBar.toggle()});this.bindAction("toggle-show-slices",function(){return a.showPerspectiveSliceViews.toggle()})}},{key:"showHelpDialog",value:function(){var a=this.inputEventBindings;
+new q.a([["Global",a.global],["Slice View",a.sliceView],["Perspective View",a.perspectiveView]])}},{key:"onUpdateDisplay",value:function(){this.visible&&(this.dataContext.chunkQueueManager.chunkUpdateDeadline=null)}},{key:"onUpdateDisplayFinished",value:function(){this.visible&&this.mouseState.updateIfStale()}},{key:"handleNavigationStateChanged",value:function(){if(this.visible){var a=this.dataContext.chunkQueueManager;null===a.chunkUpdateDeadline&&(a.chunkUpdateDeadline=Date.now()+10)}this.mouseState.stale=
+!0}},{key:"chunkManager",get:function(){return this.dataContext.chunkManager}},{key:"chunkQueueManager",get:function(){return this.dataContext.chunkQueueManager}},{key:"dataContext",get:function(){return this.options.dataContext}},{key:"visibility",get:function(){return this.options.visibility}},{key:"inputEventBindings",get:function(){return this.options.inputEventBindings}},{key:"inputEventMap",get:function(){return this.inputEventBindings.global}},{key:"element",get:function(){return this.options.element}},
+{key:"dataSourceProvider",get:function(){return this.options.dataSourceProvider}},{key:"gl",get:function(){return this.display.gl}}]);return d}(e.a)},function(g,e,a){e.b=function(a,e){return function(g){g.style.flex=a;e(g)}};e.a=function(a,e){return function(g){g.style.display="flex";g.style.flexDirection=a;for(var c=$jscomp.makeIterator(e),b=c.next();!b.done;b=c.next()){b=b.value;var d=g.ownerDocument.createElement("div");g.appendChild(d);b(d)}}}},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return k});var m=a(20);g=a(45);var c=a(19),b=a(26),d=a(161),f=a(291),h=a(296),q=function(){function a(a,b){for(var c=
+0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(297);var k=function(a){function e(a,b){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var c=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));c.manager=a;c.existingLayer=b;c.statusElement=document.createElement("div");c.submitElement=document.createElement("button");
+c.namePromptElement=document.createElement("label");c.nameInputElement=document.createElement("input");c.volumeCancellationSource=void 0;c.sourceValid=!1;c.nameValid=!0;var k=c.content;k.classList.add("add-layer-overlay");var g=document.createElement("form");g.className="source-form";c.registerEventListener(g,"submit",function(a){a.preventDefault();c.validateSource(!0)});var l=document.createElement("label");l.textContent="Source:";a=c.sourceInput=c.registerDisposer(new f.a({completer:function(a,
+b){return c.manager.dataSourceProvider.volumeCompleter(a,c.manager.chunkManager,b).then(function(a){return{completions:a.completions,makeElement:f.b,offset:a.offset,showSingleResult:!0}})},delay:0}));a.element.classList.add("add-layer-source");a.inputElement.addEventListener("blur",function(){c.validateSource(!1)});c.submitElement.disabled=!0;a.inputChanged.add(function(){var a=c.volumeCancellationSource;void 0!==a&&(a.cancel(),c.volumeCancellationSource=void 0);c.sourceValid=!1;c.submitElement.disabled=
+!0;c.statusElement.textContent=""});g.appendChild(l);g.appendChild(a.element);Object(d.a)(l,a.inputElement);l=Object(h.a)();g.appendChild(l);k.appendChild(g);var q=c.statusElement,r=c.namePromptElement,t=c.nameInputElement;g=c.submitElement;q.className="dialog-status";l=document.createElement("form");l.className="name-form";r.textContent="Name:";t.className="add-layer-name";t.autocomplete="off";t.spellcheck=!1;t.type="text";c.registerEventListener(t,"input",function(){c.validateName()});g.type="submit";
+Object(d.a)(r,t);l.appendChild(r);l.appendChild(t);l.appendChild(g);k.appendChild(l);k.appendChild(q);void 0!==b?(void 0!==b.sourceUrl?(a.value=b.sourceUrl,c.validateSource()):c.sourceValid=!0,a.disabled=!0,t.value=b.name,c.validateName(),g.textContent="Save",t.focus()):(b=c.manager.layerManager.managedLayers,0<b.length&&(b=b[b.length-1],b instanceof m.b&&(b=b.sourceUrl,void 0!==b&&(k=c.manager.dataSourceProvider.findSourceGroup(b),a.value=b.substring(0,k),a.inputElement.setSelectionRange(0,k)))),
+a.inputElement.focus(),g.textContent="Add Layer");c.registerEventListener(l,"submit",function(a){a.preventDefault();c.submit()});return c}n(e,a);q(e,[{key:"isNameValid",value:function(){var a=this.nameInputElement.value;if(""===a)return!1;a=this.manager.layerManager.getLayerByName(a);return void 0===a||a===this.existingLayer}},{key:"submit",value:function(){this.sourceValid&&this.isNameValid()&&(this.existingLayer?(this.existingLayer.name=this.nameInputElement.value,this.manager.layerManager.layersChanged.dispatch()):
+this.manager.add(this.manager.getLayer(this.nameInputElement.value,this.sourceInput.value)),this.dispose())}},{key:"validateName",value:function(){var a=this.nameInputElement;(this.nameValid=this.isNameValid())?(a.classList.add("valid-input"),a.classList.remove("invalid-input")):(a.classList.remove("valid-input"),a.classList.add("invalid-input"));this.validityChanged()}},{key:"validityChanged",value:function(){this.submitElement.disabled=!(this.nameValid&&this.sourceValid)}},{key:"validateSource",
+value:function(a){var d=this;a=void 0===a?!1:a;var f=this.sourceInput.value;if(""!==f){try{var h=this.manager.dataSourceProvider.suggestLayerName(f),e=this.nameInputElement;if(""===this.nameInputElement.value){var k=this.manager.layerManager.getUniqueLayerName(h);e.value=k;e.setSelectionRange(0,k.length);this.validateName()}a&&e.focus()}catch(v){this.setError(v.message);return}this.setInfo("Validating volume source...");var g=this.volumeCancellationSource=new b.b;this.manager.dataSourceProvider.getVolume(this.manager.chunkManager,
+f,void 0,g).then(function(a){g.isCanceled||(d.volumeCancellationSource=void 0,d.sourceValid=!0,d.setInfo(c.d[a.volumeType].toLowerCase()+": "+(a.numChannels+"-channel "+c.a[a.dataType].toLowerCase())),d.validityChanged())}).catch(function(a){g.isCanceled||(d.volumeCancellationSource=void 0,d.setError(a.message))})}}},{key:"setInfo",value:function(a){this.statusElement.className="dialog-status dialog-status-info";this.statusElement.textContent=a}},{key:"setError",value:function(a){this.statusElement.className=
+"dialog-status dialog-status-error";this.statusElement.textContent=a}}]);return e}(g.a)},function(g,e,a){e.a=function(a,e){""===e.id&&(e.id="unique-id-for-association-"+p++);a.setAttribute("for",e.id)};var p=0},function(g,e,a){e.a=function(a){var e=-1;return Object.assign(function(){-1===e&&(e=requestAnimationFrame(function(){e=-1;a()}))},{flush:function(){-1!==e&&(e=-1,a())},cancel:function(){-1!==e&&(cancelAnimationFrame(e),e=-1)}})}},function(g,e,a){e.a=function(a){if(!window.getSelection().isCollapsed)return!0;
+a=a.target.tagName;return"TEXTAREA"===a||"INPUT"===a?!0:!1};e.b=function(a,e){e=void 0===e?"text/plain":e;var c=!1,b=Object(p.c)(document,"copy",function(b){b.clipboardData.setData(e,a);c=!0;b.stopPropagation();b.preventDefault()},!0);try{document.execCommand("copy")}finally{b()}return c};var p=a(1)},function(g,e,a){e.a=function(a,c){var b=Object(p.c)(a,"drop",function(a){a.preventDefault();if(-1!==a.dataTransfer.types.indexOf(n.d)){var b=JSON.parse(a.dataTransfer.getData(n.d));c.restoreState(b);
+a.stopPropagation()}}),d=Object(p.c)(a,"dragover",function(a){-1!==a.dataTransfer.types.indexOf(n.d)&&(a.dataTransfer.dropEffect="link",a.preventDefault(),a.stopPropagation())});return function(){d();b()}};var p=a(1),n=a(107)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return r});var m=a(3),c=a(68),b=a(22),d=a(103),f=a(314),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),
+q=function u(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return u(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=m.p.create(),t=m.j.create();e.b="perpspectiveRenderEvent";var r=function(a){function e(a,h,g,q){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var r=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,h,g));r.config=
+q;r.planarSlices=new Set;r.transparentPlaneRenderHelper=r.registerDisposer(f.b.get(r.gl,d.c));Object(b.c)(h,"nehuba-translate-via-mouse-drag",function(a){Object(c.a)(a.detail,function(a,b,c){if(r.config.layout.useNehubaPerspective.enableShiftDrag){a=r.width;var d=r.height,f=r.viewer.navigationState.position,h=f.spatialCoordinates;m.p.transformMat4(k,h,r.projectionMat);k[0]=2*b/a;k[1]=-2*c/d;m.p.transformMat4(h,k,r.inverseProjectionMat);f.changed.dispatch()}})});a=q.layout.useNehubaPerspective.removePerspectiveSlicesBackground;
+r.nehubaSliceViewRenderHelper=r.registerDisposer(f.a.get(r.gl,d.c,a&&a.mode||"none"));return r}n(e,a);h(e,[{key:"updateProjectionMatrix",value:function(){q(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateProjectionMatrix",this).call(this);this.config.layout.useNehubaPerspective.centerToOrigin&&(m.j.translate(this.projectionMat,this.projectionMat,this.navigationState.position.spatialCoordinates),m.j.invert(this.inverseProjectionMat,this.projectionMat))}},{key:"disposed",value:function(){for(var a=
+$jscomp.makeIterator(this.planarSlices),b=a.next();!b.done;b=a.next())b.value.dispose();this.planarSlices.clear();q(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}},{key:"draw",value:function(){if(this.navigationState.valid){this.onResize();var a=this.width,b=this.height;if(0!==a&&0!==b){if(this.viewer.showSliceViews.value)for(var c=$jscomp.makeIterator(this.sliceViews),f=c.next();!f.done;f=c.next())f.value.updateRendering();c=$jscomp.makeIterator(this.planarSlices);
+for(f=c.next();!f.done;f=c.next())f.value.updateRendering();f=this.gl;this.offscreenFramebuffer.bind(a,b);f.disable(f.SCISSOR_TEST);c=this.config.layout.useNehubaPerspective;c=c.perspectiveBackground||c.perspectiveSlicesBackground||this.config.layout.planarSlicesBackground||this.config.dataset&&this.config.dataset.imageBackground||m.r.fromValues(.5,.5,.5,1);this.gl.clearColor(c[0],c[1],c[2],c[3]);f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT);f.enable(f.DEPTH_TEST);c=this.projectionMat;this.updateProjectionMatrix();
+var h=m.p.create();Object(m.n)(h,m.e[2],this.modelViewMat);m.p.normalize(h,h);var e=this.pickIDs;e.clear();c={dataToDevice:c,lightDirection:h,ambientLighting:.2,directionalLighting:.8,pickIDs:e,emitter:d.c,emitColor:!0,emitPickID:!0,alreadyEmittedPickID:!1,viewportWidth:a,viewportHeight:b,extra:{config:this.config,showSliceViewsCheckboxValue:this.viewer.showSliceViews.value,slicesPose:this.viewer.slicesNavigationState.pose,perspectiveNavigationState:this.viewer.navigationState,meshesLoaded:-1,meshFragmentsLoaded:-1}};
+h=this.visibleLayerTracker.getVisibleLayers();var k=!1,g=$jscomp.makeIterator(h);for(e=g.next();!e.done;e=g.next())e=e.value,e.isTransparent?k=!0:e.draw(c);e=this.config.layout.useNehubaPerspective.waitForMesh;!this.viewer.showSliceViews.value||e&&!c.extra.meshRendered||this.drawSliceViews(c);this.viewer.showAxisLines.value&&this.drawAxisLines();if(k){f.depthMask(!1);f.enable(f.BLEND);k=this.transparentConfiguration;k.bind(a,b);this.gl.clearColor(0,0,0,1);f.clear(f.COLOR_BUFFER_BIT);c.emitter=d.d;
+f.blendFuncSeparate(f.ONE,f.ONE,f.ZERO,f.ONE_MINUS_SRC_ALPHA);c.emitPickID=!1;g=$jscomp.makeIterator(h);for(e=g.next();!e.done;e=g.next())e=e.value,e.isTransparent&&e.draw(c);f.disable(f.DEPTH_TEST);this.offscreenFramebuffer.bindSingle(d.a.COLOR);f.blendFunc(f.ONE_MINUS_SRC_ALPHA,f.SRC_ALPHA);this.transparencyCopyHelper.draw(k.colorBuffers[0].texture,k.colorBuffers[1].texture);f.depthMask(!0);f.disable(f.BLEND);f.enable(f.DEPTH_TEST);this.offscreenFramebuffer.bind(a,b)}f.WEBGL_draw_buffers.drawBuffersWEBGL([f.NONE,
+f.WEBGL_draw_buffers.COLOR_ATTACHMENT1_WEBGL,f.WEBGL_draw_buffers.COLOR_ATTACHMENT2_WEBGL]);c.emitter=d.c;c.emitPickID=!0;c.emitColor=!1;a=$jscomp.makeIterator(h);for(e=a.next();!e.done;e=a.next())b=e.value,c.alreadyEmittedPickID=!b.isTransparent,b.draw(c);f.disable(f.DEPTH_TEST);this.offscreenFramebuffer.unbind();this.setGLViewport();this.offscreenCopyHelper.draw(this.offscreenFramebuffer.colorBuffers[d.a.COLOR].texture);a=new CustomEvent("perpspectiveRenderEvent",{bubbles:!0,detail:{meshesLoaded:c.extra.meshesLoaded,
+meshFragmentsLoaded:c.extra.meshFragmentsLoaded,lastLoadedMeshId:c.extra.lastMeshId}});this.element.dispatchEvent(a)}}}},{key:"drawSliceViews",value:function(a){var b=this.config.layout.useNehubaPerspective,c=this.sliceViewRenderHelper,d=this.nehubaSliceViewRenderHelper,f=this.transparentPlaneRenderHelper,h=a.lightDirection,e=a.ambientLighting,k=a.directionalLighting;a=a.dataToDevice;if(!b.hideImages){var g=b.removePerspectiveSlicesBackground;c=g?d:c;for(var q=$jscomp.makeIterator(this.sliceViews),
+r=q.next();!r.done;r=q.next())if(r=r.value,0!==r.width&&0!==r.height){var n=Math.abs(m.p.dot(h,r.viewportAxes[2]));n=e+n*k;var p=t;m.j.identity(p);p[0]=r.width/2;p[5]=-r.height/2;m.j.multiply(p,r.viewportToData,p);m.j.multiply(p,a,p);var u=b.perspectiveSlicesBackground||this.config.layout.planarSlicesBackground||this.config.dataset&&this.config.dataset.imageBackground||m.r.fromValues(.5,.5,.5,1);d.setDiscardColor(g&&g.color||u);c.draw(r.offscreenFramebuffer.colorBuffers[0].texture,p,m.r.fromValues(n,
+n,n,1),u,0,0,1,1)}}if(b.drawSubstrates)for(d=b.fixedZoomPerspectiveSlices&&b.fixedZoomPerspectiveSlices.sliceViewportSizeMultiplier||1,h=$jscomp.makeIterator(this.sliceViews),r=h.next();!r.done;r=h.next()){c=r.value;e=t;m.j.identity(e);e[0]=c.width/2/d;e[5]=-c.height/2/d;m.j.multiply(e,c.viewportToData,e);k=m.j.clone(a);g=m.p.clone(this.navigationState.position.spatialCoordinates);c=m.p.clone(c.viewportAxes[2]);q=this.viewer.slicesNavigationState.pose.orientation.orientation;r=m.l.invert(m.l.create(),
+q);m.p.transformQuat(c,c,r);m.p.transformQuat(g,g,r);r=m.p.create();for(n=0;3>n;n++)r[n]=0===Math.round(c[n])?-g[n]:0;m.p.transformQuat(r,r,q);m.j.translate(k,k,r);m.j.multiply(e,k,e);k=b.drawSubstrates.color||m.r.fromValues(0,0,1,.2);f.draw(e,k,{factor:3,units:1})}if(b.drawZoomLevels&&(d=b.drawZoomLevels.cutOff)&&this.viewer.slicesNavigationState.zoomFactor.value<d)for(d=$jscomp.makeIterator(this.planarSlices),r=d.next();!r.done;r=d.next())e=r.value,h=t,m.j.identity(h),h[0]=e.width/2,h[5]=-e.height/
+2,m.j.multiply(h,e.viewportToData,h),m.j.multiply(h,a,h),e=b.drawZoomLevels.color||m.r.fromValues(1,0,0,.2),f.draw(h,e,{factor:-1,units:1})}},{key:"zoomByMouse",value:function(a){q(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"zoomByMouse",this).call(this,a);if(a=this.config.layout.useNehubaPerspective.restrictZoomLevel)a.minZoom&&this.navigationState.zoomFactor.value<a.minZoom&&(this.navigationState.zoomFactor.value=a.minZoom),a.maxZoom&&this.navigationState.zoomFactor.value>a.maxZoom&&
+(this.navigationState.zoomFactor.value=a.maxZoom)}}]);return e}(d.b)},function(g,e,a){function p(a){if(!a[t]){a.registerDisposer(a.layerManager.layersChanged.add(function(){for(var b=!1,c=new f.b(f.p.fromValues(Infinity,Infinity,Infinity),f.p.fromValues(-Infinity,-Infinity,-Infinity)),d=$jscomp.makeIterator(a.layerManager.managedLayers),h=d.next();!h.done;h=d.next())if(h=h.value.layer,null!=h){h=$jscomp.makeIterator(h.renderLayers);for(var e=h.next();!e.done;e=h.next())e=e.value.boundingBox,null!=
+e&&(f.p.min(c.lower,c.lower,e.lower),f.p.max(c.upper,c.upper,e.upper),b=!0)}b&&(a.navigationState.position[k]=c);b&&(a.navigationState.pose[k]=c);b&&a.navigationState.position.changed.dispatch()}));var b=a.navigationState.position,c=b.changed.dispatch;b.changed.dispatch=function(){var a=b[k];if(a){var d=b.spatialCoordinates;f.p.min(d,d,a.upper);f.p.max(d,d,a.lower)}c()};a[t]=!0}}function n(a){m(a,function(a){a=a.displayState;a.segmentColorHash instanceof q.a||(a.segmentColorHash=q.a.from(a.segmentColorHash))})}
+function m(a,b){c(a,b);var d=a.layerManager;d.registerDisposer(d.layersChanged.add(function(){c(a,b)}))}function c(a,b){a.layerManager.managedLayers.map(function(a){return a.layer}).filter(function(a){return!!a}).filter(function(a){return a instanceof h.SegmentationUserLayer}).map(function(a){return a}).forEach(function(a){b(a)})}function b(a,b){$jscomp.initSymbol();var c=Symbol("customEvent");a.addEventListener("wheel",function(a){if(!a[c]&&b.zoomWithoutCtrl){a.stopImmediatePropagation();a.stopPropagation();
+a.preventDefault();var d=new Proxy(a,{get:function(a,b){if("ctrlKey"===b)return!a[b];b=a[b];return"function"===typeof b?b.bind(a):b}});d=new WheelEvent(a.type,d);d[c]=!0;a.target.dispatchEvent(d)}},!0)}function d(a,b){a.addEventListener("mousedown",function(a){b.rightClickWithCtrl&&2===a.button&&!a.ctrlKey&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},!0)}e.a=function(a,b){b.restrictUserNavigation&&p(a);b.globals&&b.globals.useCustomSegmentColors&&n(a);b.globals&&b.globals.useNehubaLayout&&
+(a.inputEventBindings.sliceView.set("at:shift+mousedown0",{action:"nehuba-rotate-via-mouse-drag",stopPropagation:!0}),b.layout&&b.layout.useNehubaPerspective&&a.inputEventBindings.perspectiveView.set("at:shift+mousedown0",{action:"nehuba-translate-via-mouse-drag",stopPropagation:!0}))};e.b=function(a,c){b(a,c);d(a,c)};e.e=p;e.d=function(a){a.displayState.segmentSelectionState.set(null);a.displayState.segmentSelectionState.set=function(){}};e.c=function(a){a.displayState.segmentSelectionState.isSelected=
+function(){return!1}};var f=a(3),h=a(69),q=a(109);$jscomp.initSymbol();var k=Symbol("bbox");$jscomp.initSymbol();var t=Symbol("hooked")},function(g,e,a){g.exports=a(319)},function(g,e,a){e.isObject=function(a){return null!=a&&"object"===typeof a}},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c){a.call(this);this.errors=
+c;c=Error.call(this,c?c.length+" errors occurred during unsubscription:\n  "+c.map(function(a,c){return c+1+") "+a.toString()}).join("\n  "):"");this.name=c.name="UnsubscriptionError";this.stack=c.stack;this.message=c.message}p(e,a);return e}(Error);e.UnsubscriptionError=g},function(g,e,a){e.empty={closed:!0,next:function(a){},error:function(a){throw a;},complete:function(){}}},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&
+(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b){a.call(this);this.subject=c;this.subscriber=b;this.closed=!1}p(e,a);e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var a=this.subject,b=a.observers;this.subject=null;!b||0===b.length||a.isStopped||a.closed||(a=b.indexOf(this.subscriber),-1!==a&&b.splice(a,1))}};return e}(a(8).Subscription);e.SubjectSubscription=g},function(g,e,a){e.isArrayLike=function(a){return a&&
+"number"===typeof a.length}},function(g,e,a){e.isPromise=function(a){return a&&"function"!==typeof a.subscribe&&"function"===typeof a.then}},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(32),m=a(172),c=a(173),b=a(175),d=a(342),f=a(34),h=a(343),q=a(56),k=a(0),t=a(114),r=a(75);g=function(a){function e(b,c){a.call(this,null);this.ish=b;
+this.scheduler=c}p(e,a);e.create=function(a,g){if(null!=a){if("function"===typeof a[r.observable])return a instanceof k.Observable&&!g?a:new e(a,g);if(n.isArray(a))return new f.ArrayObservable(a,g);if(c.isPromise(a))return new b.PromiseObservable(a,g);if("function"===typeof a[q.iterator]||"string"===typeof a)return new d.IteratorObservable(a,g);if(m.isArrayLike(a))return new h.ArrayLikeObservable(a,g)}throw new TypeError((null!==a&&typeof a||a)+" is not observable");};e.prototype._subscribe=function(a){var b=
+this.ish,c=this.scheduler;return null==c?b[r.observable]().subscribe(a):b[r.observable]().subscribe(new t.ObserveOnSubscriber(a,c,0))};return e}(k.Observable);e.FromObservable=g},function(g,e,a){function p(a){var b=a.value;a=a.subscriber;a.closed||(a.next(b),a.complete())}function n(a){var b=a.err;a=a.subscriber;a.closed||a.error(b)}var m=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=
+c.prototype,new b)},c=a(12);g=function(a){function b(b,c){a.call(this);this.promise=b;this.scheduler=c}m(b,a);b.create=function(a,c){return new b(a,c)};b.prototype._subscribe=function(a){var b=this,d=this.promise,f=this.scheduler;if(null==f)this._isScalar?a.closed||(a.next(this.value),a.complete()):d.then(function(c){b.value=c;b._isScalar=!0;a.closed||(a.next(c),a.complete())},function(b){a.closed||a.error(b)}).then(null,function(a){c.root.setTimeout(function(){throw a;})});else if(this._isScalar){if(!a.closed)return f.schedule(p,
+0,{value:this.value,subscriber:a})}else d.then(function(c){b.value=c;b._isScalar=!0;a.closed||a.add(f.schedule(p,0,{value:c,subscriber:a}))},function(b){a.closed||a.add(f.schedule(n,0,{err:b,subscriber:a}))}).then(null,function(a){c.root.setTimeout(function(){throw a;})})};return b}(a(0).Observable);e.PromiseObservable=g},function(g,e,a){function p(){for(var a=[],f=0;f<arguments.length;f++)a[f-0]=arguments[f];f=Number.POSITIVE_INFINITY;var h=null,e=a[a.length-1];b.isScheduler(e)?(h=a.pop(),1<a.length&&
+"number"===typeof a[a.length-1]&&(f=a.pop())):"number"===typeof e&&(f=a.pop());return null===h&&1===a.length&&a[0]instanceof n.Observable?a[0]:(new m.ArrayObservable(a,h)).lift(new c.MergeAllOperator(f))}var n=a(0),m=a(34),c=a(78),b=a(33);e.merge=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return this.lift.call(p.apply(void 0,[this].concat(a)))};e.mergeStatic=p},function(g,e,a){function p(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];if(1===a.length)if(m.isArray(a[0]))a=
+a[0];else return a[0];return(new c.ArrayObservable(a)).lift(new d)}var n=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},m=a(32),c=a(34);g=a(4);var b=a(5);e.race=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];1===a.length&&m.isArray(a[0])&&(a=a[0]);return this.lift.call(p.apply(void 0,[this].concat(a)))};e.raceStatic=p;var d=function(){function a(){}
+a.prototype.call=function(a,b){return b.subscribe(new f(a))};return a}();e.RaceOperator=d;var f=function(a){function c(b){a.call(this,b);this.hasFirst=!1;this.observables=[];this.subscriptions=[]}n(c,a);c.prototype._next=function(a){this.observables.push(a)};c.prototype._complete=function(){var a=this.observables,c=a.length;if(0===c)this.destination.complete();else{for(var d=0;d<c&&!this.hasFirst;d++){var f=a[d];f=b.subscribeToResult(this,f,f,d);this.subscriptions&&this.subscriptions.push(f);this.add(f)}this.observables=
+null}};c.prototype.notifyNext=function(a,b,c,d,f){if(!this.hasFirst){this.hasFirst=!0;for(a=0;a<this.subscriptions.length;a++)a!==c&&(d=this.subscriptions[a],d.unsubscribe(),this.remove(d));this.subscriptions=null}this.destination.next(b)};return c}(g.OuterSubscriber);e.RaceSubscriber=f},function(g,e,a){e.noop=function(){}},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)},n=a(174),m=a(32);g=a(4);var c=a(5);e.onErrorResumeNext=function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];1===a.length&&m.isArray(a[0])&&(a=a[0]);return this.lift(new b(a))};e.onErrorResumeNextStatic=function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];1===a.length&&m.isArray(a[0])&&(a=a[0]);c=a.shift();return(new n.FromObservable(c,null)).lift(new b(a))};var b=function(){function a(a){this.nextSources=a}a.prototype.call=function(a,
+b){return b.subscribe(new d(a,this.nextSources))};return a}(),d=function(a){function b(b,c){a.call(this,b);this.destination=b;this.nextSources=c}p(b,a);b.prototype.notifyError=function(a,b){this.subscribeToNextSource()};b.prototype.notifyComplete=function(a){this.subscribeToNextSource()};b.prototype._error=function(a){this.subscribeToNextSource()};b.prototype._complete=function(){this.subscribeToNextSource()};b.prototype.subscribeToNextSource=function(){var a=this.nextSources.shift();a?this.add(c.subscribeToResult(this,
+a)):this.destination.complete()};return b}(g.OuterSubscriber)},function(g,e,a){function p(a,b){void 0===b&&(b=null);return new l({method:"GET",url:a,headers:b})}function n(a,b,c){return new l({method:"POST",url:a,body:b,headers:c})}function m(a,b){return new l({method:"DELETE",url:a,headers:b})}function c(a,b,c){return new l({method:"PUT",url:a,body:b,headers:c})}function b(a,b,c){return new l({method:"PATCH",url:a,body:b,headers:c})}function d(a,b){return(new l({method:"GET",url:a,responseType:"json",
+headers:b})).lift(new r.MapOperator(function(a,b){return a.response},null))}var f=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},h=a(12),q=a(13),k=a(11);g=a(0);var t=a(2),r=a(116);e.ajaxGet=p;e.ajaxPost=n;e.ajaxDelete=m;e.ajaxPut=c;e.ajaxPatch=b;e.ajaxGetJSON=d;var l=function(a){function e(b){a.call(this);var c={async:!0,createXHR:function(){if(this.crossDomain)if(h.root.XMLHttpRequest)var a=
+new h.root.XMLHttpRequest;else if(h.root.XDomainRequest)a=new h.root.XDomainRequest;else throw Error("CORS is not supported by your browser");else if(h.root.XMLHttpRequest)a=new h.root.XMLHttpRequest;else{var b=void 0;try{for(var c=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],d=0;3>d;d++)try{b=c[d];new h.root.ActiveXObject(b);break}catch(O){}a=new h.root.ActiveXObject(b)}catch(O){throw Error("XMLHttpRequest is not supported by your browser");}}return a},crossDomain:!1,withCredentials:!1,
+headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof b)c.url=b;else for(var d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);this.request=c}f(e,a);e.prototype._subscribe=function(a){return new u(a,this.request)};e.create=function(){var a=function(a){return new e(a)};a.get=p;a.post=n;a.delete=m;a.put=c;a.patch=b;a.getJSON=d;return a}();return e}(g.Observable);e.AjaxObservable=l;var u=function(a){function b(b,c){a.call(this,b);this.request=c;this.done=!1;b=c.headers=c.headers||{};c.crossDomain||
+b["X-Requested-With"]||(b["X-Requested-With"]="XMLHttpRequest");"Content-Type"in b||h.root.FormData&&c.body instanceof h.root.FormData||"undefined"===typeof c.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8");c.body=this.serializeBody(c.body,c.headers["Content-Type"]);this.send()}f(b,a);b.prototype.next=function(a){this.done=!0;var b=this.destination;a=new A(a,this.xhr,this.request);b.next(a)};b.prototype.send=function(){var a=this.request,b=this.request,c=b.user,d=b.method,
+f=b.url,h=b.async,e=b.password,g=b.headers;b=b.body;var l=q.tryCatch(a.createXHR).call(a);if(l===k.errorObject)this.error(k.errorObject.e);else{this.xhr=l;this.setupEvents(l,a);c=c?q.tryCatch(l.open).call(l,d,f,h,c,e):q.tryCatch(l.open).call(l,d,f,h);if(c===k.errorObject)return this.error(k.errorObject.e),null;h&&(l.timeout=a.timeout,l.responseType=a.responseType);"withCredentials"in l&&(l.withCredentials=!!a.withCredentials);this.setHeaders(l,g);c=b?q.tryCatch(l.send).call(l,b):q.tryCatch(l.send).call(l);
+if(c===k.errorObject)return this.error(k.errorObject.e),null}return l};b.prototype.serializeBody=function(a,b){if(!a||"string"===typeof a||h.root.FormData&&a instanceof h.root.FormData)return a;if(b){var c=b.indexOf(";");-1!==c&&(b=b.substring(0,c))}switch(b){case "application/x-www-form-urlencoded":return Object.keys(a).map(function(b){return encodeURI(b)+"="+encodeURI(a[b])}).join("&");case "application/json":return JSON.stringify(a);default:return a}};b.prototype.setHeaders=function(a,b){for(var c in b)b.hasOwnProperty(c)&&
+a.setRequestHeader(c,b[c])};b.prototype.setupEvents=function(a,b){function c(a){var b=c.subscriber,d=c.progressSubscriber,f=c.request;d&&d.error(a);b.error(new z(this,f))}function d(a){var b=d.subscriber,c=d.progressSubscriber,f=d.request;if(4===this.readyState){var h=1223===this.status?204:this.status,e="text"===this.responseType?this.response||this.responseText:this.response;0===h&&(h=e?200:0);200<=h&&300>h?(c&&c.complete(),b.next(a),b.complete()):(c&&c.error(a),b.error(new y("ajax error "+h,this,
+f)))}}var f=b.progressSubscriber;a.ontimeout=c;c.request=b;c.subscriber=this;c.progressSubscriber=f;if(a.upload&&"withCredentials"in a){if(f){var e=function(a){e.progressSubscriber.next(a)};h.root.XDomainRequest?a.onprogress=e:a.upload.onprogress=e;e.progressSubscriber=f}var k=function(a){var b=k.progressSubscriber,c=k.subscriber,d=k.request;b&&b.error(a);c.error(new y("ajax error",this,d))};a.onerror=k;k.request=b;k.subscriber=this;k.progressSubscriber=f}a.onreadystatechange=d;d.subscriber=this;
+d.progressSubscriber=f;d.request=b};b.prototype.unsubscribe=function(){var b=this.xhr;!this.done&&b&&4!==b.readyState&&"function"===typeof b.abort&&b.abort();a.prototype.unsubscribe.call(this)};return b}(t.Subscriber);e.AjaxSubscriber=u;var A=function(){return function(a,b,c){this.originalEvent=a;this.xhr=b;this.request=c;this.status=b.status;this.responseType=b.responseType||c.responseType;switch(this.responseType){case "json":this.response="response"in b?b.responseType?b.response:JSON.parse(b.response||
+b.responseText||"null"):JSON.parse(b.responseText||"null");break;case "xml":this.response=b.responseXML;break;default:this.response="response"in b?b.response:b.responseText}}}();e.AjaxResponse=A;var y=function(a){function b(b,c,d){a.call(this,b);this.message=b;this.xhr=c;this.request=d;this.status=c.status}f(b,a);return b}(Error);e.AjaxError=y;var z=function(a){function b(b,c){a.call(this,"ajax timeout",b,c)}f(b,a);return b}(y);e.AjaxTimeoutError=z},function(g,e,a){g=a(396);a=a(397);e.queue=new a.QueueScheduler(g.QueueAction)},
+function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)},n=a(5);g=a(4);e.mergeMap=function(a,c,f){void 0===f&&(f=Number.POSITIVE_INFINITY);"number"===typeof c&&(f=c,c=null);return this.lift(new m(a,c,f))};var m=function(){function a(a,b,c){void 0===c&&(c=Number.POSITIVE_INFINITY);this.project=a;this.resultSelector=b;this.concurrent=c}a.prototype.call=
+function(a,b){return b.subscribe(new c(a,this.project,this.resultSelector,this.concurrent))};return a}();e.MergeMapOperator=m;var c=function(a){function b(b,c,d,e){void 0===e&&(e=Number.POSITIVE_INFINITY);a.call(this,b);this.project=c;this.resultSelector=d;this.concurrent=e;this.hasCompleted=!1;this.buffer=[];this.index=this.active=0}p(b,a);b.prototype._next=function(a){this.active<this.concurrent?this._tryNext(a):this.buffer.push(a)};b.prototype._tryNext=function(a){var b=this.index++;try{var c=
+this.project(a,b)}catch(k){this.destination.error(k);return}this.active++;this._innerSub(c,a,b)};b.prototype._innerSub=function(a,b,c){this.add(n.subscribeToResult(this,a,b,c))};b.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&this.destination.complete()};b.prototype.notifyNext=function(a,b,c,d,e){this.resultSelector?this._notifyResultSelector(a,b,c,d):this.destination.next(b)};b.prototype._notifyResultSelector=function(a,b,c,d){try{var f=this.resultSelector(a,
+b,c,d)}catch(r){this.destination.error(r);return}this.destination.next(f)};b.prototype.notifyComplete=function(a){var b=this.buffer;this.remove(a);this.active--;0<b.length?this._next(b.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()};return b}(g.OuterSubscriber);e.MergeMapSubscriber=c},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=
+c.prototype,new b)};g=a(4);var n=a(5);e.mergeMapTo=function(a,c,f){void 0===f&&(f=Number.POSITIVE_INFINITY);"number"===typeof c&&(f=c,c=null);return this.lift(new m(a,c,f))};var m=function(){function a(a,b,c){void 0===c&&(c=Number.POSITIVE_INFINITY);this.ish=a;this.resultSelector=b;this.concurrent=c}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.ish,this.resultSelector,this.concurrent))};return a}();e.MergeMapToOperator=m;var c=function(a){function b(b,c,d,e){void 0===e&&(e=Number.POSITIVE_INFINITY);
+a.call(this,b);this.ish=c;this.resultSelector=d;this.concurrent=e;this.hasCompleted=!1;this.buffer=[];this.index=this.active=0}p(b,a);b.prototype._next=function(a){if(this.active<this.concurrent){var b=this.resultSelector,c=this.index++,d=this.ish,f=this.destination;this.active++;this._innerSub(d,f,b,a,c)}else this.buffer.push(a)};b.prototype._innerSub=function(a,b,c,d,e){this.add(n.subscribeToResult(this,a,d,e))};b.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&
+this.destination.complete()};b.prototype.notifyNext=function(a,b,c,d,e){e=this.destination;this.resultSelector?this.trySelectResult(a,b,c,d):e.next(b)};b.prototype.trySelectResult=function(a,b,c,d){var f=this.resultSelector,h=this.destination;try{var e=f(a,b,c,d)}catch(u){h.error(u);return}h.next(e)};b.prototype.notifyError=function(a){this.destination.error(a)};b.prototype.notifyComplete=function(a){var b=this.buffer;this.remove(a);this.active--;0<b.length?this._next(b.shift()):0===this.active&&
+this.hasCompleted&&this.destination.complete()};return b}(g.OuterSubscriber);e.MergeMapToSubscriber=c},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(13),m=a(11);e.distinctUntilChanged=function(a,b){return this.lift(new c(a,b))};var c=function(){function a(a,b){this.compare=a;this.keySelector=b}a.prototype.call=function(a,
+c){return c.subscribe(new b(a,this.compare,this.keySelector))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.keySelector=d;this.hasKey=!1;"function"===typeof c&&(this.compare=c)}p(b,a);b.prototype.compare=function(a,b){return a===b};b.prototype._next=function(a){var b=a;if(this.keySelector&&(b=n.tryCatch(this.keySelector)(a),b===m.errorObject))return this.destination.error(m.errorObject.e);var c=!1;if(this.hasKey){if(c=n.tryCatch(this.compare)(this.key,b),c===m.errorObject)return this.destination.error(m.errorObject.e)}else this.hasKey=
+!0;!1===!!c&&(this.key=b,this.destination.next(a))};return b}(g.Subscriber)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.filter=function(a,b){return this.lift(new n(a,b))};var n=function(){function a(a,c){this.predicate=a;this.thisArg=c}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate,this.thisArg))};return a}(),
+m=function(a){function b(b,c,h){a.call(this,b);this.predicate=c;this.thisArg=h;this.count=0}p(b,a);b.prototype._next=function(a){try{var b=this.predicate.call(this.thisArg,a,this.count++)}catch(h){this.destination.error(h);return}b&&this.destination.next(a)};return b}(g.Subscriber)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.find=
+function(a,b){if("function"!==typeof a)throw new TypeError("predicate is not a function");return this.lift(new n(a,this,!1,b))};var n=function(){function a(a,c,f,h){this.predicate=a;this.source=c;this.yieldIndex=f;this.thisArg=h}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate,this.source,this.yieldIndex,this.thisArg))};return a}();e.FindValueOperator=n;var m=function(a){function b(b,c,h,e,k){a.call(this,b);this.predicate=c;this.source=h;this.yieldIndex=e;this.thisArg=k;this.index=
+0}p(b,a);b.prototype.notifyComplete=function(a){var b=this.destination;b.next(a);b.complete()};b.prototype._next=function(a){var b=this.predicate,c=this.thisArg,d=this.index++;try{b.call(c||this,a,d,this.source)&&this.notifyComplete(this.yieldIndex?d:a)}catch(k){this.destination.error(k)}};b.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)};return b}(g.Subscriber);e.FindValueSubscriber=m},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=
+a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(10);var n=a(0),m=a(2),c=a(8);a=function(a){function f(b,c){a.call(this);this.source=b;this.subjectFactory=c;this._refCount=0;this._isComplete=!1}p(f,a);f.prototype._subscribe=function(a){return this.getSubject().subscribe(a)};f.prototype.getSubject=function(){var a=this._subject;if(!a||a.isStopped)this._subject=this.subjectFactory();return this._subject};f.prototype.connect=
+function(){var a=this._connection;a||(this._isComplete=!1,a=this._connection=new c.Subscription,a.add(this.source.subscribe(new b(this.getSubject(),this))),a.closed?(this._connection=null,a=c.Subscription.EMPTY):this._connection=a);return a};f.prototype.refCount=function(){return this.lift(new d(this))};return f}(n.Observable);e.ConnectableObservable=a;a=a.prototype;e.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,
+writable:!0},_subscribe:{value:a._subscribe},_isComplete:{value:a._isComplete,writable:!0},getSubject:{value:a.getSubject},connect:{value:a.connect},refCount:{value:a.refCount}};var b=function(a){function b(b,c){a.call(this,b);this.connectable=c}p(b,a);b.prototype._error=function(b){this._unsubscribe();a.prototype._error.call(this,b)};b.prototype._complete=function(){this.connectable._isComplete=!0;this._unsubscribe();a.prototype._complete.call(this)};b.prototype._unsubscribe=function(){var a=this.connectable;
+if(a){this.connectable=null;var b=a._connection;a._refCount=0;a._subject=null;a._connection=null;b&&b.unsubscribe()}};return b}(g.SubjectSubscriber),d=function(){function a(a){this.connectable=a}a.prototype.call=function(a,b){var c=this.connectable;c._refCount++;a=new f(a,c);b=b.subscribe(a);a.closed||(a.connection=c.connect());return b};return a}(),f=function(a){function b(b,c){a.call(this,b);this.connectable=c}p(b,a);b.prototype._unsubscribe=function(){var a=this.connectable;if(a){this.connectable=
+null;var b=a._refCount;0>=b?this.connection=null:(a._refCount=b-1,1<b?this.connection=null:(b=this.connection,a=a._connection,this.connection=null,!a||b&&a!==b||a.unsubscribe()))}else this.connection=null};return b}(m.Subscriber)},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(10);var n=a(76);a=function(a){function c(b){a.call(this);
+this._value=b}p(c,a);Object.defineProperty(c.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0});c.prototype._subscribe=function(b){var c=a.prototype._subscribe.call(this,b);c&&!c.closed&&b.next(this._value);return c};c.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new n.ObjectUnsubscribedError;return this._value};c.prototype.next=function(b){a.prototype.next.call(this,this._value=b)};return c}(g.Subject);e.BehaviorSubject=
+a},function(g,e,a){g=a(548);a=a(552);e.asap=new a.AsapScheduler(g.AsapAction)},function(g,e,a){(function(g){function n(a,c){this._id=a;this._clearFn=c}var m="undefined"!==typeof g&&g||"undefined"!==typeof self&&self||window,c=Function.prototype.apply;e.setTimeout=function(){return new n(c.call(setTimeout,m,arguments),clearTimeout)};e.setInterval=function(){return new n(c.call(setInterval,m,arguments),clearInterval)};e.clearTimeout=e.clearInterval=function(a){a&&a.close()};n.prototype.unref=n.prototype.ref=
+function(){};n.prototype.close=function(){this._clearFn.call(m,this._id)};e.enroll=function(a,c){clearTimeout(a._idleTimeoutId);a._idleTimeout=c};e.unenroll=function(a){clearTimeout(a._idleTimeoutId);a._idleTimeout=-1};e._unrefActive=e.active=function(a){clearTimeout(a._idleTimeoutId);var b=a._idleTimeout;0<=b&&(a._idleTimeoutId=setTimeout(function(){a._onTimeout&&a._onTimeout()},b))};a(550);e.setImmediate="undefined"!==typeof self&&self.setImmediate||"undefined"!==typeof g&&g.setImmediate||this&&
+this.setImmediate;e.clearImmediate="undefined"!==typeof self&&self.clearImmediate||"undefined"!==typeof g&&g.clearImmediate||this&&this.clearImmediate}).call(e,a(62))},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.defaultThrottleConfig={leading:!0,trailing:!1};e.throttle=function(a,c){void 0===c&&(c=e.defaultThrottleConfig);
+return this.lift(new m(a,c.leading,c.trailing))};var m=function(){function a(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.durationSelector,this.leading,this.trailing))};return a}(),c=function(a){function b(b,c,d,e){a.call(this,b);this.destination=b;this.durationSelector=c;this._leading=d;this._trailing=e;this._hasTrailingValue=!1}p(b,a);b.prototype._next=function(a){if(this.throttled)this._trailing&&(this._hasTrailingValue=
+!0,this._trailingValue=a);else{var b=this.tryDurationSelector(a);b&&this.add(this.throttled=n.subscribeToResult(this,b));this._leading&&(this.destination.next(a),this._trailing&&(this._hasTrailingValue=!0,this._trailingValue=a))}};b.prototype.tryDurationSelector=function(a){try{return this.durationSelector(a)}catch(h){return this.destination.error(h),null}};b.prototype._unsubscribe=function(){var a=this.throttled;this._trailingValue=null;this._hasTrailingValue=!1;a&&(this.remove(a),this.throttled=
+null,a.unsubscribe())};b.prototype._sendTrailing=function(){var a=this.destination,b=this._trailing,c=this._trailingValue,d=this._hasTrailingValue;this.throttled&&b&&d&&(a.next(c),this._trailingValue=null,this._hasTrailingValue=!1)};b.prototype.notifyNext=function(a,b,c,d,e){this._sendTrailing();this._unsubscribe()};b.prototype.notifyComplete=function(){this._sendTrailing();this._unsubscribe()};return b}(g.OuterSubscriber)},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=
+a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(17);e.timeInterval=function(a){void 0===a&&(a=n.async);return this.lift(new c(a))};var m=function(){return function(a,b){this.value=a;this.interval=b}}();e.TimeInterval=m;var c=function(){function a(a){this.scheduler=a}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.scheduler))};return a}(),b=function(a){function b(b,c){a.call(this,b);this.scheduler=
+c;this.lastTime=0;this.lastTime=c.now()}p(b,a);b.prototype._next=function(a){var b=this.scheduler.now(),c=b-this.lastTime;this.lastTime=b;this.destination.next(new m(a,c))};return b}(g.Subscriber)},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){var c=a.call(this,"Timeout has occurred");this.name=c.name="TimeoutError";
+this.stack=c.stack;this.message=c.message}p(e,a);return e}(Error);e.TimeoutError=g},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(17);e.timestamp=function(a){void 0===a&&(a=n.async);return this.lift(new c(a))};var m=function(){return function(a,b){this.value=a;this.timestamp=b}}();e.Timestamp=m;var c=function(){function a(a){this.scheduler=
+a}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.scheduler))};return a}(),b=function(a){function b(b,c){a.call(this,b);this.scheduler=c}p(b,a);b.prototype._next=function(a){var b=this.scheduler.now();this.destination.next(new m(a,b))};return b}(g.Subscriber)},function(g,e,a){var p=a(196);g=function(){function a(){this.subscriptions=[]}a.prototype.logSubscribedFrame=function(){this.subscriptions.push(new p.SubscriptionLog(this.scheduler.now()));return this.subscriptions.length-1};a.prototype.logUnsubscribedFrame=
+function(a){var c=this.subscriptions;c[a]=new p.SubscriptionLog(c[a].subscribedFrame,this.scheduler.now())};return a}();e.SubscriptionLoggable=g},function(g,e,a){g=function(){return function(a,e){void 0===e&&(e=Number.POSITIVE_INFINITY);this.subscribedFrame=a;this.unsubscribedFrame=e}}();e.SubscriptionLog=g},function(g,e,a){e.applyMixins=function(a,e){for(var g=0,c=e.length;g<c;g++)for(var b=e[g],d=Object.getOwnPropertyNames(b.prototype),f=0,h=d.length;f<h;f++){var q=d[f];a.prototype[q]=b.prototype[q]}}},
+function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(58);a=function(a){function c(b,c){var d=this;void 0===b&&(b=n);void 0===c&&(c=Number.POSITIVE_INFINITY);a.call(this,b,function(){return d.frame});this.maxFrames=c;this.frame=0;this.index=-1}p(c,a);c.prototype.flush=function(){for(var a=this.actions,c=this.maxFrames,f,h;(h=a.shift())&&(this.frame=
+h.delay)<=c&&!(f=h.execute(h.state,h.delay)););if(f){for(;h=a.shift();)h.unsubscribe();throw f;}};c.frameTimeFactor=10;return c}(a(59).AsyncScheduler);e.VirtualTimeScheduler=a;var n=function(a){function c(b,c,f){void 0===f&&(f=b.index+=1);a.call(this,b,c);this.scheduler=b;this.work=c;this.index=f;this.active=!0;this.index=b.index=f}p(c,a);c.prototype.schedule=function(b,d){void 0===d&&(d=0);if(!this.id)return a.prototype.schedule.call(this,b,d);this.active=!1;var f=new c(this.scheduler,this.work);
+this.add(f);return f.schedule(b,d)};c.prototype.requestAsyncId=function(a,d,f){void 0===f&&(f=0);this.delay=a.frame+f;a=a.actions;a.push(this);a.sort(c.sortActions);return!0};c.prototype.recycleAsyncId=function(a,c,f){};c.prototype._execute=function(b,c){if(!0===this.active)return a.prototype._execute.call(this,b,c)};c.sortActions=function(a,c){return a.delay===c.delay?a.index===c.index?0:a.index>c.index?1:-1:a.delay>c.delay?1:-1};return c}(g.AsyncAction);e.VirtualAction=n},function(g,e,a){a(118);
+a(232);a(236);a(91);a(237);a(136);a(239);a(137);a(241);a(139);a(242);a(140);a(244);a(141);a(246);a(247);a(248);a(93);a(256);a(69);a(151);a(270);g.exports=a(277)},function(g,e,a){a(29)},function(g,e,a){a(29)},function(g,e,a){function p(a,b,d){var c=b[0],h=b[1],e=b[2],k=b[3],g=b[4],r=b[5],l=b[6],m=b[7],n=b[8],p=b[9],z=b[10],B=b[11],x=b[12],v=b[13],E=b[14];b=b[15];var F=d[0],C=d[1],G=d[2],H=d[3];a[0]=F*c+C*g+G*n+H*x;a[1]=F*h+C*r+G*p+H*v;a[2]=F*e+C*l+G*z+H*E;a[3]=F*k+C*m+G*B+H*b;F=d[4];C=d[5];G=d[6];
+H=d[7];a[4]=F*c+C*g+G*n+H*x;a[5]=F*h+C*r+G*p+H*v;a[6]=F*e+C*l+G*z+H*E;a[7]=F*k+C*m+G*B+H*b;F=d[8];C=d[9];G=d[10];H=d[11];a[8]=F*c+C*g+G*n+H*x;a[9]=F*h+C*r+G*p+H*v;a[10]=F*e+C*l+G*z+H*E;a[11]=F*k+C*m+G*B+H*b;F=d[12];C=d[13];G=d[14];H=d[15];a[12]=F*c+C*g+G*n+H*x;a[13]=F*h+C*r+G*p+H*v;a[14]=F*e+C*l+G*z+H*E;a[15]=F*k+C*m+G*B+H*b;return a}function n(a,b,d){a[0]=b[0]-d[0];a[1]=b[1]-d[1];a[2]=b[2]-d[2];a[3]=b[3]-d[3];a[4]=b[4]-d[4];a[5]=b[5]-d[5];a[6]=b[6]-d[6];a[7]=b[7]-d[7];a[8]=b[8]-d[8];a[9]=b[9]-d[9];
+a[10]=b[10]-d[10];a[11]=b[11]-d[11];a[12]=b[12]-d[12];a[13]=b[13]-d[13];a[14]=b[14]-d[14];a[15]=b[15]-d[15];return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=function(){var a=new m.a(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.clone=function(a){var b=new m.a(16);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];
+b[13]=a[13];b[14]=a[14];b[15]=a[15];return b};e.copy=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];a[9]=b[9];a[10]=b[10];a[11]=b[11];a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a};e.fromValues=function(a,b,d,f,h,e,k,g,r,l,n,p,y,z,B,x){var c=new m.a(16);c[0]=a;c[1]=b;c[2]=d;c[3]=f;c[4]=h;c[5]=e;c[6]=k;c[7]=g;c[8]=r;c[9]=l;c[10]=n;c[11]=p;c[12]=y;c[13]=z;c[14]=B;c[15]=x;return c};e.set=function(a,b,d,f,h,e,k,g,r,l,m,n,p,z,B,x,v){a[0]=
+b;a[1]=d;a[2]=f;a[3]=h;a[4]=e;a[5]=k;a[6]=g;a[7]=r;a[8]=l;a[9]=m;a[10]=n;a[11]=p;a[12]=z;a[13]=B;a[14]=x;a[15]=v;return a};e.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.transpose=function(a,b){if(a===b){var c=b[1],f=b[2],h=b[3],e=b[6],k=b[7],g=b[11];a[1]=b[4];a[2]=b[8];a[3]=b[12];a[4]=c;a[6]=b[9];a[7]=b[13];a[8]=f;a[9]=e;a[11]=b[14];a[12]=h;a[13]=k;a[14]=g}else a[0]=b[0],a[1]=b[4],a[2]=b[8],
+a[3]=b[12],a[4]=b[1],a[5]=b[5],a[6]=b[9],a[7]=b[13],a[8]=b[2],a[9]=b[6],a[10]=b[10],a[11]=b[14],a[12]=b[3],a[13]=b[7],a[14]=b[11],a[15]=b[15];return a};e.invert=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[3],k=b[4],g=b[5],r=b[6],l=b[7],m=b[8],n=b[9],p=b[10],z=b[11],B=b[12],x=b[13],v=b[14];b=b[15];var E=c*g-f*k,F=c*r-h*k,C=c*l-e*k,G=f*r-h*g,H=f*l-e*g,D=h*l-e*r,O=m*x-n*B,J=m*v-p*B,Q=m*b-z*B,T=n*v-p*x,S=n*b-z*x,L=p*b-z*v,P=E*L-F*S+C*T+G*Q-H*J+D*O;if(!P)return null;P=1/P;a[0]=(g*L-r*S+l*T)*P;a[1]=(h*S-
+f*L-e*T)*P;a[2]=(x*D-v*H+b*G)*P;a[3]=(p*H-n*D-z*G)*P;a[4]=(r*Q-k*L-l*J)*P;a[5]=(c*L-h*Q+e*J)*P;a[6]=(v*C-B*D-b*F)*P;a[7]=(m*D-p*C+z*F)*P;a[8]=(k*S-g*Q+l*O)*P;a[9]=(f*Q-c*S-e*O)*P;a[10]=(B*H-x*C+b*E)*P;a[11]=(n*C-m*H-z*E)*P;a[12]=(g*J-k*T-r*O)*P;a[13]=(c*T-f*J+h*O)*P;a[14]=(x*F-B*G-v*E)*P;a[15]=(m*G-n*F+p*E)*P;return a};e.adjoint=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[3],k=b[4],g=b[5],r=b[6],l=b[7],m=b[8],n=b[9],p=b[10],z=b[11],B=b[12],x=b[13],v=b[14];b=b[15];a[0]=g*(p*b-z*v)-n*(r*b-l*v)+x*(r*
+z-l*p);a[1]=-(f*(p*b-z*v)-n*(h*b-e*v)+x*(h*z-e*p));a[2]=f*(r*b-l*v)-g*(h*b-e*v)+x*(h*l-e*r);a[3]=-(f*(r*z-l*p)-g*(h*z-e*p)+n*(h*l-e*r));a[4]=-(k*(p*b-z*v)-m*(r*b-l*v)+B*(r*z-l*p));a[5]=c*(p*b-z*v)-m*(h*b-e*v)+B*(h*z-e*p);a[6]=-(c*(r*b-l*v)-k*(h*b-e*v)+B*(h*l-e*r));a[7]=c*(r*z-l*p)-k*(h*z-e*p)+m*(h*l-e*r);a[8]=k*(n*b-z*x)-m*(g*b-l*x)+B*(g*z-l*n);a[9]=-(c*(n*b-z*x)-m*(f*b-e*x)+B*(f*z-e*n));a[10]=c*(g*b-l*x)-k*(f*b-e*x)+B*(f*l-e*g);a[11]=-(c*(g*z-l*n)-k*(f*z-e*n)+m*(f*l-e*g));a[12]=-(k*(n*v-p*x)-m*(g*
+v-r*x)+B*(g*p-r*n));a[13]=c*(n*v-p*x)-m*(f*v-h*x)+B*(f*p-h*n);a[14]=-(c*(g*v-r*x)-k*(f*v-h*x)+B*(f*r-h*g));a[15]=c*(g*p-r*n)-k*(f*p-h*n)+m*(f*r-h*g);return a};e.determinant=function(a){var b=a[0],c=a[1],f=a[2],h=a[3],e=a[4],k=a[5],g=a[6],m=a[7],l=a[8],n=a[9],p=a[10],y=a[11],z=a[12],B=a[13],x=a[14];a=a[15];return(b*k-c*e)*(p*a-y*x)-(b*g-f*e)*(n*a-y*B)+(b*m-h*e)*(n*x-p*B)+(c*g-f*k)*(l*a-y*z)-(c*m-h*k)*(l*x-p*z)+(f*m-h*g)*(l*B-n*z)};e.multiply=p;e.translate=function(a,b,d){var c=d[0],h=d[1];d=d[2];if(b===
+a)a[12]=b[0]*c+b[4]*h+b[8]*d+b[12],a[13]=b[1]*c+b[5]*h+b[9]*d+b[13],a[14]=b[2]*c+b[6]*h+b[10]*d+b[14],a[15]=b[3]*c+b[7]*h+b[11]*d+b[15];else{var e=b[0];var k=b[1];var g=b[2];var m=b[3];var l=b[4];var n=b[5];var p=b[6];var y=b[7];var z=b[8];var B=b[9];var x=b[10];var v=b[11];a[0]=e;a[1]=k;a[2]=g;a[3]=m;a[4]=l;a[5]=n;a[6]=p;a[7]=y;a[8]=z;a[9]=B;a[10]=x;a[11]=v;a[12]=e*c+l*h+z*d+b[12];a[13]=k*c+n*h+B*d+b[13];a[14]=g*c+p*h+x*d+b[14];a[15]=m*c+y*h+v*d+b[15]}return a};e.scale=function(a,b,d){var c=d[0],
+h=d[1];d=d[2];a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*h;a[5]=b[5]*h;a[6]=b[6]*h;a[7]=b[7]*h;a[8]=b[8]*d;a[9]=b[9]*d;a[10]=b[10]*d;a[11]=b[11]*d;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a};e.rotate=function(a,b,d,f){var c=f[0],e=f[1];f=f[2];var k=Math.sqrt(c*c+e*e+f*f);if(Math.abs(k)<m.b)return null;k=1/k;c*=k;e*=k;f*=k;var g=Math.sin(d);var r=Math.cos(d);var l=1-r;d=b[0];k=b[1];var n=b[2];var p=b[3];var y=b[4];var z=b[5];var B=b[6];var x=b[7];var v=b[8];var E=b[9];
+var F=b[10];var C=b[11];var G=c*c*l+r;var H=e*c*l+f*g;var D=f*c*l-e*g;var O=c*e*l-f*g;var J=e*e*l+r;var Q=f*e*l+c*g;var T=c*f*l+e*g;c=e*f*l-c*g;e=f*f*l+r;a[0]=d*G+y*H+v*D;a[1]=k*G+z*H+E*D;a[2]=n*G+B*H+F*D;a[3]=p*G+x*H+C*D;a[4]=d*O+y*J+v*Q;a[5]=k*O+z*J+E*Q;a[6]=n*O+B*J+F*Q;a[7]=p*O+x*J+C*Q;a[8]=d*T+y*c+v*e;a[9]=k*T+z*c+E*e;a[10]=n*T+B*c+F*e;a[11]=p*T+x*c+C*e;b!==a&&(a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);return a};e.rotateX=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[4],e=b[5],
+k=b[6],g=b[7],m=b[8],l=b[9],n=b[10],p=b[11];b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[4]=h*d+m*c;a[5]=e*d+l*c;a[6]=k*d+n*c;a[7]=g*d+p*c;a[8]=m*d-h*c;a[9]=l*d-e*c;a[10]=n*d-k*c;a[11]=p*d-g*c;return a};e.rotateY=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[0],e=b[1],k=b[2],g=b[3],m=b[8],l=b[9],n=b[10],p=b[11];b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=h*d-m*c;a[1]=e*d-l*c;a[2]=
+k*d-n*c;a[3]=g*d-p*c;a[8]=h*c+m*d;a[9]=e*c+l*d;a[10]=k*c+n*d;a[11]=g*c+p*d;return a};e.rotateZ=function(a,b,d){var c=Math.sin(d);d=Math.cos(d);var h=b[0],e=b[1],k=b[2],g=b[3],m=b[4],l=b[5],n=b[6],p=b[7];b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=h*d+m*c;a[1]=e*d+l*c;a[2]=k*d+n*c;a[3]=g*d+p*c;a[4]=m*d-h*c;a[5]=l*d-e*c;a[6]=n*d-k*c;a[7]=p*d-g*c;return a};e.fromTranslation=function(a,b){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=
+0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=b[0];a[13]=b[1];a[14]=b[2];a[15]=1;return a};e.fromScaling=function(a,b){a[0]=b[0];a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b[1];a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=b[2];a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromRotation=function(a,b,d){var c=d[0],h=d[1];d=d[2];var e=Math.sqrt(c*c+h*h+d*d);if(Math.abs(e)<m.b)return null;e=1/e;c*=e;h*=e;d*=e;e=Math.sin(b);b=Math.cos(b);var k=1-b;a[0]=c*c*k+b;a[1]=h*c*k+d*e;a[2]=d*c*k-h*e;a[3]=0;a[4]=c*h*k-d*e;a[5]=h*h*k+b;
+a[6]=d*h*k+c*e;a[7]=0;a[8]=c*d*k+h*e;a[9]=h*d*k-c*e;a[10]=d*d*k+b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromXRotation=function(a,b){var c=Math.sin(b);b=Math.cos(b);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b;a[6]=c;a[7]=0;a[8]=0;a[9]=-c;a[10]=b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromYRotation=function(a,b){var c=Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=0;a[2]=-c;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=c;a[9]=0;a[10]=b;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromZRotation=
+function(a,b){var c=Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=c;a[2]=0;a[3]=0;a[4]=-c;a[5]=b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.fromRotationTranslation=function(a,b,d){var c=b[0],h=b[1],e=b[2],k=b[3],g=c+c,m=h+h,l=e+e;b=c*g;var n=c*m;c*=l;var p=h*m;h*=l;e*=l;g*=k;m*=k;k*=l;a[0]=1-(p+e);a[1]=n+k;a[2]=c-m;a[3]=0;a[4]=n-k;a[5]=1-(b+e);a[6]=h+g;a[7]=0;a[8]=c+m;a[9]=h-g;a[10]=1-(b+p);a[11]=0;a[12]=d[0];a[13]=d[1];a[14]=d[2];a[15]=1;return a};e.getTranslation=
+function(a,b){a[0]=b[12];a[1]=b[13];a[2]=b[14];return a};e.getScaling=function(a,b){var c=b[0],f=b[1],h=b[2],e=b[4],k=b[5],g=b[6],m=b[8],l=b[9];b=b[10];a[0]=Math.sqrt(c*c+f*f+h*h);a[1]=Math.sqrt(e*e+k*k+g*g);a[2]=Math.sqrt(m*m+l*l+b*b);return a};e.getRotation=function(a,b){var c=b[0]+b[5]+b[10];0<c?(c=2*Math.sqrt(c+1),a[3]=.25*c,a[0]=(b[6]-b[9])/c,a[1]=(b[8]-b[2])/c,a[2]=(b[1]-b[4])/c):b[0]>b[5]&b[0]>b[10]?(c=2*Math.sqrt(1+b[0]-b[5]-b[10]),a[3]=(b[6]-b[9])/c,a[0]=.25*c,a[1]=(b[1]+b[4])/c,a[2]=(b[8]+
+b[2])/c):b[5]>b[10]?(c=2*Math.sqrt(1+b[5]-b[0]-b[10]),a[3]=(b[8]-b[2])/c,a[0]=(b[1]+b[4])/c,a[1]=.25*c,a[2]=(b[6]+b[9])/c):(c=2*Math.sqrt(1+b[10]-b[0]-b[5]),a[3]=(b[1]-b[4])/c,a[0]=(b[8]+b[2])/c,a[1]=(b[6]+b[9])/c,a[2]=.25*c);return a};e.fromRotationTranslationScale=function(a,b,d,f){var c=b[0],e=b[1],k=b[2],g=b[3],m=c+c,l=e+e,n=k+k;b=c*m;var p=c*l;c*=n;var y=e*l;e*=n;k*=n;m*=g;l*=g;g*=n;n=f[0];var z=f[1];f=f[2];a[0]=(1-(y+k))*n;a[1]=(p+g)*n;a[2]=(c-l)*n;a[3]=0;a[4]=(p-g)*z;a[5]=(1-(b+k))*z;a[6]=
+(e+m)*z;a[7]=0;a[8]=(c+l)*f;a[9]=(e-m)*f;a[10]=(1-(b+y))*f;a[11]=0;a[12]=d[0];a[13]=d[1];a[14]=d[2];a[15]=1;return a};e.fromRotationTranslationScaleOrigin=function(a,b,d,f,h){var c=b[0],e=b[1],g=b[2],m=b[3],l=c+c,n=e+e,p=g+g;b=c*l;var y=c*n;c*=p;var z=e*n;e*=p;g*=p;l*=m;n*=m;m*=p;p=f[0];var B=f[1];f=f[2];var x=h[0],v=h[1];h=h[2];a[0]=(1-(z+g))*p;a[1]=(y+m)*p;a[2]=(c-n)*p;a[3]=0;a[4]=(y-m)*B;a[5]=(1-(b+g))*B;a[6]=(e+l)*B;a[7]=0;a[8]=(c+n)*f;a[9]=(e-l)*f;a[10]=(1-(b+z))*f;a[11]=0;a[12]=d[0]+x-(a[0]*
+x+a[4]*v+a[8]*h);a[13]=d[1]+v-(a[1]*x+a[5]*v+a[9]*h);a[14]=d[2]+h-(a[2]*x+a[6]*v+a[10]*h);a[15]=1;return a};e.fromQuat=function(a,b){var c=b[0],f=b[1],h=b[2];b=b[3];var e=c+c,k=f+f,g=h+h;c*=e;var m=f*e;f*=k;var l=h*e,n=h*k;h*=g;e*=b;k*=b;b*=g;a[0]=1-f-h;a[1]=m+b;a[2]=l-k;a[3]=0;a[4]=m-b;a[5]=1-c-h;a[6]=n+e;a[7]=0;a[8]=l+k;a[9]=n-e;a[10]=1-c-f;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};e.frustum=function(a,b,d,f,h,e,k){var c=1/(d-b),g=1/(h-f),l=1/(e-k);a[0]=2*e*c;a[1]=0;a[2]=0;a[3]=0;a[4]=0;
+a[5]=2*e*g;a[6]=0;a[7]=0;a[8]=(d+b)*c;a[9]=(h+f)*g;a[10]=(k+e)*l;a[11]=-1;a[12]=0;a[13]=0;a[14]=k*e*2*l;a[15]=0;return a};e.perspective=function(a,b,d,f,h){b=1/Math.tan(b/2);var c=1/(f-h);a[0]=b/d;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=(h+f)*c;a[11]=-1;a[12]=0;a[13]=0;a[14]=2*h*f*c;a[15]=0;return a};e.perspectiveFromFieldOfView=function(a,b,d,f){var c=Math.tan(b.upDegrees*Math.PI/180),e=Math.tan(b.downDegrees*Math.PI/180),k=Math.tan(b.leftDegrees*Math.PI/180);b=Math.tan(b.rightDegrees*
+Math.PI/180);var g=2/(k+b),m=2/(c+e);a[0]=g;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=m;a[6]=0;a[7]=0;a[8]=-((k-b)*g*.5);a[9]=(c-e)*m*.5;a[10]=f/(d-f);a[11]=-1;a[12]=0;a[13]=0;a[14]=f*d/(d-f);a[15]=0;return a};e.ortho=function(a,b,d,f,h,e,k){var c=1/(b-d),g=1/(f-h),l=1/(e-k);a[0]=-2*c;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=-2*g;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=2*l;a[11]=0;a[12]=(b+d)*c;a[13]=(h+f)*g;a[14]=(k+e)*l;a[15]=1;return a};e.lookAt=function(a,b,d,f){var c=b[0],e=b[1];b=b[2];var k=f[0];var g=f[1];var r=
+f[2];var l=d[0];f=d[1];var n=d[2];if(Math.abs(c-l)<m.b&&Math.abs(e-f)<m.b&&Math.abs(b-n)<m.b)return mat4.identity(a);d=c-l;f=e-f;l=b-n;var p=1/Math.sqrt(d*d+f*f+l*l);d*=p;f*=p;l*=p;n=g*l-r*f;r=r*d-k*l;k=k*f-g*d;(p=Math.sqrt(n*n+r*r+k*k))?(p=1/p,n*=p,r*=p,k*=p):k=r=n=0;g=f*k-l*r;var y=l*n-d*k;var z=d*r-f*n;(p=Math.sqrt(g*g+y*y+z*z))?(p=1/p,g*=p,y*=p,z*=p):z=y=g=0;a[0]=n;a[1]=g;a[2]=d;a[3]=0;a[4]=r;a[5]=y;a[6]=f;a[7]=0;a[8]=k;a[9]=z;a[10]=l;a[11]=0;a[12]=-(n*c+r*e+k*b);a[13]=-(g*c+y*e+z*b);a[14]=-(d*
+c+f*e+l*b);a[15]=1;return a};e.targetTo=function(a,b,d,f){var c=b[0],e=b[1];b=b[2];var k=f[0],g=f[1],m=f[2];f=c-d[0];var l=e-d[1];d=b-d[2];var n=f*f+l*l+d*d;0<n&&(n=1/Math.sqrt(n),f*=n,l*=n,d*=n);n=g*d-m*l;m=m*f-k*d;k=k*l-g*f;a[0]=n;a[1]=m;a[2]=k;a[3]=0;a[4]=l*k-d*m;a[5]=d*n-f*k;a[6]=f*m-l*n;a[7]=0;a[8]=f;a[9]=l;a[10]=d;a[11]=0;a[12]=c;a[13]=e;a[14]=b;a[15]=1;return a};e.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+
+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};e.frob=function(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2)+Math.pow(a[9],2)+Math.pow(a[10],2)+Math.pow(a[11],2)+Math.pow(a[12],2)+Math.pow(a[13],2)+Math.pow(a[14],2)+Math.pow(a[15],2))};e.add=function(a,b,d){a[0]=b[0]+d[0];a[1]=b[1]+d[1];a[2]=b[2]+d[2];a[3]=b[3]+d[3];a[4]=b[4]+d[4];a[5]=b[5]+d[5];a[6]=b[6]+
+d[6];a[7]=b[7]+d[7];a[8]=b[8]+d[8];a[9]=b[9]+d[9];a[10]=b[10]+d[10];a[11]=b[11]+d[11];a[12]=b[12]+d[12];a[13]=b[13]+d[13];a[14]=b[14]+d[14];a[15]=b[15]+d[15];return a};e.subtract=n;e.multiplyScalar=function(a,b,d){a[0]=b[0]*d;a[1]=b[1]*d;a[2]=b[2]*d;a[3]=b[3]*d;a[4]=b[4]*d;a[5]=b[5]*d;a[6]=b[6]*d;a[7]=b[7]*d;a[8]=b[8]*d;a[9]=b[9]*d;a[10]=b[10]*d;a[11]=b[11]*d;a[12]=b[12]*d;a[13]=b[13]*d;a[14]=b[14]*d;a[15]=b[15]*d;return a};e.multiplyScalarAndAdd=function(a,b,d,f){a[0]=b[0]+d[0]*f;a[1]=b[1]+d[1]*
+f;a[2]=b[2]+d[2]*f;a[3]=b[3]+d[3]*f;a[4]=b[4]+d[4]*f;a[5]=b[5]+d[5]*f;a[6]=b[6]+d[6]*f;a[7]=b[7]+d[7]*f;a[8]=b[8]+d[8]*f;a[9]=b[9]+d[9]*f;a[10]=b[10]+d[10]*f;a[11]=b[11]+d[11]*f;a[12]=b[12]+d[12]*f;a[13]=b[13]+d[13]*f;a[14]=b[14]+d[14]*f;a[15]=b[15]+d[15]*f;return a};e.exactEquals=function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&&a[8]===b[8]&&a[9]===b[9]&&a[10]===b[10]&&a[11]===b[11]&&a[12]===b[12]&&a[13]===b[13]&&a[14]===
+b[14]&&a[15]===b[15]};e.equals=function(a,b){var c=a[0],f=a[1],e=a[2],g=a[3],k=a[4],n=a[5],r=a[6],l=a[7],p=a[8],A=a[9],y=a[10],z=a[11],B=a[12],x=a[13],v=a[14];a=a[15];var E=b[0],F=b[1],C=b[2],G=b[3],H=b[4],D=b[5],O=b[6],J=b[7],Q=b[8],T=b[9],S=b[10],L=b[11],P=b[12],Y=b[13],aa=b[14];b=b[15];return Math.abs(c-E)<=m.b*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(f-F)<=m.b*Math.max(1,Math.abs(f),Math.abs(F))&&Math.abs(e-C)<=m.b*Math.max(1,Math.abs(e),Math.abs(C))&&Math.abs(g-G)<=m.b*Math.max(1,Math.abs(g),
+Math.abs(G))&&Math.abs(k-H)<=m.b*Math.max(1,Math.abs(k),Math.abs(H))&&Math.abs(n-D)<=m.b*Math.max(1,Math.abs(n),Math.abs(D))&&Math.abs(r-O)<=m.b*Math.max(1,Math.abs(r),Math.abs(O))&&Math.abs(l-J)<=m.b*Math.max(1,Math.abs(l),Math.abs(J))&&Math.abs(p-Q)<=m.b*Math.max(1,Math.abs(p),Math.abs(Q))&&Math.abs(A-T)<=m.b*Math.max(1,Math.abs(A),Math.abs(T))&&Math.abs(y-S)<=m.b*Math.max(1,Math.abs(y),Math.abs(S))&&Math.abs(z-L)<=m.b*Math.max(1,Math.abs(z),Math.abs(L))&&Math.abs(B-P)<=m.b*Math.max(1,Math.abs(B),
+Math.abs(P))&&Math.abs(x-Y)<=m.b*Math.max(1,Math.abs(x),Math.abs(Y))&&Math.abs(v-aa)<=m.b*Math.max(1,Math.abs(v),Math.abs(aa))&&Math.abs(a-b)<=m.b*Math.max(1,Math.abs(a),Math.abs(b))};var m=a(29);e.mul=p;e.sub=n},function(g,e,a){function p(){var a=new d.a(4);a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a}function n(a,b,c){c*=.5;var d=Math.sin(c);a[0]=d*b[0];a[1]=d*b[1];a[2]=d*b[2];a[3]=Math.cos(c);return a}function m(a,b,c){var d=b[0],f=b[1],e=b[2];b=b[3];var h=c[0],k=c[1],g=c[2];c=c[3];a[0]=d*c+b*h+f*g-e*
+k;a[1]=f*c+b*k+e*h-d*g;a[2]=e*c+b*g+d*k-f*h;a[3]=b*c-d*h-f*k-e*g;return a}function c(a,b,c,d){var f=b[0],e=b[1],h=b[2];b=b[3];var k=c[0],g=c[1],l=c[2];c=c[3];var q=f*k+e*g+h*l+b*c;0>q&&(q=-q,k=-k,g=-g,l=-l,c=-c);if(1E-6<1-q){var m=Math.acos(q);var r=Math.sin(m);q=Math.sin((1-d)*m)/r;d=Math.sin(d*m)/r}else q=1-d;a[0]=q*f+d*k;a[1]=q*e+d*g;a[2]=q*h+d*l;a[3]=q*b+d*c;return a}function b(a,b){var c=b[0]+b[4]+b[8];if(0<c)c=Math.sqrt(c+1),a[3]=.5*c,c=.5/c,a[0]=(b[5]-b[7])*c,a[1]=(b[6]-b[2])*c,a[2]=(b[1]-
+b[3])*c;else{var d=0;b[4]>b[0]&&(d=1);b[8]>b[3*d+d]&&(d=2);var f=(d+1)%3,e=(d+2)%3;c=Math.sqrt(b[3*d+d]-b[3*f+f]-b[3*e+e]+1);a[d]=.5*c;c=.5/c;a[3]=(b[3*f+e]-b[3*e+f])*c;a[f]=(b[3*f+d]+b[3*d+f])*c;a[e]=(b[3*e+d]+b[3*d+e])*c}return a}Object.defineProperty(e,"__esModule",{value:!0});e.create=p;e.identity=function(a){a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a};e.setAxisAngle=n;e.getAxisAngle=function(a,b){var c=2*Math.acos(b[3]),d=Math.sin(c/2);0!=d?(a[0]=b[0]/d,a[1]=b[1]/d,a[2]=b[2]/d):(a[0]=1,a[1]=0,a[2]=
+0);return c};e.multiply=m;e.rotateX=function(a,b,c){c*=.5;var d=b[0],f=b[1],e=b[2];b=b[3];var h=Math.sin(c);c=Math.cos(c);a[0]=d*c+b*h;a[1]=f*c+e*h;a[2]=e*c-f*h;a[3]=b*c-d*h;return a};e.rotateY=function(a,b,c){c*=.5;var d=b[0],f=b[1],e=b[2];b=b[3];var h=Math.sin(c);c=Math.cos(c);a[0]=d*c-e*h;a[1]=f*c+b*h;a[2]=e*c+d*h;a[3]=b*c-f*h;return a};e.rotateZ=function(a,b,c){c*=.5;var d=b[0],f=b[1],e=b[2];b=b[3];var h=Math.sin(c);c=Math.cos(c);a[0]=d*c+f*h;a[1]=f*c-d*h;a[2]=e*c+b*h;a[3]=b*c-e*h;return a};e.calculateW=
+function(a,b){var c=b[0],d=b[1];b=b[2];a[0]=c;a[1]=d;a[2]=b;a[3]=Math.sqrt(Math.abs(1-c*c-d*d-b*b));return a};e.slerp=c;e.invert=function(a,b){var c=b[0],d=b[1],f=b[2];b=b[3];var e=c*c+d*d+f*f+b*b;e=e?1/e:0;a[0]=-c*e;a[1]=-d*e;a[2]=-f*e;a[3]=b*e;return a};e.conjugate=function(a,b){a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=b[3];return a};e.fromMat3=b;e.fromEuler=function(a,b,c,d){var f=.5*Math.PI/180;b*=f;c*=f;d*=f;f=Math.sin(b);b=Math.cos(b);var e=Math.sin(c);c=Math.cos(c);var h=Math.sin(d);d=Math.cos(d);
+a[0]=f*c*d-b*e*h;a[1]=b*e*d+f*c*h;a[2]=b*c*h-f*e*d;a[3]=b*c*d+f*e*h;return a};e.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};var d=a(29),f=a(120),h=a(121);g=a(122);e.clone=g.clone;e.fromValues=g.fromValues;e.copy=g.copy;e.set=g.set;e.add=g.add;e.mul=m;e.scale=g.scale;e.dot=g.dot;e.lerp=g.lerp;a=g.length;e.length=a;e.len=a;a=g.squaredLength;e.squaredLength=a;e.sqrLen=a;var q=g.normalize;e.normalize=q;e.exactEquals=g.exactEquals;e.equals=g.equals;g=function(){var a=h.create(),
+b=h.fromValues(1,0,0),c=h.fromValues(0,1,0);return function(d,f,e){var g=h.dot(f,e);if(-.999999>g)return h.cross(a,b,f),1E-6>h.len(a)&&h.cross(a,c,f),h.normalize(a,a),n(d,a,Math.PI),d;if(.999999<g)return d[0]=0,d[1]=0,d[2]=0,d[3]=1,d;h.cross(a,f,e);d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=1+g;return q(d,d)}}();e.rotationTo=g;g=function(){var a=p(),b=p();return function(d,f,e,h,g,k){c(a,f,g,k);c(b,e,h,k);c(d,a,b,2*k*(1-k));return d}}();e.sqlerp=g;g=function(){var a=f.create();return function(c,d,f,e){a[0]=
+f[0];a[3]=f[1];a[6]=f[2];a[1]=e[0];a[4]=e[1];a[7]=e[2];a[2]=-d[0];a[5]=-d[1];a[8]=-d[2];return q(c,b(c,a))}}();e.setAxes=g},function(g,e,a){function p(){var a=new n.a(2);a[0]=0;a[1]=0;return a}var n=a(29);(function(){var a=p();return function(c,b,d,f,e,g){b||(b=2);d||(d=0);for(f=f?Math.min(f*b+d,c.length):c.length;d<f;d+=b)a[0]=c[d],a[1]=c[d+1],e(a,a,g),c[d]=a[0],c[d+1]=a[1];return c}})()},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){var d=a.memoize.get({type:"getSharedCredentialsProvider",credentialsProvider:Object(c.a)(b)},function(){return new m.a(b.addRef(),a.rpc)}),f=d.addCounterpartRef();d.dispose();return f}e.a=function(){return function(a){return function(a){function f(a){for(var b=[],c=0;c<arguments.length;++c)b[c-0]=arguments[c];
+if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");var d;c=(d=f.__proto__||Object.getPrototypeOf(f)).call.apply(d,[].concat([this],$jscomp.arrayFromIterable(b)));if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");d=!c||"object"!==typeof c&&"function"!==typeof c?this:c;d.credentialsProvider=b[1].credentialsProvider.addRef();return d}p(f,a);b(f,[{key:"initializeCounterpart",value:function(a,b){b.credentialsProvider=n(this.chunkManager,
+this.credentialsProvider);d(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"initializeCounterpart",this).call(this,a,b)}}],[{key:"encodeOptions",value:function(a){var b=d(f.__proto__||Object.getPrototypeOf(f),"encodeOptions",this).call(this,a);b.credentialsProvider=Object(c.a)(a.credentialsProvider);return b}}]);return f}(a)}};var m=a(206),c=a(27),b=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=
+!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function h(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return h(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);
+a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return m});g=a(207);a=a(15);var n=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}();e=this&&this.__decorate||function(a,
+b,d,f){var c=arguments.length,e=3>c?b:null===f?f=Object.getOwnPropertyDescriptor(b,d):f,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)e=Reflect.decorate(a,b,d,f);else for(var m=a.length-1;0<=m;m--)if(g=a[m])e=(3>c?g(e):3<c?g(b,d,e):g(b,d))||e;return 3<c&&e&&Object.defineProperty(b,d,e),e};var m=function(a){function b(a,c){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var d=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+d=!d||"object"!==typeof d&&"function"!==typeof d?this:d;d.provider=a;d.registerDisposer(a);d.initializeCounterpart(c);return d}p(b,a);n(b,[{key:"get",value:function(a,b){return this.provider.get(a,b)}}]);return b}(a.b);m=e([Object(a.g)(g.b)],m);Object(a.d)(g.a,function(a,b){return this.get(a.providerId).get(a.invalidCredentials,b).then(function(a){return{value:a}})})},function(g,e,a){e.b="CredentialsProvider";e.a="CredentialsProvider.get"},function(g,e,a){e.a=function(a){for(var e=0,g=a.length,c=
+0;c<g;++c)e=31*e+a.charCodeAt(c)|0;return e}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function n(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"c",function(){return m});
+a.d(e,"d",function(){return c});a.d(e,"a",function(){return b});a.d(e,"b",function(){return d});var m;(function(a){a[a.RAW=0]="RAW";a[a.JPEG=1]="JPEG";a[a.COMPRESSED_SEGMENTATION=2]="COMPRESSED_SEGMENTATION"})(m||(m={}));var c=function h(){n(this,h)};c.RPC_ID="brainmaps/VolumeChunkSource";var b=function q(){n(this,q)};b.RPC_ID="brainmaps/MeshSource";var d=function(a){function b(){n(this,b);var a=(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(b,a);return b}(b);d.RPC_ID="brainmaps/SkeletonSource"},function(g,e,a){e.b="mesh/MeshLayer";e.a="mesh/FragmentSource"},function(g,e,a){var p=a(123);g.exports=function(){return p.Date.now()}},function(g,e,a){e=a(62);g.exports="object"==typeof e&&e&&e.Object===Object&&e},function(g,e,a){var p=a(86),n=a(214),m=0/0,c=/^\s+|\s+$/g,b=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,f=/^0o[0-7]+$/i,h=parseInt;g.exports=function(a){if("number"==typeof a)return a;
+if(n(a))return m;p(a)&&(a="function"==typeof a.valueOf?a.valueOf():a,a=p(a)?a+"":a);if("string"!=typeof a)return 0===a?a:+a;a=a.replace(c,"");var e=d.test(a);return e||f.test(a)?h(a.slice(2),e?2:8):b.test(a)?m:+a}},function(g,e,a){var p=a(215),n=a(218);g.exports=function(a){return"symbol"==typeof a||n(a)&&"[object Symbol]"==p(a)}},function(g,e,a){e=a(124);var p=a(216),n=a(217),m=e?e.toStringTag:void 0;g.exports=function(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":m&&m in Object(a)?
+p(a):n(a)}},function(g,e,a){e=a(124);a=Object.prototype;var p=a.hasOwnProperty,n=a.toString,m=e?e.toStringTag:void 0;g.exports=function(a){var b=p.call(a,m),c=a[m];try{a[m]=void 0;var f=!0}catch(q){}var e=n.call(a);f&&(b?a[m]=c:delete a[m]);return e}},function(g,e){var a=Object.prototype.toString;g.exports=function(e){return a.call(e)}},function(g,e){g.exports=function(a){return null!=a&&"object"==typeof a}},function(g,e,a){var p=a(24),n=a(86);g.exports=function(a,c,b){var d=!0,f=!0;if("function"!=
+typeof a)throw new TypeError("Expected a function");n(b)&&(d="leading"in b?!!b.leading:d,f="trailing"in b?!!b.trailing:f);return p(a,c,{leading:d,maxWait:c,trailing:f})}},function(g,e,a){e.b=function(a,e){a.remove(e)};e.a=function(a,e){a.add(e)}},function(g,e,a){e.b=function(a,e){return a.low+","+a.high+(e?"_"+e.center.toString()+"_"+e.size.toString():"")};e.a=function(a,e){var g=a.segmentEquivalences;a=$jscomp.makeIterator(a.visibleSegments);for(var c=a.next();!c.done;c=a.next())if(c=c.value,g.disjointSets.isMinElement(c))for(var b=
+$jscomp.makeIterator(g.setElements(c)),d=b.next();!d.done;d=b.next())e(d.value,c)}},function(g,e,a){a.d(e,"b",function(){return p});var p;(function(a){a[a.LITTLE=0]="LITTLE";a[a.BIG=1]="BIG"})(p||(p={}));g=function(){var a=Uint16Array.of(4386);return 17===(new Uint8Array(a.buffer))[0]?p.BIG:p.LITTLE}();e.a=g},function(g,e,a){e.a="skeleton/SkeletonLayer"},function(g,e,a){e.a=function(a){var e={antialias:!1,stencil:!0};a=a.getContext("webgl",e)||a.getContext("experimental-webgl",e);if(null==a)throw Error("WebGL not supported.");
+a.memoize=new p.a;a.maxTextureSize=a.getParameter(a.MAX_TEXTURE_SIZE);a.maxTextureImageUnits=a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS);a.tempTextureUnit=a.maxTextureImageUnits-1;a.WEBGL_draw_buffers=a.getExtension("WEBGL_draw_buffers");if(!a.WEBGL_draw_buffers)throw Error("WEBGL_draw_buffers extension not available");a.ANGLE_instanced_arrays=a.getExtension("ANGLE_instanced_arrays");if(!a.ANGLE_instanced_arrays)throw Error("ANGLE_instanced_ararys extension not available");e=$jscomp.makeIterator(["OES_texture_float",
+"OES_element_index_uint"]);for(var c=e.next();!c.done;c=e.next())if(c=c.value,!a.getExtension(c))throw Error(c+" extension not available");return a};var p=a(84)},function(g,e,a){var p=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(e,c,b){c&&a(e.prototype,c);b&&a(e,b);return e}}();g=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");
+}p(a,null,[{key:"insertAfter",value:function(a,c){var b=a.next0;c.next0=b;c.prev0=a;a.next0=c;b.prev0=c}},{key:"insertBefore",value:function(a,c){var b=a.prev0;c.prev0=b;c.next0=a;a.prev0=c;b.next0=c}},{key:"front",value:function(a){var c=a.next0;return c===a?null:c}},{key:"back",value:function(a){var c=a.prev0;return c===a?null:c}},{key:"pop",value:function(a){var c=a.next0,b=a.prev0;c.prev0=b;b.next0=c;a.next0=null;a.prev0=null;return a}},{key:"iterator",value:function(a){function c(c,f){for(;;)switch(b){case 0:d=
+a.next0;case 1:if(d===a){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===f){b=5;break}b=-1;throw f;case 5:case 2:d=d.next0;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,f={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();f[Symbol.iterator]=function(){return this};return f}},{key:"reverseIterator",value:function(a){function c(c,f){for(;;)switch(b){case 0:d=
+a.prev0;case 1:if(d===a){b=3;break}b=4;return{value:d,done:!1};case 4:if(void 0===f){b=5;break}b=-1;throw f;case 5:case 2:d=d.prev0;b=1;break;case 3:b=-1;default:return{value:void 0,done:!0}}}var b=0,d,f={next:function(a){return c(a,void 0)},throw:function(a){return c(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();f[Symbol.iterator]=function(){return this};return f}},{key:"initializeHead",value:function(a){a.next0=a.prev0=a}}]);return a}();e.a=g},
+function(g,e,a){a.d(e,"a",function(){return n});var p=function(){function a(a,b){for(var c=0;c<b.length;c++){var f=b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(c,b,d){b&&a(c.prototype,b);d&&a(c,d);return c}}(),n=function(){function a(c){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.parents=[];this.parentPriorities=[];this.bindings=new Map;if(void 0!==c){this.parents.push.apply(this.parents,
+[].concat($jscomp.arrayFromIterable(c.parents)));this.parentPriorities.push.apply(this.parentPriorities,[].concat($jscomp.arrayFromIterable(c.parentPriorities)));c=$jscomp.makeIterator(c.bindings);for(var b=c.next();!b.done;b=c.next()){var d=$jscomp.makeIterator(b.value);b=d.next().value;d=d.next().value;this.bindings.set(b,d)}}}p(a,[{key:"addParent",value:function(a,b){for(var c=this,f=this.parents,e=this.parentPriorities,g=0,k=f.length;g<k&&b<e[g];)++g;f.splice(g,0,a);e.splice(g,0,b);return function(){c.removeParent(a)}}},
+{key:"removeParent",value:function(a){a=this.parents.indexOf(a);if(-1===a)throw Error("Attempt to remove non-existent parent map.");this.parents.splice(a,1);this.parentPriorities.splice(a,1)}},{key:"set",value:function(a,b){this.bindings.set(a,b)}},{key:"delete",value:function(a){this.bindings.delete(a)}},{key:"clear",value:function(){this.bindings.clear();this.parents.length=0;this.parentPriorities.length=0}},{key:"get",value:function(a){for(var b=this.parents,c=this.parentPriorities,f=c.length,
+e=0,g;e<f&&0<c[e];++e)if(g=b[e].get(a),void 0!==g)return g;g=this.bindings.get(a);if(void 0!==g)return g;for(;e<f;++e)if(g=b[e].get(a),void 0!==g)return g}},{key:"getAll",value:function(a){function b(b,d){for(;;)switch(c){case 0:r=l,m=r.parents,k=r.parentPriorities,g=k.length,e=0;case 1:if(!(e<g&&0<k[e])){c=2;break}f=m[e].get(a);if(void 0===f){c=3;break}c=4;return{value:f,done:!1};case 4:if(void 0===d){c=5;break}c=-1;throw d;case 5:case 3:c=1;break;case 2:f=l.bindings.get(a);if(void 0===f){c=6;break}c=
+7;return{value:f,done:!1};case 7:if(void 0===d){c=8;break}c=-1;throw d;case 8:case 6:case 9:if(!(e<g)){c=10;break}f=m[e].get(a);if(void 0===f){c=11;break}c=12;return{value:f,done:!1};case 12:if(void 0===d){c=13;break}c=-1;throw d;case 13:case 11:c=9;break;case 10:c=-1;default:return{value:void 0,done:!0}}}var c=0,f,e,g,k,m,r,l=this,n={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();n[Symbol.iterator]=
+function(){return this};return n}}]);return a}()},function(g,e,a){e.a=function(a){var e=0;switch(a.deltaMode){case 0:e=.005;break;case 1:e=.1;break;case 2:e=2}return Math.exp(a.deltaY*e)}},function(g,e){},function(g,e,a){a.d(e,"a",function(){return m});var p=a(3),n=function(){function a(a,c){for(var b=0;b<c.length;b++){var d=c[b];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,f){c&&a(b.prototype,c);f&&a(b,f);return b}}(),
+m=function(){function a(b,c){c=void 0===c?p.d:c;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.size=p.p.clone(b);this.transform=p.j.clone(c);this.invTransform=p.j.invert(p.j.create(),c)}n(a,[{key:"toObject",value:function(a){a.size=this.size;a.transform=this.transform}},{key:"localSpatialToGlobal",value:function(a,c){return p.p.transformMat4(a,c,this.transform)}},{key:"globalToLocalSpatial",value:function(a,c){return p.p.transformMat4(a,c,this.invTransform)}},
+{key:"globalToLocalGrid",value:function(a,c){this.globalToLocalSpatial(a,c);p.p.divide(a,a,this.size);return a}},{key:"localSpatialVectorToGlobal",value:function(a,c){return Object(p.n)(a,c,this.transform)}},{key:"globalToLocalSpatialVector",value:function(a,c){return Object(p.n)(a,c,this.invTransform)}},{key:"assignLocalSpatialToGlobalMat4",value:function(a){return p.j.copy(a,this.transform)}}],[{key:"get",value:function(b,c){c=void 0===c?p.d:c;var d=a.cache,e=JSON.stringify([Array.from(b),Array.from(c)]),
+g=d.get(e);void 0===g&&(g=new a(b,c),d.set(e,g));return g}},{key:"fromObject",value:function(b){return a.get(b.size,b.transform)}}]);return a}();m.cache=new Map},function(g,e,a){e.a=function(a,e){return a===e?!0:1E-6>Math.abs(a-e)/Math.min(Math.abs(a),Math.abs(e))}},function(g,e){},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});g=a(133);e=a(85);var p=a(233);g.a.register(e.a,function(){return new p.a})},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return f});var m=a(134),c=a(40),b=a(26),d=a(234),f=function(a){function f(){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");
+var a=p(this,(f.__proto__||Object.getPrototypeOf(f)).apply(this,arguments));a.get=Object(m.c)(function(a){var f=new c.a(!0),e;return new Promise(function(c,h){function g(a,b){b=void 0===b?"Request authorization.":b;f.setText((void 0===a?"Brain Maps authorization required.":a)+"  ");a=document.createElement("button");a.textContent=b;f.element.appendChild(a);a.addEventListener("click",function(){k(!1)});f.setVisible(!0)}function k(a){void 0!==e&&e.cancel();e=new b.b;g("Waiting for Brain Maps authorization...",
+"Retry");Object(d.a)({clientId:"639403125587-4k5hgdfumtrvur8v48e3pr7oo91d765k.apps.googleusercontent.com",scopes:["https://www.googleapis.com/auth/brainmaps"],immediate:a,authUser:0},e).then(function(a){void 0!==e&&(e=void 0,f.dispose(),c(a))},function(b){void 0!==e&&(e=void 0,a?g():g("Brain Maps authorization failed: "+b+".","Retry"))})}a.add(function(){void 0!==e&&(e.cancel(),e=void 0,f.dispose(),h(b.a))});k(!0)})});return a}n(f,a);return f}(m.b)},function(g,e,a){function p(a,b){if(!(a instanceof
+b))throw new TypeError("Cannot call a class as a function");}function n(a,b){var c=document.createElement("iframe");c.style.display="none";c.id=a;c.name=a;c.src="https://accounts.google.com/o/oauth2/postmessageRelay?"+("parent="+encodeURIComponent(location.origin)+"#rpctoken="+b);document.body.appendChild(c)}e.a=function(a,b){b=void 0===b?m.e:b;var f=Object(d.a)();void 0===t&&(t=new k);var e=t,h=e.makeAuthRequestUrl({state:f,clientId:a.clientId,scopes:a.scopes,approvalPrompt:a.approvalPrompt,loginHint:a.loginHint,
+immediate:a.immediate,authUser:a.authUser}),g=e.addPendingRequest(f);f=new Promise(function(a,b){g.finished.add(function(c,d){void 0!==c?a(c):b(d)})});g.finished.add(b.add(function(){g.finished.dispatch(void 0,m.a)}));if(a.immediate)e.relayReadyPromise.then(function(){if(!b.isCanceled){var a=document.createElement("iframe");a.src=h;a.style.display="none";document.body.appendChild(a);g.finished.add(function(){Object(c.b)(a)})}});else if(!b.isCanceled){var l=open(h);null!==l&&g.finished.add(function(){l.close()})}return f};
+var m=a(26),c=a(9),b=a(6),d=a(235),f=a(7),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),q=function l(){p(this,l);this.finished=new f.b},k=function(){function a(){var c=this;p(this,a);this.proxyName="postmessageRelay"+Object(d.a)();this.rpcToken=""+Object(d.a)();this.relayReadyService="oauth2relayReady:"+
+this.rpcToken;this.oauth2CallbackService="oauth2callback:"+this.rpcToken;this.pendingRequests=new Map;n(this.proxyName,this.rpcToken);this.relayReadyPromise=new Promise(function(a){addEventListener("message",function(d){if("https://accounts.google.com"===d.origin)try{var f=Object(b.u)(JSON.parse(d.data)),e=Object(b.B)(f.s);e===c.relayReadyService&&a();if(e===c.oauth2CallbackService){var h=Object(b.a)(f.a,function(a){return a}),g=Object(b.B)(h[0]),k=location.origin;if(!g.startsWith(k+"#")&&!g.startsWith(k+
+"?"))throw Error("oauth2callback: URL "+JSON.stringify(g)+" "+("does not match current origin "+k+"."));for(var l=g.substring(k.length+1).split("&"),q=new Map,m=$jscomp.makeIterator(l),n=m.next();!n.done;n=m.next()){var p=n.value.match("^([a-z_]+)=(.*)$");if(null===p)throw Error("oauth2callback: URL part "+JSON.stringify(p)+" does not match expected pattern.");q.set(p[1],p[2])}var t=q.get("state");if(void 0===t)throw Error("oauth2callback: State argument is missing.");var u=c.pendingRequests.get(t);
+if(void 0!==u){var A=q.get("error");if(void 0!==A){var y=q.get("error_subtype");f=A;void 0!==y&&(f+=": "+y);u.finished.dispatch(void 0,Error("Error obtaining Google OAuth2 token: "+f))}else{var S=q.get("access_token"),L=q.get("token_type"),P=q.get("expires_in"),Y=q.get("scope");if(void 0===S||void 0===L||void 0===P||void 0===Y)throw Error("oauth2callback: URL lacks expected parameters.");u.finished.dispatch({accessToken:S,tokenType:L,expiresIn:P,scope:Y})}}}}catch(aa){throw Error("Invalid message received from https://accounts.google.com: "+
+JSON.stringify(d.data)+": "+(aa.message+"."));}})})}h(a,[{key:"addPendingRequest",value:function(a){var b=this,c=new q;this.pendingRequests.set(a,c);c.finished.add(function(){b.pendingRequests.delete(a)});return c}},{key:"makeAuthRequestUrl",value:function(a){var b="https://accounts.google.com/o/oauth2/auth?client_id="+encodeURIComponent(a.clientId);b=b+"&redirect_uri=postmessage&response_type=token"+("&origin="+encodeURIComponent(void 0===a.origin?location.origin:a.origin));b+="&proxy="+this.proxyName;
+b=b+"&include_granted_scopes=true"+("&scope="+encodeURIComponent(a.scopes.join(" ")));a.state&&(b+="&state="+a.state);a.approvalPrompt&&(b+="&approval_prompt="+encodeURIComponent(a.approvalPrompt));a.loginHint&&(b+="&login_hint="+encodeURIComponent(a.loginHint));a.immediate&&(b+="&immediate=true");void 0!==a.authUser&&(b+="&authuser="+a.authUser);return b}}]);return a}(),t},function(g,e,a){e.a=function(a){a=Math.ceil((void 0===a?128:a)/32);var e=new Uint32Array(a);crypto.getRandomValues(e);for(var g=
+"",c=0;c<a;++c)g+=("00000000"+e[c].toString(16)).slice(-8);return g}},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=a(118),n=a(85);g=a(37);Object(g.b)("brainmaps",function(a){return new p.BrainmapsDataSource(p.productionInstance,a.credentialsManager.getCredentialsProvider(n.a))})},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=a(91);g=a(37);Object(g.b)("ndstore",function(){return new p.NDStoreDataSource})},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"c",function(){return c});a.d(e,
+"d",function(){return b});a.d(e,"b",function(){return d});a.d(e,"a",function(){return f});var c;(function(a){a[a.JPEG=0]="JPEG";a[a.COMPRESSED_SEGMENTATION=1]="COMPRESSED_SEGMENTATION"})(c||(c={}));g=function q(){m(this,q)};var b=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(g);b.RPC_ID="dvid/VolumeChunkSource";var d;(function(a){a[a.JPEG=0]="JPEG"})(d||(d={}));var f=function(a){function b(){m(this,b);return p(this,
+(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(g);f.RPC_ID="dvid/TileChunkSource"},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=a(136);g=a(37);Object(g.b)("dvid",function(){return new p.DVIDDataSource})},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return c});a.d(e,"a",function(){return b});g=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(function f(){m(this,f)});
+var c=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(g);c.RPC_ID="render/TileChunkSource";var b=function(a){function b(){m(this,b);return p(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}n(b,a);return b}(g);b.RPC_ID="render/PointMatchSource"},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});g=a(37);var p=a(137);Object(g.b)("render",function(){return new p.RenderDataSource})},function(g,
+e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=a(139);g=a(37);Object(g.b)("openconnectome",function(){return new p.OpenConnectomeDataSource})},function(g,e,a){function p(a,c){if(!(a instanceof c))throw new TypeError("Cannot call a class as a function");}a.d(e,"b",function(){return n});a.d(e,"c",function(){return m});a.d(e,"a",function(){return c});var n;(function(a){a[a.RAW=0]="RAW";a[a.JPEG=1]="JPEG";a[a.COMPRESSED_SEGMENTATION=2]="COMPRESSED_SEGMENTATION"})(n||(n={}));var m=function d(){p(this,
+d)};m.RPC_ID="precomputed/VolumeChunkSource";var c=function f(){p(this,f)};c.RPC_ID="precomputed/MeshSource"},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=a(140);g=a(37);Object(g.b)("precomputed",function(){return new p.PrecomputedDataSource})},function(g,e,a){a.d(e,"b",function(){return n});e.a="nifti/getNiftiVolumeInfo";var p;(function(a){a[a.NONE=0]="NONE";a[a.BINARY=1]="BINARY";a[a.UINT8=2]="UINT8";a[a.INT16=4]="INT16";a[a.INT32=8]="INT32";a[a.FLOAT32=16]="FLOAT32";a[a.COMPLEX64=
+32]="COMPLEX64";a[a.FLOAT64=64]="FLOAT64";a[a.RGB24=128]="RGB24";a[a.INT8=256]="INT8";a[a.UINT16=512]="UINT16";a[a.UINT32=768]="UINT32";a[a.INT64=1024]="INT64";a[a.UINT64=1280]="UINT64";a[a.FLOAT128=1536]="FLOAT128";a[a.COMPLEX128=1792]="COMPLEX128";a[a.COMPLEX256=2048]="COMPLEX256"})(p||(p={}));var n=function c(){if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");};n.RPC_ID="nifti/VolumeChunkSource"},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});var p=
+a(141);g=a(37);Object(g.b)("nifti",function(){return new p.NiftiDataSource})},function(g,e){},function(g,e){},function(g,e){},function(g,e){},function(g,e,a){(function(a){function e(b,c){function d(b){if(!f.parentNode)return a.off(document,"mousemove",d);f.style.top=Math.max(0,b.clientY-f.offsetHeight-5)+"px";f.style.left=b.clientX+5+"px"}var f=document.createElement("div");f.className="CodeMirror-lint-tooltip";f.appendChild(c.cloneNode(!0));document.body.appendChild(f);a.on(document,"mousemove",
+d);d(b);null!=f.style.opacity&&(f.style.opacity=1);return f}function g(a){a.parentNode&&(null==a.style.opacity&&a.parentNode&&a.parentNode.removeChild(a),a.style.opacity=0,setTimeout(function(){a.parentNode&&a.parentNode.removeChild(a)},600))}function c(b,c,d){function f(){a.off(d,"mouseout",f);h&&(g(h),h=null)}var h=e(b,c),k=setInterval(function(){if(h)for(var a=d;;a=a.parentNode){a&&11==a.nodeType&&(a=a.host);if(a==document.body)return;if(!a){f();break}}if(!h)return clearInterval(k)},400);a.on(d,
+"mouseout",f)}function b(a,b,d){this.marked=[];this.options=b;this.timeout=null;this.hasGutter=d;this.onMouseOver=function(b){var d=b.target||b.srcElement;if(/\bCodeMirror-lint-mark-/.test(d.className)){d=d.getBoundingClientRect();var f=a.findMarksAt(a.coordsChar({left:(d.left+d.right)/2,top:(d.top+d.bottom)/2},"client"));d=[];for(var e=0;e<f.length;++e){var g=f[e].__annotation;g&&d.push(g)}if(d.length){f=b.target||b.srcElement;e=document.createDocumentFragment();for(g=0;g<d.length;g++)e.appendChild(h(d[g]));
+c(b,e,f)}}};this.waitingFor=0}function d(a){var b=a.state.lint;b.hasGutter&&a.clearGutter("CodeMirror-lint-markers");for(a=0;a<b.marked.length;++a)b.marked[a].clear();b.marked.length=0}function f(b,d,f,e){var h=document.createElement("div"),g=h;h.className="CodeMirror-lint-marker-"+d;f&&(g=h.appendChild(document.createElement("div")),g.className="CodeMirror-lint-marker-multiple");if(0!=e)a.on(g,"mouseover",function(a){c(a,b,g)});return h}function h(a){var b=a.severity;b||(b="error");var c=document.createElement("div");
+c.className="CodeMirror-lint-message-"+b;"undefined"!=typeof a.messageHTML?c.innerHTML=a.messageHTML:c.appendChild(document.createTextNode(a.message));return c}function q(b,c,d){function f(){h=-1;b.off("change",f)}var e=b.state.lint,h=++e.waitingFor;b.on("change",f);c(b.getValue(),function(c,d){b.off("change",f);e.waitingFor==h&&(d&&c instanceof a&&(c=d),b.operation(function(){p(b,c)}))},d,b)}function k(b){var c=b.state.lint.options,d=c.options||c,f=c.getAnnotations||b.getHelper(a.Pos(0,0),"lint");
+if(f)if(c.async||f.async)q(b,f,d);else{var e=f(b.getValue(),d,b);e&&(e.then?e.then(function(a){b.operation(function(){p(b,a)})}):b.operation(function(){p(b,e)}))}}function p(a,b){d(a);for(var c=a.state.lint,e=c.options,g=[],k=0;k<b.length;++k){var l=b[k],q=l.from.line;(g[q]||(g[q]=[])).push(l)}for(k=0;k<g.length;++k)if(l=g[k]){q=null;for(var m=c.hasGutter&&document.createDocumentFragment(),r=0;r<l.length;++r){var n=l[r],p=n.severity;p||(p="error");"error"!=q&&(q=p);e.formatAnnotation&&(n=e.formatAnnotation(n));
+c.hasGutter&&m.appendChild(h(n));n.to&&c.marked.push(a.markText(n.from,n.to,{className:"CodeMirror-lint-mark-"+p,__annotation:n}))}c.hasGutter&&a.setGutterMarker(k,"CodeMirror-lint-markers",f(m,q,1<l.length,c.options.tooltips))}if(e.onUpdateLinting)e.onUpdateLinting(b,g,a)}function r(a){var b=a.state.lint;b&&(clearTimeout(b.timeout),b.timeout=setTimeout(function(){k(a)},b.options.delay||500))}a.defineOption("lint",!1,function(c,f,e){e&&e!=a.Init&&(d(c),!1!==c.state.lint.options.lintOnChange&&c.off("change",
+r),a.off(c.getWrapperElement(),"mouseover",c.state.lint.onMouseOver),clearTimeout(c.state.lint.timeout),delete c.state.lint);if(f){var h=c.getOption("gutters");e=!1;for(var g=0;g<h.length;++g)"CodeMirror-lint-markers"==h[g]&&(e=!0);h=c.state;f instanceof Function?f={getAnnotations:f}:f&&!0!==f||(f={});e=h.lint=new b(c,f,e);if(!1!==e.options.lintOnChange)c.on("change",r);if(0!=e.options.tooltips&&"gutter"!=e.options.tooltips)a.on(c.getWrapperElement(),"mouseover",e.onMouseOver);k(c)}});a.defineExtension("performLint",
+function(){this.state.lint&&k(this)})})(a(145))},function(g,e){},function(g,e){},function(g,e){},function(g,e){g.exports=function(a){function e(a){var b={};a=a.split(" ");for(var c=0;c<a.length;++c)b[a[c]]=!0;return b}a.defineMode("glsl",function(a,b){function c(a,b){var c=a.next();if(z[c]){var d=z[c](a,b);if(!1!==d)return d}if('"'==c||"'"==c)return b.tokenize=f(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return v=c,"bracket";if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("*"))return b.tokenize=
+h,h(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if("#"==c)return a.eatWhile(/[\S]+/),a.eatWhile(/[\s]+/),a.eatWhile(/[\S]+/),a.eatWhile(/[\s]+/),"comment";if(x.test(c))return a.eatWhile(x),"operator";a.eatWhile(/[\w\$_]/);a=a.current();return l.propertyIsEnumerable(a)?(A.propertyIsEnumerable(a)&&(v="newstatement"),"keyword"):p.propertyIsEnumerable(a)?"builtin":y.propertyIsEnumerable(a)?"atom":"word"}function f(a){return function(b,d){for(var f=!1,e,h=!1;null!=(e=b.next());){if(e==a&&!f){h=!0;
+break}f=!f&&"\\"==e}if(h||!f&&!B)d.tokenize=c;return"string"}}function h(a,b){for(var d=!1,f;f=a.next();){if("/"==f&&d){b.tokenize=c;break}d="*"==f}return"comment"}function q(a,b,c,d,f){this.indented=a;this.column=b;this.type=c;this.align=d;this.prev=f}function k(a,b,c){return a.context=new q(a.indented,b,c,null,a.context)}function n(a){var b=a.context.type;if(")"==b||"]"==b||"}"==b)a.indented=a.context.indented;return a.context=a.context.prev}var r=a.indentUnit,l=b.keywords||e(g),p=b.builtins||e(m),
+A=b.blockKeywords||e("case do else for if switch while struct"),y=b.atoms||e("null"),z=b.hooks||{},B=b.multiLineStrings,x=/[+\-*&%=<>!?|\/]/,v;return{startState:function(a){return{tokenize:null,context:new q((a||0)-r,0,"top",!1),indented:0,startOfLine:!0}},token:function(a,b){var d=b.context;a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0);if(a.eatSpace())return null;v=null;var f=(b.tokenize||c)(a,b);if("comment"==f||"meta"==f)return f;null==d.align&&(d.align=!0);
+if(";"!=v&&":"!=v||"statement"!=d.type)if("{"==v)k(b,a.column(),"}");else if("["==v)k(b,a.column(),"]");else if("("==v)k(b,a.column(),")");else if("}"==v){for(;"statement"==d.type;)d=n(b);for("}"==d.type&&(d=n(b));"statement"==d.type;)d=n(b)}else v==d.type?n(b):("}"==d.type||"top"==d.type||"statement"==d.type&&"newstatement"==v)&&k(b,a.column(),"statement");else n(b);b.startOfLine=!1;return f},indent:function(a,b){if(a.tokenize!=c&&null!=a.tokenize)return 0;b=b&&b.charAt(0);a=a.context;var d=b==a.type;
+return"statement"==a.type?a.indented+("{"==b?0:r):a.align?a.column+(d?0:1):a.indented+(d?0:r)},electricChars:"{}"}});var g="attribute const uniform varying break continue do for while if else in out inout float int void bool true false lowp mediump highp precision invariant discard return mat2 mat3 mat4 vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 sampler2D samplerCube struct gl_FragCoord gl_FragColor",m="radians degrees sin cos tan asin acos atan pow exp log exp2 log2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not dFdx dFdy fwidth texture2D texture2DProj texture2DLod texture2DProjLod textureCube textureCubeLod require export";
+a.defineMIME("text/x-glsl",{name:"glsl",keywords:e(g),builtins:e(m),blockKeywords:e("case do else for if switch while struct"),atoms:e("null"),hooks:{"#":function(a,b){if(!b.startOfLine)return!1;a.skipToEnd();return"meta"}}})}},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:
+b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c,d){d=void 0===d?{}:d;return f.a.forPromise(new Promise(function(f){f(a.getVectorGraphicsSource(b,c,d))}),{initialMessage:"Retrieving metadata for vector graphics source "+
+c+".",delay:!0,errorPrefix:"Error retrieving metadata for vector graphics source "+c+": "})}Object.defineProperty(e,"__esModule",{value:!0});a.d(e,"VectorGraphicsUserLayer",function(){return y});g=a(21);e=a(20);var b=a(92),d=a(257),f=a(40),h=a(52),q=a(148),k=a(149),t=a(3),r=a(6),l=a(95),u=a(258),A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&
+a(b.prototype,c);d&&a(b,d);return b}}();a(146);a(97);a(147);var y=function(a){function f(a,e){p(this,f);var g=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));g.opacity=Object(h.a)(.5);g.lineWidth=Object(q.a)(10);g.color=Object(k.a)(t.p.fromValues(1,1,1));g.opacity.restoreState(e.opacity);g.lineWidth.restoreState(e.linewidth);g.color.restoreState(e.color);g.lineWidth.changed.add(function(){g.specificationChanged.dispatch()});g.color.changed.add(function(){g.specificationChanged.dispatch()});
+g.vectorGraphicsLayerType=Object(r.n)(e.type,b.c);e=g.vectorGraphicsPath=Object(r.z)(e.source);void 0!==e&&g.vectorGraphicsLayerType===b.c.LINE&&c(a.dataSourceProvider,a.chunkManager,e).then(function(a){g.wasDisposed||(a=g.renderLayer=new d.a(a,{opacity:g.opacity,lineWidth:g.lineWidth,color:g.color,sourceOptions:{}}),g.addRenderLayer(a))});return g}m(f,a);A(f,[{key:"toJSON",value:function(){var a={type:this.getLayerType()};a.source=this.vectorGraphicsPath;a.opacity=this.opacity.toJSON();a.linewidth=
+this.lineWidth.toJSON();a.color=this.color.toJSON();return a}},{key:"getLayerType",value:function(){return b.c[this.vectorGraphicsLayerType].toLowerCase()}},{key:"makeDropdown",value:function(a){return new z(a,this)}}]);return f}(g.f),z=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.element=a;d.layer=c;d.opacityWidget=d.registerDisposer(new l.a(d.layer.opacity));d.lineWidthWidget=d.registerDisposer(new l.a(d.layer.lineWidth,{min:0,max:50,step:1}));
+d.colorWidget=d.registerDisposer(new B(d.layer.color));a.classList.add("image-dropdown");var f=d.opacityWidget,e=d.lineWidthWidget,h=d.colorWidget;c=document.createElement("div");c.className="image-dropdown-top-row";f.promptElement.textContent="Opacity";e.promptElement.textContent="Line Width";h.promptElement.textContent="Color";f=document.createElement("div");f.style.flex="1";e=document.createElement("a");h=document.createElement("button");h.type="button";h.textContent="?";h.className="help-link";
+e.appendChild(h);e.title="Documentation on vector graphics layer rendering";e.target="_blank";e.href="https://github.com/google/neuroglancer/blob/master/src/neuroglancer/sliceview/vectorgraphics_layer_rendering.md";c.appendChild(f);c.appendChild(e);a.appendChild(c);a.appendChild(d.opacityWidget.element);a.appendChild(d.lineWidthWidget.element);a.appendChild(d.colorWidget.element);return d}m(b,a);return b}(g.g),B=function(a){function b(a){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,
+a))}m(b,a);A(b,[{key:"verifyValue",value:function(a){a=Object(r.o)(a);a/=255;return 0>a?0:1<a?1:a}},{key:"updateInput",value:function(){this.inputx.valueAsNumber=Math.round(255*this.model.value[0]);this.inputy.valueAsNumber=Math.round(255*this.model.value[1]);this.inputz.valueAsNumber=Math.round(255*this.model.value[2])}}]);return b}(u.a);Object(e.e)("line",y)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==
+typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return l});var m=a(25);g=a(138);var c=a(52),b=a(148),d=a(149),f=a(3),h=a(30),q=a(35),k=function(){function a(a,b){for(var c=0;c<
+b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),t=function A(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return A(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},r=f.j.create(),l=function(a){function e(a,g){var k=void 0===
+g?{}:g;g=void 0===k.opacity?Object(c.a)(.5):k.opacity;var l=void 0===k.lineWidth?Object(b.a)(10):k.lineWidth,q=void 0===k.color?Object(d.a)(f.p.fromValues(255,255,255)):k.color;k=void 0===k.sourceOptions?{}:k.sourceOptions;if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var m=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a,{sourceOptions:k}));m.opacity=g;m.registerDisposer(g.changed.add(function(){m.redrawNeeded.dispatch()}));m.lineWidth=l;m.registerDisposer(l.changed.add(function(){m.redrawNeeded.dispatch()}));
+m.color=q;m.registerDisposer(q.changed.add(function(){m.redrawNeeded.dispatch()}));a=m.gl;g=new Float32Array([1,0,0,1,1,0,0,1]);m.vertexIndexBuffer=h.a.fromData(a,g,a.ARRAY_BUFFER,a.STATIC_DRAW);g=new Float32Array([1,1,-1,-1]);m.normalDirectionBuffer=h.a.fromData(a,g,a.ARRAY_BUFFER,a.STATIC_DRAW);return m}n(e,a);k(e,[{key:"getShaderKey",value:function(){return"vectorgraphics.VectorGraphicsLineRenderLayer"}},{key:"defineShader",value:function(a){t(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),
+"defineShader",this).call(this,a);a.addUniform("highp float","uOpacity");a.addUniform("highp float","ulineWidth");a.addUniform("highp vec3","uColor");a.addVarying("vec3","vNormal");a.addAttribute("highp float","aNormalDirection");a.addAttribute("highp vec2","aVertexIndex");a.addAttribute("highp vec3","aVertexFirst");a.addAttribute("highp vec3","aVertexSecond");a.addUniform("highp mat4","uProjection");a.setFragmentMain("    \nfloat distance = length(vNormal);\n\nfloat antialiasing = 0.5;\n\nif (distance >= 1.0 - antialiasing) {\n  emitRGBA(vec4(uColor, (distance - 1.0) / -antialiasing )); \n}\nelse if (distance < 1.0 - antialiasing) {\n  emitRGB(uColor);\n}\n");
+a.setVertexMain("\nvec3 direction = vec3(0., 0., 0.); \ndirection.z = aNormalDirection;\n\nvec3 difference = aVertexSecond - aVertexFirst;\ndifference.z = 0.; \n\nvec3 normal = cross(difference, direction);\nnormal = normalize(normal); \nvNormal = normal; \n\nvec4 delta = vec4(normal * ulineWidth, 0.0);\nvec4 pos = vec4(aVertexFirst * aVertexIndex.x + aVertexSecond * aVertexIndex.y, 1.0);\n\ngl_Position = uProjection * (pos + delta);\n")}},{key:"beginSlice",value:function(a){t(e.prototype.__proto__||
+Object.getPrototypeOf(e.prototype),"beginSlice",this).call(this,a);a=this.gl;var b=this.shader;a.uniform1f(b.uniform("uOpacity"),this.opacity.value);a.uniform1f(b.uniform("ulineWidth"),this.lineWidth.value);a.uniform3fv(b.uniform("uColor"),this.color.value);this.vertexIndexBuffer.bindToVertexAttrib(b.attribute("aVertexIndex"),2);this.normalDirectionBuffer.bindToVertexAttrib(b.attribute("aNormalDirection"),1);return b}},{key:"endSlice",value:function(a){var b=this.gl;b.disableVertexAttribArray(a.attribute("aVertexIndex"));
+b.disableVertexAttribArray(a.attribute("aNormalDirection"));b.disableVertexAttribArray(a.attribute("aVertexFirst"));b.disableVertexAttribArray(a.attribute("aVertexSecond"))}},{key:"draw",value:function(a){var b=a.visibleLayers.get(this);if(0!==b.length)if(this.initializeShader(),void 0===this.shader)console.log("error: shader undefined");else{var c=this.gl,d=this.beginSlice(a);b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;e=b.next()){var h=e.value,g=h.spec.chunkLayout,k=h.spec.voxelSize;e=
+h.chunks;var l=r;f.j.identity(l);h.vectorGraphicsCoordinatesInVoxels&&f.j.scale(l,l,k);f.j.multiply(l,g.transform,l);c.uniformMatrix4fv(d.uniform("uProjection"),!1,f.j.multiply(r,a.dataToDevice,l));if(h=a.visibleChunks.get(g))for(h=$jscomp.makeIterator(h),g=h.next();!g.done;g=h.next())if((g=e.get(g.value))&&g.state===m.d.GPU_MEMORY){k=g.numPoints/2;l=d.attribute("aVertexFirst");g.vertexBuffer.bindToVertexAttrib(l,3,q.c,!1,24,0);c.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(l,1);var n=d.attribute("aVertexSecond");
+g.vertexBuffer.bindToVertexAttrib(n,3,q.c,!1,24,12);c.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(n,1);c.ANGLE_instanced_arrays.drawArraysInstancedANGLE(c.TRIANGLE_STRIP,0,4,k);c.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(l,0);c.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(n,0)}}this.endSlice(d)}}}]);return e}(g.a)},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?
+a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});g=a(1);var m=a(3),c=a(6),b=a(7),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in
+d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(259);var h=function(a){function e(a){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var c=p(this,(e.__proto__||
+Object.getPrototypeOf(e)).call(this));c.model=a;c.promptElement=document.createElement("span");c.element=document.createElement("label");c.inputx=document.createElement("input");c.inputy=document.createElement("input");c.inputz=document.createElement("input");c.valueEntered=new b.b;a=c.inputx;var d=c.inputy,f=c.inputz,h=c.element,g=c.promptElement;h.className="vec3-input-row";g.className="vec3-input-label";h.appendChild(g);h.appendChild(a);h.appendChild(d);h.appendChild(f);a.type=d.type=f.type="number";
+c.updateInput();h=function(){c.model.value=c.getVec3Values()};c.registerEventListener(a,"change",h);c.registerEventListener(d,"change",h);c.registerEventListener(f,"change",h);c.model.changed.add(function(){c.updateInput()});return c}n(e,a);d(e,[{key:"getVec3Values",value:function(){var a=m.p.create();a[0]=this.verifyValue(this.inputx.valueAsNumber);a[1]=this.verifyValue(this.inputy.valueAsNumber);a[2]=this.verifyValue(this.inputz.valueAsNumber);return a}},{key:"verifyValue",value:function(a){return Object(c.o)(a)}},
+{key:"updateInput",value:function(){this.inputx.valueAsNumber=this.model.value[0];this.inputy.valueAsNumber=this.model.value[1];this.inputz.valueAsNumber=this.model.value[2]}},{key:"disposed",value:function(){var a=this.inputx,b=this.inputy,c=this.inputz,d=this.element;a.parentElement&&a.parentElement.removeChild(a);b.parentElement&&b.parentElement.removeChild(b);c.parentElement&&c.parentElement.removeChild(c);d.parentElement&&d.parentElement.removeChild(d);f(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),
+"disposed",this).call(this)}}]);return e}(g.a)},function(g,e){},function(g,e,a){e.a=function(a,e,g,c){e*=6;var b=Math.floor(e),d=e-b;e=c*(1-g);var f=c*(1-g*d);g=c*(1-g*(1-d));switch(b%6){case 0:a[0]=c;a[1]=g;a[2]=e;break;case 1:a[0]=f;a[1]=c;a[2]=e;break;case 2:a[0]=e;a[1]=c;a[2]=g;break;case 3:a[0]=e;a[1]=f;a[2]=c;break;case 4:a[0]=g;a[1]=e;a[2]=c;break;case 5:a[0]=c,a[1]=e,a[2]=f}return a}},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return h});var n=a(262),m=a(6),c=a(7),b=a(16);g=a(15);var d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),
+f=function r(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return r(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var f=arguments.length,e=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)e=Reflect.decorate(a,b,c,d);else for(var g=a.length-1;0<=g;g--)if(h=
+a[g])e=(3>f?h(e):3<f?h(b,c,e):h(b,c))||e;return 3<f&&e&&Object.defineProperty(b,c,e),e};var h=function(a){function e(){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var a=(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.disjointSets=new n.a;a.changed=new c.a;return a}p(e,a);d(e,[{key:"disposed",value:function(){this.changed=
+this.disjointSets=void 0;f(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}},{key:"link",value:function(a,b){if(this.disjointSets.link(a,b)){var c=this.rpc;c&&c.invoke("DisjointUint64Sets.add",{id:this.rpcId,al:a.low,ah:a.high,bl:b.low,bh:b.high});this.changed.dispatch()}}},{key:"get",value:function(a){return this.disjointSets.get(a)}},{key:"clear",value:function(){if(this.disjointSets.clear()){var a=this.rpc;a&&a.invoke("DisjointUint64Sets.clear",{id:this.rpcId});
+this.changed.dispatch()}}},{key:"setElements",value:function(a){return this.disjointSets.setElements(a)}},{key:"toJSON",value:function(){return this.disjointSets.toJSON()}},{key:"restoreState",value:function(a){var c=this;this.clear();if(void 0!==a){var d=[new b.a,new b.a];Object(m.a)(a,function(a){Object(m.a)(a,function(a,b){d[b%2].parseString(String(a),10);0!==b&&c.link(d[0],d[1])})})}}},{key:"size",get:function(){return this.disjointSets.size}}],[{key:"makeWithCounterpart",value:function(a){var b=
+new this;b.initializeCounterpart(a);return b}}]);return e}(g.c);h=e([Object(g.f)("DisjointUint64Sets")],h);var q=new b.a,k=new b.a;Object(g.e)("DisjointUint64Sets.add",function(a){var b=this.get(a.id);q.low=a.al;q.high=a.ah;k.low=a.bl;k.high=a.bh;b.disjointSets.link(q,k)&&b.changed.dispatch()});Object(g.e)("DisjointUint64Sets.clear",function(a){a=this.get(a.id);a.disjointSets.clear()&&a.changed.dispatch()})},function(g,e,a){function p(a){for(var b=a,c=a[d];c!==a;)a=c,c=a[d];for(a=b[d];c!==a;)b[d]=
+c,b=a,a=b[d];return c}function n(a){function b(b,h){for(;;)switch(c){case 0:e=!0,d=a;case 1:if(!e&&d===a){c=3;break}c=4;return{value:d,done:!1};case 4:if(void 0===h){c=5;break}c=-1;throw h;case 5:d=d[f];case 2:e=!1;c=1;break;case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,e,h={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();h[Symbol.iterator]=function(){return this};return h}
+a.d(e,"a",function(){return k});var m=a(16),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();$jscomp.initSymbol();var b=Symbol("disjoint_sets:rank");$jscomp.initSymbol();var d=Symbol("disjoint_sets:parent");$jscomp.initSymbol();var f=Symbol("disjoint_sets:next");$jscomp.initSymbol();var h=Symbol("disjoint_sets:prev");
+$jscomp.initSymbol();var q=Symbol("disjoint_sets:min"),k=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.map=new Map;this.generation=0}$jscomp.initSymbol();$jscomp.initSymbolIterator();c(a,[{key:"get",value:function(a){var b=this.map.get(a.toString());return void 0===b?a:p(b)[q]}},{key:"isMinElement",value:function(a){var b=this.get(a);return b===a||m.a.equal(b,a)}},{key:"makeSet",value:function(a){var c=a.toString(),e=this.map,g=e.get(c);
+return void 0===g?(a=g=a.clone(),a[d]=a,a[b]=0,a[f]=a[h]=a,g[q]=g,e.set(c,g),g):p(g)}},{key:"link",value:function(a,c){a=this.makeSet(a);c=this.makeSet(c);if(a===c)return!1;this.generation++;var e=a;var g=c,k=e[b],l=g[b];k>l?g[d]=e:(e[d]=g,k===l&&(g[b]=l+1),e=g);g=a;k=c;l=g[h];var n=k[h];k[h]=l;l[f]=k;g[h]=n;n[f]=g;a=a[q];c=c[q];e[q]=m.a.less(a,c)?a:c;return!0}},{key:"setElements",value:function(a){function b(b,k){for(;;)switch(c){case 0:h=a.toString();e=g.map.get(h);if(void 0!==e){c=1;break}c=3;
+return{value:a,done:!1};case 3:if(void 0===k){c=4;break}c=-1;throw k;case 4:c=2;break;case 1:f=$jscomp.makeIterator(n(e));case 5:if((d=f.next(b)).done){c=6;break}c=7;return{value:d.value,done:!1};case 7:if(void 0===k){c=8;break}c=-1;throw k;case 8:c=5;break;case 6:case 2:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,f,e,h,g=this,k={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();
+k[Symbol.iterator]=function(){return this};return k}},{key:"clear",value:function(){var a=this.map;if(0===a.size)return!1;++this.generation;a.clear();return!0}},{key:"mappings",value:function(a){function b(b,g){for(;;)switch(c){case 0:a=void 0===a?Array(2):a,e=$jscomp.makeIterator(h.map.values()),f=e.next();case 1:if(f.done){c=3;break}d=f.value;a[0]=d;a[1]=p(d)[q];c=4;return{value:a,done:!1};case 4:if(void 0===g){c=5;break}c=-1;throw g;case 5:case 2:f=e.next();c=1;break;case 3:c=-1;default:return{value:void 0,
+done:!0}}}var c=0,d,f,e,h=this,g={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();g[Symbol.iterator]=function(){return this};return g}},{key:Symbol.iterator,value:function(){return this.mappings()}},{key:"toJSON",value:function(){for(var a=[],b=$jscomp.makeIterator(this.map.values()),c=b.next();!c.done;c=b.next()){var f=c.value;if(f[d]===f){c=[];f=$jscomp.makeIterator(n(f));for(var e=f.next();!e.done;e=
+f.next())c.push(e.value);c.sort(m.a.compare);a.push(c)}}a.sort(function(a,b){return m.a.compare(a[0],b[0])});return a.map(function(a){return a.map(function(a){return a.toString()})})}},{key:"size",get:function(){return this.map.size}}]);return a}()},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});
+b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return d});var n=a(53),m=a(7);g=a(15);var c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function q(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),
+null!==a)return q(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};e=this&&this.__decorate||function(a,b,c,d){var f=arguments.length,e=3>f?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)e=Reflect.decorate(a,b,c,d);else for(var k=a.length-1;0<=k;k--)if(g=a[k])e=(3>f?g(e):3<f?g(b,c,e):g(b,c))||e;return 3<f&&e&&Object.defineProperty(b,c,e),e};var d=f=function(a){function d(){if(!(this instanceof
+d))throw new TypeError("Cannot call a class as a function");var a=(d.__proto__||Object.getPrototypeOf(d)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=!a||"object"!==typeof a&&"function"!==typeof a?this:a;a.hashTable=new n.b;a.changed=new m.b;return a}p(d,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();c(d,[{key:"disposed",value:function(){b(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"disposed",this).call(this);
+this.changed=this.hashTable=void 0}},{key:"add_",value:function(a){return this.hashTable.add(a)}},{key:"add",value:function(a){if(this.add_(a)){var b=this.rpc;b&&b.invoke("Uint64Set.add",{id:this.rpcId,value:a});this.changed.dispatch(a,!0)}}},{key:"has",value:function(a){return this.hashTable.has(a)}},{key:Symbol.iterator,value:function(){return this.hashTable.keys()}},{key:"delete_",value:function(a){return this.hashTable.delete(a)}},{key:"delete",value:function(a){if(this.delete_(a)){var b=this.rpc;
+b&&b.invoke("Uint64Set.delete",{id:this.rpcId,value:a});this.changed.dispatch(a,!1)}}},{key:"clear",value:function(){if(this.hashTable.clear()){var a=this.rpc;a&&a.invoke("Uint64Set.clear",{id:this.rpcId});this.changed.dispatch(null,!1)}}},{key:"toJSON",value:function(){for(var a=[],b=$jscomp.makeIterator(this),c=b.next();!c.done;c=b.next())a.push(c.value.toString());a.sort();return a}},{key:"size",get:function(){return this.hashTable.size}}],[{key:"makeWithCounterpart",value:function(a){var b=new f;
+b.initializeCounterpart(a);return b}}]);return d}(g.c);d=f=e([Object(g.f)("Uint64Set")],d);Object(g.e)("Uint64Set.add",function(a){var b=this.get(a.id);b.add_(a.value)&&b.changed.dispatch()});Object(g.e)("Uint64Set.delete",function(a){var b=this.get(a.id);b.delete_(a.value)&&b.changed.dispatch()});Object(g.e)("Uint64Set.clear",function(a){a=this.get(a.id);a.hashTable.clear()&&a.changed.dispatch()});var f},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return d});g=a(1);e=a(16);var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),c=function h(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return h(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(36);a(265);var b=new e.a,d=function(a){function d(a){if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");
+var b=p(this,(d.__proto__||Object.getPrototypeOf(d)).call(this));b.displayState=a;b.element=document.createElement("div");b.clearButton=document.createElement("button");b.itemContainer=document.createElement("span");b.items=new Map;var c=b.element,e=b.clearButton,h=b.itemContainer;c.className="segment-set-widget neuroglancer-noselect";e.className="clear-button";e.title="Remove all segment IDs";b.registerEventListener(e,"click",function(){b.visibleSegments.clear()});h.className="item-container";c.appendChild(h);
+h.appendChild(e);b.registerDisposer(a.visibleSegments.changed.add(function(a,c){b.handleSetChanged(a,c)}));b.registerDisposer(a.segmentColorHash.changed.add(function(){b.handleColorChanged()}));a=$jscomp.makeIterator(a.visibleSegments);for(c=a.next();!c.done;c=a.next())b.addElement(c.value.toString());b.updateClearButtonVisibility();return b}n(d,a);m(d,[{key:"updateClearButtonVisibility",value:function(){this.clearButton.style.display=0<this.displayState.visibleSegments.size?"":"none"}},{key:"handleSetChanged",
+value:function(a,b){this.updateClearButtonVisibility();var c=this.items;if(null===a){a=this.itemContainer;for(b=this.clearButton;;){var d=a.lastElementChild;if(d===b)break;a.removeChild(d)}c.clear()}else b?this.addElement(a.toString()):(a=a.toString(),b=c.get(a),b.parentElement.removeChild(b),c.delete(a))}},{key:"addElement",value:function(a){var c=document.createElement("button");c.className="segment-button";c.textContent=a;c.title="Remove segment ID "+a;var d=this;c.addEventListener("click",function(){b.tryParseString(this.textContent);
+d.visibleSegments.delete(b)});c.addEventListener("mouseenter",function(){b.tryParseString(this.textContent);d.segmentSelectionState.set(b)});c.addEventListener("mouseleave",function(){b.tryParseString(this.textContent);d.segmentSelectionState.set(null)});this.setItemColor(c);this.itemContainer.appendChild(c);this.items.set(a,c)}},{key:"setItemColor",value:function(a){b.tryParseString(a.textContent);a.style.backgroundColor=this.segmentColorHash.computeCssColor(b)}},{key:"handleColorChanged",value:function(){var a=
+this;this.items.forEach(function(b){a.setItemColor(b)})}},{key:"disposed",value:function(){var a=this.element,b=a.parentElement;b&&b.removeChild(a);c(d.prototype.__proto__||Object.getPrototypeOf(d.prototype),"disposed",this).call(this)}},{key:"visibleSegments",get:function(){return this.displayState.visibleSegments}},{key:"segmentColorHash",get:function(){return this.displayState.segmentColorHash}},{key:"segmentSelectionState",get:function(){return this.displayState.segmentSelectionState}}]);return d}(g.a)},
+function(g,e){},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=
+b)}a.d(e,"a",function(){return h});g=a(1);var m=a(9),c=a(7),b=a(16),d=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),f=function k(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return k(a,b,c)}else{if("value"in d)return d.value;
+b=d.get;return void 0===b?void 0:b.call(c)}};a(36);a(267);var h=function(a){function e(){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var a=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));a.element=document.createElement("form");a.label=document.createElement("label");a.input=document.createElement("input");a.valuesEntered=new c.b;var b=a.element,d=a.label,f=a.input;b.className="uint64-entry neuroglancer-noselect";b.appendChild(d);d.appendChild(f);a.registerEventListener(b,
+"submit",function(b){b.preventDefault();b=a.validateInput();void 0!==b&&(a.input.value="",a.input.classList.remove("valid-input","invalid-input"),a.valuesEntered.dispatch(b))});a.registerEventListener(b,"input",function(){""===a.input.value?a.input.classList.remove("valid-input","invalid-input"):a.validateInput()?a.input.classList.remove("invalid-input"):a.input.classList.add("invalid-input")});return a}n(e,a);d(e,[{key:"validateInput",value:function(){var a=this.input.value;a=a.replace(/[\s,\(\)\[\]\{\};]+/g,
+" ");a=a.trim();var c=a.split(" ");if(0!==c.length){a=[];c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){d=d.value;var f=new b.a;if(!f.tryParseString(d))return;a.push(f)}return a}}},{key:"disposed",value:function(){Object(m.b)(this.element);f(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}}]);return e}(g.a)},function(g,e){},function(g,e){},function(g,e){},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}Object.defineProperty(e,
+"__esModule",{value:!0});a.d(e,"AnnotationPointListUserLayer",function(){return t});var c=a(271),b=a(272);g=a(21);e=a(20);var d=a(14),f=a(3),h=a(274),q=function u(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return u(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},k=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=
+!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(276);var t=function(a){function e(a,f){p(this,e);var h=n(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,[]));h.manager=a;h.selectedIndex=new d.b(null);h.layer=new c.a(h.manager.chunkManager,new b.a,h.manager.voxelSize,h.selectedIndex);h.layer.pointList.restoreState(f.points);h.registerDisposer(h.layer.pointList.changed.add(function(){h.specificationChanged.dispatch()}));
+h.addRenderLayer(new c.b(h.layer));h.addRenderLayer(new c.c(h.layer));var g=a.layerSelectedValues;h.registerDisposer(g.changed.add(function(){var a=g.get(h);h.selectedIndex.value="number"===typeof a?a:null}));return h}m(e,a);k(e,[{key:"toJSON",value:function(){var a={type:"pointAnnotation"};a.points=this.layer.pointList.toJSON();return a}},{key:"handleAction",value:function(a){switch(a){case "annotate":a=this.manager.layerSelectedValues.get(this),void 0!==a?this.layer.pointList.delete(a):this.manager.layerSelectedValues.mouseState.active&&
+this.layer.pointList.append(this.manager.voxelSize.voxelFromSpatial(f.p.create(),this.manager.layerSelectedValues.mouseState.position))}}},{key:"makeDropdown",value:function(a){return new r(a,this)}}]);return e}(g.f),r=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.element=a;d.layer=c;d.pointListWidget=d.registerDisposer(new h.a(d.layer.layer.pointList,d.layer.selectedIndex));a.classList.add("neuroglancer-annotation-point-list-dropdown");a.appendChild(d.pointListWidget.element);
+d.registerDisposer(d.pointListWidget.pointSelected.add(function(a){d.layer.manager.setVoxelCoordinates(d.layer.layer.pointList.get(a))}));return d}m(b,a);k(b,[{key:"onShow",value:function(){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"onShow",this).call(this);this.pointListWidget.visible=!0}},{key:"onHide",value:function(){q(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"onHide",this).call(this);this.pointListWidget.visible=!1}}]);return b}(g.g);Object(e.e)("pointAnnotation",
+t)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return y});a.d(e,"b",function(){return B});a.d(e,"c",function(){return v});g=a(48);e=a(63);var c=a(1),b=a(3),d=a(7),f=a(30),h=a(153),q=a(31),k=a(18),t=a(66),r=function F(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return F(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},
+l=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=b.j.create(),A=new Float32Array(4),y=function(a){function c(a,b,e,h){p(this,c);var g=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));g.chunkManager=a;g.pointList=b;g.voxelSizeObject=e;g.selectedIndex=h;g.generation=-1;g.redrawNeeded=new d.a;g.color=
+Float32Array.of(1,1,0,1);g.selectedColor=Float32Array.of(0,1,0,1);g.buffer=new f.a(a.gl);g.registerDisposer(b.changed.add(function(){g.selectedIndex.value=null;g.redrawNeeded.dispatch()}));g.registerDisposer(h.changed.add(function(){g.redrawNeeded.dispatch()}));return g}m(c,a);l(c,[{key:"updateBuffer",value:function(){var a=this.pointList,b=a.generation;this.generation!==b&&(this.generation=b,this.buffer.setData(a.points.view))}},{key:"updateMouseState",value:function(a,c){b.p.multiply(a.position,
+this.pointList.get(c),this.voxelSizeObject.size)}},{key:"gl",get:function(){return this.chunkManager.gl}}]);return c}(c.a);a=function(a){function c(a){p(this,c);var b=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));b.gl=a;b.shaders=new Map;b.squareCornersBuffer=Object(t.a)(b.gl);b.countingBuffer=b.registerDisposer(Object(h.d)(b.gl));return b}m(c,a);l(c,[{key:"defineShader",value:function(a){a.addAttribute("highp vec3","aVertexPosition");a.addAttribute("highp vec2","aCornerOffset");a.addUniform("highp vec2",
+"uPointRadii");a.addUniform("highp vec4","uColor");a.addUniform("highp vec4","uColorSelected");a.addUniform("highp vec4","uSelectedIndex");a.addVarying("highp vec4","vColor");a.addUniform("highp mat4","uProjection");a.addUniform("highp vec4","uPickID");a.addVarying("highp vec4","vPickID");a.addVarying("highp vec2","vPointCoord");a.require(h.b);a.addVertexCode(k.b);a.setVertexMain("\ngl_Position = uProjection * vec4(aVertexPosition, 1.0);\ngl_Position.xy += aCornerOffset * uPointRadii * gl_Position.w;\nvPointCoord = aCornerOffset;\n\nuint32_t primitiveIndex = getPrimitiveIndex();\n\nuint32_t pickID; pickID.value = uPickID;\nvPickID = add(pickID, primitiveIndex).value;\n\nif (uSelectedIndex == primitiveIndex.value) {\n  vColor = uColorSelected;\n} else {\n  vColor = uColor;\n}\n");
+a.setFragmentMain("\nif (dot(vPointCoord, vPointCoord) > 1.0) {\n  discard;\n}\nemit(getColor(), vPickID);\n")}},{key:"getShader",value:function(a){var b=this.shaders,c=b.get(a);void 0===c&&(c=new q.a(this.gl),c.require(a),this.defineShader(c),c=this.registerDisposer(c.build()),b.set(a,c));return c}},{key:"draw",value:function(a,c,d){var f=this.getShader(d.emitter),e=this.gl;f.bind();c.updateBuffer();var g=c.pointList.length,l=f.attribute("aVertexPosition"),q=f.attribute("aCornerOffset");c.buffer.bindToVertexAttrib(l,
+3);e.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(l,1);this.squareCornersBuffer.bindToVertexAttrib(q,2);this.countingBuffer.ensure(g).bind(f,1);b.j.identity(u);b.j.scale(u,u,c.voxelSizeObject.size);b.j.multiply(u,d.dataToDevice,u);e.uniformMatrix4fv(f.uniform("uProjection"),!1,u);e.uniform2f(f.uniform("uPointRadii"),8/d.viewportWidth,8/d.viewportHeight);d.emitPickID&&(a=d.pickIDs.register(a,g),e.uniform4fv(f.uniform("uPickID"),Object(k.p)(A,a)));d.emitColor&&(e.uniform4fv(f.uniform("uColor"),c.color),
+e.uniform4fv(f.uniform("uColorSelected"),c.selectedColor),c=c.selectedIndex.value,null===c&&(c=4294967295),e.uniform4fv(f.uniform("uSelectedIndex"),Object(k.p)(A,c)));e.ANGLE_instanced_arrays.drawArraysInstancedANGLE(e.TRIANGLE_FAN,0,4,g);e.ANGLE_instanced_arrays.vertexAttribDivisorANGLE(l,0);Object(h.c)(e,f,!0);e.disableVertexAttribArray(l)}}]);return c}(c.a);var z=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);l(b,[{key:"defineShader",
+value:function(a){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);a.addFragmentCode("\nvec4 getColor () { return vColor; }\n")}}]);return b}(a),B=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.base=a;c.renderHelper=c.registerDisposer(new z(c.gl));c.registerDisposer(a);c.registerDisposer(a.redrawNeeded.add(function(){c.redrawNeeded.dispatch()}));c.setReady(!0);return c}m(b,a);l(b,[{key:"draw",value:function(a){this.renderHelper.draw(this,
+this.base,a)}},{key:"updateMouseState",value:function(a,b,c){this.base.updateMouseState(a,c)}},{key:"transformPickedValue",value:function(a,b){return b}},{key:"gl",get:function(){return this.base.chunkManager.gl}}]);return b}(g.a),x=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);l(b,[{key:"defineShader",value:function(a){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);a.addFragmentCode("\nvec4 getColor() {\n  float scalar = 1.0 - 2.0 * abs(0.5 - gl_FragCoord.z);\n  return vec4(vColor.xyz, scalar * vColor.a);\n}\n")}}]);
+return b}(a),v=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.base=a;c.renderHelper=c.registerDisposer(new x(c.gl));c.registerDisposer(a);c.registerDisposer(a.redrawNeeded.add(function(){c.redrawNeeded.dispatch()}));c.setReady(!0);return c}m(b,a);l(b,[{key:"draw",value:function(a){this.renderHelper.draw(this,this.base,a)}},{key:"updateMouseState",value:function(a,b,c){this.base.updateMouseState(a,c)}},{key:"transformPickedValue",value:function(a,
+b){return b}},{key:"gl",get:function(){return this.base.chunkManager.gl}}]);return b}(e.b)},function(g,e,a){a.d(e,"a",function(){return b});var p=a(273),n=a(6),m=a(7),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),b=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");
+this.points=new p.a;this.changed=new m.a;this.generation=0}c(a,[{key:"delete",value:function(a){this.points.eraseRange(3*a,3*a+3);++this.generation;this.changed.dispatch()}},{key:"get",value:function(a){return this.points.data.subarray(3*a,3*a+3)}},{key:"append",value:function(a){this.points.appendArray(a.subarray(0,3));++this.generation;this.changed.dispatch()}},{key:"reset",value:function(){this.points.clear();++this.generation;this.changed.dispatch()}},{key:"restoreState",value:function(a){try{if(Array.isArray(a)){var b=
+a.length,c=this.points;c.resize(3*b);var d=c.data;for(c=0;c<b;++c){var f=3*c;Object(n.c)(d.subarray(f,f+3),a[c],n.o)}++this.generation;this.changed.dispatch()}}catch(r){this.reset()}}},{key:"toJSON",value:function(){for(var a=this.length,b=this.points.data,c=Array(a),d=0;d<a;++d){var e=3*d;c[d]=[b[e],b[e+1],b[e+2]]}return c}},{key:"length",get:function(){return this.points.length/3}}]);return a}()},function(g,e,a){a.d(e,"a",function(){return n});var p=function(){function a(a,b){for(var c=0;c<b.length;c++){var f=
+b[c];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(c,b,d){b&&a(c.prototype,b);d&&a(c,d);return c}}(),n=function(){function a(c){c=void 0===c?16:c;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.length=0;this.data=new Float32Array(c)}p(a,[{key:"resize",value:function(a){var b=this.data;if(a>b.length){var c=new Float32Array(Math.max(a,2*b.length));c.set(b.subarray(0,this.length));this.data=
+c}this.length=a}},{key:"shrinkToFit",value:function(){this.data=new Float32Array(this.view)}},{key:"clear",value:function(){this.length=0}},{key:"appendArray",value:function(a){var b=this.length;this.resize(b+a.length);this.data.set(a,b)}},{key:"eraseRange",value:function(a,b){this.data.copyWithin(a,b,this.length);this.length-=b-a}},{key:"view",get:function(){var a=this.data;return new Float32Array(a.buffer,a.byteOffset,this.length)}}]);return a}()},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return f});g=a(1);var m=a(9),c=a(7),b=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=
+d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function q(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return q(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(36);a(275);var f=function(a){function f(a,b){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");
+var d=p(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));d.pointList=a;d.selectionIndex=b;d.element=document.createElement("div");d.clearButton=document.createElement("button");d.itemContainer=document.createElement("div");d.generation=-1;d.pointSelected=new c.b;d.visible_=!1;b=d.element;var e=d.clearButton,g=d.itemContainer;b.className="neuroglancer-point-list-widget";e.className="neuroglancer-clear-button";e.textContent="Delete all points";d.registerEventListener(e,"click",function(){d.pointList.reset()});
+g.className="neuroglancer-item-container neuroglancer-select-text";b.appendChild(e);b.appendChild(g);d.registerDisposer(a.changed.add(function(){d.maybeUpdate()}));return d}n(f,a);b(f,[{key:"maybeUpdate",value:function(){var a=this;if(this.visible_){var b=this.pointList;if(this.generation!==b.generation){this.generation=b.generation;var c=this.itemContainer;Object(m.a)(c);var d=b.length;b=b.points.data;for(var f={i:0};f.i<d;f={i:f.i},++f.i){var e=document.createElement("div");e.className="neuroglancer-point-list-item";
+var g=3*f.i;e.textContent=Math.round(b[g])+" "+Math.round(b[g+1])+" "+Math.round(b[g+2]);e.addEventListener("click",function(b){return function(){a.pointSelected.dispatch(b.i)}}(f));e.addEventListener("mouseenter",function(b){return function(){a.selectionIndex.value=b.i}}(f));e.addEventListener("mouseleave",function(){a.selectionIndex.value=null});c.appendChild(e)}}}}},{key:"disposed",value:function(){Object(m.b)(this.element);this.clearButton=this.itemContainer=this.element=void 0;d(f.prototype.__proto__||
+Object.getPrototypeOf(f.prototype),"disposed",this).call(this)}},{key:"visible",get:function(){return this.visible_},set:function(a){this.visible_!==a&&(this.visible_=a,!0===a&&this.maybeUpdate())}}]);return f}(g.a)},function(g,e){},function(g,e){},function(g,e,a){Object.defineProperty(e,"__esModule",{value:!0});e.getNgPatchableObj=function(){return{UrlHashBinding:p.a,LayerManager:n.a}};var p=a(154),n=a(21),m=a(155);a.d(e,"createNehubaViewer",function(){return m.b});a.d(e,"NehubaViewer",function(){return m.a});
+a.d(e,"layoutEventType",function(){return m.c});a.d(e,"perspectiveRenderEventType",function(){return m.d});a.d(e,"quat",function(){return m.e});a.d(e,"sliceRenderEventType",function(){return m.f});a.d(e,"vec3",function(){return m.g});a.d(e,"vec4",function(){return m.h})},function(g,e,a){function p(a){return a.map(function(a){return{name:a.name,value:a.layer}}).filter(function(a){return!!a.value}).map(function(a){return{name:a.name,userLayer:a.value}})}function n(a){return a.map(function(a){var b=
+a.layer.userLayer,c=b.getValueAt(a.mouse.position,a.mouse),d=b.volumePath;d||(d=b.parameters.meshSourceUrl);return{value:0===c?0:c?c:null,layer:{name:a.layer.name,url:d?d:void 0}}})}e.b=function(a,b){return y.create(a,b)};a.d(e,"a",function(){return y});var m=a(16),c=a(93),b=a(69),d=a(279),f=a(313),h=a(166),q=a(108),k=a(155),t=a(109),r=a(110),l=a(318),u=a(167);a.n(u);a(602);var A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in
+d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),y=function(){function a(d,f,e){var g=this;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.errorHandler=e;this.onError=function(a){g.errorHandler&&(a instanceof Error?g.errorHandler(a):g.errorHandler(Error(a)))};this.ngviewer=d;this._config=f;var q=d.navigationState;this.navigationState={position:{inRealSpace:Object(l.a)(q.position,function(a){return k.g.clone(a.spatialCoordinates)}),
+inVoxels:Object(l.a)(q.position,function(a){var b=k.g.create();if(a.getVoxelCoordinates(b)){for(a=0;3>a;++a)b[a]=Math.floor(b[a]);return b}return null},{share:!1}).notNull().publishReplay(1).refCount()},orientation:Object(l.a)(q.pose.orientation,function(a){return k.e.clone(a.orientation)}),sliceZoom:Object(l.a)({s:q.zoomFactor,r:q},function(a){return a.value}),perspectiveZoom:Object(l.a)({s:d.perspectiveNavigationState.zoomFactor,r:d.perspectiveNavigationState},function(a){return a.value}),perspectiveOrientation:Object(l.a)(d.perspectiveNavigationState.pose.orientation,
+function(a){return k.e.clone(a.orientation)}),full:Object(l.a)(q,function(a){return{position:k.g.clone(a.position.spatialCoordinates),orientation:k.e.clone(a.pose.orientation.orientation),zoom:a.zoomFactor.value}}),get all(){var a=this.perspectiveZoom.combineLatest(this.perspectiveOrientation,function(a,b){return{perspectiveZoom:a,perspectiveOrientation:b}});return this.full.combineLatest(a,function(a,b){return Object.assign({},a,b)}).publishReplay(1).refCount()}};f=Object(l.a)({s:d.mouseState,r:d},
+function(a){return a.active?k.g.clone(a.position):null});this.mousePosition={inRealSpace:f,inVoxels:f.map(function(a){if(a){a=q.pose.position.voxelSize.voxelFromSpatial(k.g.create(),a);for(var b=0;3>b;++b)a[b]=Math.round(a[b])}return a}).publishReplay(1).refCount()};f=d.layerManager;f=Object(l.a)({s:{changed:f.layersChanged,layerManager:f},r:f},function(a){return a.layerManager}).concatMap(function(a){return u.Observable.from(a.managedLayers)});this._createdSegmentationUserLayers=f.map(function(a){return a.layer}).notNull().filter(function(a){return a instanceof
+b.SegmentationUserLayer}).map(function(a){return a});this.createdSegmentationUserLayers.subscribe(function(a){g.config.disableSegmentSelection&&Object(h.d)(a)});this.createdSegmentationUserLayers.subscribe(function(a){g.config.disableSegmentHighlighting&&Object(h.c)(a)});this.createdSegmentationUserLayers.subscribe(function(a){g.config.enableMeshLoadingControl&&(a=a.displayState,a.visibleSegments instanceof r.b||(a.visibleSegments=new r.b(a.visibleSegments)))});f=f.let(p).filter(function(a){return a.userLayer instanceof
+b.SegmentationUserLayer}).map(function(a){return{name:a.name,layer:a.userLayer}}).unseen(function(a){return a.layer}).flatMap(function(a){var b=a.name,c=a.layer.volumePath;return Object(l.a)(a.layer.displayState.segmentSelectionState,function(a){return{segment:a.hasSelectedSegment?g.segmentToNumber(a.selectedSegment):null,layer:{name:b,url:c}}})}).publishReplay(1).refCount();e=Object(l.a)(d.layerSelectedValues,function(a){return a}).concatMap(function(a){return u.Observable.from(a.layerManager.managedLayers).filter(function(a){return a.visible}).let(p).map(function(b){return{mouse:a.mouseState,
+layer:b}})});d=e.filter(function(a){return a.layer.userLayer instanceof c.ImageUserLayer}).let(n).map(function(a){return Object.assign({},a,{layer:Object.assign({},a.layer,{url:a.layer.url})})});e=e.let(n);this.mouseOver={segment:f,image:d,layer:e}}A(a,[{key:"addMouseOverSegmentCallback",value:function(a){var b=this.mouseOver.segment.subscribe(function(b){return a(b.segment,b.layer)},this.onError);return function(){return b.unsubscribe()}}},{key:"addMouseEnterSegmentCallback",value:function(a){var b=
+this.mouseOver.segment.filter(function(a){return null!==a.segment}).subscribe(function(b){return a(b.segment,b.layer)},this.onError);return function(){return b.unsubscribe()}}},{key:"addMouseLeaveSegmentsCallback",value:function(a){var b=this.mouseOver.segment.filter(function(a){return null===a.segment}).subscribe(function(){return a()},this.onError);return function(){return b.unsubscribe()}}},{key:"addNavigationStateCallbackInRealSpaceCoordinates",value:function(a){var b=this.navigationState.position.inRealSpace.subscribe(function(b){return a(b)},
+this.onError);return function(){return b.unsubscribe()}}},{key:"addNavigationStateCallbackInVoxelCoordinates",value:function(a){var b=this.navigationState.position.inVoxels.subscribe(function(b){return a(b)},this.onError);return function(){return b.unsubscribe()}}},{key:"addMousePositionCallbackInRealSpaceCoordinates",value:function(a){var b=this.mousePosition.inRealSpace.subscribe(function(b){return a(b)},this.onError);return function(){return b.unsubscribe()}}},{key:"addMousePositionCallbackInVoxelCoordinates",
+value:function(a){var b=this.mousePosition.inVoxels.subscribe(function(b){return a(b)},this.onError);return function(){return b.unsubscribe()}}},{key:"setPosition",value:function(a,b){var c=this.ngviewer.navigationState.pose.position;b?(k.g.copy(c.spatialCoordinates,a),c.markSpatialCoordinatesChanged()):c.setVoxelCoordinates(a)}},{key:"showSegment",value:function(a,b){this.getSingleSegmentation(b).displayState.visibleSegments.add(new m.a(a))}},{key:"hideSegment",value:function(a,b){this.getSingleSegmentation(b).displayState.visibleSegments.delete(new m.a(a))}},
+{key:"getShownSegmentsNow",value:function(a){return Array.from(this.getSingleSegmentation(a).displayState.visibleSegments,this.segmentToNumber)}},{key:"getShownSegmentsObservable",value:function(a){var b=this;a=this.getSingleSegmentation(a);return Object(l.a)({s:a.displayState.visibleSegments,r:a},function(a){return Array.from(a,b.segmentToNumber)})}},{key:"setSegmentColor",value:function(a,b,c){this.checkRGB(b);this.getSingleSegmentationColors(c).setSegmentColor(a,b.red,b.green,b.blue)}},{key:"unsetSegmentColor",
+value:function(a,b){this.getSingleSegmentationColors(b).unsetSegmentColor(a)}},{key:"clearCustomSegmentColors",value:function(a){this.getSingleSegmentationColors(a).clearCustomSegmentColors()}},{key:"batchAddAndUpdateSegmentColors",value:function(a,b){this.getSingleSegmentationColors(b).batchUpdate(a)}},{key:"setMeshesToLoad",value:function(a,b){b=this.getSingleSegmentation(b).displayState.visibleSegments;b instanceof r.b?b.setMeshesToLoad(a):this.throwError("visibleSegments property is not wrapped by nehuba. Maybe mesh loading control is not enabled in config (enableMeshLoadingControl?: boolean) ")}},
+{key:"relayout",value:function(){this.ngviewer.layout.container.component.changed.dispatch()}},{key:"redraw",value:function(){this.ngviewer.display.scheduleRedraw()}},{key:"dispose",value:function(){this.ngviewer.dispose();this.ngviewer.display.container[q.b]=void 0}},{key:"applyInitialNgState",value:function(){a.restoreInitialState(this.ngviewer,this.config)}},{key:"getSingleSegmentationColors",value:function(a){a=this.getSingleSegmentation(a).displayState.segmentColorHash;if(a instanceof t.a)return a;
+throw Error("Looks like neuroglancer was not patched and hooked to support custom segment colors. Are you sure you enabled it by `config.globals.useCustomSegmentColors: true` or similar?");}},{key:"getSingleSegmentation",value:function(a){var c=this.ngviewer.layerManager.managedLayers.filter(function(b){return!a||!a.name||b.name===a.name}).map(function(a){return a.layer}).filter(function(a){return!!a}).filter(function(a){return a instanceof b.SegmentationUserLayer}).map(function(a){return a}).filter(function(b){return!a||
+!a.url||b.volumePath===a.url});0===c.length&&this.throwError("No parcellation found");1<c.length&&this.throwError("Ambiguous request. Multiple parcellations found");return c[0]}},{key:"segmentToNumber",value:function(a){0!==a.high&&this.throwError("Segment id number does not fit into 32 bit integer "+a.toString(10));return a.low}},{key:"throwError",value:function(a){a=Error(a);var b=this.errorHandler;b&&b(a);throw a;}},{key:"checkRGB",value:function(a){this.checkRGBValue(a.red,"red");this.checkRGBValue(a.green,
+"green");this.checkRGBValue(a.blue,"blue")}},{key:"checkRGBValue",value:function(a,b){Number.isInteger(a)||this.throwError("Provided color value "+a+" for "+b+" channel is not an integer (0 to 255).");(0>a||255<a)&&this.throwError("Provided color value "+a+" for "+b+" channel is not in expected range of 0 to 255.")}},{key:"config",get:function(){return this._config},set:function(a){this._config=a;this.ngviewer.display.container[q.b]=this._config}},{key:"createdSegmentationUserLayers",get:function(){return this._createdSegmentationUserLayers.unseen()}}],
+[{key:"create",value:function(b,c){b=b||{};var e=document.getElementById("neuroglancer-container");if(e[q.b])throw b=Error("Viewer is already created in this container: "+e),c&&c(b),b;e[q.b]=b;Object(f.a)(b);Object(h.b)(e,b);e=Object(d.a)();Object(h.a)(e,b);0===e.layerManager.managedLayers.length&&a.restoreInitialState(e,b);return new a(e,b,c)}},{key:"restoreInitialState",value:function(a,b){(b=b.dataset&&b.dataset.initialNgState)&&a.state.restoreState(b)}}]);return a}()},function(g,e,a){e.a=function(){var a=
+window.viewer=Object(p.a)();Object(m.a)(a.inputEventBindings);a.registerDisposer(new c.a(a.state)).updateFromUrlHash();Object(n.a)(a);Object(n.b)(a);return a};var p=a(280),n=a(311),m=a(312),c=a(154)},function(g,e,a){e.a=function(a){Object(c.a)();Object(c.b)();try{var b=new n.a(document.getElementById("neuroglancer-container"));return new m.a(b,a)}catch(f){throw p.a.showMessage("Error: "+f.message),f;}};a(282);var p=a(40),n=a(130),m=a(158),c=a(310);a(281)},function(g,e){},function(g,e,a){a(283);a(284)},
+function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,
+configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}g=a(156);var c=a(19);e=a(28);var b=a(1),d=a(3),f=a(16),h=a(102),q=a(18),k=function z(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return z(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},t=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;
+d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),r=function(a){function b(a,c,d,f){p(this,b);var e=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));e.chunkDataSize=c;e.channelStride=c[0]*c[1]*c[2];Object(h.e)(e,a,d,c[0],c[1],c[2]*f);return e}m(b,a);t(b,null,[{key:"get",value:function(a,c,f,e){return a.memoize.get("sliceview.UncompressedTextureLayout:"+Object(d.q)(c)+","+(f+","+e),function(){return new b(a,
+c,f,e)})}}]);return b}(b.a),l=function(a){function b(a,c,d,f){p(this,b);a=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,f));a.dataType=c;a.numChannels=d;Object(h.c)(a,c);a.textureAccessHelper=new h.a("chunkData");return a}m(b,a);t(b,[{key:"defineShader",value:function(a){k(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);var c=this.textureAccessHelper;c.defineShader(a);a.addFragmentCode(c.getAccessor("readVolumeData","uVolumeChunkSampler",this.dataType));
+1<this.numChannels?(a.addUniform("highp float","uChannelStride"),a.addFragmentCode("\nfloat getChannelOffset(int channelIndex) {\n  return float(channelIndex) * uChannelStride;\n}\n")):a.addFragmentCode("float getChannelOffset(int channelIndex) { return 0.0; }");a.addFragmentCode("\nfloat getIndexIntoChunk (int channelIndex) {\n  vec3 chunkDataPosition = getPositionWithinChunk();\n  return chunkDataPosition.x + uChunkDataSize.x * (chunkDataPosition.y + uChunkDataSize.y * chunkDataPosition.z) + getChannelOffset(channelIndex);\n}\n");
+c=Object(q.a)(this.dataType);a.addFragmentCode("\n"+c+" getDataValue (int channelIndex) {\n  return readVolumeData(getIndexIntoChunk(channelIndex));\n}\n")}},{key:"setupTextureLayout",value:function(a,b,c){1<this.numChannels&&a.uniform1f(b.uniform("uChannelStride"),c.channelStride);this.textureAccessHelper.setupTextureLayout(a,b,c)}},{key:"getTextureLayout",value:function(a,b){return r.get(a,b,this.texelsPerElement,this.numChannels)}},{key:"setTextureData",value:function(a,b,c){Object(h.f)(a,b,this,
+c)}}],[{key:"get",value:function(a,c,d){var f="sliceview.UncompressedChunkFormat:"+c+":"+d;return a.memoize.get(f,function(){return new b(a,c,d,f)})}}]);return b}(g.a),u=function(a){function b(){p(this,b);return n(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}m(b,a);t(b,[{key:"setTextureData",value:function(a){var b=this.source,c=b.chunkFormatHandler,d=c.chunkFormat,f;this.textureLayout=this.chunkDataSize===b.spec.chunkDataSize?f=c.textureLayout.addRef():f=d.getTextureLayout(a,
+this.chunkDataSize);this.chunkFormat.setTextureData(a,f,this.data)}},{key:"getChannelValueAt",value:function(a,b){var d=this.chunkDataSize;b=a[0]+d[0]*(a[1]+d[1]*(a[2]+d[2]*b));d=this.chunkFormat.dataType;a=this.data;switch(d){case c.a.UINT8:case c.a.FLOAT32:case c.a.UINT16:case c.a.UINT32:return a[b];case c.a.UINT64:return b*=2,new f.a(a[b],a[b+1])}throw Error("Invalid data type: "+d);}}]);return b}(g.b),A=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));
+d.chunkFormat=d.registerDisposer(l.get(a,c.dataType,c.numChannels));d.textureLayout=d.registerDisposer(d.chunkFormat.getTextureLayout(a,c.chunkDataSize));return d}m(b,a);t(b,[{key:"getChunk",value:function(a,b){return new u(a,b)}}]);return b}(b.a);Object(e.c)(function(a,b){return null==b.compressedSegmentationBlockSize?new A(a,b):null})},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var c=a(285),b=a(286);g=a(156);var d=a(19);e=a(28);var f=a(1),h=a(3),q=a(16),k=a(102),t=a(18),r=function v(a,b,c){null===a&&(a=Function.prototype);
+var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return v(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},l=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=function(a){function b(a,c,d,f){p(this,b);var e=n(this,(b.__proto__||
+Object.getPrototypeOf(b)).call(this));e.chunkDataSize=c;e.subchunkSize=d;Object(k.d)(e,a,1,f);a=e.subchunkGridSize=h.p.create();for(f=0;3>f;++f)a[f]=Math.ceil(c[f]/d[f]);return e}m(b,a);l(b,null,[{key:"get",value:function(a,c,d,f){return a.memoize.get("sliceview.CompressedSegmentationTextureLayout:"+Object(h.q)(c)+","+(Object(h.q)(d)+","+f),function(){return new b(a,c,d,f)})}}]);return b}(f.a),A=Object(k.c)(new k.b,d.a.UINT32),y=function(a){function b(a,c,d,f){p(this,b);f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,
+f));f.dataType=a;f.subchunkSize=c;f.numChannels=d;f.textureAccessHelper=new k.a("chunkData");return f}m(b,a);l(b,[{key:"defineShader",value:function(a){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"defineShader",this).call(this,a);var c=this.textureAccessHelper;c.defineShader(a);var f=function(a){return"compressedSegmentationChunkFormat_"+a};a.addUniform("highp vec3","uSubchunkGridSize");a.addUniform("highp vec3","uSubchunkSize");a.addFragmentCode(t.f);var e=this.dataType,h=Object(t.a)(e);
+e===d.a.UINT64&&a.addFragmentCode(t.l);a.addFragmentCode(c.getAccessor(f("readTextureValue"),"uVolumeChunkSampler",d.a.UINT32));a.addFragmentCode(t.o);a.addFragmentCode(t.n);c="\nfloat "+f("getChannelOffset")+"(int channelIndex) {\n  if (channelIndex == 0) {\n    return "+this.numChannels+".0;\n  }\n  vec4 v = "+f("readTextureValue")+"(float(channelIndex)).value;\n  return uintleToFloat(v.xyz);\n}\n"+h+" getDataValue (int channelIndex) {\n  vec3 chunkPosition = getPositionWithinChunk();\n\n  // TODO: maybe premultiply this and store as uniform.\n  vec3 subchunkGridPosition = floor(chunkPosition / uSubchunkSize);\n  float subchunkGridOffset = getFortranOrderIndex(subchunkGridPosition, uSubchunkGridSize);\n\n  float channelOffset = "+
+f("getChannelOffset")+"(channelIndex);\n\n  // TODO: Maybe just combine this offset into subchunkGridStrides.\n  float subchunkHeaderOffset = subchunkGridOffset * 2.0 + channelOffset;\n\n  vec4 subchunkHeader0 = "+f("readTextureValue")+"(subchunkHeaderOffset).value;\n  vec4 subchunkHeader1 = "+f("readTextureValue")+"(subchunkHeaderOffset + 1.0).value;\n\n  float outputValueOffset = uintleToFloat(subchunkHeader0.xyz) + channelOffset;\n  float encodingBits = unnormalizeUint8(subchunkHeader0[3]);\n  if (encodingBits > 0.0) {\n    vec3 subchunkPosition = floor(min(chunkPosition - subchunkGridPosition * uSubchunkSize, uSubchunkSize - 1.0));\n    float subchunkOffset = getFortranOrderIndex(subchunkPosition, uSubchunkSize);\n    highp float encodedValueBaseOffset = uintleToFloat(subchunkHeader1.xyz) + channelOffset;\n    highp float encodedValueOffset = floor(encodedValueBaseOffset + subchunkOffset * encodingBits / 32.0);\n    vec4 encodedValue = "+
+f("readTextureValue")+"(encodedValueOffset).value;\n    float wordOffset = mod(subchunkOffset * encodingBits, 32.0);\n    // If the value is in the first byte, then 0 <= wordOffset < 8.\n    // We need to mod by 2**encodedBits\n    float wordShifter = pow(2.0, -wordOffset);\n    float encodedValueMod = pow(2.0, encodingBits);\n    float encodedValueShifted;\n    if (wordOffset < 16.0) {\n      encodedValueShifted = dot(unnormalizeUint8(encodedValue.xy), vec2(1.0, 256.0));\n    } else {\n      encodedValueShifted = dot(unnormalizeUint8(encodedValue.zw), vec2(256.0 * 256.0, 256.0 * 256.0 * 256.0));\n    }\n    encodedValueShifted = floor(encodedValueShifted * wordShifter);\n    float decodedValue = mod(encodedValueShifted, encodedValueMod);\n    outputValueOffset += decodedValue * "+
+(this.dataType===d.a.UINT64?"2.0":"1.0")+";\n  }\n  "+h+" result;\n";c=e===d.a.UINT64?c+("\n  result.low = "+f("readTextureValue")+"(outputValueOffset).value;\n  result.high = "+f("readTextureValue")+"(outputValueOffset+1.0).value;\n"):c+("\n  result.value = "+f("readTextureValue")+"(outputValueOffset).value;\n");a.addFragmentCode(c+"\n  return result;\n}\n")}},{key:"setupTextureLayout",value:function(a,b,c){a.uniform3fv(b.uniform("uSubchunkGridSize"),c.subchunkGridSize);this.textureAccessHelper.setupTextureLayout(a,
+b,c)}},{key:"setTextureData",value:function(a,b,c){Object(k.f)(a,b,A,c)}},{key:"getTextureLayout",value:function(a,b,c){return u.get(a,b,this.subchunkSize,c)}},{key:"beginSource",value:function(a,c){r(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"beginSource",this).call(this,a,c);a.uniform3fv(c.uniform("uSubchunkSize"),this.subchunkSize)}}],[{key:"get",value:function(a,c,d,f){var e="sliceview.CompressedSegmentationChunkFormat:"+c+":"+f,g=e+":"+Object(h.q)(d);return a.memoize.get(g,function(){return new b(c,
+d,f,e)})}}]);return b}(g.a),z=function(a){function f(){p(this,f);return n(this,(f.__proto__||Object.getPrototypeOf(f)).apply(this,arguments))}m(f,a);l(f,[{key:"setTextureData",value:function(a){var b=this.data,c=this.chunkFormat,d=this.textureLayout=c.getTextureLayout(a,this.chunkDataSize,b.length);c.setTextureData(a,d,b)}},{key:"getChannelValueAt",value:function(a,f){var e=this.chunkDataSize,h=this.chunkFormat,g=this.data;f=g[f];if(h.dataType===d.a.UINT64){var k=new q.a;Object(b.a)(k,g,f,e,h.subchunkSize,
+a);return k}return Object(c.a)(g,f,e,h.subchunkSize,a)}}]);return f}(g.b),B=function(a){function b(a,c){p(this,b);var f=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this)),e=c.dataType;if(e!==d.a.UINT64&&e!==d.a.UINT32)throw Error("Unsupported compressed segmentation data type: "+d.a[e]);f.chunkFormat=f.registerDisposer(y.get(a,c.dataType,c.compressedSegmentationBlockSize,c.numChannels));return f}m(b,a);l(b,[{key:"getChunk",value:function(a,b){return new z(a,b)}}]);return b}(f.a);Object(e.c)(function(a,
+b){return null!=b.compressedSegmentationBlockSize?new B(a,b):null})},function(g,e,a){e.a=function(a,e,c,b,d){e=Object(p.a)(a,e,c,b,d,1)+e;return a[e]};var p=a(157)},function(g,e,a){e.a=function(a,e,c,b,d,f){c=Object(p.a)(e,c,b,d,f,2)+c;a.low=e[c];a.high=e[c+1];return a};var p=a(157)},function(g,e,a){a.d(e,"a",function(){return c});var p=a(6),n=a(7),m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,e){c&&a(b.prototype,c);e&&a(b,e);return b}}(),c=function(){function a(b,c,e){e=void 0===e?c:e;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");this.enumType=b;this.value_=c;this.defaultValue=e;this.changed=new n.a}m(a,[{key:"reset",value:function(){this.value=this.defaultValue}},{key:"restoreState",value:function(a){this.value=Object(p.n)(a,this.enumType)}},{key:"toJSON",value:function(){return this.enumType[this.value_].toLowerCase()}},
+{key:"value",set:function(a){this.value_!==a&&(this.value_=a,this.changed.dispatch())},get:function(){return this.value_}}]);return a}()},function(g,e){},function(g,e,a){function p(a,c){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!c||"object"!==typeof c&&"function"!==typeof c?a:c}function n(a,c){if("function"!==typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function, not "+typeof c);a.prototype=Object.create(c&&
+c.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});c&&(Object.setPrototypeOf?Object.setPrototypeOf(a,c):a.__proto__=c)}function m(a){return a.startsWith("key")?a.substring(3):a.startsWith("digit")||a.startsWith("arrow")?a.substring(5):a}a.d(e,"a",function(){return c});g=a(45);a(290);var c=function(a){function b(a){function c(a,b){for(var f=$jscomp.makeIterator(a.parents),e=f.next();!e.done;e=f.next())e=e.value,void 0!==e.label?d(e.label,e):c(e,b);a=$jscomp.makeIterator(a.bindings.entries());
+for(f=a.next();!f.done;f=a.next()){e=$jscomp.makeIterator(f.value);f=e.next().value;e=e.next().value;var h=f.indexOf(":");f=f.substring(h+1);b.set(f,e.action)}}function d(a,b){l.has(b)||(a={label:a,entries:new Map},c(b,a.entries),l.set(b,a))}if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var f=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this)),e=f.content;e.classList.add("describe-key-bindings");var g=document.createElement("div");g.classList.add("describe-key-bindings-container");
+var l=new Map;a=$jscomp.makeIterator(a);for(var n=a.next();!n.done;n=a.next()){var A=$jscomp.makeIterator(n.value);n=A.next().value;A=A.next().value;d(n,A)}a=$jscomp.makeIterator(l.values());for(n=a.next();!n.done;n=a.next()){A=n.value;n=document.createElement("h2");n.textContent=A.label;g.appendChild(n);n=document.createElement("div");n.className="dl";A=$jscomp.makeIterator(A.entries);for(var y=A.next();!y.done;y=A.next()){var z=$jscomp.makeIterator(y.value);y=z.next().value;z=z.next().value;var B=
+document.createElement("div"),x=document.createElement("div");x.className="definition-outer-container";B.className="definition-container";var v=document.createElement("div");v.className="dt";v.textContent=y.split("+").map(m).join("+");y=document.createElement("div");y.className="dd";y.textContent=z;B.appendChild(v);B.appendChild(y);n.appendChild(x);x.appendChild(B)}g.appendChild(n)}e.appendChild(g);return f}n(b,a);return b}(g.a)},function(g,e){},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function m(a){var b=document.createElement("div");b.textContent=a.value;return b}e.b=function(a){var b=document.createElement("div");
+b.className="autocomplete-completion-with-description";b.textContent=a.value;var c=document.createElement("div");c.className="autocomplete-completion-description";c.textContent=a.description||"";b.appendChild(c);return b};a.d(e,"a",function(){return z});g=a(24);var c=a.n(g),b=a(26);g=a(1);var d=a(9),f=a(292),h=a(51),q=a(293),k=a(294),t=a(7),r=a(161),l=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),u=function x(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return x(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(295);$jscomp.initSymbol();var A=Symbol("autocompleteIndex"),y=h.a.fromObject({arrowdown:{action:"cycle-next-active-completion"},arrowup:{action:"cycle-prev-active-completion"},tab:{action:"choose-active-completion-or-prefix",
+preventDefault:!1},enter:{action:"choose-active-completion",preventDefault:!1},escape:{action:"cancel",preventDefault:!1,stopPropagation:!1}}),z=function(a){function e(a){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var d=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));d.inputChanged=new t.b;d.prevInputValue="";d.completionsVisible=!1;d.activeCompletionPromise=null;d.activeCompletionCancellationToken=void 0;d.hasFocus=!1;d.completionResult=null;d.dropdownContentsStale=
+!0;d.updateHintScrollPositionTimer=null;d.completionElements=null;d.hasResultForDropdown=!1;d.commonPrefix="";d.activeIndex=-1;d.dropdownStyleStale=!0;d.completer=a.completer;a=void 0===a.delay?200:a.delay;var f=d.scheduleUpdateCompletions=c()(function(){var a=d.activeCompletionCancellationToken=new b.b,c=d.activeCompletionPromise=d.completer(d.value,a);null!==c&&c.then(function(a){d.activeCompletionPromise===c&&(d.setCompletions(a),d.activeCompletionPromise=null)})},a);d.registerDisposer(function(){f.cancel()});
+a=d.element=document.createElement("div");a.className="autocomplete";var g=document.createElement("div");g.className="autocomplete-dropdown-wrapper";var k=d.dropdownElement=document.createElement("div");k.className="autocomplete-dropdown";var l=d.promptElement=document.createElement("label");l.className="autocomplete-prompt";var q=d.inputWrapperElement=document.createElement("div");q.className="autocomplete-input-wrapper";a.appendChild(l);var m=d.inputElement=document.createElement("input");m.type=
+"text";m.autocomplete="off";m.spellcheck=!1;m.className="autocomplete-input";Object(r.a)(l,m);l=d.hintElement=document.createElement("input");l.type="text";l.spellcheck=!1;l.className="autocomplete-hint";l.disabled=!0;q.appendChild(l);q.appendChild(m);g.appendChild(q);g.appendChild(k);a.appendChild(g);d.registerInputHandler();d.handleInputChanged("");d.registerEventListener(d.inputElement,"focus",function(){d.hasFocus||(d.hasFocus=!0,d.dropdownStyleStale=!0,d.updateDropdown())});d.registerEventListener(d.inputElement,
+"blur",function(){d.hasFocus&&(d.hasFocus=!1,d.updateDropdown())});d.registerEventListener(a.ownerDocument.defaultView,"resize",function(){d.dropdownStyleStale=!0});d.registerEventListener(a.ownerDocument.defaultView,"scroll",function(){d.dropdownStyleStale=!0});d.registerEventListener(d.dropdownElement,"mousedown",d.handleDropdownMousedown.bind(d));d.registerEventListener(d.inputElement,"keydown",function(){d.hintScrollPositionMayBeStale()});d.registerEventListener(d.inputElement,"mousemove",function(a){0!==
+a.buttons&&d.hintScrollPositionMayBeStale()});d.registerDisposer(new h.b(m,y)).allShortcutsAreGlobal=!0;Object(h.c)(m,"cycle-next-active-completion",function(){d.cycleActiveCompletion(1)});Object(h.c)(m,"cycle-prev-active-completion",function(){d.cycleActiveCompletion(-1)});Object(h.c)(m,"choose-active-completion-or-prefix",function(a){d.selectActiveCompletion(!0)&&a.preventDefault()});Object(h.c)(m,"choose-active-completion",function(a){d.selectActiveCompletion(!1)&&a.preventDefault()});Object(h.c)(m,
+"cancel",function(a){a.stopPropagation();d.cancel()&&(a.detail.preventDefault(),a.detail.stopPropagation())});return d}n(e,a);l(e,[{key:"hintScrollPositionMayBeStale",value:function(){""!==this.hintElement.value&&this.scheduleUpdateHintScrollPosition()}},{key:"handleDropdownMousedown",value:function(a){this.inputElement.focus();for(var b=this.dropdownElement,c=a.target;c instanceof HTMLElement;c=c.parentElement){var d=c[A];if(void 0!==d){this.selectCompletion(d);break}if(c===b)break}a.preventDefault()}},
+{key:"cycleActiveCompletion",value:function(a){if(null!==this.completionResult){var b=this.activeIndex,c=this.completionResult.completions.length;this.setActiveIndex(-1===b?0<a?0:c-1:(b+a+c)%c)}}},{key:"registerInputHandler",value:function(){for(var a=this,b=function(b){b=a.inputElement.value;b!==a.prevInputValue&&(a.prevInputValue=b,a.handleInputChanged(b))},c=$jscomp.makeIterator(["input"]),d=c.next();!d.done;d=c.next())this.registerEventListener(this.inputElement,d.value,b,!1)}},{key:"shouldShowDropdown",
+value:function(){return null!==this.completionResult&&this.hasFocus?this.hasResultForDropdown:!1}},{key:"updateDropdownStyle",value:function(){Object(f.a)(this.dropdownElement,this.inputElement,{horizontal:!1});this.dropdownStyleStale=!1}},{key:"updateDropdown",value:function(){if(this.shouldShowDropdown()){var a=this.dropdownElement,b=this.activeIndex;if(this.dropdownContentsStale){var c=this.completionResult,d=void 0===c.makeElement?m:c.makeElement;this.completionElements=c.completions.map(function(f,
+e){f=d.call(c,f);f[A]=e;f.classList.add("autocomplete-completion");b===e&&f.classList.add("autocomplete-completion-active");a.appendChild(f);return f});this.dropdownContentsStale=!1}this.dropdownStyleStale&&this.updateDropdownStyle();this.completionsVisible||(a.style.display="block",this.completionsVisible=!0);-1!==b&&Object(k.a)(this.completionElements[b])}else this.completionsVisible&&(this.dropdownElement.style.display="none",this.completionsVisible=!1)}},{key:"setCompletions",value:function(a){this.clearCompletions();
+var b=a.completions;0!==b.length&&(this.completionResult=a,1===b.length?(b=b[0],a.showSingleResult?this.hasResultForDropdown=!0:b.value.startsWith(this.prevInputValue)?this.hasResultForDropdown=!1:this.hasResultForDropdown=!0,a.selectSingleResult?this.setActiveIndex(0):this.setHintValue(this.getCompletedValueByIndex(0))):(this.hasResultForDropdown=!0,b=Object(q.a)(function(){function b(b,h){for(;;)switch(c){case 0:e=$jscomp.makeIterator(a.completions),f=e.next();case 1:if(f.done){c=3;break}d=f.value;
+c=4;return{value:d.value,done:!1};case 4:if(void 0===h){c=5;break}c=-1;throw h;case 5:case 2:f=e.next();c=1;break;case 3:c=-1;default:return{value:void 0,done:!0}}}var c=0,d,f,e,h={next:function(a){return b(a,void 0)},throw:function(a){return b(void 0,a)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();h[Symbol.iterator]=function(){return this};return h}()),b=this.getCompletedValue(b),b.startsWith(this.prevInputValue)&&(this.commonPrefix=b,this.setHintValue(b))),
+this.updateDropdown())}},{key:"scheduleUpdateHintScrollPosition",value:function(){var a=this;null===this.updateHintScrollPositionTimer&&(this.updateHintScrollPositionTimer=setTimeout(function(){a.updateHintScrollPosition()},0))}},{key:"setHintValue",value:function(a){var b=this.prevInputValue;a!==b&&a.startsWith(b)||(a="");this.hintElement.value=a;this.scheduleUpdateHintScrollPosition()}},{key:"setActiveIndex",value:function(a){if(!this.dropdownContentsStale){var b=this.activeIndex;-1!==b&&this.completionElements[b].classList.remove("autocomplete-completion-active");
+-1!==a&&(b=this.completionElements[a],b.classList.add("autocomplete-completion-active"),Object(k.a)(b))}-1!==a&&this.setHintValue(this.getCompletedValueByIndex(a));this.activeIndex=a}},{key:"getCompletedValueByIndex",value:function(a){return this.getCompletedValue(this.completionResult.completions[a].value)}},{key:"getCompletedValue",value:function(a){return this.prevInputValue.substring(0,this.completionResult.offset)+a}},{key:"selectActiveCompletion",value:function(a){var b=this.activeIndex;if(-1===
+b){if(!a)return!1;a=this.completionResult;if(null!==a&&1===a.completions.length)b=0;else return a=this.commonPrefix,a.length>this.value.length?(this.value=a,!0):!1}a=this.getCompletedValueByIndex(b);if(this.value===a)return!1;this.value=a;return!0}},{key:"selectCompletion",value:function(a){this.value=this.getCompletedValueByIndex(a)}},{key:"cancel",value:function(){return!1}},{key:"updateHintScrollPosition",value:function(){this.updateHintScrollPositionTimer=null;this.hintElement.scrollLeft=this.inputElement.scrollLeft}},
+{key:"cancelActiveCompletion",value:function(){var a=this.activeCompletionCancellationToken;void 0!==a&&a.cancel();this.activeCompletionCancellationToken=void 0;this.activeCompletionPromise=null}},{key:"handleInputChanged",value:function(a){this.cancelActiveCompletion();this.hintElement.value="";this.clearCompletions();this.inputChanged.dispatch(a);this.scheduleUpdateCompletions()}},{key:"clearCompletions",value:function(){null!==this.completionResult&&(this.activeIndex=-1,this.completionElements=
+this.completionResult=null,this.dropdownStyleStale=this.dropdownContentsStale=!0,this.commonPrefix="",Object(d.a)(this.dropdownElement),this.updateDropdown())}},{key:"disposed",value:function(){Object(d.b)(this.element);this.cancelActiveCompletion();null!==this.updateHintScrollPositionTimer&&(clearTimeout(this.updateHintScrollPositionTimer),this.updateHintScrollPositionTimer=null);u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}},{key:"disabled",get:function(){return this.inputElement.disabled},
+set:function(a){this.inputElement.disabled=a}},{key:"value",get:function(){return this.prevInputValue},set:function(a){a!==this.prevInputValue&&(this.prevInputValue=this.inputElement.value=a,this.handleInputChanged(a))}}]);return e}(g.a)},function(g,e,a){e.a=function(a,e,g){var c=void 0===g?{}:g,b=void 0===c.horizontal?!1:c.horizontal,d=void 0===c.vertical?!0:c.vertical,f=void 0===c.topMargin?6:c.topMargin,h=void 0===c.bottomMargin?6:c.bottomMargin,q=void 0===c.leftMargin?6:c.leftMargin,k=void 0===
+c.rightMargin?6:c.rightMargin;g=void 0===c.maxHeight?!0:c.maxHeight;c=void 0===c.maxWidth?!0:c.maxWidth;e=e.getBoundingClientRect();if(b){b=e.right;var m=a.ownerDocument.documentElement.clientHeight-e.left;b>m?(a.style.left="",a.style.right="0",c&&(a.style.maxWidth=b-q+"px")):(a.style.right="",a.style.left="0",c&&(a.style.maxWidth=m-k+"px"))}d&&(d=e.top-f,h=a.ownerDocument.documentElement.clientHeight-e.bottom-h,d>3*h?(a.style.top="",a.style.bottom="100%",g&&(a.style.maxHeight=d+"px")):(a.style.top=
+"100%",a.style.bottom="",g&&(a.style.maxHeight=h+"px")))}},function(g,e,a){e.a=function(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=a[Symbol.iterator]();var e=a.next(),g=e.value;if(e.done)return"";for(e=g.length;0<e;){var c=a.next(),b=c.value;if(c.done)break;for(c=0;c<e&&g.charCodeAt(c)===b.charCodeAt(c);++c);e=c}return g.substring(0,e)}},function(g,e,a){e.a=function(a){var e=a.parentElement,g=a.offsetLeft-e.clientLeft,c=a.offsetTop-e.clientTop,b=e.scrollLeft,d=e.scrollTop;c=Math.max(0,
+c+a.offsetHeight-(d+e.clientHeight))||Math.min(0,c-d);e.scrollLeft+=Math.max(0,g+a.offsetWidth-(b+e.clientWidth))||Math.min(0,g-b);e.scrollTop+=c}},function(g,e){},function(g,e,a){e.a=function(){var a=document.createElement("button");a.type="submit";a.className="hidden-submit-button";a.style.margin="0";a.style.border="0";a.style.padding="0";a.style.width="0";a.style.height="0";a.style.overflow="hidden";a.tabIndex=-1;return a}},function(g,e){},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
+}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b,c){var d=
+Object(k.c)(a,"dragenter",function(b){void 0!==Object(q.c)(b)&&a.classList.add("neuroglancer-drag-over")}),e=Object(k.c)(a,"dragleave",function(){a.classList.remove("neuroglancer-drag-over")}),h=Object(k.c)(a,"dragover",function(a){Object(f.c)(a)?(Object(r.e)(a,Object(f.b)(a,b)),a.stopPropagation(),a.preventDefault()):void 0!==Object(q.c)(a)&&(Object(q.f)(a,b,!0),a.stopPropagation(),a.preventDefault())}),g=Object(k.c)(a,"drop",function(d){a.classList.remove("neuroglancer-drag-over");if(Object(f.c)(d)){d.stopPropagation();
+try{var e=JSON.parse(d.dataTransfer.getData(f.d))}catch(P){return}var h=Object(q.b)(d,b,!1,!1,!0);if(void 0!==h&&h.finalize(d)){d.preventDefault();d.dataTransfer.dropEffect=Object(r.c)();Object(q.a)(d);var g=c();h=$jscomp.makeIterator(h.layers.keys());for(d=h.next();!d.done;d=h.next())g.layerSpecification.add(d.value);try{g.restoreState(e)}catch(P){}}}else if(g=Object(q.b)(d,b,"copy"===Object(r.c)(),!1,!0),void 0!==g&&g.finalize(d))for(d.preventDefault(),d.dataTransfer.dropEffect=Object(r.c)(),Object(q.a)(d),
+e=c(),g=$jscomp.makeIterator(g.layers.keys()),d=g.next();!d.done;d=g.next())e.layerSpecification.add(d.value)});return function(){g();h();e();d()}}function b(a,b){var c=document.createElement("div");c.style.flex="1";c.style.width="0px";if("string"===typeof b){if(void 0!==a.parent)throw Error("Invalid layout component specification: "+JSON.stringify(b));return new x(c,b,a.viewer)}Object(l.u)(b);var d=Object(l.w)(b,"type",l.B);switch(d){case "row":case "column":return new v(c,d,Object(l.w)(b,"children",
+function(b){b=Object(l.a)(b,function(a){return a});if(void 0===a.parent&&0===b.length)throw Error("Stack layout requires at least one child.");return b}),a);case "viewer":d=a.viewer;var e=new h.a(d.layerSpecification.addRef());c=new f.a(c,{display:d.display,navigationState:d.navigationState.addRef(),perspectiveNavigationState:d.perspectiveNavigationState.addRef(),mouseState:d.mouseState,showAxisLines:d.showAxisLines,showScaleBar:d.showScaleBar,showPerspectiveSliceViews:d.showPerspectiveSliceViews,
+layerSpecification:e,inputEventBindings:d.inputEventBindings,visibility:d.visibility},{showLayerPanel:d.options.showLayerPanel,showViewerMenu:!0});try{c.restoreState(b)}catch(O){throw c.dispose(),O;}return c}throw Error("Invalid layout component specification: "+JSON.stringify(b));}a.d(e,"a",function(){return E});g=a(24);var d=a.n(g),f=a(299),h=a(20),q=a(105),k=a(1),t=a(9),r=a(106),l=a(6),u=a(7),A=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=
+!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),y=function C(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return C(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(307);$jscomp.initSymbol();var z=Symbol("layoutComponentContainer"),B=function(a){function e(a,b,d){p(this,e);var f=n(this,
+(e.__proto__||Object.getPrototypeOf(e)).call(this));f.viewer=a;f.parent=d;f.changed=new u.a;f.element=document.createElement("div");var h=f.element;h.style.display="flex";h.style.flex="1";h.style.position="relative";h.style.alignItems="stretch";h.foo="hello";h[z]=f;f.setSpecification(b);var g=[];a=function(a){var b=document.createElement("div");b.className="neuroglancer-layout-split-drop-zone";b.style[a]="0";switch(a){case "left":case "right":var d="row";b.style.width="10px";b.style.height="100%";
+break;case "top":case "bottom":d="column",b.style.height="10px",b.style.width="100%"}b.style.display="none";g.push({element:b,direction:d,orientation:a});h.appendChild(b);f.registerDisposer(c(b,f.viewer.layerSpecification,function(){return f.split(a).newContainer.component}))};a("left");a("right");a("top");a("bottom");var k=!1;f.registerEventListener(h,"dragenter",function(a){if(!k&&void 0!==Object(q.c)(a)){k=!0;a=$jscomp.makeIterator(g);for(var b=a.next();!b.done;b=a.next()){var c=b.value;b=c.element;
+var e=c.direction;c=c.orientation;if(void 0===d||e!==d.direction||("left"!==c&&"top"!==c||d.get(0)===f)&&("bottom"!==c&&"right"!==c||d.get(d.length-1)===f))c=f.component,c instanceof v&&c.direction===e||(b.style.display="block")}}},!0);f.registerEventListener(h,"drop",function(a){if(k){k=!1;a=$jscomp.makeIterator(g);for(var b=a.next();!b.done;b=a.next())b.value.element.style.display="none"}});f.registerEventListener(h,"dragleave",function(a){a=a.relatedTarget;if(k&&!(a instanceof HTMLElement&&f.element.contains(a))){k=
+!1;a=$jscomp.makeIterator(g);for(var b=a.next();!b.done;b=a.next())b.value.element.style.display="none"}},!0);return f}m(e,a);A(e,[{key:"unsetComponent",value:function(){var a=this.componentValue;void 0!==a&&(a.changed.remove(this.changed.dispatch),this.element.removeChild(a.element),a.dispose())}},{key:"setComponent",value:function(a){var b=this;this.unsetComponent();this.componentValue=a;a.changed.add(this.changed.dispatch);this.element.appendChild(a.element);if(a instanceof f.a){var c=a.layerManager,
+e=a.registerCancellable(d()(function(){0===c.managedLayers.length&&b.dispose()},0));a.registerDisposer(c.layersChanged.add(function(){0===c.managedLayers.length&&e()}));e()}else if(a instanceof v){var h=a.registerCancellable(d()(function(){var c=a.length;if(0===c&&void 0!==b.parent)b.dispose();else if(1===c){c=a.get(0).component;if(void 0===b.parent&&c instanceof f.a){var d=c.layout.name;c.viewerNavigationState.copyToParent();var e=new Set(c.layerManager.managedLayers),h=c.layerSpecification;h.rootLayers.filter(function(a){return e.has(a)});
+h.rootLayers.managedLayers=Array.from(c.layerManager.managedLayers);h.rootLayers.layersChanged.dispatch()}else d=c.toJSON();b.setSpecification(d)}},0));a.registerDisposer(a.changed.add(function(){2>a.length&&h()}));h()}}},{key:"toJSON",value:function(){return this.component.toJSON()}},{key:"setSpecification",value:function(a){this.setComponent(b(this,a))}},{key:"disposed",value:function(){this.unsetComponent();this.componentValue=void 0;y(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),
+"disposed",this).call(this)}},{key:"split",value:function(a){var b={type:"viewer"},c=this.parent;if(void 0!==c){if("left"===a&&"row"===c.direction||"top"===a&&"column"===c.direction)return{newContainer:c.insertChild(b,this),existingContainer:this};if("right"===a&&"row"===c.direction||"bottom"===a&&"column"===c.direction)return{newContainer:c.insertChild(b),existingContainer:this}}c=this.component;c=c instanceof x?c.layerGroupViewer.toJSON():c.toJSON();var d="left"===a||"right"===a?"row":"column";
+switch(a){case "left":case "top":var f={type:d,children:[b,c]};var e=0;break;case "right":case "bottom":f={type:d,children:[c,b]},e=1}this.setSpecification(f);a=this.component;return{newContainer:a.get(e),existingContainer:a.get(1-e)}}},{key:"component",get:function(){return this.componentValue}}],[{key:"getFromElement",value:function(a){return a[z]}}]);return e}(k.a),x=function(a){function b(a,c,d){p(this,b);var e=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));e.element=a;e.layerGroupViewer=
+e.registerDisposer(new f.a(a,{display:d.display,navigationState:d.navigationState.addRef(),perspectiveNavigationState:d.perspectiveNavigationState.addRef(),mouseState:d.mouseState,showAxisLines:d.showAxisLines,showScaleBar:d.showScaleBar,showPerspectiveSliceViews:d.showPerspectiveSliceViews,layerSpecification:d.layerSpecification.addRef(),inputEventBindings:d.inputEventBindings,visibility:d.visibility},{showLayerPanel:d.options.showLayerPanel,showViewerMenu:!1}));e.layerGroupViewer.layout.name=c;
+return e}m(b,a);A(b,[{key:"toJSON",value:function(){return this.layerGroupViewer.layout.name}},{key:"changed",get:function(){return this.layerGroupViewer.layout.changed}}]);return b}(k.a),v=function(a){function b(a,c,d,f){p(this,b);var e=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));e.element=a;e.direction=c;e.container=f;e.changed=new u.a;a.classList.add("neuroglancer-stack-layout");a.classList.add("neuroglancer-stack-layout-"+c);a.style.display="flex";a.style.flexDirection=c;a.appendChild(e.makeDropPlaceholder(e));
+a=$jscomp.makeIterator(d);for(c=a.next();!c.done;c=a.next())e.insertChild(c.value);return e}m(b,a);$jscomp.initSymbol();$jscomp.initSymbolIterator();A(b,[{key:"makeDropPlaceholder",value:function(a){var b=this,d=document.createElement("div");d.className="neuroglancer-stack-layout-drop-placeholder";a.registerDisposer(c(d,this.viewer.layerSpecification,function(){var a=d.nextElementSibling,c;null!==a&&(c=B.getFromElement(a));return b.insertChild({type:"viewer",layers:[]},c).component}));a.registerDisposer(function(){Object(t.b)(d)});
+return d}},{key:"get",value:function(a){return B.getFromElement(this.element.children[2*a+1])}},{key:"insertChild",value:function(a,b){var c=this,d=new B(this.viewer,a,this);a=this.makeDropPlaceholder(d);d.element.classList.add("neuroglancer-stack-layout-child");d.registerDisposer(d.changed.add(this.changed.dispatch));d.registerDisposer(function(){c.element.removeChild(d.element);c.changed.dispatch()});b=void 0!==b?b.element:null;this.element.insertBefore(d.element,b);this.element.insertBefore(a,
+b);this.changed.dispatch();return d}},{key:"disposed",value:function(){this.clear();y(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),"disposed",this).call(this)}},{key:"clear",value:function(){for(;0!==this.length;)this.get(0).dispose()}},{key:Symbol.iterator,value:function(){function a(a,h){for(;;)switch(b){case 0:f=e,d=f.length,c=0;case 1:if(!(c<d)){b=3;break}b=4;return{value:e.get(c),done:!1};case 4:if(void 0===h){b=5;break}b=-1;throw h;case 5:case 2:++c;b=1;break;case 3:b=-1;default:return{value:void 0,
+done:!0}}}var b=0,c,d,f,e=this,h={next:function(b){return a(b,void 0)},throw:function(b){return a(void 0,b)},return:function(a){throw Error("Not yet implemented");}};$jscomp.initSymbolIterator();h[Symbol.iterator]=function(){return this};return h}},{key:"toJSON",value:function(){return{type:this.direction,children:Array.from(this).map(function(a){return a.toJSON()})}}},{key:"length",get:function(){return(this.element.childElementCount-1)/2}},{key:"viewer",get:function(){return this.container.viewer}}]);
+return b}(k.a),E=function(a){function b(a,c){p(this,b);var d=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));d.viewer=a;d.defaultSpecification=c;d.container=d.registerDisposer(new B(d.viewer,d.defaultSpecification,void 0));return d}m(b,a);A(b,[{key:"reset",value:function(){this.container.setSpecification(this.defaultSpecification)}},{key:"restoreState",value:function(a){this.container.setSpecification(a)}},{key:"disposed",value:function(){y(b.prototype.__proto__||Object.getPrototypeOf(b.prototype),
+"disposed",this).call(this)}},{key:"toJSON",value:function(){var a=this.container.toJSON();if(a!==this.defaultSpecification)return a}},{key:"changed",get:function(){return this.container.changed}},{key:"element",get:function(){return this.container.element}}]);return b}(k.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||
+"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){a=new q.a(a);var c=a.element;c.classList.add("neuroglancer-layer-group-viewer-context-menu");var d=document.createElement("button");
+d.textContent="Remove layer group";c.appendChild(d);a.registerEventListener(d,"click",function(){b.layerSpecification.layerManager.clear()});d=b.viewerNavigationState;d=$jscomp.makeIterator([["Position",d.position.link],["Cross-section orientation",d.crossSectionOrientation.link],["Cross-section zoom",d.crossSectionZoom.link],["Perspective orientation",d.perspectiveOrientation.link],["Perspective zoom",d.perspectiveZoom.link]]);for(var f=d.next();!f.done;f=d.next()){var e=$jscomp.makeIterator(f.value);
+f=e.next().value;e=e.next().value;e=a.registerDisposer(new y.a(e));var h=document.createElement("label");h.style.display="flex";h.style.flexDirection="row";h.style.whiteSpace="nowrap";h.textContent=f;h.appendChild(e.element);c.appendChild(h)}return a}e.c=function(a){return-1!==a.dataTransfer.types.indexOf("neuroglancer-layer-group-viewer")};e.b=function(a,b){if(a.shiftKey)return"copy";if(a.ctrlKey)return"move";a=x&&x.viewer.layerSpecification.rootLayers===b.rootLayers?x.viewer:void 0;return void 0!==
+a?"move":"copy"};a.d(e,"a",function(){return E});var b=a(71),d=a(300),f=a(20),h=a(55),q=a(104),k=a(105),t=a(164),r=a(64);g=a(1);var l=a(9),u=a(22),A=a(70),y=a(305),z=function C(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return C(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},B=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||
+!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(306);e.d="neuroglancer-layer-group-viewer";var x,v=function(a){function b(a){p(this,b);var c=n(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.position=new h.b(a.navigationState.position.addRef());c.crossSectionOrientation=new h.a(a.navigationState.pose.orientation.addRef());c.crossSectionZoom=new h.c(a.navigationState.zoomFactor.addRef());
+c.navigationState=c.registerDisposer(new h.e(new h.g(c.position.value,c.crossSectionOrientation.value),c.crossSectionZoom.value));c.perspectiveOrientation=new h.a(a.perspectiveNavigationState.pose.orientation.addRef());c.perspectiveZoom=new h.c(a.perspectiveNavigationState.zoomFactor.addRef());c.perspectiveNavigationState=c.registerDisposer(new h.e(new h.g(c.position.value.addRef(),c.perspectiveOrientation.value),c.perspectiveZoom.value));return c}m(b,a);B(b,[{key:"copyToParent",value:function(){for(var a=
+$jscomp.makeIterator([this.position,this.crossSectionOrientation,this.crossSectionZoom,this.perspectiveOrientation,this.perspectiveZoom]),b=a.next();!b.done;b=a.next())b.value.copyToPeer()}},{key:"register",value:function(a){a.add("position",this.position);a.add("crossSectionOrientation",this.crossSectionOrientation);a.add("crossSectionZoom",this.crossSectionZoom);a.add("perspectiveOrientation",this.perspectiveOrientation);a.add("perspectiveZoom",this.perspectiveZoom)}}]);return b}(g.a),E=function(a){function e(a,
+c,d){d=void 0===d?{}:d;p(this,e);var h=n(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));h.element=a;h.viewerState=c;h.state=new A.a;h.options=Object.assign({showLayerPanel:!0,showViewerMenu:!1},d);h.layerSpecification=h.registerDisposer(c.layerSpecification);h.viewerNavigationState=h.registerDisposer(new v(c));h.viewerNavigationState.register(h.state);h.layerSpecification instanceof f.a?h.state.add("layers",h.layerSpecification):h.state.add("layers",{changed:h.layerSpecification.changed,
+toJSON:function(){return h.layerSpecification.layerManager.managedLayers.map(function(a){return a.name})},reset:function(){throw Error("not implemented");},restoreState:function(){throw Error("not implemented");}});a.classList.add("neuroglancer-layer-group-viewer");h.registerDisposer(new r.a(a));h.layout=h.registerDisposer(new b.a(h,"xy"));h.state.add("layout",h.layout);h.registerActionBindings();h.registerDisposer(h.layerManager.useDirectly());h.registerDisposer(Object(t.a)(a,h.navigationState.position));
+h.makeUI();return h}m(e,a);B(e,[{key:"bindAction",value:function(a,b){this.registerDisposer(Object(u.c)(this.element,a,b))}},{key:"registerActionBindings",value:function(){var a=this;this.bindAction("add-layer",function(){a.layerPanel&&a.layerPanel.addLayerMenu()})}},{key:"toJSON",value:function(){return Object.assign({type:"viewer"},this.state.toJSON())}},{key:"reset",value:function(){this.state.reset()}},{key:"restoreState",value:function(a){this.state.restoreState(a)}},{key:"makeUI",value:function(){var a=
+this;this.element.style.flex="1";this.element.style.display="flex";this.element.style.flexDirection="column";var b=this.options;if(b.showLayerPanel){var f=this.layerPanel=this.registerDisposer(new d.a(this.display,this.layerSpecification,this.viewerNavigationState));b.showViewerMenu?(this.registerDisposer(c(f.element,this)),f.element.title="Right click for options, drag to move/copy layer group."):f.element.title="Drag to move/copy layer group.";f.element.draggable=!0;this.registerEventListener(f.element,
+"dragstart",function(b){Object(k.e)(b,{manager:a.layerSpecification,layers:a.layerManager.managedLayers});var c=function(){x&&x.viewer===a&&(x=void 0);a.unregisterDisposer(c)};x={viewer:a,disposer:c};a.registerDisposer(c);var d=a.toJSON();delete d.layers;b.dataTransfer.setData("neuroglancer-layer-group-viewer",JSON.stringify(d))});this.registerEventListener(f.element,"dragend",function(b){Object(k.a)(b);void 0!==x&&x.viewer===a&&x.disposer()});this.element.appendChild(f.element)}this.element.appendChild(this.layout.element)}},
+{key:"disposed",value:function(){Object(l.a)(this.element);z(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"disposed",this).call(this)}},{key:"perspectiveNavigationState",get:function(){return this.viewerNavigationState.perspectiveNavigationState}},{key:"navigationState",get:function(){return this.viewerNavigationState.navigationState}},{key:"display",get:function(){return this.viewerState.display}},{key:"layerManager",get:function(){return this.layerSpecification.layerManager}},{key:"chunkManager",
+get:function(){return this.layerSpecification.chunkManager}},{key:"mouseState",get:function(){return this.viewerState.mouseState}},{key:"showAxisLines",get:function(){return this.viewerState.showAxisLines}},{key:"showScaleBar",get:function(){return this.viewerState.showScaleBar}},{key:"showPerspectiveSliceViews",get:function(){return this.viewerState.showPerspectiveSliceViews}},{key:"inputEventBindings",get:function(){return this.viewerState.inputEventBindings}},{key:"visibility",get:function(){return this.viewerState.visibility}},
+{key:"changed",get:function(){return this.state.changed}}]);return e}(g.a)},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=
+Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function c(a,b){if("move"===a.method)return!1;a.manager.layerManager.filter(function(b){return!a.layers.has(b)});return void 0!==b&&a.layers.has(b)}function b(a,b,d){function f(b,f){var e=a.dropLayers,h=f?Object(k.d)(b,a.manager):Object(u.c)(),g=!0;if(void 0!==e&&(f&&Object(u.e)(b,h),!e.compatibleWithMethod(h)&&(a.dropLayers=void 0,c(e,
+d))))return;if(void 0===e){e=a.dropLayers=Object(k.b)(b,a.manager,"copy"===h,!0,!1);if(void 0===e)return;g="move"===e.method}if(void 0!==d&&e.layers.has(d))return e;if(g){var l=a.manager.layerManager,q=new Set,m=Number.POSITIVE_INFINITY;b=l.managedLayers=l.managedLayers.filter(function(a,b){return e.layers.has(a)?(m===Number.POSITIVE_INFINITY&&(m=b),q.add(a),!1):!0});void 0!==d?(f=b.indexOf(d),m<=f&&++f):f=b.length;h=$jscomp.makeIterator(e.layers.keys());for(g=h.next();!g.done;g=h.next())g=g.value,
+q.has(g)||e.layers.delete(g);b.splice.apply(b,[].concat([f,0],$jscomp.arrayFromIterable(e.layers.keys())));l.layersChanged.dispatch()}else for(void 0!==d&&(l=a.manager.layerManager.managedLayers.indexOf(d)),b=$jscomp.makeIterator(e.layers.keys()),f=b.next();!f.done;f=b.next())a.manager.add(f.value,l);return e}var e=Object(r.c)(b,"dragenter",function(a){void 0!==f(a,!0)&&a.preventDefault()}),h=Object(r.c)(b,"drop",function(b){b.preventDefault();var d=f(b,!1);void 0!==d&&(d.finalize(b)?(b.dataTransfer.dropEffect=
+Object(u.c)(),Object(k.a)("move"===d.method?void 0:b)):c(d));a.dropLayers=void 0}),g=Object(r.c)(b,"dragover",function(a){void 0!==f(a,!0)&&(a.preventDefault(),a.stopPropagation())});return function(){g();h();e()}}a.d(e,"a",function(){return x});var d=a(160),f=a(20),h=a(55),q=a(104),k=a(105),t=a(162),r=a(1),l=a(9),u=a(106),A=a(107),y=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,
+d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),z=function E(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return E(a,b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}};a(36);a(304);a(72);var B=function(a){function c(a,e){p(this,c);var h=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));h.layer=a;h.panel=e;var g=h.element=document.createElement("div");
+g.title="Right click for layer options, drag to move/copy.";g.className="neuroglancer-layer-item neuroglancer-noselect";var l=h.labelElement=document.createElement("span");l.className="neuroglancer-layer-item-label";var m=h.layerNumberElement=document.createElement("span");m.className="neuroglancer-layer-item-number";var r=h.valueElement=document.createElement("span");r.className="neuroglancer-layer-item-value";var t=document.createElement("span");t.title="Delete layer";t.className="neuroglancer-layer-item-close";
+h.registerEventListener(t,"click",function(a){h.panel.layerManager.removeManagedLayer(h.layer);a.stopPropagation()});g.appendChild(m);g.appendChild(l);g.appendChild(r);g.appendChild(t);h.registerEventListener(g,"click",function(b){a.setVisible(!a.visible)});l=h.contextMenu=h.registerDisposer(new q.a(g));l.element.classList.add("neuroglancer-layer-dropdown");l.opened.add(function(){if(void 0!==h.dropdown)h.dropdown.onShow()});l.closed.add(function(){if(void 0!==h.dropdown)h.dropdown.onHide()});g.draggable=
+!0;h.registerEventListener(g,"dragstart",function(a){Object(k.e)(a,{manager:e.manager,layers:[h.layer]});a.stopPropagation()});h.registerEventListener(g,"dragend",function(a){Object(k.a)(a)});h.registerDisposer(b(h.panel,g,h.layer));h.registerEventListener(g,"dblclick",function(b){a instanceof f.b&&new d.a(h.panel.manager,a)});h.handleLayerChanged();h.registerDisposer(a.layerChanged.add(function(){h.handleLayerChanged()}));return h}m(c,a);y(c,[{key:"update",value:function(){var a=this.layer;this.labelElement.textContent=
+a.name;this.element.setAttribute("layer-visible",a.visible.toString())}},{key:"handleLayerChanged",value:function(){var a=this.layer.layer;if(a!==this.userLayer)if(this.dropdown&&(this.dropdown.dispose(),Object(l.a)(this.contextMenu.element)),this.userLayer=a){var b=document.createElement("div");this.contextMenu.element.appendChild(b);this.dropdown=a.makeDropdown(b)}else this.dropdown=void 0;this.contextMenu.disabled=void 0===this.dropdown}},{key:"disposed",value:function(){this.dropdown&&this.dropdown.dispose();
+this.element.parentElement.removeChild(this.element);z(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),"disposed",this).call(this)}}]);return c}(r.a),x=function(a){function f(a,d,e){p(this,f);var g=n(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));g.display=a;g.manager=d;g.viewerNavigationState=e;g.layerWidgets=new Map;g.element=document.createElement("div");g.layerUpdateNeeded=!0;g.valueUpdateNeeded=!1;g.layerWidgetInsertionPoint=document.createElement("div");g.positionWidget=
+g.registerDisposer(new A.b(g.viewerNavigationState.position.value));g.scheduleUpdate=g.registerCancellable(Object(t.a)(function(){return g.update()}));var k=g.element;k.className="neuroglancer-layer-panel";g.registerDisposer(d.layerSelectedValues.changed.add(function(){g.handleLayerValuesChanged()}));g.registerDisposer(d.layerManager.layersChanged.add(function(){g.handleLayersChanged()}));g.layerWidgetInsertionPoint.style.display="none";g.element.appendChild(g.layerWidgetInsertionPoint);d=g.addButton=
+document.createElement("div");d.className="neuroglancer-layer-add-button neuroglancer-button";d.title="Add layer";d.textContent="+";e=g.dropZone=document.createElement("div");e.className="neuroglancer-layer-panel-drop-zone";g.registerEventListener(d,"click",function(){g.addLayerMenu()});k.appendChild(d);k.appendChild(e);g.registerDisposer(Object(u.d)(d));k.appendChild(g.positionWidget.element);var l=function(){g.positionWidget.element.style.display=g.viewerNavigationState.position.link.value===h.d.LINKED?
+"none":null};g.registerDisposer(g.viewerNavigationState.position.link.changed.add(l));l();g.update();g.registerEventListener(k,"dragleave",function(a){a.relatedTarget&&k.contains(a.relatedTarget)||(a=g.dropLayers,void 0!==a&&(c(a),g.dropLayers=void 0))});g.registerDisposer(b(g,d,void 0));g.registerDisposer(b(g,e,void 0));g.registerDisposer(a.updateStarted.add(function(){return g.updateLayers()}));return g}m(f,a);y(f,[{key:"disposed",value:function(){this.layerWidgets.forEach(function(a){return a.dispose()});
+this.layerWidgets=void 0;z(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"disposed",this).call(this)}},{key:"handleLayersChanged",value:function(){this.layerUpdateNeeded=!0;this.handleLayerValuesChanged()}},{key:"handleLayerValuesChanged",value:function(){this.valueUpdateNeeded||(this.valueUpdateNeeded=!0,this.scheduleUpdate())}},{key:"update",value:function(){this.valueUpdateNeeded=!1;this.updateLayers();for(var a=this.manager.layerSelectedValues,b=$jscomp.makeIterator(this.layerWidgets),
+c=b.next();!c.done;c=b.next()){c=$jscomp.makeIterator(c.value);var d=c.next().value;c=c.next().value;var f=d.layer;d="";null!==f&&(f=a.get(f),void 0!==f&&(d=""+f));c.valueElement.textContent=d}}},{key:"updateLayers",value:function(){var a=this;if(this.layerUpdateNeeded){this.layerUpdateNeeded=!1;var b=this.element,c=new Set,d=this.layerWidgetInsertionPoint.nextElementSibling;this.manager.layerManager.managedLayers.forEach(function(f){c.add(f);var e=a.layerWidgets.get(f),h=a.manager.rootLayers.managedLayers.indexOf(f);
+void 0===e&&(e=new B(f,a),a.layerWidgets.set(f,e));e.layerNumberElement.textContent=""+(1+h);e.update();f=e.element;f!==d&&b.insertBefore(e.element,d);d=f.nextElementSibling});for(var f=$jscomp.makeIterator(this.layerWidgets),e=f.next();!e.done;e=f.next()){var h=$jscomp.makeIterator(e.value);e=h.next().value;h=h.next().value;c.has(e)||(this.layerWidgets.delete(e),h.dispose())}}}},{key:"addLayerMenu",value:function(){new d.a(this.manager)}},{key:"layerManager",get:function(){return this.manager.layerManager}}]);
+return f}(r.a)},function(g,e){},function(g,e,a){e.b=function(a){return Array.prototype.map.call(a,function(a){return("0"+a.toString(16)).slice(-2)}).join("")};e.a=function(a){if(!/^(?:[0-9a-fA-F]{2})*$/.test(a))throw Error("Invalid hex-encoded string");for(var e=a.length/2,g=new Uint8Array(e),c=0;c<e;++c)g[c]=parseInt(a.substr(2*c,2),16);return g}},function(g,e){},function(g,e){},function(g,e,a){function p(a,c){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+return!c||"object"!==typeof c&&"function"!==typeof c?a:c}function n(a,c){if("function"!==typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function, not "+typeof c);a.prototype=Object.create(c&&c.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});c&&(Object.setPrototypeOf?Object.setPrototypeOf(a,c):a.__proto__=c)}a.d(e,"a",function(){return c});g=a(1);var m=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||
+!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,e){c&&a(b.prototype,c);e&&a(b,e);return b}}(),c=function(a){function b(a){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var c=p(this,(b.__proto__||Object.getPrototypeOf(b)).call(this));c.model=a;c.element=document.createElement("select");c.valueIndexMap=new Map;for(var d=c.element,f=c.valueIndexMap,e=0,g=$jscomp.makeIterator(Object.keys(a.enumType)),l=g.next();!l.done;l=
+g.next())if(l=l.value,isNaN(Number(l))){var m=document.createElement("option");m.textContent=m.value=l.toLowerCase();d.appendChild(m);f.set(a.enumType[l],e);++e}c.registerDisposer(a.changed.add(function(){return c.updateView()}));c.registerEventListener(d,"change",function(){return c.updateModel()});c.updateView();return c}n(b,a);m(b,[{key:"updateView",value:function(){this.element.selectedIndex=this.valueIndexMap.get(this.model.value)}},{key:"updateModel",value:function(){this.model.restoreState(this.element.value)}}]);
+return b}(g.a)},function(g,e){},function(g,e){},function(g,e,a){function p(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function n(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?
+Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return f});var m=a(14);g=a(1);var c=a(9),b=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function q(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return q(a,
+b,c)}else{if("value"in d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=function(a){function f(a,b){b=void 0===b?{}:b;if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");var c=p(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));c.model=a;c.element=document.createElement("label");c.inputElement=document.createElement("input");var d=b;b=d.validator;d=d.label;var e=c.element,g=c.inputElement;void 0===b&&(b=a instanceof m.a?a.validator:function(a){return a});
+c.validator=b;void 0!==d&&(e.textContent=d);e.appendChild(g);e.className="neuroglancer-number-input";g.type="input";c.registerDisposer(c.model.changed.add(function(){return c.updateView()}));c.registerEventListener(g,"change",function(){return c.updateModel()});c.updateView();return c}n(f,a);b(f,[{key:"updateView",value:function(){this.inputElement.value=""+this.model.value}},{key:"updateModel",value:function(){var a=parseFloat(this.inputElement.value.trim());if(Number.isNaN(a))this.updateView();
+else try{a=this.validator(a),this.model.value=a}catch(r){this.updateView()}}},{key:"disposed",value:function(){Object(c.b)(this.element);d(f.prototype.__proto__||Object.getPrototypeOf(f.prototype),"disposed",this).call(this)}}]);return f}(g.a)},function(g,e){},function(g,e,a){e.a=function(){return Object(p.c)(document,"contextmenu",function(a){a.preventDefault()})};e.b=function(){return Object(p.c)(document,"wheel",function(a){a.ctrlKey&&a.preventDefault()})};var p=a(1)},function(g,e,a){e.a=function(a){a.registerEventListener(document,
+"copy",function(b){if(!Object(p.a)(b)){var c=Object(m.b)(a.state).value;b.clipboardData.setData("text/plain",JSON.stringify(c,void 0,"  "));b.preventDefault()}})};e.b=function(a){a.registerEventListener(document,"paste",function(b){if(!Object(p.a)(b)){var c=b.clipboardData.getData("text/plain").match(/^[\[\]{}()\s,]*(\d+(?:\.\d+)?)[,\s]+(\d+(?:\.\d+)?)[,\s]+(\d+(?:\.\d+)?)[\[\]{}()\s,]*$/);c=null!==c?n.p.fromValues(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3])):void 0;void 0!==c&&a.navigationState.position.setVoxelCoordinates(c);
+b.preventDefault()}})};var p=a(163),n=a(3),m=a(70)},function(g,e,a){function p(){if(void 0===d){var a=new b.a;a.set("keyl","recolor");a.set("keyx","clear-segments");a.set("keys","toggle-show-slices");a.set("keyb","toggle-scale-bar");a.set("keya","toggle-axis-lines");for(var c=1;9>=c;++c)a.set("digit"+c,"toggle-layer-"+c);a.set("keyn","add-layer");a.set("keyh","help");a.set("space","toggle-layout");a.set("shift+space","toggle-layout-alternative");d=a}return d}function n(){void 0===f&&(f=b.a.fromObject({arrowleft:"x-",
+arrowright:"x+",arrowup:"y-",arrowdown:"y+",comma:"z-",period:"z+",keyz:"snap","control+equal":"zoom-in","control+shift+equal":"zoom-in","control+minus":"zoom-out",keyr:"rotate-relative-z-",keye:"rotate-relative-z+","shift+arrowdown":"rotate-relative-x-","shift+arrowup":"rotate-relative-x+","shift+arrowleft":"rotate-relative-y-","shift+arrowright":"rotate-relative-y+","at:control+wheel":{action:"zoom-via-wheel",preventDefault:!0},"at:wheel":{action:"z+1-via-wheel",preventDefault:!0},"at:shift+wheel":{action:"z+10-via-wheel",
+preventDefault:!0},"at:dblclick0":"select","at:control+mousedown0":"annotate","at:mousedown2":"move-to-mouse-position"},{label:"All Data Panels"}));return f}function m(){void 0===h&&(h=b.a.fromObject({"at:mousedown0":{action:"rotate-via-mouse-drag",stopPropagation:!0},"at:shift+mousedown0":{action:"translate-via-mouse-drag",stopPropagation:!0}},{parents:[[n(),Number.NEGATIVE_INFINITY]]}));return h}function c(){void 0===q&&(q=b.a.fromObject({"at:mousedown0":{action:"translate-via-mouse-drag",stopPropagation:!0},
+"at:shift+mousedown0":{action:"rotate-via-mouse-drag",stopPropagation:!0}},{parents:[[n(),Number.NEGATIVE_INFINITY]]}));return q}e.a=function(a){a.global.addParent(p(),Number.NEGATIVE_INFINITY);a.sliceView.addParent(c(),Number.NEGATIVE_INFINITY);a.perspectiveView.addParent(m(),Number.NEGATIVE_INFINITY)};var b=a(22),d,f,h,q},function(g,e,a){function p(){var a=q.SingleMeshUserLayer.prototype.addRenderLayer;q.SingleMeshUserLayer.prototype.addRenderLayer=function(b){b instanceof k.c&&Object(A.a)(b);a.call(this,
+b)}}function n(){var a=f.ImageUserLayer.prototype.transformPickedValue;f.ImageUserLayer.prototype.transformPickedValue=function(b){b=a.call(this,b);null===b&&(b=void 0);return b}}function m(){var a=h.SegmentationUserLayer.prototype.addRenderLayer;h.SegmentationUserLayer.prototype.addRenderLayer=function(b){b instanceof r.a&&(b.segmentColorShaderManager=new y.b("segmentColorHash"));a.call(this,b)}}function c(){h.SegmentationUserLayer.prototype.addMesh=function(a){this.meshLayer=new u.a(this.manager.chunkManager,
+a,this.displayState);this.addRenderLayer(this.meshLayer)}}function b(){var a=t.a.prototype.makeUI;t.a.prototype.makeUI=function(){var b=this.options;b.showHelpButton=!1;b.showLayerDialog=!1;b.showLayerPanel=!1;b.showLocation=!1;a.call(this)}}e.a=function(a){a=a.globals||{};z||(a.useNehubaLayout&&(d.c.clear(),d.c.set("4panel",{factory:function(a,b,c){return new l.a(a,b,c)}}),d.c.set("xy",{factory:function(a,b,c){return new l.a(a,b,c)}})),a.hideNullImageValues&&n(),a.useCustomSegmentColors&&m(),a.useNehubaMeshLayer&&
+c(),a.useNehubaSingleMeshLayer&&p(),a.embedded&&b(),z=!0)};var d=a(71),f=a(93),h=a(69),q=a(151),k=a(101),t=a(158),r=a(150),l=a(108),u=a(110),A=a(317),y=a(109),z=!1},function(g,e,a){function p(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function n(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!==typeof b&&"function"!==typeof b?a:b}function m(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return q});a.d(e,"b",function(){return k});g=a(1);var c=a(3),b=a(27),d=a(31),f=a(66),h=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,
+c);d&&a(b,d);return b}}(),q=function(a){function e(a,b,h){p(this,e);var g=n(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));g.gl=a;g.copyVertexPositionsBuffer=Object(f.a)(g.gl);g.textureCoordinateAdjustment=new Float32Array(4);g.discardColor=c.r.fromValues(.5,.5,.5,1);var k=new d.a(a);k.addVarying("vec2","vTexCoord");k.addUniform("sampler2D","uSampler");k.addInitializer(function(b){a.uniform1i(b.uniform("uSampler"),0)});k.addUniform("vec4","uColorFactor");k.addUniform("vec4","uBackgroundColor");
+k.addUniform("mat4","uProjectionMatrix");k.addUniform("vec4","uTextureCoordinateAdjustment");k.addUniform("vec4","uDiscardColor");k.require(b);k.setFragmentMain("none"===h?"\nvec4 sampledColor = texture2D(uSampler, vTexCoord);\nif (sampledColor.a == 0.0) {\n  sampledColor = uBackgroundColor;\n}\nemit(sampledColor * uColorFactor, vec4(0,0,0,0));\n":"\nvec4 sampledColor = texture2D(uSampler, vTexCoord);\nif (sampledColor.a == 0.0) {\n  sampledColor = uBackgroundColor;\n}\nif (sampledColor.r "+h+" uDiscardColor.r && sampledColor.g "+
+h+" uDiscardColor.g && sampledColor.b "+h+" uDiscardColor.b) discard;\nelse emit(sampledColor * uColorFactor, vec4(0,0,0,0));\n");k.addAttribute("vec4","aVertexPosition");k.setVertexMain("\nvTexCoord = uTextureCoordinateAdjustment.xy + 0.5 * (aVertexPosition.xy + 1.0) * uTextureCoordinateAdjustment.zw;\ngl_Position = uProjectionMatrix * aVertexPosition;\n");g.shader=g.registerDisposer(k.build());return g}m(e,a);h(e,[{key:"draw",value:function(a,b,c,d,f,e,h,g){var k=this.gl,l=this.shader,q=this.textureCoordinateAdjustment;
+q[0]=f;q[1]=e;q[2]=h-f;q[3]=g-e;l.bind();k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,a);k.uniformMatrix4fv(l.uniform("uProjectionMatrix"),!1,b);k.uniform4fv(l.uniform("uColorFactor"),c);k.uniform4fv(l.uniform("uBackgroundColor"),d);k.uniform4fv(l.uniform("uTextureCoordinateAdjustment"),q);k.uniform4fv(l.uniform("uDiscardColor"),this.discardColor);a=l.attribute("aVertexPosition");this.copyVertexPositionsBuffer.bindToVertexAttrib(a,2);k.drawArrays(k.TRIANGLE_FAN,0,4);k.disableVertexAttribArray(a);
+k.bindTexture(k.TEXTURE_2D,null)}},{key:"setDiscardColor",value:function(a){this.discardColor=a}}],[{key:"get",value:function(a,c,d){return a.memoize.get("nehuba/NehubaSliceViewRenderHelper:"+Object(b.a)(c)+":"+d,function(){return new e(a,c,d)})}}]);return e}(g.a),k=function(a){function c(a,b){p(this,c);var e=n(this,(c.__proto__||Object.getPrototypeOf(c)).call(this));e.gl=a;e.copyVertexPositionsBuffer=Object(f.a)(e.gl);a=new d.a(a);a.addUniform("mat4","uProjectionMatrix");a.addUniform("vec4","uColor");
+a.require(b);a.setFragmentMain("\nemit(uColor, vec4(0.0));\n");a.addAttribute("vec4","aVertexPosition");a.setVertexMain("\ngl_Position = uProjectionMatrix * aVertexPosition;\n");e.shader=e.registerDisposer(a.build());return e}m(c,a);h(c,[{key:"draw",value:function(a,b,c){var d=this.gl,f=this.shader;f.bind();d.uniformMatrix4fv(f.uniform("uProjectionMatrix"),!1,a);d.uniform4fv(f.uniform("uColor"),b);a=f.attribute("aVertexPosition");this.copyVertexPositionsBuffer.bindToVertexAttrib(a,2);c&&(d.enable(d.POLYGON_OFFSET_FILL),
+d.polygonOffset(c.factor,c.units));d.depthMask(!1);d.enable(d.BLEND);d.blendFunc(d.SRC_ALPHA,d.ONE_MINUS_SRC_ALPHA);d.drawArrays(d.TRIANGLE_FAN,0,4);d.disable(d.BLEND);d.depthMask(!0);d.polygonOffset(0,0);d.disable(d.POLYGON_OFFSET_FILL);d.disableVertexAttribArray(a)}}],[{key:"get",value:function(a,d){return a.memoize.get("nehuba/TransparentPlaneRenderHelper:"+Object(b.a)(d),function(){return new c(a,d)})}}]);return c}(g.a)},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}a.d(e,"a",function(){return b});g=a(1);var n=a(89),m=a(9),c=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}();a(316);var b=
+function(a){function b(a){a=void 0===a?new n.a:a;if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");var c=(b.__proto__||Object.getPrototypeOf(b)).call(this);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");c=!c||"object"!==typeof c&&"function"!==typeof c?this:c;c.dimensions=a;c.element=document.createElement("div");c.textNode=document.createTextNode("");c.barElement=document.createElement("div");a=c.element;var d=c.textNode,
+f=c.barElement;a.className="scale-bar-container";a.appendChild(d);a.appendChild(f);f.className="scale-bar";return c}p(b,a);c(b,[{key:"update",value:function(){var a=this.dimensions;a.update()&&(this.textNode.textContent=a.physicalLength+" "+a.physicalUnit,this.barElement.style.width=a.lengthInPixels+"px")}},{key:"disposed",value:function(){Object(m.b)(this.element)}}]);return b}(g.a)},function(g,e){},function(g,e,a){function p(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+
+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}e.a=function(a){a.makeShaderManager=function(a){a=void 0===a?this.displayState.fragmentMain.value:a;return new f(this.displayState.attributeNames.value,this.source.info.vertexAttributes,a)};a.draw=function(a){if(a.emitColor||!a.alreadyEmittedPickID){var b=this.source.chunks.get(m.b);if(void 0!==b&&b.state===n.d.GPU_MEMORY){var d=
+this.getShader(a.emitter);if(null!==d){var f=this.gl,e=this.shaderManager;d.bind();e.beginLayer(f,d,a);a.extra||console.error("Bad configuration. Nehuba mesh layer is used by neuroglancer code.");var h=Object(c.c)(a.extra);e.setNavState(f,d,h.navState);e.setOctant(f,d,h.octant);e.setBackFaceColor(f,d,h.backFaceColor);h=a.pickIDs;e.beginObject(f,d,this.displayState.objectToDataTransform.transform);a.emitPickID&&e.setPickID(f,d,h.register(this,b.numIndices/3));e.drawFragment(f,d,b,this.countingBuffer);
+e.endLayer(f,d);a.extra.meshRendered=!0}}}}};var n=a(25),m=a(152);g=a(101);var c=a(110),b=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}return function(b,c,d){c&&a(b.prototype,c);d&&a(b,d);return b}}(),d=function q(a,b,c){null===a&&(a=Function.prototype);var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){if(a=Object.getPrototypeOf(a),null!==a)return q(a,b,c)}else{if("value"in
+d)return d.value;b=d.get;return void 0===b?void 0:b.call(c)}},f=function(a){function c(){if(!(this instanceof c))throw new TypeError("Cannot call a class as a function");var a=(c.__proto__||Object.getPrototypeOf(c)).apply(this,arguments);if(!this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!==typeof a&&"function"!==typeof a?this:a}p(c,a);b(c,[{key:"defineShader",value:function(a){d(c.prototype.__proto__||Object.getPrototypeOf(c.prototype),
+"defineShader",this).call(this,a);a.addVarying("highp vec4","vNavPos");a.addUniform("highp mat4","uNavState");a.addUniform("highp vec4","uOctant");a.addUniform("highp vec4","uBackFaceColor");a.addVertexMain("\nvec4 position = uModelMatrix * vec4(vertexPosition, 1.0);\nvNavPos = uNavState * position * uOctant;\n");a.addFragmentCode(this.fragmentMain.replace("void main()","void userMain()"));a.setFragmentMain("\nif (vNavPos.x > 0.0 && vNavPos.y > 0.0 && vNavPos.z > 0.0) {\n  discard;\n} else {\n  if (gl_FrontFacing) userMain();\n  else emit(uBackFaceColor, uPickID);\n}\n")}},
+{key:"setNavState",value:function(a,b,c){a.uniformMatrix4fv(b.uniform("uNavState"),!1,c)}},{key:"setOctant",value:function(a,b,c){a.uniform4fv(b.uniform("uOctant"),c)}},{key:"setBackFaceColor",value:function(a,b,c){a.uniform4fv(b.uniform("uBackFaceColor"),c)}}]);return c}(g.d)},function(g,e,a){e.a=function(a,c,b){var d=Object.assign({prefire:!0,share:!0},b),f=a instanceof p.a?a:a.s,e=a instanceof p.a?a:a.r;a=n.Observable.create(function(a){d.prefire&&a.next(c(f));var b=f.changed.add(function(){a.next(c(f))}),
+h=e.registerDisposer(function(){return a.complete()});return function(){b();e.unregisterDisposer(h)}});return d.share?d.prefire?a.publishReplay(1).refCount():a.share():a};var p=a(1),n=a(167);a.n(n)},function(g,e,a){g=a(10);e.Subject=g.Subject;e.AnonymousSubject=g.AnonymousSubject;g=a(0);e.Observable=g.Observable;a(321);a(324);a(327);a(330);a(332);a(335);a(337);a(340);a(344);a(347);a(350);a(352);a(355);a(358);a(363);a(365);a(367);a(370);a(372);a(374);a(377);a(380);a(383);a(386);a(389);a(391);a(393);
+a(399);a(401);a(403);a(405);a(407);a(409);a(411);a(413);a(414);a(415);a(417);a(419);a(421);a(423);a(425);a(427);a(429);a(431);a(433);a(435);a(438);a(439);a(441);a(443);a(445);a(447);a(449);a(451);a(452);a(454);a(455);a(457);a(459);a(464);a(466);a(468);a(470);a(472);a(474);a(476);a(478);a(479);a(481);a(483);a(485);a(486);a(487);a(488);a(489);a(491);a(493);a(494);a(495);a(496);a(498);a(501);a(503);a(505);a(507);a(509);a(511);a(512);a(513);a(515);a(517);a(519);a(521);a(523);a(525);a(527);a(529);a(531);
+a(533);a(535);a(537);a(539);a(541);a(543);a(545);a(553);a(555);a(557);a(559);a(561);a(563);a(565);a(567);a(568);a(570);a(571);a(573);a(575);a(576);a(578);a(580);a(582);a(584);a(586);a(588);a(590);a(592);a(593);g=a(8);e.Subscription=g.Subscription;g=a(2);e.Subscriber=g.Subscriber;g=a(77);e.AsyncSubject=g.AsyncSubject;g=a(81);e.ReplaySubject=g.ReplaySubject;g=a(188);e.BehaviorSubject=g.BehaviorSubject;g=a(187);e.ConnectableObservable=g.ConnectableObservable;g=a(57);e.Notification=g.Notification;g=a(82);
+e.EmptyError=g.EmptyError;g=a(60);e.ArgumentOutOfRangeError=g.ArgumentOutOfRangeError;g=a(76);e.ObjectUnsubscribedError=g.ObjectUnsubscribedError;g=a(193);e.TimeoutError=g.TimeoutError;g=a(169);e.UnsubscriptionError=g.UnsubscriptionError;g=a(192);e.TimeInterval=g.TimeInterval;g=a(194);e.Timestamp=g.Timestamp;g=a(595);e.TestScheduler=g.TestScheduler;g=a(198);e.VirtualTimeScheduler=g.VirtualTimeScheduler;g=a(180);e.AjaxResponse=g.AjaxResponse;e.AjaxError=g.AjaxError;e.AjaxTimeoutError=g.AjaxTimeoutError;
+g=a(189);var p=a(17),n=a(181),m=a(598),c=a(74),b=a(56);a=a(75);e.Scheduler={asap:g.asap,queue:n.queue,animationFrame:m.animationFrame,async:p.async};e.Symbol={rxSubscriber:c.rxSubscriber,observable:a.observable,iterator:b.iterator}},function(g,e,a){var p=a(2),n=a(74),m=a(170);e.toSubscriber=function(a,b,d){if(a){if(a instanceof p.Subscriber)return a;if(a[n.rxSubscriber])return a[n.rxSubscriber]()}return a||b||d?new p.Subscriber(a,b,d):new p.Subscriber(m.empty)}},function(g,e,a){g=a(0);a=a(322);g.Observable.bindCallback=
+a.bindCallback},function(g,e,a){g=a(323);e.bindCallback=g.BoundCallbackObservable.create},function(g,e,a){function p(a){var b=a.subject;b.next(a.value);b.complete()}function n(a){a.subject.error(a.err)}var m=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var c=a(13),b=a(11),d=a(77);a=function(a){function f(b,c,d,f,e){a.call(this);this.callbackFunc=b;this.selector=
+c;this.args=d;this.context=f;this.scheduler=e}m(f,a);f.create=function(a,b,c){void 0===b&&(b=void 0);return function(){for(var d=[],e=0;e<arguments.length;e++)d[e-0]=arguments[e];return new f(a,b,d,this,c)}};f.prototype._subscribe=function(a){var e=this.callbackFunc,h=this.args,g=this.scheduler,l=this.subject;if(g)return g.schedule(f.dispatch,0,{source:this,subscriber:a,context:this.context});l||(l=this.subject=new d.AsyncSubject,g=function A(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];
+var f=A.source;d=f.selector;f=f.subject;d?(a=c.tryCatch(d).apply(this,a),a===b.errorObject?f.error(b.errorObject.e):(f.next(a),f.complete())):(f.next(1>=a.length?a[0]:a),f.complete())},g.source=this,c.tryCatch(e).apply(this.context,h.concat(g))===b.errorObject&&l.error(b.errorObject.e));return l.subscribe(a)};f.dispatch=function(a){var f=this,e=a.source,h=a.subscriber;a=a.context;var g=e.callbackFunc,q=e.args,m=e.scheduler,y=e.subject;if(!y){y=e.subject=new d.AsyncSubject;var z=function x(){for(var a=
+[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];var e=x.source;d=e.selector;e=e.subject;d?(a=c.tryCatch(d).apply(this,a),a===b.errorObject?f.add(m.schedule(n,0,{err:b.errorObject.e,subject:e})):f.add(m.schedule(p,0,{value:a,subject:e}))):f.add(m.schedule(p,0,{value:1>=a.length?a[0]:a,subject:e}))};z.source=e;c.tryCatch(g).apply(a,q.concat(z))===b.errorObject&&y.error(b.errorObject.e)}f.add(y.subscribe(h))};return f}(g.Observable);e.BoundCallbackObservable=a},function(g,e,a){g=a(0);a=a(325);g.Observable.bindNodeCallback=
+a.bindNodeCallback},function(g,e,a){g=a(326);e.bindNodeCallback=g.BoundNodeCallbackObservable.create},function(g,e,a){function p(a){var c=this,e=a.source,h=a.subscriber;a=a.context;var g=e.callbackFunc,l=e.args,p=e.scheduler,A=e.subject;if(!A){A=e.subject=new f.AsyncSubject;var y=function B(){for(var a=[],f=0;f<arguments.length;f++)a[f-0]=arguments[f];var e=B.source;f=e.selector;e=e.subject;var h=a.shift();h?c.add(p.schedule(m,0,{err:h,subject:e})):f?(a=b.tryCatch(f).apply(this,a),a===d.errorObject?
+c.add(p.schedule(m,0,{err:d.errorObject.e,subject:e})):c.add(p.schedule(n,0,{value:a,subject:e}))):c.add(p.schedule(n,0,{value:1>=a.length?a[0]:a,subject:e}))};y.source=e;b.tryCatch(g).apply(a,l.concat(y))===d.errorObject&&c.add(p.schedule(m,0,{err:d.errorObject.e,subject:A}))}c.add(A.subscribe(h))}function n(a){var b=a.subject;b.next(a.value);b.complete()}function m(a){a.subject.error(a.err)}var c=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&
+(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var b=a(13),d=a(11),f=a(77);a=function(a){function e(b,c,d,f,e){a.call(this);this.callbackFunc=b;this.selector=c;this.args=d;this.context=f;this.scheduler=e}c(e,a);e.create=function(a,b,c){void 0===b&&(b=void 0);return function(){for(var d=[],f=0;f<arguments.length;f++)d[f-0]=arguments[f];return new e(a,b,d,this,c)}};e.prototype._subscribe=function(a){var c=this.callbackFunc,e=this.args,h=this.scheduler,g=this.subject;
+if(h)return h.schedule(p,0,{source:this,subscriber:a,context:this.context});g||(g=this.subject=new f.AsyncSubject,h=function y(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var f=y.source;c=f.selector;f=f.subject;var e=a.shift();e?f.error(e):c?(a=b.tryCatch(c).apply(this,a),a===d.errorObject?f.error(d.errorObject.e):(f.next(a),f.complete())):(f.next(1>=a.length?a[0]:a),f.complete())},h.source=this,b.tryCatch(c).apply(this.context,e.concat(h))===d.errorObject&&g.error(d.errorObject.e));
+return g.subscribe(a)};return e}(g.Observable);e.BoundNodeCallbackObservable=a},function(g,e,a){g=a(0);a=a(328);g.Observable.combineLatest=a.combineLatest},function(g,e,a){var p=a(33),n=a(32),m=a(34),c=a(112);e.combineLatest=function(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];var f=d=null;p.isScheduler(a[a.length-1])&&(f=a.pop());"function"===typeof a[a.length-1]&&(d=a.pop());1===a.length&&n.isArray(a[0])&&(a=a[0]);return(new m.ArrayObservable(a,f)).lift(new c.CombineLatestOperator(d))}},
+function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b,d){a.call(this);this.parent=c;this.outerValue=b;this.outerIndex=d;this.index=0}p(e,a);e.prototype._next=function(a){this.parent.notifyNext(this.outerValue,a,this.outerIndex,this.index++,this)};e.prototype._error=function(a){this.parent.notifyError(a,this);this.unsubscribe()};
+e.prototype._complete=function(){this.parent.notifyComplete(this);this.unsubscribe()};return e}(a(2).Subscriber);e.InnerSubscriber=g},function(g,e,a){g=a(0);a=a(331);g.Observable.concat=a.concat},function(g,e,a){g=a(113);e.concat=g.concatStatic},function(g,e,a){g=a(0);a=a(333);g.Observable.defer=a.defer},function(g,e,a){g=a(334);e.defer=g.DeferObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);
+a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(5);a=a(4);g=function(a){function b(b){a.call(this);this.observableFactory=b}p(b,a);b.create=function(a){return new b(a)};b.prototype._subscribe=function(a){return new m(a,this.observableFactory)};return b}(g.Observable);e.DeferObservable=g;var m=function(a){function b(b,c){a.call(this,b);this.factory=c;this.tryDefer()}p(b,a);b.prototype.tryDefer=function(){try{this._callFactory()}catch(d){this._error(d)}};b.prototype._callFactory=
+function(){var a=this.factory();a&&this.add(n.subscribeToResult(this,a))};return b}(a.OuterSubscriber)},function(g,e,a){g=a(0);a=a(336);g.Observable.empty=a.empty},function(g,e,a){g=a(38);e.empty=g.EmptyObservable.create},function(g,e,a){g=a(0);a=a(338);g.Observable.forkJoin=a.forkJoin},function(g,e,a){g=a(339);e.forkJoin=g.ForkJoinObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=
+null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(38),m=a(32),c=a(5);a=a(4);g=function(a){function c(b,c){a.call(this);this.sources=b;this.resultSelector=c}p(c,a);c.create=function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];if(null===a||0===arguments.length)return new n.EmptyObservable;b=null;"function"===typeof a[a.length-1]&&(b=a.pop());1===a.length&&m.isArray(a[0])&&(a=a[0]);return 0===a.length?new n.EmptyObservable:new c(a,b)};c.prototype._subscribe=
+function(a){return new b(a,this.sources,this.resultSelector)};return c}(g.Observable);e.ForkJoinObservable=g;var b=function(a){function b(b,d,f){a.call(this,b);this.sources=d;this.resultSelector=f;this.haveValues=this.completed=0;this.total=b=d.length;this.values=Array(b);for(f=0;f<b;f++){var e=c.subscribeToResult(this,d[f],null,f);e&&(e.outerIndex=f,this.add(e))}}p(b,a);b.prototype.notifyNext=function(a,b,c,d,f){this.values[c]=b;f._hasValue||(f._hasValue=!0,this.haveValues++)};b.prototype.notifyComplete=
+function(a){var b=this.destination,c=this.haveValues,d=this.resultSelector,f=this.values,e=f.length;a._hasValue?(this.completed++,this.completed===e&&(c===e&&(a=d?d.apply(this,f):f,b.next(a)),b.complete())):b.complete()};return b}(a.OuterSubscriber)},function(g,e,a){g=a(0);a=a(341);g.Observable.from=a.from},function(g,e,a){g=a(174);e.from=g.FromObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);
+a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(12);g=a(0);var m=a(56);a=function(a){function d(d,f){a.call(this);this.scheduler=f;if(null==d)throw Error("iterator cannot be null.");if((f=d[m.iterator])||"string"!==typeof d)if(f||void 0===d.length){if(!f)throw new TypeError("object is not iterable");d=d[m.iterator]()}else d=new b(d);else d=new c(d);this.iterator=d}p(d,a);d.create=function(a,b){return new d(a,b)};d.dispatch=function(a){var b=a.index,c=a.iterator,d=a.subscriber;
+if(a.hasError)d.error(a.error);else{var f=c.next();f.done?d.complete():(d.next(f.value),a.index=b+1,d.closed?"function"===typeof c.return&&c.return():this.schedule(a))}};d.prototype._subscribe=function(a){var b=this.iterator,c=this.scheduler;if(c)return c.schedule(d.dispatch,0,{index:0,iterator:b,subscriber:a});do{c=b.next();if(c.done){a.complete();break}else a.next(c.value);if(a.closed){"function"===typeof b.return&&b.return();break}}while(1)};return d}(g.Observable);e.IteratorObservable=a;var c=
+function(){function a(a,b,c){void 0===b&&(b=0);void 0===c&&(c=a.length);this.str=a;this.idx=b;this.len=c}a.prototype[m.iterator]=function(){return this};a.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}};return a}(),b=function(){function a(a,b,c){void 0===b&&(b=0);if(void 0===c)if(c=+a.length,isNaN(c))c=0;else if(0!==c&&"number"===typeof c&&n.root.isFinite(c)){var f=+c;f=0===f?f:isNaN(f)?f:0>f?-1:1;c=f*Math.floor(Math.abs(c));c=
+0>=c?0:c>d?d:c}this.arr=a;this.idx=b;this.len=c}a.prototype[m.iterator]=function(){return this};a.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}};return a}(),d=Math.pow(2,53)-1},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(111),m=a(38);a=function(a){function b(b,
+c){a.call(this);this.arrayLike=b;this.scheduler=c;c||1!==b.length||(this._isScalar=!0,this.value=b[0])}p(b,a);b.create=function(a,c){var d=a.length;return 0===d?new m.EmptyObservable:1===d?new n.ScalarObservable(a[0],c):new b(a,c)};b.dispatch=function(a){var b=a.arrayLike,c=a.index,d=a.subscriber;d.closed||(c>=a.length?d.complete():(d.next(b[c]),a.index=c+1,this.schedule(a)))};b.prototype._subscribe=function(a){var c=this.arrayLike,d=this.scheduler,e=c.length;if(d)return d.schedule(b.dispatch,0,{arrayLike:c,
+index:0,length:e,subscriber:a});for(d=0;d<e&&!a.closed;d++)a.next(c[d]);a.complete()};return b}(g.Observable);e.ArrayLikeObservable=a},function(g,e,a){g=a(0);a=a(345);g.Observable.fromEvent=a.fromEvent},function(g,e,a){g=a(346);e.fromEvent=g.FromEventObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(13),m=a(73),
+c=a(11),b=a(8),d=Object.prototype.toString;a=function(a){function f(b,c,d,f){a.call(this);this.sourceObj=b;this.eventName=c;this.selector=d;this.options=f}p(f,a);f.create=function(a,b,c,d){m.isFunction(c)&&(d=c,c=void 0);return new f(a,b,d,c)};f.setupSubscription=function(a,c,e,h,g){if(a&&"[object NodeList]"===d.call(a)||a&&"[object HTMLCollection]"===d.call(a))for(var k=0,l=a.length;k<l;k++)f.setupSubscription(a[k],c,e,h,g);else if(a&&"function"===typeof a.addEventListener&&"function"===typeof a.removeEventListener){a.addEventListener(c,
+e,g);var m=function(){return a.removeEventListener(c,e)}}else if(a&&"function"===typeof a.on&&"function"===typeof a.off)a.on(c,e),m=function(){return a.off(c,e)};else if(a&&"function"===typeof a.addListener&&"function"===typeof a.removeListener)a.addListener(c,e),m=function(){return a.removeListener(c,e)};else throw new TypeError("Invalid event target");h.add(new b.Subscription(m))};f.prototype._subscribe=function(a){var b=this.selector;f.setupSubscription(this.sourceObj,this.eventName,b?function(){for(var d=
+[],f=0;f<arguments.length;f++)d[f-0]=arguments[f];d=n.tryCatch(b).apply(void 0,d);d===c.errorObject?a.error(c.errorObject.e):a.next(d)}:function(b){return a.next(b)},a,this.options)};return f}(g.Observable);e.FromEventObservable=a},function(g,e,a){g=a(0);a=a(348);g.Observable.fromEventPattern=a.fromEventPattern},function(g,e,a){g=a(349);e.fromEventPattern=g.FromEventPatternObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&
+(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(73);g=a(0);var m=a(8);a=function(a){function b(b,c,e){a.call(this);this.addHandler=b;this.removeHandler=c;this.selector=e}p(b,a);b.create=function(a,c,e){return new b(a,c,e)};b.prototype._subscribe=function(a){var b=this,c=this.removeHandler,d=this.selector?function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];b._callSelector(a,c)}:function(b){a.next(b)},e=this._callAddHandler(d,a);n.isFunction(c)&&
+a.add(new m.Subscription(function(){c(d,e)}))};b.prototype._callSelector=function(a,b){try{var c=this.selector.apply(this,b);a.next(c)}catch(q){a.error(q)}};b.prototype._callAddHandler=function(a,b){try{return this.addHandler(a)||null}catch(h){b.error(h)}};return b}(g.Observable);e.FromEventPatternObservable=a},function(g,e,a){g=a(0);a=a(351);g.Observable.fromPromise=a.fromPromise},function(g,e,a){g=a(175);e.fromPromise=g.PromiseObservable.create},function(g,e,a){g=a(0);a=a(353);g.Observable.generate=
+a.generate},function(g,e,a){g=a(354);e.generate=g.GenerateObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(33),m=function(a){return a};a=function(a){function b(b,c,e,g,k){a.call(this);this.initialState=b;this.condition=c;this.iterate=e;this.resultSelector=g;this.scheduler=k}p(b,a);b.create=function(a,c,e,g,
+k){return 1==arguments.length?new b(a.initialState,a.condition,a.iterate,a.resultSelector||m,a.scheduler):void 0===g||n.isScheduler(g)?new b(a,c,e,m,g):new b(a,c,e,g,k)};b.prototype._subscribe=function(a){var c=this.initialState;if(this.scheduler)return this.scheduler.schedule(b.dispatch,0,{subscriber:a,iterate:this.iterate,condition:this.condition,resultSelector:this.resultSelector,state:c});var d=this.condition,e=this.resultSelector,g=this.iterate;do{if(d){var m=void 0;try{m=d(c)}catch(r){a.error(r);
+break}if(!m){a.complete();break}}m=void 0;try{m=e(c)}catch(r){a.error(r);break}a.next(m);if(a.closed)break;try{c=g(c)}catch(r){a.error(r);break}}while(1)};b.dispatch=function(a){var b=a.subscriber,c=a.condition;if(!b.closed){if(a.needIterate)try{a.state=a.iterate(a.state)}catch(t){b.error(t);return}else a.needIterate=!0;if(c){var d=void 0;try{d=c(a.state)}catch(t){b.error(t);return}if(!d){b.complete();return}if(b.closed)return}try{var e=a.resultSelector(a.state)}catch(t){b.error(t);return}if(!b.closed&&
+(b.next(e),!b.closed))return this.schedule(a)}};return b}(g.Observable);e.GenerateObservable=a},function(g,e,a){g=a(0);a=a(356);g.Observable.if=a._if},function(g,e,a){g=a(357);e._if=g.IfObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(5);a=a(4);g=function(a){function b(b,c,e){a.call(this);this.condition=b;
+this.thenSource=c;this.elseSource=e}p(b,a);b.create=function(a,c,e){return new b(a,c,e)};b.prototype._subscribe=function(a){return new m(a,this.condition,this.thenSource,this.elseSource)};return b}(g.Observable);e.IfObservable=g;var m=function(a){function b(b,c,e,g){a.call(this,b);this.condition=c;this.thenSource=e;this.elseSource=g;this.tryIf()}p(b,a);b.prototype.tryIf=function(){var a=this.condition,b=this.thenSource,c=this.elseSource,e;try{(a=(e=a())?b:c)?this.add(n.subscribeToResult(this,a)):
+this._complete()}catch(k){this._error(k)}};return b}(a.OuterSubscriber)},function(g,e,a){g=a(0);a=a(359);g.Observable.interval=a.interval},function(g,e,a){g=a(360);e.interval=g.IntervalObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(79);g=a(0);var m=a(17);a=function(a){function b(b,c){void 0===b&&(b=0);void 0===c&&(c=
+m.async);a.call(this);this.period=b;this.scheduler=c;if(!n.isNumeric(b)||0>b)this.period=0;c&&"function"===typeof c.schedule||(this.scheduler=m.async)}p(b,a);b.create=function(a,c){void 0===a&&(a=0);void 0===c&&(c=m.async);return new b(a,c)};b.dispatch=function(a){var b=a.subscriber,c=a.period;b.next(a.index);b.closed||(a.index+=1,this.schedule(a,c))};b.prototype._subscribe=function(a){var c=this.period;a.add(this.scheduler.schedule(b.dispatch,c,{index:0,subscriber:a,period:c}))};return b}(g.Observable);
+e.IntervalObservable=a},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b){a.call(this)}p(e,a);e.prototype.schedule=function(a,b){return this};return e}(a(8).Subscription);e.Action=g},function(g,e,a){g=function(){function a(e,g){void 0===g&&(g=a.now);this.SchedulerAction=e;this.now=g}a.prototype.schedule=function(a,
+e,c){void 0===e&&(e=0);return(new this.SchedulerAction(this,a)).schedule(c,e)};a.now=Date.now?Date.now:function(){return+new Date};return a}();e.Scheduler=g},function(g,e,a){g=a(0);a=a(364);g.Observable.merge=a.merge},function(g,e,a){g=a(176);e.merge=g.mergeStatic},function(g,e,a){g=a(0);a=a(366);g.Observable.race=a.race},function(g,e,a){g=a(177);e.race=g.raceStatic},function(g,e,a){g=a(0);a=a(368);g.Observable.never=a.never},function(g,e,a){g=a(369);e.never=g.NeverObservable.create},function(g,e,
+a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(0);var n=a(178);a=function(a){function c(){a.call(this)}p(c,a);c.create=function(){return new c};c.prototype._subscribe=function(a){n.noop()};return c}(g.Observable);e.NeverObservable=a},function(g,e,a){g=a(0);a=a(371);g.Observable.of=a.of},function(g,e,a){g=a(34);e.of=g.ArrayObservable.of},function(g,
+e,a){g=a(0);a=a(373);g.Observable.onErrorResumeNext=a.onErrorResumeNext},function(g,e,a){g=a(179);e.onErrorResumeNext=g.onErrorResumeNextStatic},function(g,e,a){g=a(0);a=a(375);g.Observable.pairs=a.pairs},function(g,e,a){g=a(376);e.pairs=g.PairsObservable.create},function(g,e,a){function p(a){var c=a.obj,b=a.keys,d=a.index,f=a.subscriber;d===a.length?f.complete():(b=b[d],f.next([b,c[b]]),a.index=d+1,this.schedule(a))}var n=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&
+(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=function(a){function c(b,c){a.call(this);this.obj=b;this.scheduler=c;this.keys=Object.keys(b)}n(c,a);c.create=function(a,d){return new c(a,d)};c.prototype._subscribe=function(a){var b=this.keys,c=this.scheduler,e=b.length;if(c)return c.schedule(p,0,{obj:this.obj,keys:b,length:e,index:0,subscriber:a});for(c=0;c<e;c++){var g=b[c];a.next([g,this.obj[g]])}a.complete()};return c}(a(0).Observable);e.PairsObservable=g},
+function(g,e,a){g=a(0);a=a(378);g.Observable.range=a.range},function(g,e,a){g=a(379);e.range=g.RangeObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b,d){a.call(this);this.start=c;this._count=b;this.scheduler=d}p(e,a);e.create=function(a,b,d){void 0===a&&(a=0);void 0===b&&(b=0);return new e(a,b,
+d)};e.dispatch=function(a){var b=a.start,c=a.index,f=a.subscriber;c>=a.count?f.complete():(f.next(b),f.closed||(a.index=c+1,a.start=b+1,this.schedule(a)))};e.prototype._subscribe=function(a){var b=0,c=this.start,f=this._count,h=this.scheduler;if(h)return h.schedule(e.dispatch,0,{index:b,count:f,start:c,subscriber:a});do{if(b++>=f){a.complete();break}a.next(c++);if(a.closed)break}while(1)};return e}(a(0).Observable);e.RangeObservable=g},function(g,e,a){g=a(0);a=a(381);g.Observable.using=a.using},function(g,
+e,a){g=a(382);e.using=g.UsingObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(5);a=a(4);g=function(a){function b(b,c){a.call(this);this.resourceFactory=b;this.observableFactory=c}p(b,a);b.create=function(a,c){return new b(a,c)};b.prototype._subscribe=function(a){var b=this.resourceFactory,c=this.observableFactory;
+try{var d=b();return new m(a,d,c)}catch(k){a.error(k)}};return b}(g.Observable);e.UsingObservable=g;var m=function(a){function b(b,c,e){a.call(this,b);this.resource=c;this.observableFactory=e;b.add(c);this.tryUse()}p(b,a);b.prototype.tryUse=function(){try{var a=this.observableFactory.call(this,this.resource);a&&this.add(n.subscribeToResult(this,a))}catch(f){this._error(f)}};return b}(a.OuterSubscriber)},function(g,e,a){g=a(0);a=a(384);g.Observable.throw=a._throw},function(g,e,a){g=a(385);e._throw=
+g.ErrorObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b){a.call(this);this.error=c;this.scheduler=b}p(e,a);e.create=function(a,b){return new e(a,b)};e.dispatch=function(a){a.subscriber.error(a.error)};e.prototype._subscribe=function(a){var b=this.error,c=this.scheduler;a.syncErrorThrowable=!0;
+if(c)return c.schedule(e.dispatch,0,{error:b,subscriber:a});a.error(b)};return e}(a(0).Observable);e.ErrorObservable=g},function(g,e,a){g=a(0);a=a(387);g.Observable.timer=a.timer},function(g,e,a){g=a(388);e.timer=g.TimerObservable.create},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(79);g=a(0);var m=a(17),c=a(33),b=a(80);a=function(a){function d(d,
+f,e){void 0===d&&(d=0);a.call(this);this.period=-1;this.dueTime=0;n.isNumeric(f)?this.period=1>Number(f)&&1||Number(f):c.isScheduler(f)&&(e=f);c.isScheduler(e)||(e=m.async);this.scheduler=e;this.dueTime=b.isDate(d)?+d-this.scheduler.now():d}p(d,a);d.create=function(a,b,c){void 0===a&&(a=0);return new d(a,b,c)};d.dispatch=function(a){var b=a.index,c=a.period,d=a.subscriber;d.next(b);if(!d.closed){if(-1===c)return d.complete();a.index=b+1;this.schedule(a,c)}};d.prototype._subscribe=function(a){return this.scheduler.schedule(d.dispatch,
+this.dueTime,{index:0,period:this.period,subscriber:a})};return d}(g.Observable);e.TimerObservable=a},function(g,e,a){g=a(0);a=a(390);g.Observable.zip=a.zip},function(g,e,a){g=a(115);e.zip=g.zipStatic},function(g,e,a){g=a(0);a=a(392);g.Observable.ajax=a.ajax},function(g,e,a){g=a(180);e.ajax=g.AjaxObservable.create},function(g,e,a){g=a(0);a=a(394);g.Observable.webSocket=a.webSocket},function(g,e,a){g=a(395);e.webSocket=g.WebSocketSubject.create},function(g,e,a){var p=this&&this.__extends||function(a,
+b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10),m=a(2),c=a(0),b=a(8),d=a(12),f=a(81),h=a(13),q=a(11),k=a(398);g=function(a){function e(b,e){if(b instanceof c.Observable)a.call(this,e,b);else{a.call(this);this.WebSocketCtor=d.root.WebSocket;this._output=new n.Subject;"string"===typeof b?this.url=b:k.assign(this,b);if(!this.WebSocketCtor)throw Error("no WebSocket constructor can be found");
+this.destination=new f.ReplaySubject}}p(e,a);e.prototype.resultSelector=function(a){return JSON.parse(a.data)};e.create=function(a){return new e(a)};e.prototype.lift=function(a){var b=new e(this,this.destination);b.operator=a;return b};e.prototype._resetState=function(){this.socket=null;this.source||(this.destination=new f.ReplaySubject);this._output=new n.Subject};e.prototype.multiplex=function(a,b,d){var f=this;return new c.Observable(function(c){var e=h.tryCatch(a)();e===q.errorObject?c.error(q.errorObject.e):
+f.next(e);var g=f.subscribe(function(a){var b=h.tryCatch(d)(a);b===q.errorObject?c.error(q.errorObject.e):b&&c.next(a)},function(a){return c.error(a)},function(){return c.complete()});return function(){var a=h.tryCatch(b)();a===q.errorObject?c.error(q.errorObject.e):f.next(a);g.unsubscribe()}})};e.prototype._connectSocket=function(){var a=this,c=this.WebSocketCtor,d=this._output,e=null;try{this.socket=e=this.protocol?new c(this.url,this.protocol):new c(this.url),this.binaryType&&(this.socket.binaryType=
+this.binaryType)}catch(B){d.error(B);return}var g=new b.Subscription(function(){a.socket=null;e&&1===e.readyState&&e.close()});e.onopen=function(b){var c=a.openObserver;c&&c.next(b);b=a.destination;a.destination=m.Subscriber.create(function(a){return 1===e.readyState&&e.send(a)},function(b){var c=a.closingObserver;c&&c.next(void 0);b&&b.code?e.close(b.code,b.reason):d.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }"));
+a._resetState()},function(){var b=a.closingObserver;b&&b.next(void 0);e.close();a._resetState()});b&&b instanceof f.ReplaySubject&&g.add(b.subscribe(a.destination))};e.onerror=function(b){a._resetState();d.error(b)};e.onclose=function(b){a._resetState();var c=a.closeObserver;c&&c.next(b);b.wasClean?d.complete():d.error(b)};e.onmessage=function(b){b=h.tryCatch(a.resultSelector)(b);b===q.errorObject?d.error(q.errorObject.e):d.next(b)}};e.prototype._subscribe=function(a){var c=this,d=this.source;if(d)return d.subscribe(a);
+this.socket||this._connectSocket();d=new b.Subscription;d.add(this._output.subscribe(a));d.add(function(){var a=c.socket;0===c._output.observers.length&&(a&&1===a.readyState&&a.close(),c._resetState())});return d};e.prototype.unsubscribe=function(){var b=this.source,c=this.socket;c&&1===c.readyState&&(c.close(),this._resetState());a.prototype.unsubscribe.call(this);b||(this.destination=new f.ReplaySubject)};return e}(n.AnonymousSubject);e.WebSocketSubject=g},function(g,e,a){var p=this&&this.__extends||
+function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(c,b){a.call(this,c,b);this.scheduler=c;this.work=b}p(e,a);e.prototype.schedule=function(c,b){void 0===b&&(b=0);if(0<b)return a.prototype.schedule.call(this,c,b);this.delay=b;this.state=c;this.scheduler.flush(this);return this};e.prototype.execute=function(c,b){return 0<b||this.closed?a.prototype.execute.call(this,
+c,b):this._execute(c,b)};e.prototype.requestAsyncId=function(c,b,d){void 0===d&&(d=0);return null!==d&&0<d||null===d&&0<this.delay?a.prototype.requestAsyncId.call(this,c,b,d):c.flush(this)};return e}(a(58).AsyncAction);e.QueueAction=g},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){a.apply(this,arguments)}p(e,a);
+return e}(a(59).AsyncScheduler);e.QueueScheduler=g},function(g,e,a){function p(a){for(var c=[],b=1;b<arguments.length;b++)c[b-1]=arguments[b];b=c.length;for(var d=0;d<b;d++){var f=c[d],e;for(e in f)f.hasOwnProperty(e)&&(a[e]=f[e])}return a}function n(a){return a.Object.assign||p}g=a(12);e.assignImpl=p;e.getAssign=n;e.assign=n(g.root)},function(g,e,a){g=a(0);a=a(400);g.Observable.prototype.buffer=a.buffer},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&
+(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.buffer=function(a){return this.lift(new m(a))};var m=function(){function a(a){this.closingNotifier=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.closingNotifier))};return a}(),c=function(a){function b(b,c){a.call(this,b);this.buffer=[];this.add(n.subscribeToResult(this,c))}p(b,a);b.prototype._next=function(a){this.buffer.push(a)};b.prototype.notifyNext=function(a,b,c,d,e){a=this.buffer;
+this.buffer=[];this.destination.next(a)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(402);g.Observable.prototype.bufferCount=a.bufferCount},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);e.bufferCount=function(a,c){void 0===c&&(c=null);return this.lift(new n(a,c))};var n=function(){function a(a,b){this.bufferSize=a;this.subscriberClass=
+(this.startBufferEvery=b)&&a!==b?c:m}a.prototype.call=function(a,b){return b.subscribe(new this.subscriberClass(a,this.bufferSize,this.startBufferEvery))};return a}(),m=function(a){function b(b,c){a.call(this,b);this.bufferSize=c;this.buffer=[]}p(b,a);b.prototype._next=function(a){var b=this.buffer;b.push(a);b.length==this.bufferSize&&(this.destination.next(b),this.buffer=[])};b.prototype._complete=function(){var b=this.buffer;0<b.length&&this.destination.next(b);a.prototype._complete.call(this)};
+return b}(g.Subscriber),c=function(a){function b(b,c,d){a.call(this,b);this.bufferSize=c;this.startBufferEvery=d;this.buffers=[];this.count=0}p(b,a);b.prototype._next=function(a){var b=this.bufferSize,c=this.startBufferEvery,d=this.buffers,f=this.count;this.count++;0===f%c&&d.push([]);for(c=d.length;c--;)f=d[c],f.push(a),f.length===b&&(d.splice(c,1),this.destination.next(f))};b.prototype._complete=function(){for(var b=this.buffers,c=this.destination;0<b.length;){var d=b.shift();0<d.length&&c.next(d)}a.prototype._complete.call(this)};
+return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(404);g.Observable.prototype.bufferTime=a.bufferTime},function(g,e,a){function p(a){var b=a.subscriber,c=a.context;c&&b.closeContext(c);b.closed||(a.context=b.openContext(),a.context.closeAction=this.schedule(a,a.bufferTimeSpan))}function n(a){var b=a.bufferCreationInterval,c=a.bufferTimeSpan,d=a.subscriber,f=a.scheduler,e=d.openContext();d.closed||(d.add(e.closeAction=f.schedule(m,c,{subscriber:d,context:e})),this.schedule(a,b))}function m(a){a.subscriber.closeContext(a.context)}
+var c=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},b=a(17);g=a(2);var d=a(33);e.bufferTime=function(a){var c=arguments.length,e=b.async;d.isScheduler(arguments[arguments.length-1])&&(e=arguments[arguments.length-1],c--);var h=null;2<=c&&(h=arguments[1]);var g=Number.POSITIVE_INFINITY;3<=c&&(g=arguments[2]);return this.lift(new f(a,h,g,e))};var f=function(){function a(a,
+b,c,d){this.bufferTimeSpan=a;this.bufferCreationInterval=b;this.maxBufferSize=c;this.scheduler=d}a.prototype.call=function(a,b){return b.subscribe(new q(a,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))};return a}(),h=function(){return function(){this.buffer=[]}}(),q=function(a){function b(b,c,d,f,e){a.call(this,b);this.bufferTimeSpan=c;this.bufferCreationInterval=d;this.maxBufferSize=f;this.scheduler=e;this.contexts=[];b=this.openContext();(this.timespanOnly=null==
+d||0>d)?this.add(b.closeAction=e.schedule(p,c,{subscriber:this,context:b,bufferTimeSpan:c})):(f={bufferTimeSpan:c,bufferCreationInterval:d,subscriber:this,scheduler:e},this.add(b.closeAction=e.schedule(m,c,{subscriber:this,context:b})),this.add(e.schedule(n,d,f)))}c(b,a);b.prototype._next=function(a){for(var b=this.contexts,c=b.length,d,f=0;f<c;f++){var e=b[f],h=e.buffer;h.push(a);h.length==this.maxBufferSize&&(d=e)}if(d)this.onBufferFull(d)};b.prototype._error=function(b){this.contexts.length=0;
+a.prototype._error.call(this,b)};b.prototype._complete=function(){for(var b=this.contexts,c=this.destination;0<b.length;){var d=b.shift();c.next(d.buffer)}a.prototype._complete.call(this)};b.prototype._unsubscribe=function(){this.contexts=null};b.prototype.onBufferFull=function(a){this.closeContext(a);a=a.closeAction;a.unsubscribe();this.remove(a);if(!this.closed&&this.timespanOnly){a=this.openContext();var b=this.bufferTimeSpan;this.add(a.closeAction=this.scheduler.schedule(p,b,{subscriber:this,
+context:a,bufferTimeSpan:b}))}};b.prototype.openContext=function(){var a=new h;this.contexts.push(a);return a};b.prototype.closeContext=function(a){this.destination.next(a.buffer);var b=this.contexts;0<=(b?b.indexOf(a):-1)&&b.splice(b.indexOf(a),1)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(406);g.Observable.prototype.bufferToggle=a.bufferToggle},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=
+null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(8),m=a(5);g=a(4);e.bufferToggle=function(a,b){return this.lift(new c(a,b))};var c=function(){function a(a,b){this.openings=a;this.closingSelector=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.openings,this.closingSelector))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.openings=c;this.closingSelector=d;this.contexts=[];this.add(m.subscribeToResult(this,c))}p(b,a);b.prototype._next=function(a){for(var b=
+this.contexts,c=b.length,d=0;d<c;d++)b[d].buffer.push(a)};b.prototype._error=function(b){for(var c=this.contexts;0<c.length;){var d=c.shift();d.subscription.unsubscribe();d.buffer=null;d.subscription=null}this.contexts=null;a.prototype._error.call(this,b)};b.prototype._complete=function(){for(var b=this.contexts;0<b.length;){var c=b.shift();this.destination.next(c.buffer);c.subscription.unsubscribe();c.buffer=null;c.subscription=null}this.contexts=null;a.prototype._complete.call(this)};b.prototype.notifyNext=
+function(a,b,c,d,f){a?this.closeBuffer(a):this.openBuffer(b)};b.prototype.notifyComplete=function(a){this.closeBuffer(a.context)};b.prototype.openBuffer=function(a){try{var b=this.closingSelector.call(this,a);b&&this.trySubscribe(b)}catch(k){this._error(k)}};b.prototype.closeBuffer=function(a){var b=this.contexts;if(b&&a){var c=a.subscription;this.destination.next(a.buffer);b.splice(b.indexOf(a),1);this.remove(c);c.unsubscribe()}};b.prototype.trySubscribe=function(a){var b=this.contexts,c=new n.Subscription,
+d={buffer:[],subscription:c};b.push(d);a=m.subscribeToResult(this,a,d);!a||a.closed?this.closeBuffer(d):(a.context=d,this.add(a),c.add(a))};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(408);g.Observable.prototype.bufferWhen=a.bufferWhen},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(8),m=a(13),c=a(11);g=a(4);var b=a(5);e.bufferWhen=
+function(a){return this.lift(new d(a))};var d=function(){function a(a){this.closingSelector=a}a.prototype.call=function(a,b){return b.subscribe(new f(a,this.closingSelector))};return a}(),f=function(a){function d(b,c){a.call(this,b);this.closingSelector=c;this.subscribing=!1;this.openBuffer()}p(d,a);d.prototype._next=function(a){this.buffer.push(a)};d.prototype._complete=function(){var b=this.buffer;b&&this.destination.next(b);a.prototype._complete.call(this)};d.prototype._unsubscribe=function(){this.buffer=
+null;this.subscribing=!1};d.prototype.notifyNext=function(a,b,c,d,f){this.openBuffer()};d.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()};d.prototype.openBuffer=function(){var a=this.closingSubscription;a&&(this.remove(a),a.unsubscribe());(a=this.buffer)&&this.destination.next(a);this.buffer=[];var d=m.tryCatch(this.closingSelector)();d===c.errorObject?this.error(c.errorObject.e):(this.closingSubscription=a=new n.Subscription,this.add(a),this.subscribing=!0,
+a.add(b.subscribeToResult(this,d)),this.subscribing=!1)};return d}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(410);g.Observable.prototype.catch=a._catch;g.Observable.prototype._catch=a._catch},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e._catch=function(a){a=new m(a);var b=this.lift(a);return a.caught=b};var m=function(){function a(a){this.selector=
+a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.selector,this.caught))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.selector=c;this.caught=d}p(b,a);b.prototype.error=function(b){if(!this.isStopped){var c=void 0;try{c=this.selector(b,this.caught)}catch(q){a.prototype.error.call(this,q);return}this._unsubscribeAndRecycle();this.add(n.subscribeToResult(this,c))}};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(412);g.Observable.prototype.combineAll=a.combineAll},
+function(g,e,a){var p=a(112);e.combineAll=function(a){return this.lift(new p.CombineLatestOperator(a))}},function(g,e,a){g=a(0);a=a(112);g.Observable.prototype.combineLatest=a.combineLatest},function(g,e,a){g=a(0);a=a(113);g.Observable.prototype.concat=a.concat},function(g,e,a){g=a(0);a=a(416);g.Observable.prototype.concatAll=a.concatAll},function(g,e,a){var p=a(78);e.concatAll=function(){return this.lift(new p.MergeAllOperator(1))}},function(g,e,a){g=a(0);a=a(418);g.Observable.prototype.concatMap=
+a.concatMap},function(g,e,a){var p=a(182);e.concatMap=function(a,e){return this.lift(new p.MergeMapOperator(a,e,1))}},function(g,e,a){g=a(0);a=a(420);g.Observable.prototype.concatMapTo=a.concatMapTo},function(g,e,a){var p=a(183);e.concatMapTo=function(a,e){return this.lift(new p.MergeMapToOperator(a,e,1))}},function(g,e,a){g=a(0);a=a(422);g.Observable.prototype.count=a.count},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&
+(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.count=function(a){return this.lift(new n(a,this))};var n=function(){function a(a,c){this.predicate=a;this.source=c}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate,this.source))};return a}(),m=function(a){function b(b,c,e){a.call(this,b);this.predicate=c;this.source=e;this.index=this.count=0}p(b,a);b.prototype._next=function(a){this.predicate?this._tryPredicate(a):this.count++};b.prototype._tryPredicate=
+function(a){try{var b=this.predicate(a,this.index++,this.source)}catch(h){this.destination.error(h);return}b&&this.count++};b.prototype._complete=function(){this.destination.next(this.count);this.destination.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(424);g.Observable.prototype.dematerialize=a.dematerialize},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)};g=a(2);e.dematerialize=function(){return this.lift(new n)};var n=function(){function a(){}a.prototype.call=function(a,c){return c.subscribe(new m(a))};return a}(),m=function(a){function b(b){a.call(this,b)}p(b,a);b.prototype._next=function(a){a.observe(this.destination)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(426);g.Observable.prototype.debounce=a.debounce},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&
+(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.debounce=function(a){return this.lift(new m(a))};var m=function(){function a(a){this.durationSelector=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.durationSelector))};return a}(),c=function(a){function b(b,c){a.call(this,b);this.durationSelector=c;this.hasValue=!1;this.durationSubscription=null}p(b,a);b.prototype._next=function(a){try{var b=this.durationSelector.call(this,a);
+b&&this._tryNext(a,b)}catch(q){this.destination.error(q)}};b.prototype._complete=function(){this.emitValue();this.destination.complete()};b.prototype._tryNext=function(a,b){var c=this.durationSubscription;this.value=a;this.hasValue=!0;c&&(c.unsubscribe(),this.remove(c));c=n.subscribeToResult(this,b);c.closed||this.add(this.durationSubscription=c)};b.prototype.notifyNext=function(a,b,c,d,e){this.emitValue()};b.prototype.notifyComplete=function(){this.emitValue()};b.prototype.emitValue=function(){if(this.hasValue){var b=
+this.value,c=this.durationSubscription;c&&(this.durationSubscription=null,c.unsubscribe(),this.remove(c));this.value=null;this.hasValue=!1;a.prototype._next.call(this,b)}};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(428);g.Observable.prototype.debounceTime=a.debounceTime},function(g,e,a){function p(a){a.debouncedNext()}var n=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=
+b.prototype,new c)};g=a(2);var m=a(17);e.debounceTime=function(a,b){void 0===b&&(b=m.async);return this.lift(new c(a,b))};var c=function(){function a(a,b){this.dueTime=a;this.scheduler=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.dueTime,this.scheduler))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.dueTime=c;this.scheduler=d;this.lastValue=this.debouncedSubscription=null;this.hasValue=!1}n(b,a);b.prototype._next=function(a){this.clearDebounce();this.lastValue=
+a;this.hasValue=!0;this.add(this.debouncedSubscription=this.scheduler.schedule(p,this.dueTime,this))};b.prototype._complete=function(){this.debouncedNext();this.destination.complete()};b.prototype.debouncedNext=function(){this.clearDebounce();this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)};b.prototype.clearDebounce=function(){var a=this.debouncedSubscription;null!==a&&(this.remove(a),a.unsubscribe(),this.debouncedSubscription=null)};return b}(g.Subscriber)},
+function(g,e,a){g=a(0);a=a(430);g.Observable.prototype.defaultIfEmpty=a.defaultIfEmpty},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.defaultIfEmpty=function(a){void 0===a&&(a=null);return this.lift(new n(a))};var n=function(){function a(a){this.defaultValue=a}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.defaultValue))};
+return a}(),m=function(a){function b(b,c){a.call(this,b);this.defaultValue=c;this.isEmpty=!0}p(b,a);b.prototype._next=function(a){this.isEmpty=!1;this.destination.next(a)};b.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue);this.destination.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(432);g.Observable.prototype.delay=a.delay},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&
+(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(17),m=a(80);g=a(2);var c=a(57);e.delay=function(a,c){void 0===c&&(c=n.async);a=m.isDate(a)?+a-c.now():Math.abs(a);return this.lift(new b(a,c))};var b=function(){function a(a,b){this.delay=a;this.scheduler=b}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.delay,this.scheduler))};return a}(),d=function(a){function b(b,c,d){a.call(this,b);this.delay=c;this.scheduler=d;this.queue=[];this.errored=this.active=
+!1}p(b,a);b.dispatch=function(a){for(var b=a.source,c=b.queue,d=a.scheduler,f=a.destination;0<c.length&&0>=c[0].time-d.now();)c.shift().notification.observe(f);0<c.length?(b=Math.max(0,c[0].time-d.now()),this.schedule(a,b)):b.active=!1};b.prototype._schedule=function(a){this.active=!0;this.add(a.schedule(b.dispatch,this.delay,{source:this,destination:this.destination,scheduler:a}))};b.prototype.scheduleNotification=function(a){if(!0!==this.errored){var b=this.scheduler;a=new f(b.now()+this.delay,
+a);this.queue.push(a);!1===this.active&&this._schedule(b)}};b.prototype._next=function(a){this.scheduleNotification(c.Notification.createNext(a))};b.prototype._error=function(a){this.errored=!0;this.queue=[];this.destination.error(a)};b.prototype._complete=function(){this.scheduleNotification(c.Notification.createComplete())};return b}(g.Subscriber),f=function(){return function(a,b){this.time=a;this.notification=b}}()},function(g,e,a){g=a(0);a=a(434);g.Observable.prototype.delayWhen=a.delayWhen},
+function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(0),m=a(4),c=a(5);e.delayWhen=function(a,c){return c?(new f(this,c)).lift(new b(a)):this.lift(new b(a))};var b=function(){function a(a){this.delayDurationSelector=a}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.delayDurationSelector))};return a}(),d=function(a){function b(b,
+c){a.call(this,b);this.delayDurationSelector=c;this.completed=!1;this.delayNotifierSubscriptions=[];this.values=[]}p(b,a);b.prototype.notifyNext=function(a,b,c,d,f){this.destination.next(a);this.removeSubscription(f);this.tryComplete()};b.prototype.notifyError=function(a,b){this._error(a)};b.prototype.notifyComplete=function(a){(a=this.removeSubscription(a))&&this.destination.next(a);this.tryComplete()};b.prototype._next=function(a){try{var b=this.delayDurationSelector(a);b&&this.tryDelay(b,a)}catch(l){this.destination.error(l)}};
+b.prototype._complete=function(){this.completed=!0;this.tryComplete()};b.prototype.removeSubscription=function(a){a.unsubscribe();a=this.delayNotifierSubscriptions.indexOf(a);var b=null;-1!==a&&(b=this.values[a],this.delayNotifierSubscriptions.splice(a,1),this.values.splice(a,1));return b};b.prototype.tryDelay=function(a,b){(a=c.subscribeToResult(this,a,b))&&!a.closed&&(this.add(a),this.delayNotifierSubscriptions.push(a));this.values.push(b)};b.prototype.tryComplete=function(){this.completed&&0===
+this.delayNotifierSubscriptions.length&&this.destination.complete()};return b}(m.OuterSubscriber),f=function(a){function b(b,c){a.call(this);this.source=b;this.subscriptionDelay=c}p(b,a);b.prototype._subscribe=function(a){this.subscriptionDelay.subscribe(new h(a,this.source))};return b}(n.Observable),h=function(a){function b(b,c){a.call(this);this.parent=b;this.source=c;this.sourceSubscribed=!1}p(b,a);b.prototype._next=function(a){this.subscribeToSource()};b.prototype._error=function(a){this.unsubscribe();
+this.parent.error(a)};b.prototype._complete=function(){this.subscribeToSource()};b.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(436);g.Observable.prototype.distinct=a.distinct},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)};g=a(4);var n=a(5),m=a(437);e.distinct=function(a,b){return this.lift(new c(a,b))};var c=function(){function a(a,b){this.keySelector=a;this.flushes=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.keySelector,this.flushes))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.keySelector=c;this.values=new m.Set;d&&this.add(n.subscribeToResult(this,d))}p(b,a);b.prototype.notifyNext=function(a,b,c,d,f){this.values.clear()};b.prototype.notifyError=
+function(a,b){this._error(a)};b.prototype._next=function(a){this.keySelector?this._useKeySelector(a):this._finalizeNext(a,a)};b.prototype._useKeySelector=function(a){var b=this.destination;try{var c=this.keySelector(a)}catch(t){b.error(t);return}this._finalizeNext(c,a)};b.prototype._finalizeNext=function(a,b){var c=this.values;c.has(a)||(c.add(a),this.destination.next(b))};return b}(g.OuterSubscriber);e.DistinctSubscriber=b},function(g,e,a){function p(){return function(){function a(){this._values=
+[]}a.prototype.add=function(a){this.has(a)||this._values.push(a)};a.prototype.has=function(a){return-1!==this._values.indexOf(a)};Object.defineProperty(a.prototype,"size",{get:function(){return this._values.length},enumerable:!0,configurable:!0});a.prototype.clear=function(){this._values.length=0};return a}()}g=a(12);e.minimalSetImpl=p;e.Set=g.root.Set||p()},function(g,e,a){g=a(0);a=a(184);g.Observable.prototype.distinctUntilChanged=a.distinctUntilChanged},function(g,e,a){g=a(0);a=a(440);g.Observable.prototype.distinctUntilKeyChanged=
+a.distinctUntilKeyChanged},function(g,e,a){var p=a(184);e.distinctUntilKeyChanged=function(a,e){return p.distinctUntilChanged.call(this,function(c,b){return e?e(c[a],b[a]):c[a]===b[a]})}},function(g,e,a){g=a(0);a=a(442);g.Observable.prototype.do=a._do;g.Observable.prototype._do=a._do},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)},n=a(2);
+e._do=function(a,c,f){return this.lift(new m(a,c,f))};var m=function(){function a(a,b,c){this.nextOrObserver=a;this.error=b;this.complete=c}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.nextOrObserver,this.error,this.complete))};return a}(),c=function(a){function b(b,c,d,e){a.call(this,b);b=new n.Subscriber(c,d,e);b.syncErrorThrowable=!0;this.add(b);this.safeSubscriber=b}p(b,a);b.prototype._next=function(a){var b=this.safeSubscriber;b.next(a);b.syncErrorThrown?this.destination.error(b.syncErrorValue):
+this.destination.next(a)};b.prototype._error=function(a){var b=this.safeSubscriber;b.error(a);b.syncErrorThrown?this.destination.error(b.syncErrorValue):this.destination.error(a)};b.prototype._complete=function(){var a=this.safeSubscriber;a.complete();a.syncErrorThrown?this.destination.error(a.syncErrorValue):this.destination.complete()};return b}(n.Subscriber)},function(g,e,a){g=a(0);a=a(444);g.Observable.prototype.exhaust=a.exhaust},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=
+a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.exhaust=function(){return this.lift(new m)};var m=function(){function a(){}a.prototype.call=function(a,b){return b.subscribe(new c(a))};return a}(),c=function(a){function b(b){a.call(this,b);this.hasSubscription=this.hasCompleted=!1}p(b,a);b.prototype._next=function(a){this.hasSubscription||(this.hasSubscription=!0,this.add(n.subscribeToResult(this,a)))};b.prototype._complete=
+function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};b.prototype.notifyComplete=function(a){this.remove(a);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(446);g.Observable.prototype.exhaustMap=a.exhaustMap},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=
+c.prototype,new b)};g=a(4);var n=a(5);e.exhaustMap=function(a,c){return this.lift(new m(a,c))};var m=function(){function a(a,b){this.project=a;this.resultSelector=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.project,this.resultSelector))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.project=c;this.resultSelector=d;this.hasCompleted=this.hasSubscription=!1;this.index=0}p(b,a);b.prototype._next=function(a){this.hasSubscription||this.tryNext(a)};b.prototype.tryNext=
+function(a){var b=this.index++,c=this.destination;try{var d=this.project(a,b);this.hasSubscription=!0;this.add(n.subscribeToResult(this,d,a,b))}catch(t){c.error(t)}};b.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};b.prototype.notifyNext=function(a,b,c,d,e){e=this.destination;this.resultSelector?this.trySelectResult(a,b,c,d):e.next(b)};b.prototype.trySelectResult=function(a,b,c,d){var f=this.resultSelector,e=this.destination;try{var h=f(a,b,
+c,d);e.next(h)}catch(u){e.error(u)}};b.prototype.notifyError=function(a){this.destination.error(a)};b.prototype.notifyComplete=function(a){this.remove(a);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(448);g.Observable.prototype.expand=a.expand},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)},n=a(13),m=a(11);g=a(4);var c=a(5);e.expand=function(a,c,d){void 0===c&&(c=Number.POSITIVE_INFINITY);void 0===d&&(d=void 0);c=1>(c||0)?Number.POSITIVE_INFINITY:c;return this.lift(new b(a,c,d))};var b=function(){function a(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.project,this.concurrent,this.scheduler))};return a}();e.ExpandOperator=b;var d=function(a){function b(b,c,d,f){a.call(this,b);this.project=
+c;this.concurrent=d;this.scheduler=f;this.active=this.index=0;this.hasCompleted=!1;d<Number.POSITIVE_INFINITY&&(this.buffer=[])}p(b,a);b.dispatch=function(a){a.subscriber.subscribeToProjection(a.result,a.value,a.index)};b.prototype._next=function(a){var c=this.destination;if(c.closed)this._complete();else{var d=this.index++;if(this.active<this.concurrent){c.next(a);var f=n.tryCatch(this.project)(a,d);f===m.errorObject?c.error(m.errorObject.e):this.scheduler?this.add(this.scheduler.schedule(b.dispatch,
+0,{subscriber:this,result:f,value:a,index:d})):this.subscribeToProjection(f,a,d)}else this.buffer.push(a)}};b.prototype.subscribeToProjection=function(a,b,d){this.active++;this.add(c.subscribeToResult(this,a,b,d))};b.prototype._complete=function(){(this.hasCompleted=!0,0===this.active)&&this.destination.complete()};b.prototype.notifyNext=function(a,b,c,d,f){this._next(b)};b.prototype.notifyComplete=function(a){var b=this.buffer;this.remove(a);this.active--;b&&0<b.length&&this._next(b.shift());this.hasCompleted&&
+0===this.active&&this.destination.complete()};return b}(g.OuterSubscriber);e.ExpandSubscriber=d},function(g,e,a){g=a(0);a=a(450);g.Observable.prototype.elementAt=a.elementAt},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(60);e.elementAt=function(a,c){return this.lift(new m(a,c))};var m=function(){function a(a,b){this.index=
+a;this.defaultValue=b;if(0>a)throw new n.ArgumentOutOfRangeError;}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.index,this.defaultValue))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.index=c;this.defaultValue=d}p(b,a);b.prototype._next=function(a){0===this.index--&&(this.destination.next(a),this.destination.complete())};b.prototype._complete=function(){var a=this.destination;0<=this.index&&("undefined"!==typeof this.defaultValue?a.next(this.defaultValue):a.error(new n.ArgumentOutOfRangeError));
+a.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(185);g.Observable.prototype.filter=a.filter},function(g,e,a){g=a(0);a=a(453);g.Observable.prototype.finally=a._finally;g.Observable.prototype._finally=a._finally},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(8);e._finally=function(a){return this.lift(new m(a))};
+var m=function(){function a(a){this.callback=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.callback))};return a}(),c=function(a){function b(b,c){a.call(this,b);this.add(new n.Subscription(c))}p(b,a);return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(186);g.Observable.prototype.find=a.find},function(g,e,a){g=a(0);a=a(456);g.Observable.prototype.findIndex=a.findIndex},function(g,e,a){var p=a(186);e.findIndex=function(a,e){return this.lift(new p.FindValueOperator(a,this,!0,e))}},
+function(g,e,a){g=a(0);a=a(458);g.Observable.prototype.first=a.first},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(82);e.first=function(a,c,f){return this.lift(new m(a,c,f,this))};var m=function(){function a(a,b,c,e){this.predicate=a;this.resultSelector=b;this.defaultValue=c;this.source=e}a.prototype.call=function(a,b){return b.subscribe(new c(a,
+this.predicate,this.resultSelector,this.defaultValue,this.source))};return a}(),c=function(a){function b(b,c,d,e,g){a.call(this,b);this.predicate=c;this.resultSelector=d;this.defaultValue=e;this.source=g;this.index=0;this._emitted=this.hasCompleted=!1}p(b,a);b.prototype._next=function(a){var b=this.index++;this.predicate?this._tryPredicate(a,b):this._emit(a,b)};b.prototype._tryPredicate=function(a,b){try{var c=this.predicate(a,b,this.source)}catch(k){this.destination.error(k);return}c&&this._emit(a,
+b)};b.prototype._emit=function(a,b){this.resultSelector?this._tryResultSelector(a,b):this._emitFinal(a)};b.prototype._tryResultSelector=function(a,b){try{var c=this.resultSelector(a,b)}catch(k){this.destination.error(k);return}this._emitFinal(c)};b.prototype._emitFinal=function(a){var b=this.destination;this._emitted||(this._emitted=!0,b.next(a),b.complete(),this.hasCompleted=!0)};b.prototype._complete=function(){var a=this.destination;this.hasCompleted||"undefined"===typeof this.defaultValue?this.hasCompleted||
+a.error(new n.EmptyError):(a.next(this.defaultValue),a.complete())};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(460);g.Observable.prototype.groupBy=a.groupBy},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(8),m=a(0),c=a(10),b=a(461),d=a(463);e.groupBy=function(a,b,c,d){return this.lift(new f(a,b,c,d))};var f=function(){function a(a,
+b,c,d){this.keySelector=a;this.elementSelector=b;this.durationSelector=c;this.subjectSelector=d}a.prototype.call=function(a,b){return b.subscribe(new h(a,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))};return a}(),h=function(a){function f(b,c,d,f,e){a.call(this,b);this.keySelector=c;this.elementSelector=d;this.durationSelector=f;this.subjectSelector=e;this.groups=null;this.attemptedToUnsubscribe=!1;this.count=0}p(f,a);f.prototype._next=function(a){try{var b=this.keySelector(a)}catch(y){this.error(y);
+return}this._group(a,b)};f.prototype._group=function(a,f){var e=this.groups;e||(e=this.groups="string"===typeof f?new d.FastMap:new b.Map);var h=e.get(f);if(this.elementSelector)try{var g=this.elementSelector(a)}catch(x){this.error(x)}else g=a;if(!h&&(h=this.subjectSelector?this.subjectSelector():new c.Subject,e.set(f,h),a=new k(f,h,this),this.destination.next(a),this.durationSelector)){a=void 0;try{a=this.durationSelector(new k(f,h))}catch(x){this.error(x);return}this.add(a.subscribe(new q(f,h,this)))}h.closed||
+h.next(g)};f.prototype._error=function(a){var b=this.groups;b&&(b.forEach(function(b,c){b.error(a)}),b.clear());this.destination.error(a)};f.prototype._complete=function(){var a=this.groups;a&&(a.forEach(function(a,b){a.complete()}),a.clear());this.destination.complete()};f.prototype.removeGroup=function(a){this.groups.delete(a)};f.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&a.prototype.unsubscribe.call(this))};return f}(g.Subscriber),q=function(a){function b(b,
+c,d){a.call(this,c);this.key=b;this.group=c;this.parent=d}p(b,a);b.prototype._next=function(a){this.complete()};b.prototype._unsubscribe=function(){var a=this.parent,b=this.key;this.key=this.parent=null;a&&a.removeGroup(b)};return b}(g.Subscriber),k=function(a){function b(b,c,d){a.call(this);this.key=b;this.groupSubject=c;this.refCountSubscription=d}p(b,a);b.prototype._subscribe=function(a){var b=new n.Subscription,c=this.refCountSubscription,d=this.groupSubject;c&&!c.closed&&b.add(new t(c));b.add(d.subscribe(a));
+return b};return b}(m.Observable);e.GroupedObservable=k;var t=function(a){function b(b){a.call(this);this.parent=b;b.count++}p(b,a);b.prototype.unsubscribe=function(){var b=this.parent;b.closed||this.closed||(a.prototype.unsubscribe.call(this),--b.count,0===b.count&&b.attemptedToUnsubscribe&&b.unsubscribe())};return b}(n.Subscription)},function(g,e,a){g=a(12);a=a(462);e.Map=g.root.Map||a.MapPolyfill},function(g,e,a){g=function(){function a(){this.size=0;this._values=[];this._keys=[]}a.prototype.get=
+function(a){a=this._keys.indexOf(a);return-1===a?void 0:this._values[a]};a.prototype.set=function(a,e){var c=this._keys.indexOf(a);-1===c?(this._keys.push(a),this._values.push(e),this.size++):this._values[c]=e;return this};a.prototype.delete=function(a){a=this._keys.indexOf(a);if(-1===a)return!1;this._values.splice(a,1);this._keys.splice(a,1);this.size--;return!0};a.prototype.clear=function(){this._keys.length=0;this.size=this._values.length=0};a.prototype.forEach=function(a,e){for(var c=0;c<this.size;c++)a.call(e,
+this._values[c],this._keys[c])};return a}();e.MapPolyfill=g},function(g,e,a){g=function(){function a(){this.values={}}a.prototype.delete=function(a){this.values[a]=null;return!0};a.prototype.set=function(a,e){this.values[a]=e;return this};a.prototype.get=function(a){return this.values[a]};a.prototype.forEach=function(a,e){var c=this.values,b;for(b in c)c.hasOwnProperty(b)&&null!==c[b]&&a.call(e,c[b],b)};a.prototype.clear=function(){this.values={}};return a}();e.FastMap=g},function(g,e,a){g=a(0);a=
+a(465);g.Observable.prototype.ignoreElements=a.ignoreElements},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(178);e.ignoreElements=function(){return this.lift(new m)};var m=function(){function a(){}a.prototype.call=function(a,b){return b.subscribe(new c(a))};return a}(),c=function(a){function b(){a.apply(this,arguments)}p(b,
+a);b.prototype._next=function(a){n.noop()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(467);g.Observable.prototype.isEmpty=a.isEmpty},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.isEmpty=function(){return this.lift(new n)};var n=function(){function a(){}a.prototype.call=function(a,c){return c.subscribe(new m(a))};return a}(),
+m=function(a){function b(b){a.call(this,b)}p(b,a);b.prototype.notifyComplete=function(a){var b=this.destination;b.next(a);b.complete()};b.prototype._next=function(a){this.notifyComplete(!1)};b.prototype._complete=function(){this.notifyComplete(!0)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(469);g.Observable.prototype.audit=a.audit},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===
+b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(13),m=a(11);g=a(4);var c=a(5);e.audit=function(a){return this.lift(new b(a))};var b=function(){function a(a){this.durationSelector=a}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.durationSelector))};return a}(),d=function(a){function b(b,c){a.call(this,b);this.durationSelector=c;this.hasValue=!1}p(b,a);b.prototype._next=function(a){this.value=a;this.hasValue=!0;this.throttled||(a=n.tryCatch(this.durationSelector)(a),a===m.errorObject?
+this.destination.error(m.errorObject.e):(a=c.subscribeToResult(this,a),a.closed?this.clearThrottle():this.add(this.throttled=a)))};b.prototype.clearThrottle=function(){var a=this.value,b=this.hasValue,c=this.throttled;c&&(this.remove(c),this.throttled=null,c.unsubscribe());b&&(this.value=null,this.hasValue=!1,this.destination.next(a))};b.prototype.notifyNext=function(a,b,c,d){this.clearThrottle()};b.prototype.notifyComplete=function(){this.clearThrottle()};return b}(g.OuterSubscriber)},function(g,
+e,a){g=a(0);a=a(471);g.Observable.prototype.auditTime=a.auditTime},function(g,e,a){function p(a){a.clearThrottle()}var n=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},m=a(17);g=a(2);e.auditTime=function(a,b){void 0===b&&(b=m.async);return this.lift(new c(a,b))};var c=function(){function a(a,b){this.duration=a;this.scheduler=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,
+this.duration,this.scheduler))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.duration=c;this.scheduler=d;this.hasValue=!1}n(b,a);b.prototype._next=function(a){this.value=a;this.hasValue=!0;this.throttled||this.add(this.throttled=this.scheduler.schedule(p,this.duration,this))};b.prototype.clearThrottle=function(){var a=this.value,b=this.hasValue,c=this.throttled;c&&(this.remove(c),this.throttled=null,c.unsubscribe());b&&(this.value=null,this.hasValue=!1,this.destination.next(a))};
+return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(473);g.Observable.prototype.last=a.last},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(82);e.last=function(a,c,f){return this.lift(new m(a,c,f,this))};var m=function(){function a(a,b,c,e){this.predicate=a;this.resultSelector=b;this.defaultValue=c;this.source=e}a.prototype.call=
+function(a,b){return b.subscribe(new c(a,this.predicate,this.resultSelector,this.defaultValue,this.source))};return a}(),c=function(a){function b(b,c,d,e,g){a.call(this,b);this.predicate=c;this.resultSelector=d;this.defaultValue=e;this.source=g;this.hasValue=!1;this.index=0;"undefined"!==typeof e&&(this.lastValue=e,this.hasValue=!0)}p(b,a);b.prototype._next=function(a){var b=this.index++;this.predicate?this._tryPredicate(a,b):this.resultSelector?this._tryResultSelector(a,b):(this.lastValue=a,this.hasValue=
+!0)};b.prototype._tryPredicate=function(a,b){try{var c=this.predicate(a,b,this.source)}catch(k){this.destination.error(k);return}c&&(this.resultSelector?this._tryResultSelector(a,b):(this.lastValue=a,this.hasValue=!0))};b.prototype._tryResultSelector=function(a,b){try{var c=this.resultSelector(a,b)}catch(k){this.destination.error(k);return}this.lastValue=c;this.hasValue=!0};b.prototype._complete=function(){var a=this.destination;this.hasValue?(a.next(this.lastValue),a.complete()):a.error(new n.EmptyError)};
+return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(475);g.Observable.prototype.let=a.letProto;g.Observable.prototype.letBind=a.letProto},function(g,e,a){e.letProto=function(a){return a(this)}},function(g,e,a){g=a(0);a=a(477);g.Observable.prototype.every=a.every},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.every=function(a,b){return this.lift(new n(a,
+b,this))};var n=function(){function a(a,c,f){this.predicate=a;this.thisArg=c;this.source=f}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate,this.thisArg,this.source))};return a}(),m=function(a){function b(b,c,e,g){a.call(this,b);this.predicate=c;this.thisArg=e;this.source=g;this.index=0;this.thisArg=e||this}p(b,a);b.prototype.notifyComplete=function(a){this.destination.next(a);this.destination.complete()};b.prototype._next=function(a){var b=!1;try{b=this.predicate.call(this.thisArg,
+a,this.index++,this.source)}catch(h){this.destination.error(h);return}b||this.notifyComplete(!1)};b.prototype._complete=function(){this.notifyComplete(!0)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(116);g.Observable.prototype.map=a.map},function(g,e,a){g=a(0);a=a(480);g.Observable.prototype.mapTo=a.mapTo},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=
+b.prototype,new c)};g=a(2);e.mapTo=function(a){return this.lift(new n(a))};var n=function(){function a(a){this.value=a}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.value))};return a}(),m=function(a){function b(b,c){a.call(this,b);this.value=c}p(b,a);b.prototype._next=function(a){this.destination.next(this.value)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(482);g.Observable.prototype.materialize=a.materialize},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=
+a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(57);e.materialize=function(){return this.lift(new m)};var m=function(){function a(){}a.prototype.call=function(a,b){return b.subscribe(new c(a))};return a}(),c=function(a){function b(b){a.call(this,b)}p(b,a);b.prototype._next=function(a){this.destination.next(n.Notification.createNext(a))};b.prototype._error=function(a){var b=this.destination;b.next(n.Notification.createError(a));
+b.complete()};b.prototype._complete=function(){var a=this.destination;a.next(n.Notification.createComplete());a.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(484);g.Observable.prototype.max=a.max},function(g,e,a){var p=a(117);e.max=function(a){return this.lift(new p.ReduceOperator("function"===typeof a?function(e,c){return 0<a(e,c)?e:c}:function(a,c){return a>c?a:c}))}},function(g,e,a){g=a(0);a=a(176);g.Observable.prototype.merge=a.merge},function(g,e,a){g=a(0);a=a(78);g.Observable.prototype.mergeAll=
+a.mergeAll},function(g,e,a){g=a(0);a=a(182);g.Observable.prototype.mergeMap=a.mergeMap;g.Observable.prototype.flatMap=a.mergeMap},function(g,e,a){g=a(0);a=a(183);g.Observable.prototype.flatMapTo=a.mergeMapTo;g.Observable.prototype.mergeMapTo=a.mergeMapTo},function(g,e,a){g=a(0);a=a(490);g.Observable.prototype.mergeScan=a.mergeScan},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)},n=a(13),m=a(11),c=a(5);g=a(4);e.mergeScan=function(a,c,d){void 0===d&&(d=Number.POSITIVE_INFINITY);return this.lift(new b(a,c,d))};var b=function(){function a(a,b,c){this.accumulator=a;this.seed=b;this.concurrent=c}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.accumulator,this.seed,this.concurrent))};return a}();e.MergeScanOperator=b;var d=function(a){function b(b,c,d,f){a.call(this,b);this.accumulator=c;this.acc=d;this.concurrent=f;this.hasCompleted=
+this.hasValue=!1;this.buffer=[];this.index=this.active=0}p(b,a);b.prototype._next=function(a){if(this.active<this.concurrent){var b=this.index++,c=n.tryCatch(this.accumulator)(this.acc,a),d=this.destination;c===m.errorObject?d.error(m.errorObject.e):(this.active++,this._innerSub(c,a,b))}else this.buffer.push(a)};b.prototype._innerSub=function(a,b,d){this.add(c.subscribeToResult(this,a,b,d))};b.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&
+this.destination.next(this.acc),this.destination.complete())};b.prototype.notifyNext=function(a,b,c,d,f){a=this.destination;this.acc=b;this.hasValue=!0;a.next(b)};b.prototype.notifyComplete=function(a){var b=this.buffer;this.remove(a);this.active--;0<b.length?this._next(b.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())};return b}(g.OuterSubscriber);e.MergeScanSubscriber=d},function(g,e,a){g=a(0);a=a(492);g.Observable.prototype.min=
+a.min},function(g,e,a){var p=a(117);e.min=function(a){return this.lift(new p.ReduceOperator("function"===typeof a?function(e,c){return 0>a(e,c)?e:c}:function(a,c){return a<c?a:c}))}},function(g,e,a){g=a(0);a=a(41);g.Observable.prototype.multicast=a.multicast},function(g,e,a){g=a(0);a=a(114);g.Observable.prototype.observeOn=a.observeOn},function(g,e,a){g=a(0);a=a(179);g.Observable.prototype.onErrorResumeNext=a.onErrorResumeNext},function(g,e,a){g=a(0);a=a(497);g.Observable.prototype.pairwise=a.pairwise},
+function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.pairwise=function(){return this.lift(new n)};var n=function(){function a(){}a.prototype.call=function(a,c){return c.subscribe(new m(a))};return a}(),m=function(a){function b(b){a.call(this,b);this.hasPrev=!1}p(b,a);b.prototype._next=function(a){this.hasPrev?this.destination.next([this.prev,
+a]):this.hasPrev=!0;this.prev=a};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(499);g.Observable.prototype.partition=a.partition},function(g,e,a){var p=a(500),n=a(185);e.partition=function(a,c){return[n.filter.call(this,a,c),n.filter.call(this,p.not(a,c))]}},function(g,e,a){e.not=function(a,e){function g(){return!g.pred.apply(g.thisArg,arguments)}g.pred=a;g.thisArg=e;return g}},function(g,e,a){g=a(0);a=a(502);g.Observable.prototype.pluck=a.pluck},function(g,e,a){function p(a,c){return function(b){var d=
+b;for(b=0;b<c;b++)if(d=d[a[b]],"undefined"===typeof d)return;return d}}var n=a(116);e.pluck=function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];c=a.length;if(0===c)throw Error("list of properties cannot be empty.");return n.map.call(this,p(a,c))}},function(g,e,a){g=a(0);a=a(504);g.Observable.prototype.publish=a.publish},function(g,e,a){var p=a(10),n=a(41);e.publish=function(a){return a?n.multicast.call(this,function(){return new p.Subject},a):n.multicast.call(this,new p.Subject)}},
+function(g,e,a){g=a(0);a=a(506);g.Observable.prototype.publishBehavior=a.publishBehavior},function(g,e,a){var p=a(188),n=a(41);e.publishBehavior=function(a){return n.multicast.call(this,new p.BehaviorSubject(a))}},function(g,e,a){g=a(0);a=a(508);g.Observable.prototype.publishReplay=a.publishReplay},function(g,e,a){var p=a(81),n=a(41);e.publishReplay=function(a,c,b){void 0===a&&(a=Number.POSITIVE_INFINITY);void 0===c&&(c=Number.POSITIVE_INFINITY);return n.multicast.call(this,new p.ReplaySubject(a,
+c,b))}},function(g,e,a){g=a(0);a=a(510);g.Observable.prototype.publishLast=a.publishLast},function(g,e,a){var p=a(77),n=a(41);e.publishLast=function(){return n.multicast.call(this,new p.AsyncSubject)}},function(g,e,a){g=a(0);a=a(177);g.Observable.prototype.race=a.race},function(g,e,a){g=a(0);a=a(117);g.Observable.prototype.reduce=a.reduce},function(g,e,a){g=a(0);a=a(514);g.Observable.prototype.repeat=a.repeat},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=
+a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(38);e.repeat=function(a){void 0===a&&(a=-1);return 0===a?new n.EmptyObservable:0>a?this.lift(new m(-1,this)):this.lift(new m(a-1,this))};var m=function(){function a(a,b){this.count=a;this.source=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.count,this.source))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.count=c;this.source=
+d}p(b,a);b.prototype.complete=function(){if(!this.isStopped){var b=this.source,c=this.count;if(0===c)return a.prototype.complete.call(this);-1<c&&(this.count=c-1);b.subscribe(this._unsubscribeAndRecycle())}};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(516);g.Observable.prototype.repeatWhen=a.repeatWhen},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=
+b.prototype,new c)},n=a(10),m=a(13),c=a(11);g=a(4);var b=a(5);e.repeatWhen=function(a){return this.lift(new d(a))};var d=function(){function a(a){this.notifier=a}a.prototype.call=function(a,b){return b.subscribe(new f(a,this.notifier,b))};return a}(),f=function(a){function d(b,c,d){a.call(this,b);this.notifier=c;this.source=d;this.sourceIsBeingSubscribedTo=!0}p(d,a);d.prototype.notifyNext=function(a,b,c,d,f){this.sourceIsBeingSubscribedTo=!0;this.source.subscribe(this)};d.prototype.notifyComplete=
+function(b){if(!1===this.sourceIsBeingSubscribedTo)return a.prototype.complete.call(this)};d.prototype.complete=function(){this.sourceIsBeingSubscribedTo=!1;if(!this.isStopped){if(!this.retries)this.subscribeToRetries();else if(this.retriesSubscription.closed)return a.prototype.complete.call(this);this._unsubscribeAndRecycle();this.notifications.next()}};d.prototype._unsubscribe=function(){var a=this.notifications,b=this.retriesSubscription;a&&(a.unsubscribe(),this.notifications=null);b&&(b.unsubscribe(),
+this.retriesSubscription=null);this.retries=null};d.prototype._unsubscribeAndRecycle=function(){var b=this.notifications,c=this.retries,d=this.retriesSubscription;this.retriesSubscription=this.retries=this.notifications=null;a.prototype._unsubscribeAndRecycle.call(this);this.notifications=b;this.retries=c;this.retriesSubscription=d;return this};d.prototype.subscribeToRetries=function(){this.notifications=new n.Subject;var d=m.tryCatch(this.notifier)(this.notifications);if(d===c.errorObject)return a.prototype.complete.call(this);
+this.retries=d;this.retriesSubscription=b.subscribeToResult(this,d)};return d}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(518);g.Observable.prototype.retry=a.retry},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.retry=function(a){void 0===a&&(a=-1);return this.lift(new n(a,this))};var n=function(){function a(a,c){this.count=
+a;this.source=c}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.count,this.source))};return a}(),m=function(a){function b(b,c,e){a.call(this,b);this.count=c;this.source=e}p(b,a);b.prototype.error=function(b){if(!this.isStopped){var c=this.source,d=this.count;if(0===d)return a.prototype.error.call(this,b);-1<d&&(this.count=d-1);c.subscribe(this._unsubscribeAndRecycle())}};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(520);g.Observable.prototype.retryWhen=a.retryWhen},function(g,
+e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10),m=a(13),c=a(11);g=a(4);var b=a(5);e.retryWhen=function(a){return this.lift(new d(a,this))};var d=function(){function a(a,b){this.notifier=a;this.source=b}a.prototype.call=function(a,b){return b.subscribe(new f(a,this.notifier,this.source))};return a}(),f=function(a){function d(b,c,d){a.call(this,
+b);this.notifier=c;this.source=d}p(d,a);d.prototype.error=function(d){if(!this.isStopped){var f=this.errors,e=this.retries,h=this.retriesSubscription;if(e)this.retriesSubscription=this.errors=null;else{f=new n.Subject;e=m.tryCatch(this.notifier)(f);if(e===c.errorObject)return a.prototype.error.call(this,c.errorObject.e);h=b.subscribeToResult(this,e)}this._unsubscribeAndRecycle();this.errors=f;this.retries=e;this.retriesSubscription=h;f.next(d)}};d.prototype._unsubscribe=function(){var a=this.errors,
+b=this.retriesSubscription;a&&(a.unsubscribe(),this.errors=null);b&&(b.unsubscribe(),this.retriesSubscription=null);this.retries=null};d.prototype.notifyNext=function(a,b,c,d,f){a=this.errors;b=this.retries;c=this.retriesSubscription;this.retriesSubscription=this.retries=this.errors=null;this._unsubscribeAndRecycle();this.errors=a;this.retries=b;this.retriesSubscription=c;this.source.subscribe(this)};return d}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(522);g.Observable.prototype.sample=a.sample},
+function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.sample=function(a){return this.lift(new m(a))};var m=function(){function a(a){this.notifier=a}a.prototype.call=function(a,b){a=new c(a);b=b.subscribe(a);b.add(n.subscribeToResult(a,this.notifier));return b};return a}(),c=function(a){function b(){a.apply(this,arguments);this.hasValue=
+!1}p(b,a);b.prototype._next=function(a){this.value=a;this.hasValue=!0};b.prototype.notifyNext=function(a,b,c,d,e){this.emitValue()};b.prototype.notifyComplete=function(){this.emitValue()};b.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(524);g.Observable.prototype.sampleTime=a.sampleTime},function(g,e,a){function p(a){var b=a.period;a.subscriber.notifyNext();this.schedule(a,b)}var n=this&&
+this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var m=a(17);e.sampleTime=function(a,b){void 0===b&&(b=m.async);return this.lift(new c(a,b))};var c=function(){function a(a,b){this.period=a;this.scheduler=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.period,this.scheduler))};return a}(),b=function(a){function b(b,c,d){a.call(this,b);this.period=
+c;this.scheduler=d;this.hasValue=!1;this.add(d.schedule(p,c,{subscriber:this,period:c}))}n(b,a);b.prototype._next=function(a){this.lastValue=a;this.hasValue=!0};b.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(526);g.Observable.prototype.scan=a.scan},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=
+null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.scan=function(a,b){var c=!1;2<=arguments.length&&(c=!0);return this.lift(new n(a,b,c))};var n=function(){function a(a,c,f){void 0===f&&(f=!1);this.accumulator=a;this.seed=c;this.hasSeed=f}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.accumulator,this.seed,this.hasSeed))};return a}(),m=function(a){function b(b,c,e,g){a.call(this,b);this.accumulator=c;this._seed=e;this.hasSeed=g;this.index=0}p(b,a);Object.defineProperty(b.prototype,
+"seed",{get:function(){return this._seed},set:function(a){this.hasSeed=!0;this._seed=a},enumerable:!0,configurable:!0});b.prototype._next=function(a){if(this.hasSeed)return this._tryNext(a);this.seed=a;this.destination.next(a)};b.prototype._tryNext=function(a){var b=this.index++;try{var c=this.accumulator(this.seed,a,b)}catch(q){this.destination.error(q)}this.seed=c;this.destination.next(c)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(528);g.Observable.prototype.sequenceEqual=a.sequenceEqual},
+function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(13),m=a(11);e.sequenceEqual=function(a,b){return this.lift(new c(a,b))};var c=function(){function a(a,b){this.compareTo=a;this.comparor=b}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.compareTo,this.comparor))};return a}();e.SequenceEqualOperator=c;var b=function(a){function b(b,
+c,f){a.call(this,b);this.compareTo=c;this.comparor=f;this._a=[];this._b=[];this._oneComplete=!1;this.add(c.subscribe(new d(b,this)))}p(b,a);b.prototype._next=function(a){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(a),this.checkValues())};b.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0};b.prototype.checkValues=function(){for(var a=this._a,b=this._b,c=this.comparor;0<a.length&&0<b.length;){var d=a.shift(),
+f=b.shift();c?(d=n.tryCatch(c)(d,f),d===m.errorObject&&this.destination.error(m.errorObject.e)):d=d===f;d||this.emit(!1)}};b.prototype.emit=function(a){var b=this.destination;b.next(a);b.complete()};b.prototype.nextB=function(a){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(a),this.checkValues())};return b}(g.Subscriber);e.SequenceEqualSubscriber=b;var d=function(a){function b(b,c){a.call(this,b);this.parent=c}p(b,a);b.prototype._next=function(a){this.parent.nextB(a)};b.prototype._error=
+function(a){this.parent.error(a)};b.prototype._complete=function(){this.parent._complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(530);g.Observable.prototype.share=a.share},function(g,e,a){function p(){return new m.Subject}var n=a(41),m=a(10);e.share=function(){return n.multicast.call(this,p).refCount()}},function(g,e,a){g=a(0);a=a(532);g.Observable.prototype.shareReplay=a.shareReplay},function(g,e,a){var p=a(41),n=a(81);e.shareReplay=function(a,c,b){var d;return p.multicast.call(this,
+function(){return this._isComplete?d:d=new n.ReplaySubject(a,c,b)}).refCount()}},function(g,e,a){g=a(0);a=a(534);g.Observable.prototype.single=a.single},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(82);e.single=function(a){return this.lift(new m(a,this))};var m=function(){function a(a,b){this.predicate=a;this.source=b}a.prototype.call=
+function(a,b){return b.subscribe(new c(a,this.predicate,this.source))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.predicate=c;this.source=d;this.seenValue=!1;this.index=0}p(b,a);b.prototype.applySingleValue=function(a){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=a)};b.prototype._next=function(a){var b=this.index++;this.predicate?this.tryNext(a,b):this.applySingleValue(a)};b.prototype.tryNext=function(a,b){try{this.predicate(a,
+b,this.source)&&this.applySingleValue(a)}catch(q){this.destination.error(q)}};b.prototype._complete=function(){var a=this.destination;0<this.index?(a.next(this.seenValue?this.singleValue:void 0),a.complete()):a.error(new n.EmptyError)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(536);g.Observable.prototype.skip=a.skip},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var f in b)b.hasOwnProperty(f)&&(a[f]=b[f]);a.prototype=null===b?Object.create(b):
+(c.prototype=b.prototype,new c)};g=a(2);e.skip=function(a){return this.lift(new n(a))};var n=function(){function a(a){this.total=a}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.total))};return a}(),m=function(a){function b(b,c){a.call(this,b);this.total=c;this.count=0}p(b,a);b.prototype._next=function(a){++this.count>this.total&&this.destination.next(a)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(538);g.Observable.prototype.skipLast=a.skipLast},function(g,e,a){var p=this&&
+this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(2),m=a(60);e.skipLast=function(a){return this.lift(new c(a))};var c=function(){function a(a){this._skipCount=a;if(0>this._skipCount)throw new m.ArgumentOutOfRangeError;}a.prototype.call=function(a,c){return 0===this._skipCount?c.subscribe(new n.Subscriber(a)):c.subscribe(new b(a,this._skipCount))};return a}(),b=function(a){function b(b,
+c){a.call(this,b);this._skipCount=c;this._count=0;this._ring=Array(c)}p(b,a);b.prototype._next=function(a){var b=this._skipCount,c=this._count++;if(c<b)this._ring[c]=a;else{b=c%b;c=this._ring;var d=c[b];c[b]=a;this.destination.next(d)}};return b}(n.Subscriber)},function(g,e,a){g=a(0);a=a(540);g.Observable.prototype.skipUntil=a.skipUntil},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):
+(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.skipUntil=function(a){return this.lift(new m(a))};var m=function(){function a(a){this.notifier=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.notifier))};return a}(),c=function(a){function b(b,c){a.call(this,b);this.isInnerStopped=this.hasValue=!1;this.add(n.subscribeToResult(this,c))}p(b,a);b.prototype._next=function(b){this.hasValue&&a.prototype._next.call(this,b)};b.prototype._complete=function(){this.isInnerStopped?a.prototype._complete.call(this):
+this.unsubscribe()};b.prototype.notifyNext=function(a,b,c,d,e){this.hasValue=!0};b.prototype.notifyComplete=function(){this.isInnerStopped=!0;this.isStopped&&a.prototype._complete.call(this)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(542);g.Observable.prototype.skipWhile=a.skipWhile},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&(a[e]=b[e]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,
+new c)};g=a(2);e.skipWhile=function(a){return this.lift(new n(a))};var n=function(){function a(a){this.predicate=a}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate))};return a}(),m=function(a){function b(b,c){a.call(this,b);this.predicate=c;this.skipping=!0;this.index=0}p(b,a);b.prototype._next=function(a){var b=this.destination;this.skipping&&this.tryCallPredicate(a);this.skipping||b.next(a)};b.prototype.tryCallPredicate=function(a){try{this.skipping=!!this.predicate(a,this.index++)}catch(f){this.destination.error(f)}};
+return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(544);g.Observable.prototype.startWith=a.startWith},function(g,e,a){var p=a(34),n=a(111),m=a(38),c=a(113),b=a(33);e.startWith=function(){for(var a=[],e=0;e<arguments.length;e++)a[e-0]=arguments[e];e=a[a.length-1];b.isScheduler(e)?a.pop():e=null;var g=a.length;return 1===g?c.concatStatic(new n.ScalarObservable(a[0],e),this):1<g?c.concatStatic(new p.ArrayObservable(a,e),this):c.concatStatic(new m.EmptyObservable(e),this)}},function(g,e,a){g=a(0);a=
+a(546);g.Observable.prototype.subscribeOn=a.subscribeOn},function(g,e,a){var p=a(547);e.subscribeOn=function(a,c){void 0===c&&(c=0);return this.lift(new n(a,c))};var n=function(){function a(a,b){this.scheduler=a;this.delay=b}a.prototype.call=function(a,b){return(new p.SubscribeOnObservable(b,this.delay,this.scheduler)).subscribe(a)};return a}()},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&(a[e]=b[e]);a.prototype=null===
+b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(0);var n=a(189),m=a(79);a=function(a){function b(b,c,e){void 0===c&&(c=0);void 0===e&&(e=n.asap);a.call(this);this.source=b;this.delayTime=c;this.scheduler=e;if(!m.isNumeric(c)||0>c)this.delayTime=0;e&&"function"===typeof e.schedule||(this.scheduler=n.asap)}p(b,a);b.create=function(a,c,e){void 0===c&&(c=0);void 0===e&&(e=n.asap);return new b(a,c,e)};b.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))};b.prototype._subscribe=
+function(a){return this.scheduler.schedule(b.dispatch,this.delayTime,{source:this.source,subscriber:a})};return b}(g.Observable);e.SubscribeOnObservable=a},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)},n=a(549);g=function(a){function c(b,c){a.call(this,b,c);this.scheduler=b;this.work=c}p(c,a);c.prototype.requestAsyncId=function(b,c,e){void 0===
+e&&(e=0);if(null!==e&&0<e)return a.prototype.requestAsyncId.call(this,b,c,e);b.actions.push(this);return b.scheduled||(b.scheduled=n.Immediate.setImmediate(b.flush.bind(b,null)))};c.prototype.recycleAsyncId=function(b,c,e){void 0===e&&(e=0);if(null!==e&&0<e||null===e&&0<this.delay)return a.prototype.recycleAsyncId.call(this,b,c,e);0===b.actions.length&&(n.Immediate.clearImmediate(c),b.scheduled=void 0)};return c}(a(58).AsyncAction);e.AsapAction=g},function(g,e,a){(function(g,n){g=a(12);n=function(){function a(a){this.root=
+a;a.setImmediate&&"function"===typeof a.setImmediate?(this.setImmediate=a.setImmediate.bind(a),this.clearImmediate=a.clearImmediate.bind(a)):(this.nextHandle=1,this.tasksByHandle={},this.currentlyRunningATask=!1,this.canUseProcessNextTick()?this.setImmediate=this.createProcessNextTickSetImmediate():this.canUsePostMessage()?this.setImmediate=this.createPostMessageSetImmediate():this.canUseMessageChannel()?this.setImmediate=this.createMessageChannelSetImmediate():this.canUseReadyStateChange()?this.setImmediate=
+this.createReadyStateChangeSetImmediate():this.setImmediate=this.createSetTimeoutSetImmediate(),a=function d(a){delete d.instance.tasksByHandle[a]},a.instance=this,this.clearImmediate=a)}a.prototype.identify=function(a){return this.root.Object.prototype.toString.call(a)};a.prototype.canUseProcessNextTick=function(){return"[object process]"===this.identify(this.root.process)};a.prototype.canUseMessageChannel=function(){return!!this.root.MessageChannel};a.prototype.canUseReadyStateChange=function(){var a=
+this.root.document;return!!(a&&"onreadystatechange"in a.createElement("script"))};a.prototype.canUsePostMessage=function(){var a=this.root;if(a.postMessage&&!a.importScripts){var b=!0,d=a.onmessage;a.onmessage=function(){b=!1};a.postMessage("","*");a.onmessage=d;return b}return!1};a.prototype.partiallyApplied=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];c=function h(){var a=h.handler,b=h.args;"function"===typeof a?a.apply(void 0,b):(new Function(""+a))()};c.handler=a;c.args=
+b;return c};a.prototype.addFromSetImmediateArguments=function(a){this.tasksByHandle[this.nextHandle]=this.partiallyApplied.apply(void 0,a);return this.nextHandle++};a.prototype.createProcessNextTickSetImmediate=function(){var a=function d(){var a=d.instance,c=a.addFromSetImmediateArguments(arguments);a.root.process.nextTick(a.partiallyApplied(a.runIfPresent,c));return c};a.instance=this;return a};a.prototype.createPostMessageSetImmediate=function(){var a=this.root,b="setImmediate$"+a.Math.random()+
+"$",d=function h(c){var d=h.instance;c.source===a&&"string"===typeof c.data&&0===c.data.indexOf(b)&&d.runIfPresent(+c.data.slice(b.length))};d.instance=this;a.addEventListener("message",d,!1);d=function q(){var a=q,b=a.messagePrefix;a=a.instance;var c=a.addFromSetImmediateArguments(arguments);a.root.postMessage(b+c,"*");return c};d.instance=this;d.messagePrefix=b;return d};a.prototype.runIfPresent=function(a){if(this.currentlyRunningATask)this.root.setTimeout(this.partiallyApplied(this.runIfPresent,
+a),0);else{var b=this.tasksByHandle[a];if(b){this.currentlyRunningATask=!0;try{b()}finally{this.clearImmediate(a),this.currentlyRunningATask=!1}}}};a.prototype.createMessageChannelSetImmediate=function(){var a=this,b=new this.root.MessageChannel;b.port1.onmessage=function(b){a.runIfPresent(b.data)};var d=function h(){var a=h,b=a.channel;a=a.instance.addFromSetImmediateArguments(arguments);b.port2.postMessage(a);return a};d.channel=b;d.instance=this;return d};a.prototype.createReadyStateChangeSetImmediate=
+function(){var a=function d(){var a=d.instance,c=a.root.document,e=c.documentElement,g=a.addFromSetImmediateArguments(arguments),m=c.createElement("script");m.onreadystatechange=function(){a.runIfPresent(g);m.onreadystatechange=null;e.removeChild(m);m=null};e.appendChild(m);return g};a.instance=this;return a};a.prototype.createSetTimeoutSetImmediate=function(){var a=function d(){var a=d.instance,c=a.addFromSetImmediateArguments(arguments);a.root.setTimeout(a.partiallyApplied(a.runIfPresent,c),0);
+return c};a.instance=this;return a};return a}();e.ImmediateDefinition=n;e.Immediate=new n(g.root)}).call(e,a(190).clearImmediate,a(190).setImmediate)},function(g,e,a){(function(a,e){(function(a,c){function b(a){delete u[a]}function d(a){if(A)setTimeout(d,0,a);else{var e=u[a];if(e){A=!0;try{var f=e.callback,g=e.args;switch(g.length){case 0:f();break;case 1:f(g[0]);break;case 2:f(g[0],g[1]);break;case 3:f(g[0],g[1],g[2]);break;default:f.apply(c,g)}}finally{b(a),A=!1}}}}function f(){z=function(a){e.nextTick(function(){d(a)})}}
+function g(){if(a.postMessage&&!a.importScripts){var b=!0,c=a.onmessage;a.onmessage=function(){b=!1};a.postMessage("","*");a.onmessage=c;return b}}function m(){var b="setImmediate$"+Math.random()+"$",c=function(c){c.source===a&&"string"===typeof c.data&&0===c.data.indexOf(b)&&d(+c.data.slice(b.length))};a.addEventListener?a.addEventListener("message",c,!1):a.attachEvent("onmessage",c);z=function(c){a.postMessage(b+c,"*")}}function k(){var a=new MessageChannel;a.port1.onmessage=function(a){d(a.data)};
+z=function(b){a.port2.postMessage(b)}}function n(){var a=y.documentElement;z=function(b){var c=y.createElement("script");c.onreadystatechange=function(){d(b);c.onreadystatechange=null;a.removeChild(c);c=null};a.appendChild(c)}}function p(){z=function(a){setTimeout(d,0,a)}}if(!a.setImmediate){var l=1,u={},A=!1,y=a.document,z,B=Object.getPrototypeOf&&Object.getPrototypeOf(a);B=B&&B.setTimeout?B:a;"[object process]"==={}.toString.call(a.process)?f():g()?m():a.MessageChannel?k():y&&"onreadystatechange"in
+y.createElement("script")?n():p();B.setImmediate=function(a){"function"!==typeof a&&(a=new Function(""+a));for(var b=Array(arguments.length-1),c=0;c<b.length;c++)b[c]=arguments[c+1];u[l]={callback:a,args:b};z(l);return l++};B.clearImmediate=b}})("undefined"===typeof self?"undefined"===typeof a?this:a:self)}).call(e,a(62),a(551))},function(g,e){function a(){throw Error("setTimeout has not been defined");}function p(){throw Error("clearTimeout has not been defined");}function n(b){if(h===setTimeout)return setTimeout(b,
+0);if((h===a||!h)&&setTimeout)return h=setTimeout,setTimeout(b,0);try{return h(b,0)}catch(A){try{return h.call(null,b,0)}catch(y){return h.call(this,b,0)}}}function m(a){if(q===clearTimeout)return clearTimeout(a);if((q===p||!q)&&clearTimeout)return q=clearTimeout,clearTimeout(a);try{return q(a)}catch(A){try{return q.call(null,a)}catch(y){return q.call(this,a)}}}function c(){t&&r&&(t=!1,r.length?k=r.concat(k):l=-1,k.length&&b())}function b(){if(!t){var a=n(c);t=!0;for(var b=k.length;b;){r=k;for(k=
+[];++l<b;)r&&r[l].run();l=-1;b=k.length}r=null;t=!1;m(a)}}function d(a,b){this.fun=a;this.array=b}function f(){}g=g.exports={};try{var h="function"===typeof setTimeout?setTimeout:a}catch(u){h=a}try{var q="function"===typeof clearTimeout?clearTimeout:p}catch(u){q=p}var k=[],t=!1,r,l=-1;g.nextTick=function(a){var c=Array(arguments.length-1);if(1<arguments.length)for(var e=1;e<arguments.length;e++)c[e-1]=arguments[e];k.push(new d(a,c));1!==k.length||t||n(b)};d.prototype.run=function(){this.fun.apply(null,
+this.array)};g.title="browser";g.browser=!0;g.env={};g.argv=[];g.version="";g.versions={};g.on=f;g.addListener=f;g.once=f;g.off=f;g.removeListener=f;g.removeAllListeners=f;g.emit=f;g.prependListener=f;g.prependOnceListener=f;g.listeners=function(a){return[]};g.binding=function(a){throw Error("process.binding is not supported");};g.cwd=function(){return"/"};g.chdir=function(a){throw Error("process.chdir is not supported");};g.umask=function(){return 0}},function(g,e,a){var p=this&&this.__extends||
+function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){a.apply(this,arguments)}p(e,a);e.prototype.flush=function(a){this.active=!0;this.scheduled=void 0;var b=this.actions,c,e=-1,g=b.length;a=a||b.shift();do if(c=a.execute(a.state,a.delay))break;while(++e<g&&(a=b.shift()));this.active=!1;if(c){for(;++e<g&&(a=b.shift());)a.unsubscribe();throw c;}};return e}(a(59).AsyncScheduler);
+e.AsapScheduler=g},function(g,e,a){g=a(0);a=a(554);g.Observable.prototype.switch=a._switch;g.Observable.prototype._switch=a._switch},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e._switch=function(){return this.lift(new m)};var m=function(){function a(){}a.prototype.call=function(a,b){return b.subscribe(new c(a))};return a}(),
+c=function(a){function b(b){a.call(this,b);this.active=0;this.hasCompleted=!1}p(b,a);b.prototype._next=function(a){this.unsubscribeInner();this.active++;this.add(this.innerSubscription=n.subscribeToResult(this,a))};b.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&this.destination.complete()};b.prototype.unsubscribeInner=function(){this.active=0<this.active?this.active-1:0;var a=this.innerSubscription;a&&(a.unsubscribe(),this.remove(a))};b.prototype.notifyNext=function(a,b,c,
+d,e){this.destination.next(b)};b.prototype.notifyError=function(a){this.destination.error(a)};b.prototype.notifyComplete=function(){this.unsubscribeInner();this.hasCompleted&&0===this.active&&this.destination.complete()};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(556);g.Observable.prototype.switchMap=a.switchMap},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):
+(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.switchMap=function(a,c){return this.lift(new m(a,c))};var m=function(){function a(a,b){this.project=a;this.resultSelector=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.project,this.resultSelector))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.project=c;this.resultSelector=d;this.index=0}p(b,a);b.prototype._next=function(a){var b=this.index++;try{var c=this.project(a,b)}catch(k){this.destination.error(k);return}this._innerSub(c,
+a,b)};b.prototype._innerSub=function(a,b,c){var d=this.innerSubscription;d&&d.unsubscribe();this.add(this.innerSubscription=n.subscribeToResult(this,a,b,c))};b.prototype._complete=function(){var b=this.innerSubscription;b&&!b.closed||a.prototype._complete.call(this)};b.prototype._unsubscribe=function(){this.innerSubscription=null};b.prototype.notifyComplete=function(b){this.remove(b);this.innerSubscription=null;this.isStopped&&a.prototype._complete.call(this)};b.prototype.notifyNext=function(a,b,
+c,d,e){this.resultSelector?this._tryNotifyNext(a,b,c,d):this.destination.next(b)};b.prototype._tryNotifyNext=function(a,b,c,d){try{var e=this.resultSelector(a,b,c,d)}catch(r){this.destination.error(r);return}this.destination.next(e)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(558);g.Observable.prototype.switchMapTo=a.switchMapTo},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===
+c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.switchMapTo=function(a,c){return this.lift(new m(a,c))};var m=function(){function a(a,b){this.observable=a;this.resultSelector=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.observable,this.resultSelector))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.inner=c;this.resultSelector=d;this.index=0}p(b,a);b.prototype._next=function(a){var b=this.innerSubscription;b&&b.unsubscribe();this.add(this.innerSubscription=
+n.subscribeToResult(this,this.inner,a,this.index++))};b.prototype._complete=function(){var b=this.innerSubscription;b&&!b.closed||a.prototype._complete.call(this)};b.prototype._unsubscribe=function(){this.innerSubscription=null};b.prototype.notifyComplete=function(b){this.remove(b);this.innerSubscription=null;this.isStopped&&a.prototype._complete.call(this)};b.prototype.notifyNext=function(a,b,c,d,e){e=this.destination;this.resultSelector?this.tryResultSelector(a,b,c,d):e.next(b)};b.prototype.tryResultSelector=
+function(a,b,c,d){var e=this.resultSelector,f=this.destination;try{var g=e(a,b,c,d)}catch(u){f.error(u);return}f.next(g)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(560);g.Observable.prototype.take=a.take},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(60),m=a(38);e.take=function(a){return 0===a?new m.EmptyObservable:
+this.lift(new c(a))};var c=function(){function a(a){this.total=a;if(0>this.total)throw new n.ArgumentOutOfRangeError;}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.total))};return a}(),b=function(a){function b(b,c){a.call(this,b);this.total=c;this.count=0}p(b,a);b.prototype._next=function(a){var b=this.total,c=++this.count;c<=b&&(this.destination.next(a),c===b&&(this.destination.complete(),this.unsubscribe()))};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(562);g.Observable.prototype.takeLast=
+a.takeLast},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var n=a(60),m=a(38);e.takeLast=function(a){return 0===a?new m.EmptyObservable:this.lift(new c(a))};var c=function(){function a(a){this.total=a;if(0>this.total)throw new n.ArgumentOutOfRangeError;}a.prototype.call=function(a,c){return c.subscribe(new b(a,this.total))};return a}(),
+b=function(a){function b(b,c){a.call(this,b);this.total=c;this.ring=[];this.count=0}p(b,a);b.prototype._next=function(a){var b=this.ring,c=this.total,d=this.count++;b.length<c?b.push(a):b[d%c]=a};b.prototype._complete=function(){var a=this.destination,b=this.count;if(0<b)for(var c=this.count>=this.total?this.total:this.count,d=this.ring,e=0;e<c;e++){var f=b++%c;a.next(d[f])}a.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(564);g.Observable.prototype.takeUntil=a.takeUntil},function(g,
+e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.takeUntil=function(a){return this.lift(new m(a))};var m=function(){function a(a){this.notifier=a}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.notifier))};return a}(),c=function(a){function b(b,c){a.call(this,b);this.notifier=c;this.add(n.subscribeToResult(this,c))}
+p(b,a);b.prototype.notifyNext=function(a,b,c,d,e){this.complete()};b.prototype.notifyComplete=function(){};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(566);g.Observable.prototype.takeWhile=a.takeWhile},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&(a[e]=b[e]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.takeWhile=function(a){return this.lift(new n(a))};var n=function(){function a(a){this.predicate=
+a}a.prototype.call=function(a,c){return c.subscribe(new m(a,this.predicate))};return a}(),m=function(a){function b(b,c){a.call(this,b);this.predicate=c;this.index=0}p(b,a);b.prototype._next=function(a){var b=this.destination;try{var c=this.predicate(a,this.index++)}catch(q){b.error(q);return}this.nextOrComplete(a,c)};b.prototype.nextOrComplete=function(a,b){var c=this.destination;b?c.next(a):c.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(191);g.Observable.prototype.throttle=a.throttle},
+function(g,e,a){g=a(0);a=a(569);g.Observable.prototype.throttleTime=a.throttleTime},function(g,e,a){function p(a){a.subscriber.clearThrottle()}var n=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);var m=a(17),c=a(191);e.throttleTime=function(a,d,e){void 0===d&&(d=m.async);void 0===e&&(e=c.defaultThrottleConfig);return this.lift(new b(a,d,e.leading,e.trailing))};
+var b=function(){function a(a,b,c,d){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=d}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.duration,this.scheduler,this.leading,this.trailing))};return a}(),d=function(a){function b(b,c,d,e,f){a.call(this,b);this.duration=c;this.scheduler=d;this.leading=e;this.trailing=f;this._hasTrailingValue=!1;this._trailingValue=null}n(b,a);b.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=
+!0):(this.add(this.throttled=this.scheduler.schedule(p,this.duration,{subscriber:this})),this.leading&&this.destination.next(a))};b.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(192);g.Observable.prototype.timeInterval=a.timeInterval},function(g,e,
+a){g=a(0);a=a(572);g.Observable.prototype.timeout=a.timeout},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(17),m=a(80);g=a(2);var c=a(193);e.timeout=function(a,d){void 0===d&&(d=n.async);var e=m.isDate(a);a=e?+a-d.now():Math.abs(a);return this.lift(new b(a,e,d,new c.TimeoutError))};var b=function(){function a(a,b,c,d){this.waitFor=a;
+this.absoluteTimeout=b;this.scheduler=c;this.errorInstance=d}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.absoluteTimeout,this.waitFor,this.scheduler,this.errorInstance))};return a}(),d=function(a){function b(b,c,d,e,f){a.call(this,b);this.absoluteTimeout=c;this.waitFor=d;this.scheduler=e;this.errorInstance=f;this.action=null;this.scheduleTimeout()}p(b,a);b.dispatchTimeout=function(a){a.error(a.errorInstance)};b.prototype.scheduleTimeout=function(){var a=this.action;a?this.action=
+a.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(b.dispatchTimeout,this.waitFor,this))};b.prototype._next=function(b){this.absoluteTimeout||this.scheduleTimeout();a.prototype._next.call(this,b)};b.prototype._unsubscribe=function(){this.errorInstance=this.scheduler=this.action=null};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(574);g.Observable.prototype.timeoutWith=a.timeoutWith},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=
+a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(17),m=a(80);g=a(4);var c=a(5);e.timeoutWith=function(a,c,d){void 0===d&&(d=n.async);var e=m.isDate(a);a=e?+a-d.now():Math.abs(a);return this.lift(new b(a,e,c,d))};var b=function(){function a(a,b,c,d){this.waitFor=a;this.absoluteTimeout=b;this.withObservable=c;this.scheduler=d}a.prototype.call=function(a,b){return b.subscribe(new d(a,this.absoluteTimeout,this.waitFor,this.withObservable,
+this.scheduler))};return a}(),d=function(a){function b(b,c,d,e,f){a.call(this,b);this.absoluteTimeout=c;this.waitFor=d;this.withObservable=e;this.scheduler=f;this.action=null;this.scheduleTimeout()}p(b,a);b.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(c.subscribeToResult(a,b))};b.prototype.scheduleTimeout=function(){var a=this.action;a?this.action=a.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(b.dispatchTimeout,this.waitFor,this))};
+b.prototype._next=function(b){this.absoluteTimeout||this.scheduleTimeout();a.prototype._next.call(this,b)};b.prototype._unsubscribe=function(){this.withObservable=this.scheduler=this.action=null};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(194);g.Observable.prototype.timestamp=a.timestamp},function(g,e,a){g=a(0);a=a(577);g.Observable.prototype.toArray=a.toArray},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&
+(a[e]=b[e]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(2);e.toArray=function(){return this.lift(new n)};var n=function(){function a(){}a.prototype.call=function(a,c){return c.subscribe(new m(a))};return a}(),m=function(a){function b(b){a.call(this,b);this.array=[]}p(b,a);b.prototype._next=function(a){this.array.push(a)};b.prototype._complete=function(){this.destination.next(this.array);this.destination.complete()};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(579);
+g.Observable.prototype.toPromise=a.toPromise},function(g,e,a){var p=a(12);e.toPromise=function(a){var e=this;a||(p.root.Rx&&p.root.Rx.config&&p.root.Rx.config.Promise?a=p.root.Rx.config.Promise:p.root.Promise&&(a=p.root.Promise));if(!a)throw Error("no Promise impl found");return new a(function(a,b){var c;e.subscribe(function(a){return c=a},function(a){return b(a)},function(){return a(c)})})}},function(g,e,a){g=a(0);a=a(581);g.Observable.prototype.window=a.window},function(g,e,a){var p=this&&this.__extends||
+function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10);g=a(4);var m=a(5);e.window=function(a){return this.lift(new c(a))};var c=function(){function a(a){this.windowBoundaries=a}a.prototype.call=function(a,c){a=new b(a);c=c.subscribe(a);c.closed||a.add(m.subscribeToResult(a,this.windowBoundaries));return c};return a}(),b=function(a){function b(b){a.call(this,b);this.window=new n.Subject;
+b.next(this.window)}p(b,a);b.prototype.notifyNext=function(a,b,c,d,e){this.openWindow()};b.prototype.notifyError=function(a,b){this._error(a)};b.prototype.notifyComplete=function(a){this._complete()};b.prototype._next=function(a){this.window.next(a)};b.prototype._error=function(a){this.window.error(a);this.destination.error(a)};b.prototype._complete=function(){this.window.complete();this.destination.complete()};b.prototype._unsubscribe=function(){this.window=null};b.prototype.openWindow=function(){var a=
+this.window;a&&a.complete();a=this.destination;var b=this.window=new n.Subject;a.next(b)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(583);g.Observable.prototype.windowCount=a.windowCount},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(2);var n=a(10);e.windowCount=function(a,c){void 0===c&&(c=0);return this.lift(new m(a,
+c))};var m=function(){function a(a,b){this.windowSize=a;this.startWindowEvery=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.windowSize,this.startWindowEvery))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.destination=b;this.windowSize=c;this.startWindowEvery=d;this.windows=[new n.Subject];this.count=0;b.next(this.windows[0])}p(b,a);b.prototype._next=function(a){for(var b=0<this.startWindowEvery?this.startWindowEvery:this.windowSize,c=this.destination,d=this.windowSize,
+e=this.windows,f=e.length,g=0;g<f&&!this.closed;g++)e[g].next(a);a=this.count-d+1;0<=a&&0===a%b&&!this.closed&&e.shift().complete();0!==++this.count%b||this.closed||(b=new n.Subject,e.push(b),c.next(b))};b.prototype._error=function(a){var b=this.windows;if(b)for(;0<b.length&&!this.closed;)b.shift().error(a);this.destination.error(a)};b.prototype._complete=function(){var a=this.windows;if(a)for(;0<a.length&&!this.closed;)a.shift().complete();this.destination.complete()};b.prototype._unsubscribe=function(){this.count=
+0;this.windows=null};return b}(g.Subscriber)},function(g,e,a){g=a(0);a=a(585);g.Observable.prototype.windowTime=a.windowTime},function(g,e,a){function p(a){var b=a.subscriber,c=a.windowTimeSpan,d=a.window;d&&b.closeWindow(d);a.window=b.openWindow();this.schedule(a,c)}function n(a){var b=a.windowTimeSpan,c=a.subscriber,d=a.scheduler,e=a.windowCreationInterval,f=c.openWindow(),g={action:this,subscription:null};g.subscription=d.schedule(m,b,{subscriber:c,window:f,context:g});this.add(g.subscription);
+this.schedule(a,e)}function m(a){var b=a.subscriber,c=a.window;(a=a.context)&&a.action&&a.subscription&&a.action.remove(a.subscription);b.closeWindow(c)}var c=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)};g=a(10);var b=a(17),d=a(2),f=a(79),h=a(33);e.windowTime=function(a,c,d,e){var g=b.async,k=null,l=Number.POSITIVE_INFINITY;h.isScheduler(e)&&(g=e);h.isScheduler(d)?
+g=d:f.isNumeric(d)&&(l=d);h.isScheduler(c)?g=c:f.isNumeric(c)&&(k=c);return this.lift(new q(a,k,l,g))};var q=function(){function a(a,b,c,d){this.windowTimeSpan=a;this.windowCreationInterval=b;this.maxWindowSize=c;this.scheduler=d}a.prototype.call=function(a,b){return b.subscribe(new t(a,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))};return a}(),k=function(a){function b(){a.apply(this,arguments);this._numberOfNextedValues=0}c(b,a);b.prototype.next=function(b){this._numberOfNextedValues++;
+a.prototype.next.call(this,b)};Object.defineProperty(b.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0});return b}(g.Subject),t=function(a){function b(b,c,d,e,f){a.call(this,b);this.destination=b;this.windowTimeSpan=c;this.windowCreationInterval=d;this.maxWindowSize=e;this.scheduler=f;this.windows=[];b=this.openWindow();null!==d&&0<=d?(e={windowTimeSpan:c,windowCreationInterval:d,subscriber:this,scheduler:f},this.add(f.schedule(m,c,
+{subscriber:this,window:b,context:null})),this.add(f.schedule(n,d,e))):this.add(f.schedule(p,c,{subscriber:this,window:b,windowTimeSpan:c}))}c(b,a);b.prototype._next=function(a){for(var b=this.windows,c=b.length,d=0;d<c;d++){var e=b[d];e.closed||(e.next(a),e.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(e))}};b.prototype._error=function(a){for(var b=this.windows;0<b.length;)b.shift().error(a);this.destination.error(a)};b.prototype._complete=function(){for(var a=this.windows;0<a.length;){var b=
+a.shift();b.closed||b.complete()}this.destination.complete()};b.prototype.openWindow=function(){var a=new k;this.windows.push(a);this.destination.next(a);return a};b.prototype.closeWindow=function(a){a.complete();var b=this.windows;b.splice(b.indexOf(a),1)};return b}(d.Subscriber)},function(g,e,a){g=a(0);a=a(587);g.Observable.prototype.windowToggle=a.windowToggle},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);
+a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10),m=a(8),c=a(13),b=a(11);g=a(4);var d=a(5);e.windowToggle=function(a,b){return this.lift(new f(a,b))};var f=function(){function a(a,b){this.openings=a;this.closingSelector=b}a.prototype.call=function(a,b){return b.subscribe(new h(a,this.openings,this.closingSelector))};return a}(),h=function(a){function e(b,c,e){a.call(this,b);this.openings=c;this.closingSelector=e;this.contexts=[];this.add(this.openSubscription=d.subscribeToResult(this,
+c,c))}p(e,a);e.prototype._next=function(a){var b=this.contexts;if(b)for(var c=b.length,d=0;d<c;d++)b[d].window.next(a)};e.prototype._error=function(b){var c=this.contexts;this.contexts=null;if(c)for(var d=c.length,e=-1;++e<d;){var f=c[e];f.window.error(b);f.subscription.unsubscribe()}a.prototype._error.call(this,b)};e.prototype._complete=function(){var b=this.contexts;this.contexts=null;if(b)for(var c=b.length,d=-1;++d<c;){var e=b[d];e.window.complete();e.subscription.unsubscribe()}a.prototype._complete.call(this)};
+e.prototype._unsubscribe=function(){var a=this.contexts;this.contexts=null;if(a)for(var b=a.length,c=-1;++c<b;){var d=a[c];d.window.unsubscribe();d.subscription.unsubscribe()}};e.prototype.notifyNext=function(a,e,f,g,h){if(a===this.openings){g=c.tryCatch(this.closingSelector)(e);if(g===b.errorObject)return this.error(b.errorObject.e);a=new n.Subject;e=new m.Subscription;f={window:a,subscription:e};this.contexts.push(f);g=d.subscribeToResult(this,g,f);g.closed?this.closeWindow(this.contexts.length-
+1):(g.context=f,e.add(g));this.destination.next(a)}else this.closeWindow(this.contexts.indexOf(a))};e.prototype.notifyError=function(a){this.error(a)};e.prototype.notifyComplete=function(a){a!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(a.context))};e.prototype.closeWindow=function(a){if(-1!==a){var b=this.contexts,c=b[a],d=c.window;c=c.subscription;b.splice(a,1);d.complete();c.unsubscribe()}};return e}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(589);g.Observable.prototype.windowWhen=
+a.windowWhen},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10),m=a(13),c=a(11);g=a(4);var b=a(5);e.windowWhen=function(a){return this.lift(new d(a))};var d=function(){function a(a){this.closingSelector=a}a.prototype.call=function(a,b){return b.subscribe(new f(a,this.closingSelector))};return a}(),f=function(a){function d(b,c){a.call(this,
+b);this.destination=b;this.closingSelector=c;this.openWindow()}p(d,a);d.prototype.notifyNext=function(a,b,c,d,e){this.openWindow(e)};d.prototype.notifyError=function(a,b){this._error(a)};d.prototype.notifyComplete=function(a){this.openWindow(a)};d.prototype._next=function(a){this.window.next(a)};d.prototype._error=function(a){this.window.error(a);this.destination.error(a);this.unsubscribeClosingNotification()};d.prototype._complete=function(){this.window.complete();this.destination.complete();this.unsubscribeClosingNotification()};
+d.prototype.unsubscribeClosingNotification=function(){this.closingNotification&&this.closingNotification.unsubscribe()};d.prototype.openWindow=function(a){void 0===a&&(a=null);a&&(this.remove(a),a.unsubscribe());(a=this.window)&&a.complete();a=this.window=new n.Subject;this.destination.next(a);a=m.tryCatch(this.closingSelector)();a===c.errorObject?(a=c.errorObject.e,this.destination.error(a),this.window.error(a)):this.add(this.closingNotification=b.subscribeToResult(this,a))};return d}(g.OuterSubscriber)},
+function(g,e,a){g=a(0);a=a(591);g.Observable.prototype.withLatestFrom=a.withLatestFrom},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(4);var n=a(5);e.withLatestFrom=function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var e;"function"===typeof a[a.length-1]&&(e=a.pop());return this.lift(new m(a,e))};var m=function(){function a(a,
+b){this.observables=a;this.project=b}a.prototype.call=function(a,b){return b.subscribe(new c(a,this.observables,this.project))};return a}(),c=function(a){function b(b,c,d){a.call(this,b);this.observables=c;this.project=d;this.toRespond=[];b=c.length;this.values=Array(b);for(d=0;d<b;d++)this.toRespond.push(d);for(d=0;d<b;d++){var e=c[d];this.add(n.subscribeToResult(this,e,e,d))}}p(b,a);b.prototype.notifyNext=function(a,b,c,d,e){this.values[c]=b;a=this.toRespond;0<a.length&&(c=a.indexOf(c),-1!==c&&
+a.splice(c,1))};b.prototype.notifyComplete=function(){};b.prototype._next=function(a){0===this.toRespond.length&&(a=[a].concat(this.values),this.project?this._tryProject(a):this.destination.next(a))};b.prototype._tryProject=function(a){try{var b=this.project.apply(this,a)}catch(q){this.destination.error(q);return}this.destination.next(b)};return b}(g.OuterSubscriber)},function(g,e,a){g=a(0);a=a(115);g.Observable.prototype.zip=a.zipProto},function(g,e,a){g=a(0);a=a(594);g.Observable.prototype.zipAll=
+a.zipAll},function(g,e,a){var p=a(115);e.zipAll=function(a){return this.lift(new p.ZipOperator(a))}},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(0),m=a(57),c=a(596),b=a(597),d=a(196),f=a(198);g=function(a){function e(b){a.call(this,f.VirtualAction,750);this.assertDeepEqual=b;this.hotObservables=[];this.coldObservables=[];this.flushTests=
+[]}p(e,a);e.prototype.createTime=function(a){a=a.indexOf("|");if(-1===a)throw Error('marble diagram for time should have a completion marker "|"');return a*e.frameTimeFactor};e.prototype.createColdObservable=function(a,b,d){if(-1!==a.indexOf("^"))throw Error('cold observable cannot have subscription offset "^"');if(-1!==a.indexOf("!"))throw Error('cold observable cannot have unsubscription marker "!"');a=e.parseMarbles(a,b,d);a=new c.ColdObservable(a,this);this.coldObservables.push(a);return a};e.prototype.createHotObservable=
+function(a,c,d){if(-1!==a.indexOf("!"))throw Error('hot observable cannot have unsubscription marker "!"');a=e.parseMarbles(a,c,d);a=new b.HotObservable(a,this);this.hotObservables.push(a);return a};e.prototype.materializeInnerObservable=function(a,b){var c=this,d=[];a.subscribe(function(a){d.push({frame:c.frame-b,notification:m.Notification.createNext(a)})},function(a){d.push({frame:c.frame-b,notification:m.Notification.createError(a)})},function(){d.push({frame:c.frame-b,notification:m.Notification.createComplete()})});
+return d};e.prototype.expectObservable=function(a,b){var c=this;void 0===b&&(b=null);var d=[],f={actual:d,ready:!1};b=e.parseMarblesAsSubscriptions(b).unsubscribedFrame;var g;this.schedule(function(){g=a.subscribe(function(a){var b=a;a instanceof n.Observable&&(b=c.materializeInnerObservable(b,c.frame));d.push({frame:c.frame,notification:m.Notification.createNext(b)})},function(a){d.push({frame:c.frame,notification:m.Notification.createError(a)})},function(){d.push({frame:c.frame,notification:m.Notification.createComplete()})})},
+0);b!==Number.POSITIVE_INFINITY&&this.schedule(function(){return g.unsubscribe()},b);this.flushTests.push(f);return{toBe:function(a,b,c){f.ready=!0;f.expected=e.parseMarbles(a,b,c,!0)}}};e.prototype.expectSubscriptions=function(a){var b={actual:a,ready:!1};this.flushTests.push(b);return{toBe:function(a){a="string"===typeof a?[a]:a;b.ready=!0;b.expected=a.map(function(a){return e.parseMarblesAsSubscriptions(a)})}}};e.prototype.flush=function(){for(var b=this.hotObservables;0<b.length;)b.shift().setup();
+a.prototype.flush.call(this);for(b=this.flushTests.filter(function(a){return a.ready});0<b.length;){var c=b.shift();this.assertDeepEqual(c.actual,c.expected)}};e.parseMarblesAsSubscriptions=function(a){if("string"!==typeof a)return new d.SubscriptionLog(Number.POSITIVE_INFINITY);for(var b=a.length,c=-1,e=Number.POSITIVE_INFINITY,f=Number.POSITIVE_INFINITY,g=0;g<b;g++){var h=g*this.frameTimeFactor,k=a[g];switch(k){case "-":case " ":break;case "(":c=h;break;case ")":c=-1;break;case "^":if(e!==Number.POSITIVE_INFINITY)throw Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");
+e=-1<c?c:h;break;case "!":if(f!==Number.POSITIVE_INFINITY)throw Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");f=-1<c?c:h;break;default:throw Error("there can only be '^' and '!' markers in a subscription marble diagram. Found instead '"+k+"'.");}}return 0>f?new d.SubscriptionLog(e):new d.SubscriptionLog(e,f)};e.parseMarbles=function(a,b,d,e){void 0===e&&(e=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');
+var f=a.length,g=[],h=a.indexOf("^");h=-1===h?0:h*-this.frameTimeFactor;for(var k="object"!==typeof b?function(a){return a}:function(a){return e&&b[a]instanceof c.ColdObservable?b[a].messages:b[a]},l=-1,n=0;n<f;n++){var p=n*this.frameTimeFactor+h,q=void 0,r=a[n];switch(r){case "-":case " ":break;case "(":l=p;break;case ")":l=-1;break;case "|":q=m.Notification.createComplete();break;case "^":break;case "#":q=m.Notification.createError(d||"error");break;default:q=m.Notification.createNext(k(r))}q&&
+g.push({frame:-1<l?l:p,notification:q})}return g};return e}(f.VirtualTimeScheduler);e.TestScheduler=g},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&(a[e]=b[e]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(0),m=a(8);g=a(195);a=a(197);n=function(a){function b(b,c){a.call(this,function(a){var b=this,c=b.logSubscribedFrame();a.add(new m.Subscription(function(){b.logUnsubscribedFrame(c)}));b.scheduleMessages(a);
+return a});this.messages=b;this.subscriptions=[];this.scheduler=c}p(b,a);b.prototype.scheduleMessages=function(a){for(var b=this.messages.length,c=0;c<b;c++){var d=this.messages[c];a.add(this.scheduler.schedule(function(a){a.message.notification.observe(a.subscriber)},d.frame,{message:d,subscriber:a}))}};return b}(n.Observable);e.ColdObservable=n;a.applyMixins(n,[g.SubscriptionLoggable])},function(g,e,a){var p=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var e in b)b.hasOwnProperty(e)&&
+(a[e]=b[e]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},n=a(10),m=a(8);g=a(195);a=a(197);n=function(a){function b(b,c){a.call(this);this.messages=b;this.subscriptions=[];this.scheduler=c}p(b,a);b.prototype._subscribe=function(b){var c=this,d=c.logSubscribedFrame();b.add(new m.Subscription(function(){c.logUnsubscribedFrame(d)}));return a.prototype._subscribe.call(this,b)};b.prototype.setup=function(){for(var a=this,b=a.messages.length,c=0;c<b;c++)(function(){var b=a.messages[c];
+a.scheduler.schedule(function(){b.notification.observe(a)},b.frame)})()};return b}(n.Subject);e.HotObservable=n;a.applyMixins(n,[g.SubscriptionLoggable])},function(g,e,a){g=a(599);a=a(601);e.animationFrame=new a.AnimationFrameScheduler(g.AnimationFrameAction)},function(g,e,a){var p=this&&this.__extends||function(a,c){function b(){this.constructor=a}for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d]);a.prototype=null===c?Object.create(c):(b.prototype=c.prototype,new b)};g=a(58);var n=a(600);a=function(a){function c(b,
+c){a.call(this,b,c);this.scheduler=b;this.work=c}p(c,a);c.prototype.requestAsyncId=function(b,c,e){void 0===e&&(e=0);if(null!==e&&0<e)return a.prototype.requestAsyncId.call(this,b,c,e);b.actions.push(this);return b.scheduled||(b.scheduled=n.AnimationFrame.requestAnimationFrame(b.flush.bind(b,null)))};c.prototype.recycleAsyncId=function(b,c,e){void 0===e&&(e=0);if(null!==e&&0<e||null===e&&0<this.delay)return a.prototype.recycleAsyncId.call(this,b,c,e);0===b.actions.length&&(n.AnimationFrame.cancelAnimationFrame(c),
+b.scheduled=void 0)};return c}(g.AsyncAction);e.AnimationFrameAction=a},function(g,e,a){g=a(12);a=function(){return function(a){a.requestAnimationFrame?(this.cancelAnimationFrame=a.cancelAnimationFrame.bind(a),this.requestAnimationFrame=a.requestAnimationFrame.bind(a)):a.mozRequestAnimationFrame?(this.cancelAnimationFrame=a.mozCancelAnimationFrame.bind(a),this.requestAnimationFrame=a.mozRequestAnimationFrame.bind(a)):a.webkitRequestAnimationFrame?(this.cancelAnimationFrame=a.webkitCancelAnimationFrame.bind(a),
+this.requestAnimationFrame=a.webkitRequestAnimationFrame.bind(a)):a.msRequestAnimationFrame?(this.cancelAnimationFrame=a.msCancelAnimationFrame.bind(a),this.requestAnimationFrame=a.msRequestAnimationFrame.bind(a)):a.oRequestAnimationFrame?(this.cancelAnimationFrame=a.oCancelAnimationFrame.bind(a),this.requestAnimationFrame=a.oRequestAnimationFrame.bind(a)):(this.cancelAnimationFrame=a.clearTimeout.bind(a),this.requestAnimationFrame=function(e){return a.setTimeout(e,1E3/60)})}}();e.RequestAnimationFrameDefinition=
+a;e.AnimationFrame=new a(g.root)},function(g,e,a){var p=this&&this.__extends||function(a,e){function c(){this.constructor=a}for(var b in e)e.hasOwnProperty(b)&&(a[b]=e[b]);a.prototype=null===e?Object.create(e):(c.prototype=e.prototype,new c)};g=function(a){function e(){a.apply(this,arguments)}p(e,a);e.prototype.flush=function(a){this.active=!0;this.scheduled=void 0;var b=this.actions,c,e=-1,g=b.length;a=a||b.shift();do if(c=a.execute(a.state,a.delay))break;while(++e<g&&(a=b.shift()));this.active=
+!1;if(c){for(;++e<g&&(a=b.shift());)a.unsubscribe();throw c;}};return e}(a(59).AsyncScheduler);e.AnimationFrameScheduler=g},function(g,e,a){g=a(0);a.n(g);g.Observable.prototype.notNull=function(){return this.filter(function(a){return!!a}).map(function(a){return a})};g.Observable.prototype.unseen=function(a){$jscomp.initSymbol();var e=Symbol("marker");return this.filter(function(g){return!(a?a(g):g)[e]}).map(function(g){(a?a(g):g)[e]=!0;return g})};g.Observable.prototype.ofType=function(a){return this.filter(function(e){return e instanceof
+a}).map(function(a){return a})}}])});
diff --git a/tsconfig-aot.json b/tsconfig-aot.json
index 4471280624aec02338fd0ac171090553ab572518..5d0448ad0199cc12fe53cc8fbcf7e697667fc19a 100644
--- a/tsconfig-aot.json
+++ b/tsconfig-aot.json
@@ -4,7 +4,11 @@
     "emitDecoratorMetadata": true,
     "moduleResolution": "node",
     "target": "es2015",
-    "sourceMap": false
+    "sourceMap": false,
+    "baseUrl": ".",
+    "paths": {
+      "third_party/*" : ["third_party/*"]
+    }
   },
   "angularCompilerOptions":{
     "annotateForClosureCompiler" : true
diff --git a/tsconfig.json b/tsconfig.json
index a997cef94c5089517243d2089803e6b4e54a9dca..1e1c481748c91961ea899dbb2d1bfb1261c8cf64 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,5 +6,9 @@
     "skipLibCheck": true,
     "target": "es2015",
     "sourceMap": true,
+    "baseUrl": ".",
+    "paths": {
+      "third_party/*" : ["third_party/*"]
+    }
   }
 }
\ No newline at end of file
diff --git a/typings/index.d.ts b/typings/index.d.ts
index 687213b2c5c9057b1c0ebc35d245af97d9d12bd1..8c16e409c9e8203fd198252a3c7e530af220fd28 100644
--- a/typings/index.d.ts
+++ b/typings/index.d.ts
@@ -8,3 +8,4 @@ declare module '*.css' {
   export = contents
 }
 
+declare var PLUGINDEV : boolean
\ No newline at end of file
diff --git a/webpack.aot.js b/webpack.aot.js
index 0b141cc0041ffbf2a164cfbdbc2e5a2ad09481e2..b54d2b474cb091ae6cf5e52b80221eb97e108136 100644
--- a/webpack.aot.js
+++ b/webpack.aot.js
@@ -4,8 +4,10 @@ const ngtools = require('@ngtools/webpack')
 const HtmlWebpackPlugin = require('html-webpack-plugin')
 const AngularCompilerPlugin = ngtools.AngularCompilerPlugin
 const ClosureCompilerPlugin = require('webpack-closure-compiler')
+const merge = require('webpack-merge')
+const staticAssets = require('./webpack.staticassets')
 
-module.exports = {
+module.exports = merge(staticAssets, {
 
   entry : './src/main-aot.ts',
   output : {
@@ -31,10 +33,19 @@ module.exports = {
       },
       {
         test : /\.(html|css)$/,
-        exclude : /export\_nehuba|index/,
+        exclude : /export\_nehuba|index|res\/css/,
         use : {
           loader : 'raw-loader',
         }
+      },
+      {
+        test : /res\/css.*?css$/,
+        use : {
+          loader : 'file-loader',
+          options : {
+            name : '[name].[ext]'
+          }
+        }
       }
     ]
   },
@@ -52,6 +63,9 @@ module.exports = {
       '.ts',
       '.js',
       '.json'
-    ]
+    ],
+    alias : {
+      "third_party" : path.resolve(__dirname,'third_party')
+    }
   }
-}
\ No newline at end of file
+})
\ No newline at end of file
diff --git a/webpack.common.js b/webpack.common.js
index cd251dee634d871ad155294ed5e2c904eadde080..59c00387fbcd21c149b5e74aeea17755a92f4f77 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -10,33 +10,13 @@ module.exports = {
         exclude : /node_modules/
       },
       {
-        test : /export_nehuba.*?worker.*?\.js$/,
+        test : /.*?worker.*?\.js$/,
         use : {
           loader : 'file-loader',
           options: {
             name : '[name].[ext]'
           }
         }
-      },
-      {
-        test : /export_nehuba.*?.css$/,
-        use : {
-          loader : 'file-loader',
-          options: {
-            name : '[name].[ext]'
-          }
-        }
-      },
-      {
-        type : 'javascript/auto',
-        test : /ext.*?\.json/,
-        use : [{
-          loader : 'file-loader',
-          options : {
-            name : '[name].[ext]',
-            outputPath : 'res/json'
-          }
-        }]
       }
     ]
   },
@@ -48,6 +28,9 @@ module.exports = {
       '.ts',
       '.js',
       '.json'
-    ]
+    ],
+    alias : {
+      "third_party" : path.resolve(__dirname,'third_party')
+    }
   },
 }
\ No newline at end of file
diff --git a/webpack.dev.js b/webpack.dev.js
index 82f9a8dcb073d5f1c023712db97e0820550ecce2..5e812129eee3095b6ec70738a27c24f8fabae71a 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -2,10 +2,11 @@ const common = require('./webpack.common.js')
 const merge = require('webpack-merge')
 const path = require('path')
 const ngAssets = require('./webpack.ngassets')
+const staticAssets = require('./webpack.staticassets')
 const HtmlWebpackPlugin = require('html-webpack-plugin')
 
 
-module.exports = merge(common,ngAssets,{
+module.exports = merge(common,ngAssets,staticAssets,{
   entry : './src/main.ts',
   mode : 'development',
   output : {
diff --git a/webpack.ngassets.js b/webpack.ngassets.js
index c9227ba432d9b36438a26cfa7a6072f1f573d063..791e57df786476d92a8455dc54236fd27dd03789 100644
--- a/webpack.ngassets.js
+++ b/webpack.ngassets.js
@@ -10,14 +10,6 @@ module.exports = {
             name : '[name].[ext]'
           }
         }
-      },{
-        test : /(jpg|png)$/,
-        use : {
-          loader : 'file-loader',
-          options : {
-            name : 'res/image/[name].[ext]'
-          }
-        }
       }
     ]
   }
diff --git a/webpack.prod.js b/webpack.prod.js
index 485b3b908834823d8aa9a22a77a17e8f93a13b58..1119c6948c84f0b87eeb626acd7a1b4ba779f97d 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -4,9 +4,10 @@ const Uglify = require('uglifyjs-webpack-plugin')
 const path = require('path')
 const ClosureCompilerPlugin = require('webpack-closure-compiler')
 const ngAssets = require('./webpack.ngassets')
+const staticAssets = require('./webpack.staticassets')
 const HtmlWebpackPlugin = require('html-webpack-plugin')
 
-module.exports = merge(common,ngAssets,{
+module.exports = merge(common,ngAssets,staticAssets,{
   entry : './src/main.ts',
   output : {
     filename : 'main.js',
diff --git a/webpack.staticassets.js b/webpack.staticassets.js
index c123acfa2272ac4fcd6adcea3bf0fc5eddd04e78..5b2907cc046f063a9bb12d954c03a01aa772e882 100644
--- a/webpack.staticassets.js
+++ b/webpack.staticassets.js
@@ -1,3 +1,5 @@
+const webpack = require('webpack')
+
 module.exports = {
   module : {
     rules : [
@@ -7,10 +9,26 @@ module.exports = {
         use : {
           loader : 'file-loader',
           options : {
-            name : '[name].[ext]'
+            name : 'res/image/[name].[ext]'
           }
         }
+      },
+      {
+        type : 'javascript/auto',
+        test : /ext.*?\.json/,
+        use : [{
+          loader : 'file-loader',
+          options : {
+            name : '[name].[ext]',
+            outputPath : 'res/json'
+          }
+        }]
       }
     ]
-  }
+  },
+  plugins : [
+    new webpack.DefinePlugin({
+      PLUGINDEV : process.env.PLUGINDEV ? true : false
+    })
+  ]
 }
\ No newline at end of file