plotly.js 2.9.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/.circleci/config.yml +39 -1
  2. package/.circleci/test.sh +14 -1
  3. package/CHANGELOG.md +24 -1
  4. package/CONTRIBUTING.md +18 -1
  5. package/README.md +12 -4
  6. package/dist/README.md +28 -28
  7. package/dist/plot-schema.json +98 -0
  8. package/dist/plotly-basic.js +174 -83
  9. package/dist/plotly-basic.min.js +3 -3
  10. package/dist/plotly-cartesian.js +174 -83
  11. package/dist/plotly-cartesian.min.js +4 -4
  12. package/dist/plotly-finance.js +174 -83
  13. package/dist/plotly-finance.min.js +3 -3
  14. package/dist/plotly-geo-assets.js +2 -2
  15. package/dist/plotly-geo.js +174 -83
  16. package/dist/plotly-geo.min.js +3 -3
  17. package/dist/plotly-gl2d.js +601 -433
  18. package/dist/plotly-gl2d.min.js +10 -10
  19. package/dist/plotly-gl3d.js +223 -91
  20. package/dist/plotly-gl3d.min.js +8 -8
  21. package/dist/plotly-mapbox.js +174 -83
  22. package/dist/plotly-mapbox.min.js +2 -2
  23. package/dist/plotly-strict.js +40414 -1028
  24. package/dist/plotly-strict.min.js +11 -11
  25. package/dist/plotly-with-meta.js +881 -704
  26. package/dist/plotly.js +848 -675
  27. package/dist/plotly.min.js +4 -4
  28. package/lib/index-strict.js +5 -0
  29. package/package.json +13 -9
  30. package/src/components/drawing/index.js +28 -24
  31. package/src/components/legend/style.js +10 -6
  32. package/src/generated/regl-codegen/0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc +1462 -0
  33. package/src/generated/regl-codegen/13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260 +3391 -0
  34. package/src/generated/regl-codegen/19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13 +3375 -0
  35. package/src/generated/regl-codegen/21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316 +2488 -0
  36. package/src/generated/regl-codegen/4df455b48c9de7d9f1de4b9481b505c09613ba7f90d2b4e360e673839566688e +662 -0
  37. package/src/generated/regl-codegen/53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6 +459 -0
  38. package/src/generated/regl-codegen/59568c77bcbe6343ee6109df49ceeb78c8a8a8a81872e88fb077f9a3d6dc0567 +637 -0
  39. package/src/generated/regl-codegen/6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc +2226 -0
  40. package/src/generated/regl-codegen/7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4 +2052 -0
  41. package/src/generated/regl-codegen/8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770 +664 -0
  42. package/src/generated/regl-codegen/909861c036d6f1ef40ba2dfcc33ef32489d2fe05fa7b7984d5ff315ddceb17b1 +454 -0
  43. package/src/generated/regl-codegen/c759965c8d66b2b356ae7455825df829f2ba7d4e7e903236f8c8d3bc5f45bd44 +2116 -0
  44. package/src/generated/regl-codegen/f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956 +2755 -0
  45. package/src/generated/regl-codegen/ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce +639 -0
  46. package/src/lib/prepare_regl.js +7 -3
  47. package/src/lib/svg_text_utils.js +106 -21
  48. package/src/plot_api/plot_config.js +9 -0
  49. package/src/snapshot/tosvg.js +14 -25
  50. package/src/traces/parcoords/base_index.js +24 -0
  51. package/src/traces/parcoords/index.js +4 -22
  52. package/src/traces/parcoords/plot-strict.js +9 -0
  53. package/src/traces/parcoords/plot.js +5 -2
  54. package/src/traces/parcoords/regl_precompiled.js +12 -0
  55. package/src/traces/parcoords/strict.js +7 -0
  56. package/src/traces/scatter/attributes.js +2 -0
  57. package/src/traces/scatter/defaults.js +2 -0
  58. package/src/traces/scatter/plot.js +4 -4
  59. package/src/traces/scatter/style.js +1 -1
  60. package/src/traces/scattergl/base_index.js +29 -0
  61. package/src/traces/scattergl/index.js +3 -26
  62. package/src/traces/scattergl/plot.js +5 -2
  63. package/src/traces/scattergl/plot_strict.js +9 -0
  64. package/src/traces/scattergl/regl_precompiled.js +24 -0
  65. package/src/traces/scattergl/strict.js +7 -0
  66. package/src/traces/scatterpolargl/base_index.js +29 -0
  67. package/src/traces/scatterpolargl/index.js +3 -26
  68. package/src/traces/scatterpolargl/plot.js +4 -0
  69. package/src/traces/scatterpolargl/plot_strict.js +13 -0
  70. package/src/traces/scatterpolargl/regl_precompiled.js +24 -0
  71. package/src/traces/scatterpolargl/strict.js +7 -0
  72. package/src/traces/splom/base_index.js +36 -0
  73. package/src/traces/splom/base_plot.js +5 -2
  74. package/src/traces/splom/base_plot_strict.js +9 -0
  75. package/src/traces/splom/index.js +3 -33
  76. package/src/traces/splom/regl_precompiled.js +24 -0
  77. package/src/traces/splom/strict.js +7 -0
  78. package/src/version.js +1 -1
  79. package/stackgl_modules/index.js +49 -8
  80. package/stackgl_modules/package-lock.json +10 -10
  81. package/stackgl_modules/package.json +2 -2
  82. package/tasks/bundle.js +18 -0
  83. package/tasks/noci_test.sh +1 -1
  84. package/tasks/partial_bundle.js +26 -23
  85. package/tasks/stats.js +3 -3
  86. package/tasks/util/constants.js +13 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * plotly.js (gl2d) v2.9.0
2
+ * plotly.js (gl2d) v2.11.0
3
3
  * Copyright 2012-2022, Plotly, Inc.
4
4
  * All rights reserved.
5
5
  * Licensed under the MIT license
@@ -77,7 +77,7 @@ for(var selector in rules) {
77
77
 
78
78
  module.exports = _dereq_('../src/transforms/aggregate');
79
79
 
80
- },{"../src/transforms/aggregate":582}],3:[function(_dereq_,module,exports){
80
+ },{"../src/transforms/aggregate":585}],3:[function(_dereq_,module,exports){
81
81
  'use strict';
82
82
 
83
83
  module.exports = _dereq_('../src/components/calendars');
@@ -92,12 +92,12 @@ module.exports = _dereq_('../src/core');
92
92
 
93
93
  module.exports = _dereq_('../src/transforms/filter');
94
94
 
95
- },{"../src/transforms/filter":583}],6:[function(_dereq_,module,exports){
95
+ },{"../src/transforms/filter":586}],6:[function(_dereq_,module,exports){
96
96
  'use strict';
97
97
 
98
98
  module.exports = _dereq_('../src/transforms/groupby');
99
99
 
100
- },{"../src/transforms/groupby":584}],7:[function(_dereq_,module,exports){
100
+ },{"../src/transforms/groupby":587}],7:[function(_dereq_,module,exports){
101
101
  'use strict';
102
102
 
103
103
  module.exports = _dereq_('../src/traces/heatmapgl');
@@ -132,27 +132,27 @@ module.exports = Plotly;
132
132
 
133
133
  module.exports = _dereq_('../src/traces/parcoords');
134
134
 
135
- },{"../src/traces/parcoords":517}],10:[function(_dereq_,module,exports){
135
+ },{"../src/traces/parcoords":518}],10:[function(_dereq_,module,exports){
136
136
  'use strict';
137
137
 
138
138
  module.exports = _dereq_('../src/traces/pointcloud');
139
139
 
140
- },{"../src/traces/pointcloud":527}],11:[function(_dereq_,module,exports){
140
+ },{"../src/traces/pointcloud":528}],11:[function(_dereq_,module,exports){
141
141
  'use strict';
142
142
 
143
143
  module.exports = _dereq_('../src/traces/scattergl');
144
144
 
145
- },{"../src/traces/scattergl":567}],12:[function(_dereq_,module,exports){
145
+ },{"../src/traces/scattergl":569}],12:[function(_dereq_,module,exports){
146
146
  'use strict';
147
147
 
148
148
  module.exports = _dereq_('../src/transforms/sort');
149
149
 
150
- },{"../src/transforms/sort":586}],13:[function(_dereq_,module,exports){
150
+ },{"../src/transforms/sort":589}],13:[function(_dereq_,module,exports){
151
151
  'use strict';
152
152
 
153
153
  module.exports = _dereq_('../src/traces/splom');
154
154
 
155
- },{"../src/traces/splom":578}],14:[function(_dereq_,module,exports){
155
+ },{"../src/traces/splom":581}],14:[function(_dereq_,module,exports){
156
156
  !function() {
157
157
  var d3 = {
158
158
  version: "3.8.0"
@@ -24774,177 +24774,183 @@ function getPad (arg) {
24774
24774
  }
24775
24775
 
24776
24776
  },{"array-bounds":18,"array-range":21,"flatten-vertex-data":122,"parse-rect":178,"pick-by-alias":182,"raf":192,"regl-scatter2d":195}],197:[function(_dereq_,module,exports){
24777
- (function(Z,ka){"object"===typeof exports&&"undefined"!==typeof module?module.exports=ka():"function"===typeof define&&define.amd?define(ka):Z.createREGL=ka()})(this,function(){function Z(a,b){this.id=Db++;this.type=a;this.data=b}function ka(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1<a.length&&b===c&&('"'===b||"'"===b))return['"'+a.substr(1,a.length-2).replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];if(b=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(a))return ka(a.substr(0,
24778
- b.index)).concat(ka(b[1])).concat(ka(a.substr(b.index+b[0].length)));b=a.split(".");if(1===b.length)return['"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];a=[];for(c=0;c<b.length;++c)a=a.concat(ka(b[c]));return a}function cb(a){return"["+ka(a).join("][")+"]"}function db(a,b){if("function"===typeof a)return new Z(0,a);if("number"===typeof a||"boolean"===typeof a)return new Z(5,a);if(Array.isArray(a))return new Z(6,a.map(function(a,e){return db(a,b+"["+e+"]")}));if(a instanceof Z)return a}function Eb(){var a=
24779
- {"":0},b=[""];return{id:function(c){var e=a[c];if(e)return e;e=a[c]=b.length;b.push(c);return e},str:function(a){return b[a]}}}function Fb(a,b,c){function e(){var b=window.innerWidth,e=window.innerHeight;a!==document.body&&(e=f.getBoundingClientRect(),b=e.right-e.left,e=e.bottom-e.top);f.width=c*b;f.height=c*e}var f=document.createElement("canvas");L(f.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"});a.appendChild(f);a===document.body&&(f.style.position="absolute",L(a.style,
24780
- {margin:0,padding:0}));var d;a!==document.body&&"function"===typeof ResizeObserver?(d=new ResizeObserver(function(){setTimeout(e)}),d.observe(a)):window.addEventListener("resize",e,!1);e();return{canvas:f,onDestroy:function(){d?d.disconnect():window.removeEventListener("resize",e);a.removeChild(f)}}}function Gb(a,b){function c(c){try{return a.getContext(c,b)}catch(f){return null}}return c("webgl")||c("experimental-webgl")||c("webgl-experimental")}function eb(a){return"string"===typeof a?a.split():
24781
- a}function fb(a){return"string"===typeof a?document.querySelector(a):a}function Hb(a){var b=a||{},c,e,f,d;a={};var q=[],n=[],v="undefined"===typeof window?1:window.devicePixelRatio,k=!1,u=function(a){},m=function(){};"string"===typeof b?c=document.querySelector(b):"object"===typeof b&&("string"===typeof b.nodeName&&"function"===typeof b.appendChild&&"function"===typeof b.getBoundingClientRect?c=b:"function"===typeof b.drawArrays||"function"===typeof b.drawElements?(d=b,f=d.canvas):("gl"in b?d=b.gl:
24782
- "canvas"in b?f=fb(b.canvas):"container"in b&&(e=fb(b.container)),"attributes"in b&&(a=b.attributes),"extensions"in b&&(q=eb(b.extensions)),"optionalExtensions"in b&&(n=eb(b.optionalExtensions)),"onDone"in b&&(u=b.onDone),"profile"in b&&(k=!!b.profile),"pixelRatio"in b&&(v=+b.pixelRatio)));c&&("canvas"===c.nodeName.toLowerCase()?f=c:e=c);if(!d){if(!f){c=Fb(e||document.body,u,v);if(!c)return null;f=c.canvas;m=c.onDestroy}void 0===a.premultipliedAlpha&&(a.premultipliedAlpha=!0);d=Gb(f,a)}return d?{gl:d,
24783
- canvas:f,container:e,extensions:q,optionalExtensions:n,pixelRatio:v,profile:k,onDone:u,onDestroy:m}:(m(),u("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function Ib(a,b){function c(b){b=b.toLowerCase();var c;try{c=e[b]=a.getExtension(b)}catch(f){}return!!c}for(var e={},f=0;f<b.extensions.length;++f){var d=b.extensions[f];if(!c(d))return b.onDestroy(),b.onDone('"'+d+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),
24784
- null}b.optionalExtensions.forEach(c);return{extensions:e,restore:function(){Object.keys(e).forEach(function(a){if(e[a]&&!c(a))throw Error("(regl): error restoring extension "+a);})}}}function R(a,b){for(var c=Array(a),e=0;e<a;++e)c[e]=b(e);return c}function gb(a){var b,c;b=(65535<a)<<4;a>>>=b;c=(255<a)<<3;a>>>=c;b|=c;c=(15<a)<<2;a>>>=c;b|=c;c=(3<a)<<1;return b|c|a>>>c>>1}function hb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[gb(a)>>2];return 0<b.length?b.pop():
24785
- new ArrayBuffer(a)}function b(a){c[gb(a.byteLength)>>2].push(a)}var c=R(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d=new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==
24786
- c?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function la(a){return!!a&&"object"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&"number"===typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||O(a.data))}function ib(a,b,c,e,f,d){for(var q=0;q<b;++q)for(var n=a[q],v=0;v<c;++v)for(var k=n[v],u=0;u<e;++u)f[d++]=k[u]}function jb(a,b,c,e,f){for(var d=1,q=c+1;q<b.length;++q)d*=b[q];var n=b[c];if(4===b.length-c){var v=b[c+1],k=b[c+2];b=b[c+3];for(q=0;q<n;++q)ib(a[q],
24787
- v,k,b,e,f),f+=d}else for(q=0;q<n;++q)jb(a[q],b,c+1,e,f),f+=d}function Ha(a){return Ia[Object.prototype.toString.call(a)]|0}function kb(a,b){for(var c=0;c<b.length;++c)a[c]=b[c]}function lb(a,b,c,e,f,d,q){for(var n=0,v=0;v<c;++v)for(var k=0;k<e;++k)a[n++]=b[f*v+d*k+q]}function Jb(a,b,c,e){function f(b){this.id=v++;this.buffer=a.createBuffer();this.type=b;this.usage=35044;this.byteLength=0;this.dimension=1;this.dtype=5121;this.persistentData=null;c.profile&&(this.stats={size:0})}function d(b,c,l){b.byteLength=
24788
- c.byteLength;a.bufferData(b.type,c,l)}function q(a,b,c,g,h,r){a.usage=c;if(Array.isArray(b)){if(a.dtype=g||5126,0<b.length)if(Array.isArray(b[0])){h=mb(b);for(var p=g=1;p<h.length;++p)g*=h[p];a.dimension=g;b=Ua(b,h,a.dtype);d(a,b,c);r?a.persistentData=b:G.freeType(b)}else"number"===typeof b[0]?(a.dimension=h,h=G.allocType(a.dtype,b.length),kb(h,b),d(a,h,c),r?a.persistentData=h:G.freeType(h)):O(b[0])&&(a.dimension=b[0].length,a.dtype=g||Ha(b[0])||5126,b=Ua(b,[b.length,b[0].length],a.dtype),d(a,b,c),
24789
- r?a.persistentData=b:G.freeType(b))}else if(O(b))a.dtype=g||Ha(b),a.dimension=h,d(a,b,c),r&&(a.persistentData=new Uint8Array(new Uint8Array(b.buffer)));else if(la(b)){h=b.shape;var e=b.stride,p=b.offset,t=0,ma=0,f=0,k=0;1===h.length?(t=h[0],ma=1,f=e[0],k=0):2===h.length&&(t=h[0],ma=h[1],f=e[0],k=e[1]);a.dtype=g||Ha(b.data)||5126;a.dimension=ma;h=G.allocType(a.dtype,t*ma);lb(h,b.data,t,ma,f,k,p);d(a,h,c);r?a.persistentData=h:G.freeType(h)}else b instanceof ArrayBuffer&&(a.dtype=5121,a.dimension=h,
24790
- d(a,b,c),r&&(a.persistentData=new Uint8Array(new Uint8Array(b))))}function n(c){b.bufferCount--;e(c);a.deleteBuffer(c.buffer);c.buffer=null;delete k[c.id]}var v=0,k={};f.prototype.bind=function(){a.bindBuffer(this.type,this.buffer)};f.prototype.destroy=function(){n(this)};var u=[];c.profile&&(b.getTotalBufferSize=function(){var a=0;Object.keys(k).forEach(function(b){a+=k[b].stats.size});return a});return{create:function(m,e,d,g){function h(b){var e=35044,t=null,d=0,m=0,f=1;Array.isArray(b)||O(b)||
24791
- la(b)||b instanceof ArrayBuffer?t=b:"number"===typeof b?d=b|0:b&&("data"in b&&(t=b.data),"usage"in b&&(e=nb[b.usage]),"type"in b&&(m=Ja[b.type]),"dimension"in b&&(f=b.dimension|0),"length"in b&&(d=b.length|0));r.bind();t?q(r,t,e,m,f,g):(d&&a.bufferData(r.type,d,e),r.dtype=m||5121,r.usage=e,r.dimension=f,r.byteLength=d);c.profile&&(r.stats.size=r.byteLength*na[r.dtype]);return h}b.bufferCount++;var r=new f(e);k[r.id]=r;d||h(m);h._reglType="buffer";h._buffer=r;h.subdata=function(b,c){var t=(c||0)|0,
24792
- d;r.bind();if(O(b)||b instanceof ArrayBuffer)a.bufferSubData(r.type,t,b);else if(Array.isArray(b)){if(0<b.length)if("number"===typeof b[0]){var e=G.allocType(r.dtype,b.length);kb(e,b);a.bufferSubData(r.type,t,e);G.freeType(e)}else if(Array.isArray(b[0])||O(b[0]))d=mb(b),e=Ua(b,d,r.dtype),a.bufferSubData(r.type,t,e),G.freeType(e)}else if(la(b)){d=b.shape;var m=b.stride,g=e=0,f=0,y=0;1===d.length?(e=d[0],g=1,f=m[0],y=0):2===d.length&&(e=d[0],g=d[1],f=m[0],y=m[1]);d=Array.isArray(b.data)?r.dtype:Ha(b.data);
24793
- d=G.allocType(d,e*g);lb(d,b.data,e,g,f,y,b.offset);a.bufferSubData(r.type,t,d);G.freeType(d)}return h};c.profile&&(h.stats=r.stats);h.destroy=function(){n(r)};return h},createStream:function(a,b){var c=u.pop();c||(c=new f(a));c.bind();q(c,b,35040,0,1,!1);return c},destroyStream:function(a){u.push(a)},clear:function(){I(k).forEach(n);u.forEach(n)},getBuffer:function(a){return a&&a._buffer instanceof f?a._buffer:null},restore:function(){I(k).forEach(function(b){b.buffer=a.createBuffer();a.bindBuffer(b.type,
24794
- b.buffer);a.bufferData(b.type,b.persistentData||b.byteLength,b.usage)})},_initBuffer:q}}function Kb(a,b,c,e){function f(a){this.id=v++;n[this.id]=this;this.buffer=a;this.primType=4;this.type=this.vertCount=0}function d(d,e,f,g,h,r,p){d.buffer.bind();var k;e?((k=p)||O(e)&&(!la(e)||O(e.data))||(k=b.oes_element_index_uint?5125:5123),c._initBuffer(d.buffer,e,f,k,3)):(a.bufferData(34963,r,f),d.buffer.dtype=k||5121,d.buffer.usage=f,d.buffer.dimension=3,d.buffer.byteLength=r);k=p;if(!p){switch(d.buffer.dtype){case 5121:case 5120:k=
24795
- 5121;break;case 5123:case 5122:k=5123;break;case 5125:case 5124:k=5125}d.buffer.dtype=k}d.type=k;e=h;0>e&&(e=d.buffer.byteLength,5123===k?e>>=1:5125===k&&(e>>=2));d.vertCount=e;e=g;0>g&&(e=4,g=d.buffer.dimension,1===g&&(e=0),2===g&&(e=1),3===g&&(e=4));d.primType=e}function q(a){e.elementsCount--;delete n[a.id];a.buffer.destroy();a.buffer=null}var n={},v=0,k={uint8:5121,uint16:5123};b.oes_element_index_uint&&(k.uint32=5125);f.prototype.bind=function(){this.buffer.bind()};var u=[];return{create:function(a,
24796
- b){function l(a){if(a)if("number"===typeof a)g(a),h.primType=4,h.vertCount=a|0,h.type=5121;else{var b=null,c=35044,e=-1,f=-1,m=0,n=0;if(Array.isArray(a)||O(a)||la(a))b=a;else if("data"in a&&(b=a.data),"usage"in a&&(c=nb[a.usage]),"primitive"in a&&(e=Ka[a.primitive]),"count"in a&&(f=a.count|0),"type"in a&&(n=k[a.type]),"length"in a)m=a.length|0;else if(m=f,5123===n||5122===n)m*=2;else if(5125===n||5124===n)m*=4;d(h,b,c,e,f,m,n)}else g(),h.primType=4,h.vertCount=0,h.type=5121;return l}var g=c.create(null,
24797
- 34963,!0),h=new f(g._buffer);e.elementsCount++;l(a);l._reglType="elements";l._elements=h;l.subdata=function(a,b){g.subdata(a,b);return l};l.destroy=function(){q(h)};return l},createStream:function(a){var b=u.pop();b||(b=new f(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){u.push(a)},getElements:function(a){return"function"===typeof a&&a._elements instanceof f?a._elements:null},clear:function(){I(n).forEach(q)}}}function ob(a){for(var b=G.allocType(5123,
24798
- a.length),c=0;c<a.length;++c)if(isNaN(a[c]))b[c]=65535;else if(Infinity===a[c])b[c]=31744;else if(-Infinity===a[c])b[c]=64512;else{pb[0]=a[c];var e=Lb[0],f=e>>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]=-24>d?f:-14>d?f+(e+1024>>-14-d):15<d?f+31744:f+(d+15<<10)+e}return b}function ra(a){return Array.isArray(a)||O(a)}function sa(a){return"[object "+a+"]"}function qb(a){return Array.isArray(a)&&(0===a.length||"number"===typeof a[0])}function rb(a){return Array.isArray(a)&&0!==a.length&&ra(a[0])?!0:!1}
24799
- function aa(a){return Object.prototype.toString.call(a)}function Va(a){if(!a)return!1;var b=aa(a);return 0<=Mb.indexOf(b)?!0:qb(a)||rb(a)||la(a)}function sb(a,b){36193===a.type?(a.data=ob(b),G.freeType(b)):a.data=b}function La(a,b,c,e,f,d){a="undefined"!==typeof C[a]?C[a]:U[a]*za[b];d&&(a*=6);if(f){for(e=0;1<=c;)e+=a*c*c,c/=2;return e}return a*c*e}function Nb(a,b,c,e,f,d,q){function n(){this.format=this.internalformat=6408;this.type=5121;this.flipY=this.premultiplyAlpha=this.compressed=!1;this.unpackAlignment=
24800
- 1;this.colorSpace=37444;this.channels=this.height=this.width=0}function v(a,b){a.internalformat=b.internalformat;a.format=b.format;a.type=b.type;a.compressed=b.compressed;a.premultiplyAlpha=b.premultiplyAlpha;a.flipY=b.flipY;a.unpackAlignment=b.unpackAlignment;a.colorSpace=b.colorSpace;a.width=b.width;a.height=b.height;a.channels=b.channels}function k(a,b){if("object"===typeof b&&b){"premultiplyAlpha"in b&&(a.premultiplyAlpha=b.premultiplyAlpha);"flipY"in b&&(a.flipY=b.flipY);"alignment"in b&&(a.unpackAlignment=
24801
- b.alignment);"colorSpace"in b&&(a.colorSpace=Ob[b.colorSpace]);"type"in b&&(a.type=N[b.type]);var c=a.width,e=a.height,d=a.channels,f=!1;"shape"in b?(c=b.shape[0],e=b.shape[1],3===b.shape.length&&(d=b.shape[2],f=!0)):("radius"in b&&(c=e=b.radius),"width"in b&&(c=b.width),"height"in b&&(e=b.height),"channels"in b&&(d=b.channels,f=!0));a.width=c|0;a.height=e|0;a.channels=d|0;c=!1;"format"in b&&(c=b.format,e=a.internalformat=E[c],a.format=V[e],c in N&&!("type"in b)&&(a.type=N[c]),c in ga&&(a.compressed=
24802
- !0),c=!0);!f&&c?a.channels=U[a.format]:f&&!c&&a.channels!==Oa[a.format]&&(a.format=a.internalformat=Oa[a.channels])}}function u(b){a.pixelStorei(37440,b.flipY);a.pixelStorei(37441,b.premultiplyAlpha);a.pixelStorei(37443,b.colorSpace);a.pixelStorei(3317,b.unpackAlignment)}function m(){n.call(this);this.yOffset=this.xOffset=0;this.data=null;this.needsFree=!1;this.element=null;this.needsCopy=!1}function x(a,b){var c=null;Va(b)?c=b:b&&(k(a,b),"x"in b&&(a.xOffset=b.x|0),"y"in b&&(a.yOffset=b.y|0),Va(b.data)&&
24803
- (c=b.data));if(b.copy){var e=f.viewportWidth,d=f.viewportHeight;a.width=a.width||e-a.xOffset;a.height=a.height||d-a.yOffset;a.needsCopy=!0}else if(!c)a.width=a.width||1,a.height=a.height||1,a.channels=a.channels||4;else if(O(c))a.channels=a.channels||4,a.data=c,"type"in b||5121!==a.type||(a.type=Ia[Object.prototype.toString.call(c)]|0);else if(qb(c)){a.channels=a.channels||4;e=c;d=e.length;switch(a.type){case 5121:case 5123:case 5125:case 5126:d=G.allocType(a.type,d);d.set(e);a.data=d;break;case 36193:a.data=
24804
- ob(e)}a.alignment=1;a.needsFree=!0}else if(la(c)){e=c.data;Array.isArray(e)||5121!==a.type||(a.type=Ia[Object.prototype.toString.call(e)]|0);var d=c.shape,h=c.stride,y,t,g,p;3===d.length?(g=d[2],p=h[2]):p=g=1;y=d[0];t=d[1];d=h[0];h=h[1];a.alignment=1;a.width=y;a.height=t;a.channels=g;a.format=a.internalformat=Oa[g];a.needsFree=!0;y=p;c=c.offset;g=a.width;p=a.height;t=a.channels;for(var z=G.allocType(36193===a.type?5126:a.type,g*p*t),B=0,ha=0;ha<p;++ha)for(var oa=0;oa<g;++oa)for(var Wa=0;Wa<t;++Wa)z[B++]=
24805
- e[d*oa+h*ha+y*Wa+c];sb(a,z)}else if(aa(c)===Xa||aa(c)===Ya||aa(c)===ub)aa(c)===Xa||aa(c)===Ya?a.element=c:a.element=c.canvas,a.width=a.element.width,a.height=a.element.height,a.channels=4;else if(aa(c)===vb)a.element=c,a.width=c.width,a.height=c.height,a.channels=4;else if(aa(c)===wb)a.element=c,a.width=c.naturalWidth,a.height=c.naturalHeight,a.channels=4;else if(aa(c)===xb)a.element=c,a.width=c.videoWidth,a.height=c.videoHeight,a.channels=4;else if(rb(c)){e=a.width||c[0].length;d=a.height||c.length;
24806
- h=a.channels;h=ra(c[0][0])?h||c[0][0].length:h||1;y=Qa.shape(c);g=1;for(p=0;p<y.length;++p)g*=y[p];g=G.allocType(36193===a.type?5126:a.type,g);Qa.flatten(c,y,"",g);sb(a,g);a.alignment=1;a.width=e;a.height=d;a.channels=h;a.format=a.internalformat=Oa[h];a.needsFree=!0}}function l(b,c,d,h,g){var y=b.element,f=b.data,p=b.internalformat,t=b.format,k=b.type,z=b.width,B=b.height;u(b);y?a.texSubImage2D(c,g,d,h,t,k,y):b.compressed?a.compressedTexSubImage2D(c,g,d,h,p,z,B,f):b.needsCopy?(e(),a.copyTexSubImage2D(c,
24807
- g,d,h,b.xOffset,b.yOffset,z,B)):a.texSubImage2D(c,g,d,h,z,B,t,k,f)}function g(){return R.pop()||new m}function h(a){a.needsFree&&G.freeType(a.data);m.call(a);R.push(a)}function r(){n.call(this);this.genMipmaps=!1;this.mipmapHint=4352;this.mipmask=0;this.images=Array(16)}function p(a,b,c){var d=a.images[0]=g();a.mipmask=1;d.width=a.width=b;d.height=a.height=c;d.channels=a.channels=4}function P(a,b){var c=null;if(Va(b))c=a.images[0]=g(),v(c,a),x(c,b),a.mipmask=1;else if(k(a,b),Array.isArray(b.mipmap))for(var d=
24808
- b.mipmap,e=0;e<d.length;++e)c=a.images[e]=g(),v(c,a),c.width>>=e,c.height>>=e,x(c,d[e]),a.mipmask|=1<<e;else c=a.images[0]=g(),v(c,a),x(c,b),a.mipmask=1;v(a,a.images[0])}function t(b,c){for(var d=b.images,h=0;h<d.length&&d[h];++h){var g=d[h],y=c,f=h,p=g.element,t=g.data,k=g.internalformat,z=g.format,B=g.type,ha=g.width,oa=g.height;u(g);p?a.texImage2D(y,f,z,z,B,p):g.compressed?a.compressedTexImage2D(y,f,k,ha,oa,0,t):g.needsCopy?(e(),a.copyTexImage2D(y,f,z,g.xOffset,g.yOffset,ha,oa,0)):a.texImage2D(y,
24809
- f,z,ha,oa,0,z,B,t||null)}}function ma(){var a=Y.pop()||new r;n.call(a);for(var b=a.mipmask=0;16>b;++b)a.images[b]=null;return a}function ya(a){for(var b=a.images,c=0;c<b.length;++c)b[c]&&h(b[c]),b[c]=null;Y.push(a)}function w(){this.magFilter=this.minFilter=9728;this.wrapT=this.wrapS=33071;this.anisotropic=1;this.genMipmaps=!1;this.mipmapHint=4352}function H(a,b){"min"in b&&(a.minFilter=Aa[b.min],0<=Pb.indexOf(a.minFilter)&&!("faces"in b)&&(a.genMipmaps=!0));"mag"in b&&(a.magFilter=S[b.mag]);var c=
24810
- a.wrapS,d=a.wrapT;if("wrap"in b){var e=b.wrap;"string"===typeof e?c=d=ia[e]:Array.isArray(e)&&(c=ia[e[0]],d=ia[e[1]])}else"wrapS"in b&&(c=ia[b.wrapS]),"wrapT"in b&&(d=ia[b.wrapT]);a.wrapS=c;a.wrapT=d;"anisotropic"in b&&(a.anisotropic=b.anisotropic);if("mipmap"in b){c=!1;switch(typeof b.mipmap){case "string":a.mipmapHint=A[b.mipmap];c=a.genMipmaps=!0;break;case "boolean":c=a.genMipmaps=b.mipmap;break;case "object":a.genMipmaps=!1,c=!0}!c||"min"in b||(a.minFilter=9984)}}function M(c,d){a.texParameteri(d,
24811
- 10241,c.minFilter);a.texParameteri(d,10240,c.magFilter);a.texParameteri(d,10242,c.wrapS);a.texParameteri(d,10243,c.wrapT);b.ext_texture_filter_anisotropic&&a.texParameteri(d,34046,c.anisotropic);c.genMipmaps&&(a.hint(33170,c.mipmapHint),a.generateMipmap(d))}function y(b){n.call(this);this.mipmask=0;this.internalformat=6408;this.id=Qb++;this.refCount=1;this.target=b;this.texture=a.createTexture();this.unit=-1;this.bindCount=0;this.texInfo=new w;q.profile&&(this.stats={size:0})}function T(b){a.activeTexture(33984);
24812
- a.bindTexture(b.target,b.texture)}function wa(){var b=W[0];b?a.bindTexture(b.target,b.texture):a.bindTexture(3553,null)}function F(b){var c=b.texture,e=b.unit,g=b.target;0<=e&&(a.activeTexture(33984+e),a.bindTexture(g,null),W[e]=null);a.deleteTexture(c);b.texture=null;b.params=null;b.pixels=null;b.refCount=0;delete ea[b.id];d.textureCount--}var A={"don't care":4352,"dont care":4352,nice:4354,fast:4353},ia={repeat:10497,clamp:33071,mirror:33648},S={nearest:9728,linear:9729},Aa=L({mipmap:9987,"nearest mipmap nearest":9984,
24813
- "linear mipmap nearest":9985,"nearest mipmap linear":9986,"linear mipmap linear":9987},S),Ob={none:0,browser:37444},N={uint8:5121,rgba4:32819,rgb565:33635,"rgb5 a1":32820},E={alpha:6406,luminance:6409,"luminance alpha":6410,rgb:6407,rgba:6408,rgba4:32854,"rgb5 a1":32855,rgb565:36194},ga={};b.ext_srgb&&(E.srgb=35904,E.srgba=35906);b.oes_texture_float&&(N.float32=N["float"]=5126);b.oes_texture_half_float&&(N.float16=N["half float"]=36193);b.webgl_depth_texture&&(L(E,{depth:6402,"depth stencil":34041}),
24814
- L(N,{uint16:5123,uint32:5125,"depth stencil":34042}));b.webgl_compressed_texture_s3tc&&L(ga,{"rgb s3tc dxt1":33776,"rgba s3tc dxt1":33777,"rgba s3tc dxt3":33778,"rgba s3tc dxt5":33779});b.webgl_compressed_texture_atc&&L(ga,{"rgb atc":35986,"rgba atc explicit alpha":35987,"rgba atc interpolated alpha":34798});b.webgl_compressed_texture_pvrtc&&L(ga,{"rgb pvrtc 4bppv1":35840,"rgb pvrtc 2bppv1":35841,"rgba pvrtc 4bppv1":35842,"rgba pvrtc 2bppv1":35843});b.webgl_compressed_texture_etc1&&(ga["rgb etc1"]=
24815
- 36196);var J=Array.prototype.slice.call(a.getParameter(34467));Object.keys(ga).forEach(function(a){var b=ga[a];0<=J.indexOf(b)&&(E[a]=b)});var C=Object.keys(E);c.textureFormats=C;var ca=[];Object.keys(E).forEach(function(a){ca[E[a]]=a});var K=[];Object.keys(N).forEach(function(a){K[N[a]]=a});var Fa=[];Object.keys(S).forEach(function(a){Fa[S[a]]=a});var pa=[];Object.keys(Aa).forEach(function(a){pa[Aa[a]]=a});var qa=[];Object.keys(ia).forEach(function(a){qa[ia[a]]=a});var V=C.reduce(function(a,c){var d=
24816
- E[c];6409===d||6406===d||6409===d||6410===d||6402===d||34041===d||b.ext_srgb&&(35904===d||35906===d)?a[d]=d:32855===d||0<=c.indexOf("rgba")?a[d]=6408:a[d]=6407;return a},{}),R=[],Y=[],Qb=0,ea={},fa=c.maxTextureUnits,W=Array(fa).map(function(){return null});L(y.prototype,{bind:function(){this.bindCount+=1;var b=this.unit;if(0>b){for(var c=0;c<fa;++c){var e=W[c];if(e){if(0<e.bindCount)continue;e.unit=-1}W[c]=this;b=c;break}q.profile&&d.maxTextureUnits<b+1&&(d.maxTextureUnits=b+1);this.unit=b;a.activeTexture(33984+
24817
- b);a.bindTexture(this.target,this.texture)}return b},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&F(this)}});q.profile&&(d.getTotalTextureSize=function(){var a=0;Object.keys(ea).forEach(function(b){a+=ea[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=f.texInfo;w.call(c);var d=ma();"number"===typeof a?"number"===typeof b?p(d,a|0,b|0):p(d,a|0,a|0):a?(H(c,a),P(d,a)):p(d,1,1);c.genMipmaps&&(d.mipmask=(d.width<<1)-1);f.mipmask=d.mipmask;v(f,
24818
- d);f.internalformat=d.internalformat;e.width=d.width;e.height=d.height;T(f);t(d,3553);M(c,3553);wa();ya(d);q.profile&&(f.stats.size=La(f.internalformat,f.type,d.width,d.height,c.genMipmaps,!1));e.format=ca[f.internalformat];e.type=K[f.type];e.mag=Fa[c.magFilter];e.min=pa[c.minFilter];e.wrapS=qa[c.wrapS];e.wrapT=qa[c.wrapT];return e}var f=new y(3553);ea[f.id]=f;d.textureCount++;e(b,c);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var y=g();v(y,f);y.width=0;y.height=0;x(y,a);y.width=y.width||(f.width>>
24819
- d)-b;y.height=y.height||(f.height>>d)-c;T(f);l(y,3553,b,c,d);wa();h(y);return e};e.resize=function(b,c){var d=b|0,g=c|0||d;if(d===f.width&&g===f.height)return e;e.width=f.width=d;e.height=f.height=g;T(f);for(var y=0;f.mipmask>>y;++y){var h=d>>y,z=g>>y;if(!h||!z)break;a.texImage2D(3553,y,f.format,h,z,0,f.format,f.type,null)}wa();q.profile&&(f.stats.size=La(f.internalformat,f.type,d,g,!1,!1));return e};e._reglType="texture2d";e._texture=f;q.profile&&(e.stats=f.stats);e.destroy=function(){f.decRef()};
24820
- return e},createCube:function(b,c,e,f,n,r){function m(a,b,c,d,e,f){var g,da=A.texInfo;w.call(da);for(g=0;6>g;++g)F[g]=ma();if("number"===typeof a||!a)for(a=a|0||1,g=0;6>g;++g)p(F[g],a,a);else if("object"===typeof a)if(b)P(F[0],a),P(F[1],b),P(F[2],c),P(F[3],d),P(F[4],e),P(F[5],f);else if(H(da,a),k(A,a),"faces"in a)for(a=a.faces,g=0;6>g;++g)v(F[g],A),P(F[g],a[g]);else for(g=0;6>g;++g)P(F[g],a);v(A,F[0]);A.mipmask=da.genMipmaps?(F[0].width<<1)-1:F[0].mipmask;A.internalformat=F[0].internalformat;m.width=
24821
- F[0].width;m.height=F[0].height;T(A);for(g=0;6>g;++g)t(F[g],34069+g);M(da,34067);wa();q.profile&&(A.stats.size=La(A.internalformat,A.type,m.width,m.height,da.genMipmaps,!0));m.format=ca[A.internalformat];m.type=K[A.type];m.mag=Fa[da.magFilter];m.min=pa[da.minFilter];m.wrapS=qa[da.wrapS];m.wrapT=qa[da.wrapT];for(g=0;6>g;++g)ya(F[g]);return m}var A=new y(34067);ea[A.id]=A;d.cubeCount++;var F=Array(6);m(b,c,e,f,n,r);m.subimage=function(a,b,c,d,e){c|=0;d|=0;e|=0;var f=g();v(f,A);f.width=0;f.height=0;
24822
- x(f,b);f.width=f.width||(A.width>>e)-c;f.height=f.height||(A.height>>e)-d;T(A);l(f,34069+a,c,d,e);wa();h(f);return m};m.resize=function(b){b|=0;if(b!==A.width){m.width=A.width=b;m.height=A.height=b;T(A);for(var c=0;6>c;++c)for(var d=0;A.mipmask>>d;++d)a.texImage2D(34069+c,d,A.format,b>>d,b>>d,0,A.format,A.type,null);wa();q.profile&&(A.stats.size=La(A.internalformat,A.type,m.width,m.height,!1,!0));return m}};m._reglType="textureCube";m._texture=A;q.profile&&(m.stats=A.stats);m.destroy=function(){A.decRef()};
24823
- return m},clear:function(){for(var b=0;b<fa;++b)a.activeTexture(33984+b),a.bindTexture(3553,null),W[b]=null;I(ea).forEach(F);d.cubeCount=0;d.textureCount=0},getTexture:function(a){return null},restore:function(){for(var b=0;b<fa;++b){var c=W[b];c&&(c.bindCount=0,c.unit=-1,W[b]=null)}I(ea).forEach(function(b){b.texture=a.createTexture();a.bindTexture(b.target,b.texture);for(var c=0;32>c;++c)if(0!==(b.mipmask&1<<c))if(3553===b.target)a.texImage2D(3553,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,
24824
- b.type,null);else for(var d=0;6>d;++d)a.texImage2D(34069+d,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);M(b.texInfo,b.target)})},refresh:function(){for(var b=0;b<fa;++b){var c=W[b];c&&(c.bindCount=0,c.unit=-1,W[b]=null);a.activeTexture(33984+b);a.bindTexture(3553,null);a.bindTexture(34067,null)}}}}function Rb(a,b,c,e,f,d){function q(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var d=a=0;b?(a=b.width,d=b.height):c&&(a=c.width,d=c.height);this.width=a;this.height=
24825
- d}function n(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function v(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function k(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160,b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function u(a){var b=3553,c=null,d=null,e=a;"object"===typeof a&&(e=a.data,"target"in a&&(b=a.target|
24826
- 0));a=e._reglType;"texture2d"===a?c=e:"textureCube"===a?c=e:"renderbuffer"===a&&(d=e,b=36161);return new q(b,c,d)}function m(a,b,c,d,g){if(c)return a=e.create2D({width:a,height:b,format:d,type:g}),a._texture.refCount=0,new q(3553,a,null);a=f.create({width:a,height:b,format:d});a._renderbuffer.refCount=0;return new q(36161,null,a)}function x(a){return a&&(a.texture||a.renderbuffer)}function l(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,c),a.width=b,a.height=c)}
24827
- function g(){this.id=H++;M[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function h(a){a.colorAttachments.forEach(n);n(a.depthAttachment);n(a.stencilAttachment);n(a.depthStencilAttachment)}function r(b){a.deleteFramebuffer(b.framebuffer);b.framebuffer=null;d.framebufferCount--;delete M[b.id]}function p(b){var d;a.bindFramebuffer(36160,b.framebuffer);var e=b.colorAttachments;
24828
- for(d=0;d<e.length;++d)k(36064+d,e[d]);for(d=e.length;d<c.maxColorAttachments;++d)a.framebufferTexture2D(36160,36064+d,3553,null,0);a.framebufferTexture2D(36160,33306,3553,null,0);a.framebufferTexture2D(36160,36096,3553,null,0);a.framebufferTexture2D(36160,36128,3553,null,0);k(36096,b.depthAttachment);k(36128,b.stencilAttachment);k(33306,b.depthStencilAttachment);a.checkFramebufferStatus(36160);a.isContextLost();a.bindFramebuffer(36160,t.next?t.next.framebuffer:null);t.cur=t.next;a.getError()}function P(a,
24829
- b){function c(a,b){var d,g=0,f=0,t=!0,k=!0;d=null;var l=!0,n="rgba",r="uint8",y=1,q=null,P=null,pa=null,M=!1;if("number"===typeof a)g=a|0,f=b|0||g;else if(a){"shape"in a?(f=a.shape,g=f[0],f=f[1]):("radius"in a&&(g=f=a.radius),"width"in a&&(g=a.width),"height"in a&&(f=a.height));if("color"in a||"colors"in a)d=a.color||a.colors,Array.isArray(d);if(!d){"colorCount"in a&&(y=a.colorCount|0);"colorTexture"in a&&(l=!!a.colorTexture,n="rgba4");if("colorType"in a&&(r=a.colorType,!l))if("half float"===r||"float16"===
24830
- r)n="rgba16f";else if("float"===r||"float32"===r)n="rgba32f";"colorFormat"in a&&(n=a.colorFormat,0<=ma.indexOf(n)?l=!0:0<=ya.indexOf(n)&&(l=!1))}if("depthTexture"in a||"depthStencilTexture"in a)M=!(!a.depthTexture&&!a.depthStencilTexture);"depth"in a&&("boolean"===typeof a.depth?t=a.depth:(q=a.depth,k=!1));"stencil"in a&&("boolean"===typeof a.stencil?k=a.stencil:(P=a.stencil,t=!1));"depthStencil"in a&&("boolean"===typeof a.depthStencil?t=k=a.depthStencil:(pa=a.depthStencil,k=t=!1))}else g=f=1;var V=
24831
- null,H=null,T=null,w=null;if(Array.isArray(d))V=d.map(u);else if(d)V=[u(d)];else for(V=Array(y),d=0;d<y;++d)V[d]=m(g,f,l,n,r);g=g||V[0].width;f=f||V[0].height;q?H=u(q):t&&!k&&(H=m(g,f,M,"depth","uint32"));P?T=u(P):k&&!t&&(T=m(g,f,!1,"stencil","uint8"));pa?w=u(pa):!q&&!P&&k&&t&&(w=m(g,f,M,"depth stencil","depth stencil"));t=null;for(d=0;d<V.length;++d)v(V[d],g,f),V[d]&&V[d].texture&&(k=Za[V[d].texture._texture.format]*Ra[V[d].texture._texture.type],null===t&&(t=k));v(H,g,f);v(T,g,f);v(w,g,f);h(e);
24832
- e.width=g;e.height=f;e.colorAttachments=V;e.depthAttachment=H;e.stencilAttachment=T;e.depthStencilAttachment=w;c.color=V.map(x);c.depth=x(H);c.stencil=x(T);c.depthStencil=x(w);c.width=e.width;c.height=e.height;p(e);return c}var e=new g;d.framebufferCount++;c(a,b);return L(c,{resize:function(a,b){var d=Math.max(a|0,1),g=Math.max(b|0||d,1);if(d===e.width&&g===e.height)return c;for(var f=e.colorAttachments,h=0;h<f.length;++h)l(f[h],d,g);l(e.depthAttachment,d,g);l(e.stencilAttachment,d,g);l(e.depthStencilAttachment,
24833
- d,g);e.width=c.width=d;e.height=c.height=g;p(e);return c},_reglType:"framebuffer",_framebuffer:e,destroy:function(){r(e);h(e)},use:function(a){t.setFBO({framebuffer:c},a)}})}var t={cur:null,next:null,dirty:!1,setFBO:null},ma=["rgba"],ya=["rgba4","rgb565","rgb5 a1"];b.ext_srgb&&ya.push("srgba");b.ext_color_buffer_half_float&&ya.push("rgba16f","rgb16f");b.webgl_color_buffer_float&&ya.push("rgba32f");var w=["uint8"];b.oes_texture_half_float&&w.push("half float","float16");b.oes_texture_float&&w.push("float",
24834
- "float32");var H=0,M={};return L(t,{getFramebuffer:function(a){return"function"===typeof a&&"framebuffer"===a._reglType&&(a=a._framebuffer,a instanceof g)?a:null},create:P,createCube:function(a){function b(a){var d,g={color:null},f=0,h=null;d="rgba";var t="uint8",p=1;if("number"===typeof a)f=a|0;else if(a){"shape"in a?f=a.shape[0]:("radius"in a&&(f=a.radius|0),"width"in a?f=a.width|0:"height"in a&&(f=a.height|0));if("color"in a||"colors"in a)h=a.color||a.colors,Array.isArray(h);h||("colorCount"in
24835
- a&&(p=a.colorCount|0),"colorType"in a&&(t=a.colorType),"colorFormat"in a&&(d=a.colorFormat));"depth"in a&&(g.depth=a.depth);"stencil"in a&&(g.stencil=a.stencil);"depthStencil"in a&&(g.depthStencil=a.depthStencil)}else f=1;if(h)if(Array.isArray(h))for(a=[],d=0;d<h.length;++d)a[d]=h[d];else a=[h];else for(a=Array(p),h={radius:f,format:d,type:t},d=0;d<p;++d)a[d]=e.createCube(h);g.color=Array(a.length);for(d=0;d<a.length;++d)p=a[d],f=f||p.width,g.color[d]={target:34069,data:a[d]};for(d=0;6>d;++d){for(p=
24836
- 0;p<a.length;++p)g.color[p].target=34069+d;0<d&&(g.depth=c[0].depth,g.stencil=c[0].stencil,g.depthStencil=c[0].depthStencil);if(c[d])c[d](g);else c[d]=P(g)}return L(b,{width:f,height:f,color:a})}var c=Array(6);b(a);return L(b,{faces:c,resize:function(a){var d=a|0;if(d===b.width)return b;var e=b.color;for(a=0;a<e.length;++a)e[a].resize(d);for(a=0;6>a;++a)c[a].resize(d);b.width=b.height=d;return b},_reglType:"framebufferCube",destroy:function(){c.forEach(function(a){a.destroy()})}})},clear:function(){I(M).forEach(r)},
24837
- restore:function(){t.cur=null;t.next=null;t.dirty=!0;I(M).forEach(function(b){b.framebuffer=a.createFramebuffer();p(b)})}})}function $a(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}function Sb(a,b,c,e,f,d,q){function n(a){if(a!==r.currentVAO){var c=b.oes_vertex_array_object;a?c.bindVertexArrayOES(a.vao):c.bindVertexArrayOES(null);r.currentVAO=a}}function v(c){if(c!==r.currentVAO){if(c)c.bindAttrs();
24838
- else{for(var d=b.angle_instanced_arrays,e=0;e<l.length;++e){var g=l[e];g.buffer?(a.enableVertexAttribArray(e),g.buffer.bind(),a.vertexAttribPointer(e,g.size,g.type,g.normalized,g.stride,g.offfset),d&&g.divisor&&d.vertexAttribDivisorANGLE(e,g.divisor)):(a.disableVertexAttribArray(e),a.vertexAttrib4f(e,g.x,g.y,g.z,g.w))}q.elements?a.bindBuffer(34963,q.elements.buffer.buffer):a.bindBuffer(34963,null)}r.currentVAO=c}}function k(){I(h).forEach(function(a){a.destroy()})}function u(){this.id=++g;this.attributes=
24839
- [];this.elements=null;this.ownsElements=!1;this.offset=this.count=0;this.instances=-1;this.primitive=4;var a=b.oes_vertex_array_object;this.vao=a?a.createVertexArrayOES():null;h[this.id]=this;this.buffers=[]}function m(){b.oes_vertex_array_object&&I(h).forEach(function(a){a.refresh()})}var x=c.maxAttributes,l=Array(x);for(c=0;c<x;++c)l[c]=new $a;var g=0,h={},r={Record:$a,scope:{},state:l,currentVAO:null,targetVAO:null,restore:b.oes_vertex_array_object?m:function(){},createVAO:function(a){function b(a){var e;
24840
- Array.isArray(a)?(e=a,c.elements&&c.ownsElements&&c.elements.destroy(),c.elements=null,c.ownsElements=!1,c.offset=0,c.count=0,c.instances=-1,c.primitive=4):(a.elements?(e=a.elements,c.ownsElements?("function"===typeof e&&"elements"===e._reglType?c.elements.destroy():c.elements(e),c.ownsElements=!1):d.getElements(a.elements)?(c.elements=a.elements,c.ownsElements=!1):(c.elements=d.create(a.elements),c.ownsElements=!0)):(c.elements=null,c.ownsElements=!1),e=a.attributes,c.offset=0,c.count=-1,c.instances=
24841
- -1,c.primitive=4,c.elements&&(c.count=c.elements._elements.vertCount,c.primitive=c.elements._elements.primType),"offset"in a&&(c.offset=a.offset|0),"count"in a&&(c.count=a.count|0),"instances"in a&&(c.instances=a.instances|0),"primitive"in a&&(c.primitive=Ka[a.primitive]));a={};var g=c.attributes;g.length=e.length;for(var h=0;h<e.length;++h){var p=e[h],k=g[h]=new $a,m=p.data||p;if(Array.isArray(m)||O(m)||la(m)){var l;c.buffers[h]&&(l=c.buffers[h],O(m)&&l._buffer.byteLength>=m.byteLength?l.subdata(m):
24842
- (l.destroy(),c.buffers[h]=null));c.buffers[h]||(l=c.buffers[h]=f.create(p,34962,!1,!0));k.buffer=f.getBuffer(l);k.size=k.buffer.dimension|0;k.normalized=!1;k.type=k.buffer.dtype;k.offset=0;k.stride=0;k.divisor=0;k.state=1;a[h]=1}else f.getBuffer(p)?(k.buffer=f.getBuffer(p),k.size=k.buffer.dimension|0,k.normalized=!1,k.type=k.buffer.dtype,k.offset=0,k.stride=0,k.divisor=0,k.state=1):f.getBuffer(p.buffer)?(k.buffer=f.getBuffer(p.buffer),k.size=(+p.size||k.buffer.dimension)|0,k.normalized=!!p.normalized||
24843
- !1,k.type="type"in p?Ja[p.type]:k.buffer.dtype,k.offset=(p.offset||0)|0,k.stride=(p.stride||0)|0,k.divisor=(p.divisor||0)|0,k.state=1):"x"in p&&(k.x=+p.x||0,k.y=+p.y||0,k.z=+p.z||0,k.w=+p.w||0,k.state=2)}for(l=0;l<c.buffers.length;++l)!a[l]&&c.buffers[l]&&(c.buffers[l].destroy(),c.buffers[l]=null);c.refresh();return b}var c=new u;e.vaoCount+=1;b.destroy=function(){for(var a=0;a<c.buffers.length;++a)c.buffers[a]&&c.buffers[a].destroy();c.buffers.length=0;c.ownsElements&&(c.elements.destroy(),c.elements=
24844
- null,c.ownsElements=!1);c.destroy()};b._vao=c;b._reglType="vao";return b(a)},getVAO:function(a){return"function"===typeof a&&a._vao?a._vao:null},destroyBuffer:function(b){for(var c=0;c<l.length;++c){var d=l[c];d.buffer===b&&(a.disableVertexAttribArray(c),d.buffer=null)}},setVAO:b.oes_vertex_array_object?n:v,clear:b.oes_vertex_array_object?k:function(){}};u.prototype.bindAttrs=function(){for(var c=b.angle_instanced_arrays,e=this.attributes,g=0;g<e.length;++g){var f=e[g];f.buffer?(a.enableVertexAttribArray(g),
24845
- a.bindBuffer(34962,f.buffer.buffer),a.vertexAttribPointer(g,f.size,f.type,f.normalized,f.stride,f.offset),c&&f.divisor&&c.vertexAttribDivisorANGLE(g,f.divisor)):(a.disableVertexAttribArray(g),a.vertexAttrib4f(g,f.x,f.y,f.z,f.w))}for(c=e.length;c<x;++c)a.disableVertexAttribArray(c);(c=d.getElements(this.elements))?a.bindBuffer(34963,c.buffer.buffer):a.bindBuffer(34963,null)};u.prototype.refresh=function(){var a=b.oes_vertex_array_object;a&&(a.bindVertexArrayOES(this.vao),this.bindAttrs(),r.currentVAO=
24846
- null,a.bindVertexArrayOES(null))};u.prototype.destroy=function(){if(this.vao){var a=b.oes_vertex_array_object;this===r.currentVAO&&(r.currentVAO=null,a.bindVertexArrayOES(null));a.deleteVertexArrayOES(this.vao);this.vao=null}this.ownsElements&&(this.elements.destroy(),this.elements=null,this.ownsElements=!1);h[this.id]&&(delete h[this.id],--e.vaoCount)};return r}function Tb(a,b,c,e){function f(a,b,c,d){this.name=a;this.id=b;this.location=c;this.info=d}function d(a,b){for(var c=0;c<a.length;++c)if(a[c].id===
24847
- b.id){a[c].location=b.location;return}a.push(b)}function q(c,d,e){e=35632===c?k:u;var f=e[d];if(!f){var m=b.str(d),f=a.createShader(c);a.shaderSource(f,m);a.compileShader(f);e[d]=f}return f}function n(a,b){this.id=l++;this.fragId=a;this.vertId=b;this.program=null;this.uniforms=[];this.attributes=[];this.refCount=1;e.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function v(c,h,k){var m;m=q(35632,c.fragId);var l=q(35633,c.vertId);h=c.program=a.createProgram();a.attachShader(h,m);a.attachShader(h,
24848
- l);if(k)for(m=0;m<k.length;++m)l=k[m],a.bindAttribLocation(h,l[0],l[1]);a.linkProgram(h);l=a.getProgramParameter(h,35718);e.profile&&(c.stats.uniformsCount=l);var n=c.uniforms;for(m=0;m<l;++m)if(k=a.getActiveUniform(h,m)){if(1<k.size)for(var v=0;v<k.size;++v){var u=k.name.replace("[0]","["+v+"]");d(n,new f(u,b.id(u),a.getUniformLocation(h,u),k))}v=k.name;1<k.size&&(v=v.replace("[0]",""));d(n,new f(v,b.id(v),a.getUniformLocation(h,v),k))}l=a.getProgramParameter(h,35721);e.profile&&(c.stats.attributesCount=
24849
- l);c=c.attributes;for(m=0;m<l;++m)(k=a.getActiveAttrib(h,m))&&d(c,new f(k.name,b.id(k.name),a.getAttribLocation(h,k.name),k))}var k={},u={},m={},x=[],l=0;e.profile&&(c.getMaxUniformsCount=function(){var a=0;x.forEach(function(b){b.stats.uniformsCount>a&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;x.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var b=a.deleteShader.bind(a);I(k).forEach(b);k={};I(u).forEach(b);
24850
- u={};x.forEach(function(b){a.deleteProgram(b.program)});x.length=0;m={};c.shaderCount=0},program:function(b,d,e,f){var l=m[d];l||(l=m[d]={});var q=l[b];if(q&&(q.refCount++,!f))return q;var w=new n(d,b);c.shaderCount++;v(w,e,f);q||(l[b]=w);x.push(w);return L(w,{destroy:function(){w.refCount--;if(0>=w.refCount){a.deleteProgram(w.program);var b=x.indexOf(w);x.splice(b,1);c.shaderCount--}0>=l[w.vertId].refCount&&(a.deleteShader(u[w.vertId]),delete u[w.vertId],delete m[w.fragId][w.vertId]);Object.keys(m[w.fragId]).length||
24851
- (a.deleteShader(k[w.fragId]),delete k[w.fragId],delete m[w.fragId])}})},restore:function(){k={};u={};for(var a=0;a<x.length;++a)v(x[a],null,x[a].attributes.map(function(a){return[a.location,a.name]}))},shader:q,frag:-1,vert:-1}}function Ub(a,b,c,e,f,d,q){function n(d){var f;f=null===b.next?5121:b.next.colorAttachments[0].texture._texture.type;var m=0,n=0,l=e.framebufferWidth,g=e.framebufferHeight,h=null;O(d)?h=d:d&&(m=d.x|0,n=d.y|0,l=(d.width||e.framebufferWidth-m)|0,g=(d.height||e.framebufferHeight-
24852
- n)|0,h=d.data||null);c();d=l*g*4;h||(5121===f?h=new Uint8Array(d):5126===f&&(h=h||new Float32Array(d)));a.pixelStorei(3333,4);a.readPixels(m,n,l,g,6408,f,h);return h}function v(a){var c;b.setFBO({framebuffer:a.framebuffer},function(){c=n(a)});return c}return function(a){return a&&"framebuffer"in a?v(a):n(a)}}function Ba(a){return Array.prototype.slice.call(a)}function Ca(a){return Ba(a).join("")}function Vb(){function a(){var a=[],b=[];return L(function(){a.push.apply(a,Ba(arguments))},{def:function(){var d=
24853
- "v"+c++;b.push(d);0<arguments.length&&(a.push(d,"="),a.push.apply(a,Ba(arguments)),a.push(";"));return d},toString:function(){return Ca([0<b.length?"var "+b.join(",")+";":"",Ca(a)])}})}function b(){function b(a,e){d(a,e,"=",c.def(a,e),";")}var c=a(),d=a(),e=c.toString,f=d.toString;return L(function(){c.apply(c,Ba(arguments))},{def:c.def,entry:c,exit:d,save:b,set:function(a,d,e){b(a,d);c(a,d,"=",e,";")},toString:function(){return e()+f()}})}var c=0,e=[],f=[],d=a(),q={};return{global:d,link:function(a){for(var b=
24854
- 0;b<f.length;++b)if(f[b]===a)return e[b];b="g"+c++;e.push(b);f.push(a);return b},block:a,proc:function(a,c){function d(){var a="a"+e.length;e.push(a);return a}var e=[];c=c||0;for(var f=0;f<c;++f)d();var f=b(),x=f.toString;return q[a]=L(f,{arg:d,toString:function(){return Ca(["function(",e.join(),"){",x(),"}"])}})},scope:b,cond:function(){var a=Ca(arguments),c=b(),d=b(),e=c.toString,f=d.toString;return L(c,{then:function(){c.apply(c,Ba(arguments));return this},"else":function(){d.apply(d,Ba(arguments));
24855
- return this},toString:function(){var b=f();b&&(b="else{"+b+"}");return Ca(["if(",a,"){",e(),"}",b])}})},compile:function(){var a=['"use strict";',d,"return {"];Object.keys(q).forEach(function(b){a.push('"',b,'":',q[b].toString(),",")});a.push("}");var b=Ca(a).replace(/;/g,";\n").replace(/}/g,"}\n").replace(/{/g,"{\n");return Function.apply(null,e.concat(b)).apply(null,f)}}}function Sa(a){return Array.isArray(a)||O(a)||la(a)}function yb(a){return a.sort(function(a,c){return"viewport"===a?-1:"viewport"===
24856
- c?1:a<c?-1:1})}function J(a,b,c,e){this.thisDep=a;this.contextDep=b;this.propDep=c;this.append=e}function xa(a){return a&&!(a.thisDep||a.contextDep||a.propDep)}function w(a){return new J(!1,!1,!1,a)}function K(a,b){var c=a.type;if(0===c)return c=a.data.length,new J(!0,1<=c,2<=c,b);if(4===c)return c=a.data,new J(c.thisDep,c.contextDep,c.propDep,b);if(5===c)return new J(!1,!1,!1,b);if(6===c){for(var e=c=!1,f=!1,d=0;d<a.data.length;++d){var q=a.data[d];1===q.type?f=!0:2===q.type?e=!0:3===q.type?c=!0:
24857
- 0===q.type?(c=!0,q=q.data,1<=q&&(e=!0),2<=q&&(f=!0)):4===q.type&&(c=c||q.data.thisDep,e=e||q.data.contextDep,f=f||q.data.propDep)}return new J(c,e,f,b)}return new J(3===c,2===c,1===c,b)}function Wb(a,b,c,e,f,d,q,n,v,k,u,m,x,l,g){function h(a){return a.replace(".","_")}function r(a,b,c){var d=h(a);Na.push(a);Ea[d]=ta[d]=!!c;ua[d]=b}function p(a,b,c){var d=h(a);Na.push(a);Array.isArray(c)?(ta[d]=c.slice(),Ea[d]=c.slice()):ta[d]=Ea[d]=c;va[d]=b}function P(){var a=Vb(),c=a.link,d=a.global;a.id=sa++;a.batchId=
24858
- "0";var e=c(tb),f=a.shared={props:"a0"};Object.keys(tb).forEach(function(a){f[a]=d.def(e,".",a)});var g=a.next={},da=a.current={};Object.keys(va).forEach(function(a){Array.isArray(ta[a])&&(g[a]=d.def(f.next,".",a),da[a]=d.def(f.current,".",a))});var D=a.constants={};Object.keys(Pa).forEach(function(a){D[a]=d.def(JSON.stringify(Pa[a]))});a.invoke=function(b,d){switch(d.type){case 0:var e=["this",f.context,f.props,a.batchId];return b.def(c(d.data),".call(",e.slice(0,Math.max(d.data.length+1,4)),")");
24859
- case 1:return b.def(f.props,d.data);case 2:return b.def(f.context,d.data);case 3:return b.def("this",d.data);case 4:return d.data.append(a,b),d.data.ref;case 5:return d.data.toString();case 6:return d.data.map(function(c){return a.invoke(b,c)})}};a.attribCache={};var ba={};a.scopeAttrib=function(a){a=b.id(a);if(a in ba)return ba[a];var d=k.scope[a];d||(d=k.scope[a]=new ea);return ba[a]=c(d)};return a}function t(a){var b=a["static"];a=a.dynamic;var c;if("profile"in b){var d=!!b.profile;c=w(function(a,
24860
- b){return d});c.enable=d}else if("profile"in a){var e=a.profile;c=K(e,function(a,b){return a.invoke(b,e)})}return c}function G(a,b){var c=a["static"],d=a.dynamic;if("framebuffer"in c){var e=c.framebuffer;return e?(e=n.getFramebuffer(e),w(function(a,b){var c=a.link(e),d=a.shared;b.set(d.framebuffer,".next",c);d=d.context;b.set(d,".framebufferWidth",c+".width");b.set(d,".framebufferHeight",c+".height");return c})):w(function(a,b){var c=a.shared;b.set(c.framebuffer,".next","null");c=c.context;b.set(c,
24861
- ".framebufferWidth",c+".drawingBufferWidth");b.set(c,".framebufferHeight",c+".drawingBufferHeight");return"null"})}if("framebuffer"in d){var f=d.framebuffer;return K(f,function(a,b){var c=a.invoke(b,f),d=a.shared,e=d.framebuffer,c=b.def(e,".getFramebuffer(",c,")");b.set(e,".next",c);d=d.context;b.set(d,".framebufferWidth",c+"?"+c+".width:"+d+".drawingBufferWidth");b.set(d,".framebufferHeight",c+"?"+c+".height:"+d+".drawingBufferHeight");return c})}return null}function C(a,b,c){function d(a){if(a in
24862
- e){var c=e[a];a=!0;var z=c.x|0,g=c.y|0,h,da;"width"in c?h=c.width|0:a=!1;"height"in c?da=c.height|0:a=!1;return new J(!a&&b&&b.thisDep,!a&&b&&b.contextDep,!a&&b&&b.propDep,function(a,b){var d=a.shared.context,e=h;"width"in c||(e=b.def(d,".","framebufferWidth","-",z));var f=da;"height"in c||(f=b.def(d,".","framebufferHeight","-",g));return[z,g,e,f]})}if(a in f){var ha=f[a];a=K(ha,function(a,b){var c=a.invoke(b,ha),d=a.shared.context,e=b.def(c,".x|0"),f=b.def(c,".y|0"),z=b.def('"width" in ',c,"?",c,
24863
- ".width|0:","(",d,".","framebufferWidth","-",e,")"),c=b.def('"height" in ',c,"?",c,".height|0:","(",d,".","framebufferHeight","-",f,")");return[e,f,z,c]});b&&(a.thisDep=a.thisDep||b.thisDep,a.contextDep=a.contextDep||b.contextDep,a.propDep=a.propDep||b.propDep);return a}return b?new J(b.thisDep,b.contextDep,b.propDep,function(a,b){var c=a.shared.context;return[0,0,b.def(c,".","framebufferWidth"),b.def(c,".","framebufferHeight")]}):null}var e=a["static"],f=a.dynamic;if(a=d("viewport")){var g=a;a=new J(a.thisDep,
24864
- a.contextDep,a.propDep,function(a,b){var c=g.append(a,b),d=a.shared.context;b.set(d,".viewportWidth",c[2]);b.set(d,".viewportHeight",c[3]);return c})}return{viewport:a,scissor_box:d("scissor.box")}}function O(a,b){var c=a["static"];if("string"===typeof c.frag&&"string"===typeof c.vert){if(0<Object.keys(b.dynamic).length)return null;var c=b["static"],d=Object.keys(c);if(0<d.length&&"number"===typeof c[d[0]]){for(var e=[],f=0;f<d.length;++f)e.push([c[d[f]]|0,d[f]]);return e}}return null}function H(a,
24865
- c,d){function e(a){if(a in f){var c=b.id(f[a]);a=w(function(){return c});a.id=c;return a}if(a in g){var d=g[a];return K(d,function(a,b){var c=a.invoke(b,d);return b.def(a.shared.strings,".id(",c,")")})}return null}var f=a["static"],g=a.dynamic,h=e("frag"),D=e("vert"),ba=null;xa(h)&&xa(D)?(ba=u.program(D.id,h.id,null,d),a=w(function(a,b){return a.link(ba)})):a=new J(h&&h.thisDep||D&&D.thisDep,h&&h.contextDep||D&&D.contextDep,h&&h.propDep||D&&D.propDep,function(a,b){var c=a.shared.shader,d;d=h?h.append(a,
24866
- b):b.def(c,".","frag");var e;e=D?D.append(a,b):b.def(c,".","vert");return b.def(c+".program("+e+","+d+")")});return{frag:h,vert:D,progVar:a,program:ba}}function M(a,b){function c(a,b){if(a in e){var d=e[a]|0;b?g.offset=d:g.instances=d;return w(function(a,c){b&&(a.OFFSET=d);return d})}if(a in f){var z=f[a];return K(z,function(a,c){var d=a.invoke(c,z);b&&(a.OFFSET=d);return d})}if(b){if(ba)return w(function(a,b){return a.OFFSET=0});if(h)return new J(D.thisDep,D.contextDep,D.propDep,function(a,b){return b.def(a.shared.vao+
24867
- ".currentVAO?"+a.shared.vao+".currentVAO.offset:0")})}else if(h)return new J(D.thisDep,D.contextDep,D.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.vao+".currentVAO.instances:-1")});return null}var e=a["static"],f=a.dynamic,g={},h=!1,D=function(){if("vao"in e){var a=e.vao;null!==a&&null===k.getVAO(a)&&(a=k.createVAO(a));h=!0;g.vao=a;return w(function(b){var c=k.getVAO(a);return c?b.link(c):"null"})}if("vao"in f){h=!0;var b=f.vao;return K(b,function(a,c){var d=a.invoke(c,
24868
- b);return c.def(a.shared.vao+".getVAO("+d+")")})}return null}(),ba=!1,X=function(){if("elements"in e){var a=e.elements;g.elements=a;if(Sa(a)){var b=g.elements=d.create(a,!0),a=d.getElements(b);ba=!0}else a&&(a=d.getElements(a),ba=!0);b=w(function(b,c){if(a){var d=b.link(a);return b.ELEMENTS=d}return b.ELEMENTS=null});b.value=a;return b}if("elements"in f){ba=!0;var c=f.elements;return K(c,function(a,b){var d=a.shared,e=d.isBufferArgs,d=d.elements,f=a.invoke(b,c),z=b.def("null"),e=b.def(e,"(",f,")"),
24869
- f=a.cond(e).then(z,"=",d,".createStream(",f,");")["else"](z,"=",d,".getElements(",f,");");b.entry(f);b.exit(a.cond(e).then(d,".destroyStream(",z,");"));return a.ELEMENTS=z})}return h?new J(D.thisDep,D.contextDep,D.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.elements+".getElements("+a.shared.vao+".currentVAO.elements):null")}):null}(),ja=c("offset",!0),m=function(){if("primitive"in e){var a=e.primitive;g.primitive=a;return w(function(b,c){return Ka[a]})}if("primitive"in
24870
- f){var b=f.primitive;return K(b,function(a,c){var d=a.constants.primTypes,e=a.invoke(c,b);return c.def(d,"[",e,"]")})}return ba?xa(X)?X.value?w(function(a,b){return b.def(a.ELEMENTS,".primType")}):w(function(){return 4}):new J(X.thisDep,X.contextDep,X.propDep,function(a,b){var c=a.ELEMENTS;return b.def(c,"?",c,".primType:",4)}):h?new J(D.thisDep,D.contextDep,D.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.vao+".currentVAO.primitive:4")}):null}(),l=function(){if("count"in
24871
- e){var a=e.count|0;g.count=a;return w(function(){return a})}if("count"in f){var b=f.count;return K(b,function(a,c){return a.invoke(c,b)})}return ba?xa(X)?X?ja?new J(ja.thisDep,ja.contextDep,ja.propDep,function(a,b){return b.def(a.ELEMENTS,".vertCount-",a.OFFSET)}):w(function(a,b){return b.def(a.ELEMENTS,".vertCount")}):w(function(){return-1}):new J(X.thisDep||ja.thisDep,X.contextDep||ja.contextDep,X.propDep||ja.propDep,function(a,b){var c=a.ELEMENTS;return a.OFFSET?b.def(c,"?",c,".vertCount-",a.OFFSET,
24872
- ":-1"):b.def(c,"?",c,".vertCount:-1")}):h?new J(D.thisDep,D.contextDep,D.propDep,function(a,b){return b.def(a.shared.vao,".currentVAO?",a.shared.vao,".currentVAO.count:-1")}):null}(),p=c("instances",!1);return{elements:X,primitive:m,count:l,instances:p,offset:ja,vao:D,vaoActive:h,elementsActive:ba,"static":g}}function y(a,b){var c=a["static"],d=a.dynamic,e={};Na.forEach(function(a){function b(z,g){if(a in c){var B=z(c[a]);e[f]=w(function(){return B})}else if(a in d){var h=d[a];e[f]=K(h,function(a,
24873
- b){return g(a,b,a.invoke(b,h))})}}var f=h(a);switch(a){case "cull.enable":case "blend.enable":case "dither":case "stencil.enable":case "depth.enable":case "scissor.enable":case "polygonOffset.enable":case "sample.alpha":case "sample.enable":case "depth.mask":return b(function(a){return a},function(a,b,c){return c});case "depth.func":return b(function(a){return ab[a]},function(a,b,c){return b.def(a.constants.compareFuncs,"[",c,"]")});case "depth.range":return b(function(a){return a},function(a,b,c){a=
24874
- b.def("+",c,"[0]");b=b.def("+",c,"[1]");return[a,b]});case "blend.func":return b(function(a){return[Ga["srcRGB"in a?a.srcRGB:a.src],Ga["dstRGB"in a?a.dstRGB:a.dst],Ga["srcAlpha"in a?a.srcAlpha:a.src],Ga["dstAlpha"in a?a.dstAlpha:a.dst]]},function(a,b,c){function d(a,e){return b.def('"',a,e,'" in ',c,"?",c,".",a,e,":",c,".",a)}a=a.constants.blendFuncs;var e=d("src","RGB"),f=d("dst","RGB"),e=b.def(a,"[",e,"]"),z=b.def(a,"[",d("src","Alpha"),"]"),f=b.def(a,"[",f,"]");a=b.def(a,"[",d("dst","Alpha"),"]");
24875
- return[e,f,z,a]});case "blend.equation":return b(function(a){if("string"===typeof a)return[fa[a],fa[a]];if("object"===typeof a)return[fa[a.rgb],fa[a.alpha]]},function(a,b,c){var d=a.constants.blendEquations,e=b.def(),f=b.def();a=a.cond("typeof ",c,'==="string"');a.then(e,"=",f,"=",d,"[",c,"];");a["else"](e,"=",d,"[",c,".rgb];",f,"=",d,"[",c,".alpha];");b(a);return[e,f]});case "blend.color":return b(function(a){return R(4,function(b){return+a[b]})},function(a,b,c){return R(4,function(a){return b.def("+",
24876
- c,"[",a,"]")})});case "stencil.mask":return b(function(a){return a|0},function(a,b,c){return b.def(c,"|0")});case "stencil.func":return b(function(a){return[ab[a.cmp||"keep"],a.ref||0,"mask"in a?a.mask:-1]},function(a,b,c){a=b.def('"cmp" in ',c,"?",a.constants.compareFuncs,"[",c,".cmp]",":",7680);var d=b.def(c,".ref|0");b=b.def('"mask" in ',c,"?",c,".mask|0:-1");return[a,d,b]});case "stencil.opFront":case "stencil.opBack":return b(function(b){return["stencil.opBack"===a?1029:1028,Ta[b.fail||"keep"],
24877
- Ta[b.zfail||"keep"],Ta[b.zpass||"keep"]]},function(b,c,d){function e(a){return c.def('"',a,'" in ',d,"?",f,"[",d,".",a,"]:",7680)}var f=b.constants.stencilOps;return["stencil.opBack"===a?1029:1028,e("fail"),e("zfail"),e("zpass")]});case "polygonOffset.offset":return b(function(a){return[a.factor|0,a.units|0]},function(a,b,c){a=b.def(c,".factor|0");b=b.def(c,".units|0");return[a,b]});case "cull.face":return b(function(a){var b=0;"front"===a?b=1028:"back"===a&&(b=1029);return b},function(a,b,c){return b.def(c,
24878
- '==="front"?',1028,":",1029)});case "lineWidth":return b(function(a){return a},function(a,b,c){return c});case "frontFace":return b(function(a){return zb[a]},function(a,b,c){return b.def(c+'==="cw"?2304:2305')});case "colorMask":return b(function(a){return a.map(function(a){return!!a})},function(a,b,c){return R(4,function(a){return"!!"+c+"["+a+"]"})});case "sample.coverage":return b(function(a){return["value"in a?a.value:1,!!a.invert]},function(a,b,c){a=b.def('"value" in ',c,"?+",c,".value:1");b=
24879
- b.def("!!",c,".invert");return[a,b]})}});return e}function T(a,b){var c=a["static"],d=a.dynamic,e={};Object.keys(c).forEach(function(a){var b=c[a],d;if("number"===typeof b||"boolean"===typeof b)d=w(function(){return b});else if("function"===typeof b){var f=b._reglType;if("texture2d"===f||"textureCube"===f)d=w(function(a){return a.link(b)});else if("framebuffer"===f||"framebufferCube"===f)d=w(function(a){return a.link(b.color[0])})}else ra(b)&&(d=w(function(a){return a.global.def("[",R(b.length,function(a){return b[a]}),
24880
- "]")}));d.value=b;e[a]=d});Object.keys(d).forEach(function(a){var b=d[a];e[a]=K(b,function(a,c){return a.invoke(c,b)})});return e}function wa(a,c){var d=a["static"],e=a.dynamic,g={};Object.keys(d).forEach(function(a){var c=d[a],e=b.id(a),z=new ea;if(Sa(c))z.state=1,z.buffer=f.getBuffer(f.create(c,34962,!1,!0)),z.type=0;else{var B=f.getBuffer(c);if(B)z.state=1,z.buffer=B,z.type=0;else if("constant"in c){var h=c.constant;z.buffer="null";z.state=2;"number"===typeof h?z.x=h:Da.forEach(function(a,b){b<
24881
- h.length&&(z[a]=h[b])})}else{var B=Sa(c.buffer)?f.getBuffer(f.create(c.buffer,34962,!1,!0)):f.getBuffer(c.buffer),k=c.offset|0,m=c.stride|0,l=c.size|0,oa=!!c.normalized,p=0;"type"in c&&(p=Ja[c.type]);c=c.divisor|0;z.buffer=B;z.state=1;z.size=l;z.normalized=oa;z.type=p||B.dtype;z.offset=k;z.stride=m;z.divisor=c}}g[a]=w(function(a,b){var c=a.attribCache;if(e in c)return c[e];var d={isStream:!1};Object.keys(z).forEach(function(a){d[a]=z[a]});z.buffer&&(d.buffer=a.link(z.buffer),d.type=d.type||d.buffer+
24882
- ".dtype");return c[e]=d})});Object.keys(e).forEach(function(a){var b=e[a];g[a]=K(b,function(a,c){function d(a){c(B[a],"=",e,".",a,"|0;")}var e=a.invoke(c,b),f=a.shared,z=a.constants,g=f.isBufferArgs,f=f.buffer,B={isStream:c.def(!1)},h=new ea;h.state=1;Object.keys(h).forEach(function(a){B[a]=c.def(""+h[a])});var k=B.buffer,m=B.type;c("if(",g,"(",e,")){",B.isStream,"=true;",k,"=",f,".createStream(",34962,",",e,");",m,"=",k,".dtype;","}else{",k,"=",f,".getBuffer(",e,");","if(",k,"){",m,"=",k,".dtype;",
24883
- '}else if("constant" in ',e,"){",B.state,"=",2,";","if(typeof "+e+'.constant === "number"){',B[Da[0]],"=",e,".constant;",Da.slice(1).map(function(a){return B[a]}).join("="),"=0;","}else{",Da.map(function(a,b){return B[a]+"="+e+".constant.length>"+b+"?"+e+".constant["+b+"]:0;"}).join(""),"}}else{","if(",g,"(",e,".buffer)){",k,"=",f,".createStream(",34962,",",e,".buffer);","}else{",k,"=",f,".getBuffer(",e,".buffer);","}",m,'="type" in ',e,"?",z.glTypes,"[",e,".type]:",k,".dtype;",B.normalized,"=!!",
24884
- e,".normalized;");d("size");d("offset");d("stride");d("divisor");c("}}");c.exit("if(",B.isStream,"){",f,".destroyStream(",k,");","}");return B})});return g}function F(a){var b=a["static"],c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=w(function(a,b){return"number"===typeof c||"boolean"===typeof c?""+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=K(b,function(a,c){return a.invoke(c,b)})});return d}function A(a,b,d,e,f){function g(a){var b=p[a];b&&(ja[a]=b)}
24885
- var m=O(a,b),l=G(a,f),p=C(a,l,f),X=M(a,f),ja=y(a,f),q=H(a,f,m);g("viewport");g(h("scissor.box"));var n=0<Object.keys(ja).length,l={framebuffer:l,draw:X,shader:q,state:ja,dirty:n,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};l.profile=t(a,f);l.uniforms=T(d,f);l.drawVAO=l.scopeVAO=X.vao;if(!l.drawVAO&&q.program&&!m&&c.angle_instanced_arrays&&X["static"].elements){var r=!0;a=q.program.attributes.map(function(a){a=b["static"][a];r=r&&!!a;return a});if(r&&0<a.length){var u=k.getVAO(k.createVAO({attributes:a,
24886
- elements:X["static"].elements}));l.drawVAO=new J(null,null,null,function(a,b){return a.link(u)});l.useVAO=!0}}m?l.useVAO=!0:l.attributes=wa(b,f);l.context=F(e,f);return l}function ia(a,b,c){var d=a.shared.context,e=a.scope();Object.keys(c).forEach(function(f){b.save(d,"."+f);var g=c[f].append(a,b);Array.isArray(g)?e(d,".",f,"=[",g.join(),"];"):e(d,".",f,"=",g,";")});b(e)}function S(a,b,c,d){var e=a.shared,f=e.gl,g=e.framebuffer,h;Ma&&(h=b.def(e.extensions,".webgl_draw_buffers"));var k=a.constants,
24887
- e=k.drawBuffer,k=k.backBuffer;a=c?c.append(a,b):b.def(g,".next");d||b("if(",a,"!==",g,".cur){");b("if(",a,"){",f,".bindFramebuffer(",36160,",",a,".framebuffer);");Ma&&b(h,".drawBuffersWEBGL(",e,"[",a,".colorAttachments.length]);");b("}else{",f,".bindFramebuffer(",36160,",null);");Ma&&b(h,".drawBuffersWEBGL(",k,");");b("}",g,".cur=",a,";");d||b("}")}function Aa(a,b,c){var d=a.shared,e=d.gl,f=a.current,g=a.next,k=d.current,l=d.next,m=a.cond(k,".dirty");Na.forEach(function(b){b=h(b);if(!(b in c.state)){var d,
24888
- B;if(b in g){d=g[b];B=f[b];var p=R(ta[b].length,function(a){return m.def(d,"[",a,"]")});m(a.cond(p.map(function(a,b){return a+"!=="+B+"["+b+"]"}).join("||")).then(e,".",va[b],"(",p,");",p.map(function(a,b){return B+"["+b+"]="+a}).join(";"),";"))}else d=m.def(l,".",b),p=a.cond(d,"!==",k,".",b),m(p),b in ua?p(a.cond(d).then(e,".enable(",ua[b],");")["else"](e,".disable(",ua[b],");"),k,".",b,"=",d,";"):p(e,".",va[b],"(",d,");",k,".",b,"=",d,";")}});0===Object.keys(c.state).length&&m(k,".dirty=false;");
24889
- b(m)}function I(a,b,c,d){var e=a.shared,f=a.current,g=e.current,h=e.gl;yb(Object.keys(c)).forEach(function(e){var k=c[e];if(!d||d(k)){var m=k.append(a,b);if(ua[e]){var l=ua[e];xa(k)?m?b(h,".enable(",l,");"):b(h,".disable(",l,");"):b(a.cond(m).then(h,".enable(",l,");")["else"](h,".disable(",l,");"));b(g,".",e,"=",m,";")}else if(ra(m)){var p=f[e];b(h,".",va[e],"(",m,");",m.map(function(a,b){return p+"["+b+"]="+a}).join(";"),";")}else b(h,".",va[e],"(",m,");",g,".",e,"=",m,";")}})}function N(a,b){W&&
24890
- (a.instancing=b.def(a.shared.extensions,".angle_instanced_arrays"))}function E(a,b,c,d,e){function f(){return"undefined"===typeof performance?"Date.now()":"performance.now()"}function g(a){r=b.def();a(r,"=",f(),";");"string"===typeof e?a(p,".count+=",e,";"):a(p,".count++;");l&&(d?(u=b.def(),a(u,"=",n,".getNumPendingQueries();")):a(n,".beginQuery(",p,");"))}function h(a){a(p,".cpuTime+=",f(),"-",r,";");l&&(d?a(n,".pushScopeStats(",u,",",n,".getNumPendingQueries(),",p,");"):a(n,".endQuery();"))}function k(a){var c=
24891
- b.def(q,".profile");b(q,".profile=",a,";");b.exit(q,".profile=",c,";")}var m=a.shared,p=a.stats,q=m.current,n=m.timer;c=c.profile;var r,u;if(c){if(xa(c)){c.enable?(g(b),h(b.exit),k("true")):k("false");return}c=c.append(a,b);k(c)}else c=b.def(q,".profile");m=a.block();g(m);b("if(",c,"){",m,"}");a=a.block();h(a);b.exit("if(",c,"){",a,"}")}function ga(a,b,c,d,e){function f(a){switch(a){case 35664:case 35667:case 35671:return 2;case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;
24892
- default:return 1}}function g(c,d,e){function f(){b("if(!",p,".buffer){",m,".enableVertexAttribArray(",l,");}");var c=e.type,g;g=e.size?b.def(e.size,"||",d):d;b("if(",p,".type!==",c,"||",p,".size!==",g,"||",n.map(function(a){return p+"."+a+"!=="+e[a]}).join("||"),"){",m,".bindBuffer(",34962,",",ha,".buffer);",m,".vertexAttribPointer(",[l,g,c,e.normalized,e.stride,e.offset],");",p,".type=",c,";",p,".size=",g,";",n.map(function(a){return p+"."+a+"="+e[a]+";"}).join(""),"}");W&&(c=e.divisor,b("if(",p,
24893
- ".divisor!==",c,"){",a.instancing,".vertexAttribDivisorANGLE(",[l,c],");",p,".divisor=",c,";}"))}function k(){b("if(",p,".buffer){",m,".disableVertexAttribArray(",l,");",p,".buffer=null;","}if(",Da.map(function(a,b){return p+"."+a+"!=="+q[b]}).join("||"),"){",m,".vertexAttrib4f(",l,",",q,");",Da.map(function(a,b){return p+"."+a+"="+q[b]+";"}).join(""),"}")}var m=h.gl,l=b.def(c,".location"),p=b.def(h.attributes,"[",l,"]");c=e.state;var ha=e.buffer,q=[e.x,e.y,e.z,e.w],n=["buffer","normalized","offset",
24894
- "stride"];1===c?f():2===c?k():(b("if(",c,"===",1,"){"),f(),b("}else{"),k(),b("}"))}var h=a.shared;d.forEach(function(d){var h=d.name,k=c.attributes[h],m;if(k){if(!e(k))return;m=k.append(a,b)}else{if(!e(Ab))return;var l=a.scopeAttrib(h);m={};Object.keys(new ea).forEach(function(a){m[a]=b.def(l,".",a)})}g(a.link(d),f(d.info.type),m)})}function Q(a,c,d,e,f,g){for(var h=a.shared,k=h.gl,m={},l,p=0;p<e.length;++p){var q=e[p],n=q.name,r=q.info.type,u=q.info.size,t=d.uniforms[n];if(1<u){if(!t)continue;var v=
24895
- n.replace("[0]","");if(m[v])continue;m[v]=1}var q=a.link(q)+".location",x;if(t){if(!f(t))continue;if(xa(t)){n=t.value;if(35678===r||35680===r)r=a.link(n._texture||n.color[0]._texture),c(k,".uniform1i(",q,",",r+".bind());"),c.exit(r,".unbind();");else if(35674===r||35675===r||35676===r)u=a.global.def("new Float32Array(["+Array.prototype.slice.call(n)+"])"),n=2,35675===r?n=3:35676===r&&(n=4),c(k,".uniformMatrix",n,"fv(",q,",false,",u,");");else{switch(r){case 5126:l="1f";break;case 35664:l="2f";break;
24896
- case 35665:l="3f";break;case 35666:l="4f";break;case 35670:l="1i";break;case 5124:l="1i";break;case 35671:l="2i";break;case 35667:l="2i";break;case 35672:l="3i";break;case 35668:l="3i";break;case 35673:l="4i";break;case 35669:l="4i"}1<u?(l+="v",n=a.global.def("["+Array.prototype.slice.call(n)+"]")):n=ra(n)?Array.prototype.slice.call(n):n;c(k,".uniform",l,"(",q,",",n,");")}continue}else x=t.append(a,c)}else{if(!f(Ab))continue;x=c.def(h.uniforms,"[",b.id(n),"]")}35678===r?c("if(",x,"&&",x,'._reglType==="framebuffer"){',
24897
- x,"=",x,".color[0];","}"):35680===r&&c("if(",x,"&&",x,'._reglType==="framebufferCube"){',x,"=",x,".color[0];","}");n=1;switch(r){case 35678:case 35680:r=c.def(x,"._texture");c(k,".uniform1i(",q,",",r,".bind());");c.exit(r,".unbind();");continue;case 5124:case 35670:l="1i";break;case 35667:case 35671:l="2i";n=2;break;case 35668:case 35672:l="3i";n=3;break;case 35669:case 35673:l="4i";n=4;break;case 5126:l="1f";break;case 35664:l="2f";n=2;break;case 35665:l="3f";n=3;break;case 35666:l="4f";n=4;break;
24898
- case 35674:l="Matrix2fv";break;case 35675:l="Matrix3fv";break;case 35676:l="Matrix4fv"}-1===l.indexOf("Matrix")&&1<u&&(l+="v",n=1);if("M"===l.charAt(0)){c(k,".uniform",l,"(",q,",");var q=Math.pow(r-35674+2,2),y=a.global.def("new Float32Array(",q,")");Array.isArray(x)?c("false,(",R(q,function(a){return y+"["+a+"]="+x[a]}),",",y,")"):c("false,(Array.isArray(",x,")||",x," instanceof Float32Array)?",x,":(",R(q,function(a){return y+"["+a+"]="+x+"["+a+"]"}),",",y,")");c(");")}else{if(1<n){for(var r=[],
24899
- w=[],u=0;u<n;++u)Array.isArray(x)?w.push(x[u]):w.push(c.def(x+"["+u+"]")),g&&r.push(c.def());g&&c("if(!",a.batchId,"||",r.map(function(a,b){return a+"!=="+w[b]}).join("||"),"){",r.map(function(a,b){return a+"="+w[b]+";"}).join(""));c(k,".uniform",l,"(",q,",",w.join(","),");")}else g&&(r=c.def(),c("if(!",a.batchId,"||",r,"!==",x,"){",r,"=",x,";")),c(k,".uniform",l,"(",q,",",x,");");g&&c("}")}}}function U(a,b,c,d){function e(f){var g=m[f];return g?g.contextDep&&d.contextDynamic||g.propDep?g.append(a,
24900
- c):g.append(a,b):b.def(k,".",f)}function f(){function a(){c(t,".drawElementsInstancedANGLE(",[n,r,x,q+"<<(("+x+"-5121)>>1)",u],");")}function b(){c(t,".drawArraysInstancedANGLE(",[n,q,r,u],");")}p&&"null"!==p?v?a():(c("if(",p,"){"),a(),c("}else{"),b(),c("}")):b()}function g(){function a(){c(l+".drawElements("+[n,r,x,q+"<<(("+x+"-5121)>>1)"]+");")}function b(){c(l+".drawArrays("+[n,q,r]+");")}p&&"null"!==p?v?a():(c("if(",p,"){"),a(),c("}else{"),b(),c("}")):b()}var h=a.shared,l=h.gl,k=h.draw,m=d.draw,
24901
- p=function(){var e=m.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f);m.elementsActive&&f("if("+e+")"+l+".bindBuffer(34963,"+e+".buffer.buffer);")}else e=f.def(),f(e,"=",k,".","elements",";","if(",e,"){",l,".bindBuffer(",34963,",",e,".buffer.buffer);}","else if(",h.vao,".currentVAO){",e,"=",a.shared.elements+".getElements("+h.vao,".currentVAO.elements);",na?"":"if("+e+")"+l+".bindBuffer(34963,"+e+".buffer.buffer);","}");return e}(),n=e("primitive"),q=e("offset"),
24902
- r=function(){var e=m.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(k,".","count");return e}();if("number"===typeof r){if(0===r)return}else c("if(",r,"){"),c.exit("}");var u,t;W&&(u=e("instances"),t=a.instancing);var x=p+".type",v=m.elements&&xa(m.elements)&&!m.vaoActive;W&&("number"!==typeof u||0<=u)?"string"===typeof u?(c("if(",u,">0){"),f(),c("}else if(",u,"<0){"),g(),c("}")):f():g()}function ca(a,b,c,d,e){b=P();e=b.proc("body",e);W&&(b.instancing=
24903
- e.def(b.shared.extensions,".angle_instanced_arrays"));a(b,e,c,d);return b.compile().body}function Z(a,b,c,d){N(a,b);c.useVAO?c.drawVAO?b(a.shared.vao,".setVAO(",c.drawVAO.append(a,b),");"):b(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(b(a.shared.vao,".setVAO(null);"),ga(a,b,c,d.attributes,function(){return!0}));Q(a,b,c,d.uniforms,function(){return!0},!1);U(a,b,b,c)}function Fa(a,b){var c=a.proc("draw",1);N(a,c);ia(a,c,b.context);S(a,c,b.framebuffer);Aa(a,c,b);I(a,c,b.state);E(a,c,b,!1,!0);
24904
- var d=b.shader.progVar.append(a,c);c(a.shared.gl,".useProgram(",d,".program);");if(b.shader.program)Z(a,c,b,b.shader.program);else{c(a.shared.vao,".setVAO(null);");var e=a.global.def("{}"),f=c.def(d,".id"),g=c.def(e,"[",f,"]");c(a.cond(g).then(g,".call(this,a0);")["else"](g,"=",e,"[",f,"]=",a.link(function(c){return ca(Z,a,b,c,1)}),"(",d,");",g,".call(this,a0);"))}0<Object.keys(b.state).length&&c(a.shared.current,".dirty=true;");a.shared.vao&&c(a.shared.vao,".setVAO(null);")}function pa(a,b,c,d){function e(){return!0}
24905
- a.batchId="a1";N(a,b);ga(a,b,c,d.attributes,e);Q(a,b,c,d.uniforms,e,!1);U(a,b,b,c)}function qa(a,b,c,d){function e(a){return a.contextDep&&g||a.propDep}function f(a){return!e(a)}N(a,b);var g=c.contextDep,h=b.def(),l=b.def();a.shared.props=l;a.batchId=h;var k=a.scope(),m=a.scope();b(k.entry,"for(",h,"=0;",h,"<","a1",";++",h,"){",l,"=","a0","[",h,"];",m,"}",k.exit);c.needsContext&&ia(a,m,c.context);c.needsFramebuffer&&S(a,m,c.framebuffer);I(a,m,c.state,e);c.profile&&e(c.profile)&&E(a,m,c,!1,!0);d?(c.useVAO?
24906
- c.drawVAO?e(c.drawVAO)?m(a.shared.vao,".setVAO(",c.drawVAO.append(a,m),");"):k(a.shared.vao,".setVAO(",c.drawVAO.append(a,k),");"):k(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(k(a.shared.vao,".setVAO(null);"),ga(a,k,c,d.attributes,f),ga(a,m,c,d.attributes,e)),Q(a,k,c,d.uniforms,f,!1),Q(a,m,c,d.uniforms,e,!0),U(a,k,m,c)):(b=a.global.def("{}"),d=c.shader.progVar.append(a,m),l=m.def(d,".id"),k=m.def(b,"[",l,"]"),m(a.shared.gl,".useProgram(",d,".program);","if(!",k,"){",k,"=",b,"[",l,"]=",
24907
- a.link(function(b){return ca(pa,a,c,b,2)}),"(",d,");}",k,".call(this,a0[",h,"],",h,");"))}function V(a,b){function c(a){return a.contextDep&&e||a.propDep}var d=a.proc("batch",2);a.batchId="0";N(a,d);var e=!1,f=!0;Object.keys(b.context).forEach(function(a){e=e||b.context[a].propDep});e||(ia(a,d,b.context),f=!1);var g=b.framebuffer,h=!1;g?(g.propDep?e=h=!0:g.contextDep&&e&&(h=!0),h||S(a,d,g)):S(a,d,null);b.state.viewport&&b.state.viewport.propDep&&(e=!0);Aa(a,d,b);I(a,d,b.state,function(a){return!c(a)});
24908
- b.profile&&c(b.profile)||E(a,d,b,!1,"a1");b.contextDep=e;b.needsContext=f;b.needsFramebuffer=h;f=b.shader.progVar;if(f.contextDep&&e||f.propDep)qa(a,d,b,null);else if(f=f.append(a,d),d(a.shared.gl,".useProgram(",f,".program);"),b.shader.program)qa(a,d,b,b.shader.program);else{d(a.shared.vao,".setVAO(null);");var g=a.global.def("{}"),h=d.def(f,".id"),l=d.def(g,"[",h,"]");d(a.cond(l).then(l,".call(this,a0,a1);")["else"](l,"=",g,"[",h,"]=",a.link(function(c){return ca(qa,a,b,c,2)}),"(",f,");",l,".call(this,a0,a1);"))}0<
24909
- Object.keys(b.state).length&&d(a.shared.current,".dirty=true;");a.shared.vao&&d(a.shared.vao,".setVAO(null);")}function ka(a,c){function d(b){var g=c.shader[b];g&&e.set(f.shader,"."+b,g.append(a,e))}var e=a.proc("scope",3);a.batchId="a2";var f=a.shared,g=f.current;ia(a,e,c.context);c.framebuffer&&c.framebuffer.append(a,e);yb(Object.keys(c.state)).forEach(function(b){var d=c.state[b].append(a,e);ra(d)?d.forEach(function(c,d){e.set(a.next[b],"["+d+"]",c)}):e.set(f.next,"."+b,d)});E(a,e,c,!0,!0);["elements",
24910
- "offset","count","instances","primitive"].forEach(function(b){var d=c.draw[b];d&&e.set(f.draw,"."+b,""+d.append(a,e))});Object.keys(c.uniforms).forEach(function(d){var g=c.uniforms[d].append(a,e);Array.isArray(g)&&(g="["+g.join()+"]");e.set(f.uniforms,"["+b.id(d)+"]",g)});Object.keys(c.attributes).forEach(function(b){var d=c.attributes[b].append(a,e),f=a.scopeAttrib(b);Object.keys(new ea).forEach(function(a){e.set(f,"."+a,d[a])})});c.scopeVAO&&e.set(f.vao,".targetVAO",c.scopeVAO.append(a,e));d("vert");
24911
- d("frag");0<Object.keys(c.state).length&&(e(g,".dirty=true;"),e.exit(g,".dirty=true;"));e("a1(",a.shared.context,",a0,",a.batchId,");")}function la(a){if("object"===typeof a&&!ra(a)){for(var b=Object.keys(a),c=0;c<b.length;++c)if(Y.isDynamic(a[b[c]]))return!0;return!1}}function aa(a,b,c){function d(a,b){g.forEach(function(c){var d=e[c];Y.isDynamic(d)&&(d=a.invoke(b,d),b(m,".",c,"=",d,";"))})}var e=b["static"][c];if(e&&la(e)){var f=a.global,g=Object.keys(e),h=!1,l=!1,k=!1,m=a.global.def("{}");g.forEach(function(b){var c=
24912
- e[b];if(Y.isDynamic(c))"function"===typeof c&&(c=e[b]=Y.unbox(c)),b=K(c,null),h=h||b.thisDep,k=k||b.propDep,l=l||b.contextDep;else{f(m,".",b,"=");switch(typeof c){case "number":f(c);break;case "string":f('"',c,'"');break;case "object":Array.isArray(c)&&f("[",c.join(),"]");break;default:f(a.link(c))}f(";")}});b.dynamic[c]=new Y.DynamicVariable(4,{thisDep:h,contextDep:l,propDep:k,ref:m,append:d});delete b["static"][c]}}var ea=k.Record,fa={add:32774,subtract:32778,"reverse subtract":32779};c.ext_blend_minmax&&
24913
- (fa.min=32775,fa.max=32776);var W=c.angle_instanced_arrays,Ma=c.webgl_draw_buffers,na=c.oes_vertex_array_object,ta={dirty:!0,profile:g.profile},Ea={},Na=[],ua={},va={};r("dither",3024);r("blend.enable",3042);p("blend.color","blendColor",[0,0,0,0]);p("blend.equation","blendEquationSeparate",[32774,32774]);p("blend.func","blendFuncSeparate",[1,0,1,0]);r("depth.enable",2929,!0);p("depth.func","depthFunc",513);p("depth.range","depthRange",[0,1]);p("depth.mask","depthMask",!0);p("colorMask","colorMask",
24914
- [!0,!0,!0,!0]);r("cull.enable",2884);p("cull.face","cullFace",1029);p("frontFace","frontFace",2305);p("lineWidth","lineWidth",1);r("polygonOffset.enable",32823);p("polygonOffset.offset","polygonOffset",[0,0]);r("sample.alpha",32926);r("sample.enable",32928);p("sample.coverage","sampleCoverage",[1,!1]);r("stencil.enable",2960);p("stencil.mask","stencilMask",-1);p("stencil.func","stencilFunc",[519,0,-1]);p("stencil.opFront","stencilOpSeparate",[1028,7680,7680,7680]);p("stencil.opBack","stencilOpSeparate",
24915
- [1029,7680,7680,7680]);r("scissor.enable",3089);p("scissor.box","scissor",[0,0,a.drawingBufferWidth,a.drawingBufferHeight]);p("viewport","viewport",[0,0,a.drawingBufferWidth,a.drawingBufferHeight]);var tb={gl:a,context:x,strings:b,next:Ea,current:ta,draw:m,elements:d,buffer:f,shader:u,attributes:k.state,vao:k,uniforms:v,framebuffer:n,extensions:c,timer:l,isBufferArgs:Sa},Pa={primTypes:Ka,compareFuncs:ab,blendFuncs:Ga,blendEquations:fa,stencilOps:Ta,glTypes:Ja,orientationType:zb};Ma&&(Pa.backBuffer=
24916
- [1029],Pa.drawBuffer=R(e.maxDrawbuffers,function(a){return 0===a?[0]:R(a,function(a){return 36064+a})}));var sa=0;return{next:Ea,current:ta,procs:function(){var a=P(),b=a.proc("poll"),d=a.proc("refresh"),f=a.block();b(f);d(f);var g=a.shared,h=g.gl,l=g.next,k=g.current;f(k,".dirty=false;");S(a,b);S(a,d,null,!0);var m;W&&(m=a.link(W));c.oes_vertex_array_object&&d(a.link(c.oes_vertex_array_object),".bindVertexArrayOES(null);");for(var p=0;p<e.maxAttributes;++p){var n=d.def(g.attributes,"[",p,"]"),q=
24917
- a.cond(n,".buffer");q.then(h,".enableVertexAttribArray(",p,");",h,".bindBuffer(",34962,",",n,".buffer.buffer);",h,".vertexAttribPointer(",p,",",n,".size,",n,".type,",n,".normalized,",n,".stride,",n,".offset);")["else"](h,".disableVertexAttribArray(",p,");",h,".vertexAttrib4f(",p,",",n,".x,",n,".y,",n,".z,",n,".w);",n,".buffer=null;");d(q);W&&d(m,".vertexAttribDivisorANGLE(",p,",",n,".divisor);")}d(a.shared.vao,".currentVAO=null;",a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);");Object.keys(ua).forEach(function(c){var e=
24918
- ua[c],g=f.def(l,".",c),m=a.block();m("if(",g,"){",h,".enable(",e,")}else{",h,".disable(",e,")}",k,".",c,"=",g,";");d(m);b("if(",g,"!==",k,".",c,"){",m,"}")});Object.keys(va).forEach(function(c){var e=va[c],g=ta[c],m,p,n=a.block();n(h,".",e,"(");ra(g)?(e=g.length,m=a.global.def(l,".",c),p=a.global.def(k,".",c),n(R(e,function(a){return m+"["+a+"]"}),");",R(e,function(a){return p+"["+a+"]="+m+"["+a+"];"}).join("")),b("if(",R(e,function(a){return m+"["+a+"]!=="+p+"["+a+"]"}).join("||"),"){",n,"}")):(m=
24919
- f.def(l,".",c),p=f.def(k,".",c),n(m,");",k,".",c,"=",m,";"),b("if(",m,"!==",p,"){",n,"}"));d(n)});return a.compile()}(),compile:function(a,b,c,d,e){var f=P();f.stats=f.link(e);Object.keys(b["static"]).forEach(function(a){aa(f,b,a)});Xb.forEach(function(b){aa(f,a,b)});var g=A(a,b,c,d,f);Fa(f,g);ka(f,g);V(f,g);return L(f.compile(),{destroy:function(){g.shader.program.destroy()}})}}}function Bb(a,b){for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}var L=function(a,b){for(var c=Object.keys(b),
24920
- e=0;e<c.length;++e)a[c[e]]=b[c[e]];return a},Db=0,Y={DynamicVariable:Z,define:function(a,b){return new Z(a,cb(b+""))},isDynamic:function(a){return"function"===typeof a&&!a._reglType||a instanceof Z},unbox:db,accessor:cb},bb={next:"function"===typeof requestAnimationFrame?function(a){return requestAnimationFrame(a)}:function(a){return setTimeout(a,16)},cancel:"function"===typeof cancelAnimationFrame?function(a){return cancelAnimationFrame(a)}:clearTimeout},Cb="undefined"!==typeof performance&&performance.now?
24921
- function(){return performance.now()}:function(){return+new Date},G=hb();G.zero=hb();var Yb=function(a,b){var c=1;b.ext_texture_filter_anisotropic&&(c=a.getParameter(34047));var e=1,f=1;b.webgl_draw_buffers&&(e=a.getParameter(34852),f=a.getParameter(36063));var d=!!b.oes_texture_float;if(d){d=a.createTexture();a.bindTexture(3553,d);a.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var q=a.createFramebuffer();a.bindFramebuffer(36160,q);a.framebufferTexture2D(36160,36064,3553,d,0);a.bindTexture(3553,null);
24922
- if(36053!==a.checkFramebufferStatus(36160))d=!1;else{a.viewport(0,0,1,1);a.clearColor(1,0,0,1);a.clear(16384);var n=G.allocType(5126,4);a.readPixels(0,0,1,1,6408,5126,n);a.getError()?d=!1:(a.deleteFramebuffer(q),a.deleteTexture(d),d=1===n[0]);G.freeType(n)}}n=!0;"undefined"!==typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent))||(n=a.createTexture(),q=G.allocType(5121,36),a.activeTexture(33984),a.bindTexture(34067,n),a.texImage2D(34069,
24923
- 0,6408,3,3,0,6408,5121,q),G.freeType(q),a.bindTexture(34067,null),a.deleteTexture(n),n=!a.getError());return{colorBits:[a.getParameter(3410),a.getParameter(3411),a.getParameter(3412),a.getParameter(3413)],depthBits:a.getParameter(3414),stencilBits:a.getParameter(3415),subpixelBits:a.getParameter(3408),extensions:Object.keys(b).filter(function(a){return!!b[a]}),maxAnisotropic:c,maxDrawbuffers:e,maxColorAttachments:f,pointSizeDims:a.getParameter(33901),lineWidthDims:a.getParameter(33902),maxViewportDims:a.getParameter(3386),
24924
- maxCombinedTextureUnits:a.getParameter(35661),maxCubeMapSize:a.getParameter(34076),maxRenderbufferSize:a.getParameter(34024),maxTextureUnits:a.getParameter(34930),maxTextureSize:a.getParameter(3379),maxAttributes:a.getParameter(34921),maxVertexUniforms:a.getParameter(36347),maxVertexTextureUnits:a.getParameter(35660),maxVaryingVectors:a.getParameter(36348),maxFragmentUniforms:a.getParameter(36349),glsl:a.getParameter(35724),renderer:a.getParameter(7937),vendor:a.getParameter(7936),version:a.getParameter(7938),
24925
- readFloat:d,npotTextureCube:n}},O=function(a){return a instanceof Uint8Array||a instanceof Uint16Array||a instanceof Uint32Array||a instanceof Int8Array||a instanceof Int16Array||a instanceof Int32Array||a instanceof Float32Array||a instanceof Float64Array||a instanceof Uint8ClampedArray},I=function(a){return Object.keys(a).map(function(b){return a[b]})},Qa={shape:function(a){for(var b=[];a.length;a=a[0])b.push(a.length);return b},flatten:function(a,b,c,e){var f=1;if(b.length)for(var d=0;d<b.length;++d)f*=
24926
- b[d];else f=0;c=e||G.allocType(c,f);switch(b.length){case 0:break;case 1:e=b[0];for(b=0;b<e;++b)c[b]=a[b];break;case 2:e=b[0];b=b[1];for(d=f=0;d<e;++d)for(var q=a[d],n=0;n<b;++n)c[f++]=q[n];break;case 3:ib(a,b[0],b[1],b[2],c,0);break;default:jb(a,b,0,c,0)}return c}},Ia={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,
24927
- "[object ArrayBuffer]":5121},Ja={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,"float":5126,float32:5126},nb={dynamic:35048,stream:35040,"static":35044},Ua=Qa.flatten,mb=Qa.shape,na=[];na[5120]=1;na[5122]=2;na[5124]=4;na[5121]=1;na[5123]=2;na[5125]=4;na[5126]=4;var Ka={points:0,point:0,lines:1,line:1,triangles:4,triangle:4,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},pb=new Float32Array(1),Lb=new Uint32Array(pb.buffer),Pb=[9984,9986,9985,9987],Oa=[0,6409,
24928
- 6410,6407,6408],U={};U[6409]=U[6406]=U[6402]=1;U[34041]=U[6410]=2;U[6407]=U[35904]=3;U[6408]=U[35906]=4;var Xa=sa("HTMLCanvasElement"),Ya=sa("OffscreenCanvas"),ub=sa("CanvasRenderingContext2D"),vb=sa("ImageBitmap"),wb=sa("HTMLImageElement"),xb=sa("HTMLVideoElement"),Mb=Object.keys(Ia).concat([Xa,Ya,ub,vb,wb,xb]),za=[];za[5121]=1;za[5126]=4;za[36193]=2;za[5123]=2;za[5125]=4;var C=[];C[32854]=2;C[32855]=2;C[36194]=2;C[34041]=4;C[33776]=.5;C[33777]=.5;C[33778]=1;C[33779]=1;C[35986]=.5;C[35987]=1;C[34798]=
24929
- 1;C[35840]=.5;C[35841]=.25;C[35842]=.5;C[35843]=.25;C[36196]=.5;var Q=[];Q[32854]=2;Q[32855]=2;Q[36194]=2;Q[33189]=2;Q[36168]=1;Q[34041]=4;Q[35907]=4;Q[34836]=16;Q[34842]=8;Q[34843]=6;var Zb=function(a,b,c,e,f){function d(a){this.id=k++;this.refCount=1;this.renderbuffer=a;this.format=32854;this.height=this.width=0;f.profile&&(this.stats={size:0})}function q(b){var c=b.renderbuffer;a.bindRenderbuffer(36161,null);a.deleteRenderbuffer(c);b.renderbuffer=null;b.refCount=0;delete u[b.id];e.renderbufferCount--}
24930
- var n={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};b.ext_srgb&&(n.srgba=35907);b.ext_color_buffer_half_float&&(n.rgba16f=34842,n.rgb16f=34843);b.webgl_color_buffer_float&&(n.rgba32f=34836);var v=[];Object.keys(n).forEach(function(a){v[n[a]]=a});var k=0,u={};d.prototype.decRef=function(){0>=--this.refCount&&q(this)};f.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(u).forEach(function(b){a+=u[b].stats.size});return a});return{create:function(b,
24931
- c){function l(b,c){var d=0,e=0,k=32854;"object"===typeof b&&b?("shape"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):("radius"in b&&(d=e=b.radius|0),"width"in b&&(d=b.width|0),"height"in b&&(e=b.height|0)),"format"in b&&(k=n[b.format])):"number"===typeof b?(d=b|0,e="number"===typeof c?c|0:d):b||(d=e=1);if(d!==g.width||e!==g.height||k!==g.format)return l.width=g.width=d,l.height=g.height=e,g.format=k,a.bindRenderbuffer(36161,g.renderbuffer),a.renderbufferStorage(36161,k,d,e),f.profile&&(g.stats.size=Q[g.format]*
24932
- g.width*g.height),l.format=v[g.format],l}var g=new d(a.createRenderbuffer());u[g.id]=g;e.renderbufferCount++;l(b,c);l.resize=function(b,c){var d=b|0,e=c|0||d;if(d===g.width&&e===g.height)return l;l.width=g.width=d;l.height=g.height=e;a.bindRenderbuffer(36161,g.renderbuffer);a.renderbufferStorage(36161,g.format,d,e);f.profile&&(g.stats.size=Q[g.format]*g.width*g.height);return l};l._reglType="renderbuffer";l._renderbuffer=g;f.profile&&(l.stats=g.stats);l.destroy=function(){g.decRef()};return l},clear:function(){I(u).forEach(q)},
24933
- restore:function(){I(u).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,null)}}},Za=[];Za[6408]=4;Za[6407]=3;var Ra=[];Ra[5121]=1;Ra[5126]=4;Ra[36193]=2;var Da=["x","y","z","w"],Xb="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Ga={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,
24934
- "src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},ab={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Ta={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,
24935
- "increment wrap":34055,"decrement wrap":34056,invert:5386},zb={cw:2304,ccw:2305},Ab=new J(!1,!1,!1,function(){}),$b=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=null}function e(a,b,d){var e=q.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;n.push(e)}if(!b.ext_disjoint_timer_query)return null;var f=[],d=[],q=[],n=[],v=[],k=[];return{beginQuery:function(a){var c=f.pop()||b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,
24936
- c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){k.length=Math.max(k.length,a+1);v.length=Math.max(v.length,a+1);v[0]=0;var e=k[0]=0;for(c=a=0;c<d.length;++c){var l=d[c];b.ext_disjoint_timer_query.getQueryObjectEXT(l,34919)?(e+=b.ext_disjoint_timer_query.getQueryObjectEXT(l,34918),f.push(l)):d[a++]=l;v[c+1]=e;k[c+1]=a}d.length=a;for(c=a=0;c<n.length;++c){var e=n[c],g=e.startQueryIndex,
24937
- l=e.endQueryIndex;e.sum+=v[l]-v[g];g=k[g];l=k[l];l===g?(e.stats.gpuTime+=e.sum/1E6,q.push(e)):(e.startQueryIndex=g,e.endQueryIndex=l,n[a++]=e)}n.length=a}},getNumPendingQueries:function(){return d.length},clear:function(){f.push.apply(f,d);for(var a=0;a<f.length;a++)b.ext_disjoint_timer_query.deleteQueryEXT(f[a]);d.length=0;f.length=0},restore:function(){d.length=0;f.length=0}}};return function(a){function b(){if(0===E.length)t&&t.update(),ca=null;else{ca=bb.next(b);u();for(var a=E.length-1;0<=a;--a){var c=
24938
- E[a];c&&c(H,null,0)}l.flush();t&&t.update()}}function c(){!ca&&0<E.length&&(ca=bb.next(b))}function e(){ca&&(bb.cancel(b),ca=null)}function f(a){a.preventDefault();e();R.forEach(function(a){a()})}function d(a){l.getError();h.restore();F.restore();y.restore();A.restore();O.restore();S.restore();K.restore();t&&t.restore();I.procs.refresh();c();U.forEach(function(a){a()})}function q(a){function b(a,c){var d={},e={};Object.keys(a).forEach(function(b){var f=a[b];if(Y.isDynamic(f))e[b]=Y.unbox(f,b);else{if(c&&
24939
- Array.isArray(f))for(var g=0;g<f.length;++g)if(Y.isDynamic(f[g])){e[b]=Y.unbox(f,b);return}d[b]=f}});return{dynamic:e,"static":d}}function c(a){for(;n.length<a;)n.push(null);return n}var d=b(a.context||{},!0),e=b(a.uniforms||{},!0),f=b(a.attributes||{},!1);a=b(function(a){function b(a){if(a in c){var d=c[a];delete c[a];Object.keys(d).forEach(function(b){c[a+"."+b]=d[b]})}}var c=L({},a);delete c.uniforms;delete c.attributes;delete c.context;delete c.vao;"stencil"in c&&c.stencil.op&&(c.stencil.opBack=
24940
- c.stencil.opFront=c.stencil.op,delete c.stencil.op);b("blend");b("depth");b("cull");b("stencil");b("polygonOffset");b("scissor");b("sample");"vao"in a&&(c.vao=a.vao);return c}(a),!1);var g={gpuTime:0,cpuTime:0,count:0},h=I.compile(a,f,e,d,g),k=h.draw,l=h.batch,m=h.scope,n=[];return L(function(a,b){var d;if("function"===typeof a)return m.call(this,null,a,0);if("function"===typeof b)if("number"===typeof a)for(d=0;d<a;++d)m.call(this,null,b,d);else if(Array.isArray(a))for(d=0;d<a.length;++d)m.call(this,
24941
- a[d],b,d);else return m.call(this,a,b,0);else if("number"===typeof a){if(0<a)return l.call(this,c(a|0),a|0)}else if(Array.isArray(a)){if(a.length)return l.call(this,a,a.length)}else return k.call(this,a)},{stats:g,destroy:function(){h.destroy()}})}function n(a,b){var c=0;I.procs.poll();var d=b.color;d&&(l.clearColor(+d[0]||0,+d[1]||0,+d[2]||0,+d[3]||0),c|=16384);"depth"in b&&(l.clearDepth(+b.depth),c|=256);"stencil"in b&&(l.clearStencil(b.stencil|0),c|=1024);l.clear(c)}function v(a){E.push(a);c();
24942
- return{cancel:function(){function b(){var a=Bb(E,b);E[a]=E[E.length-1];--E.length;0>=E.length&&e()}var c=Bb(E,a);E[c]=b}}}function k(){var a=Q.viewport,b=Q.scissor_box;a[0]=a[1]=b[0]=b[1]=0;H.viewportWidth=H.framebufferWidth=H.drawingBufferWidth=a[2]=b[2]=l.drawingBufferWidth;H.viewportHeight=H.framebufferHeight=H.drawingBufferHeight=a[3]=b[3]=l.drawingBufferHeight}function u(){H.tick+=1;H.time=x();k();I.procs.poll()}function m(){A.refresh();k();I.procs.refresh();t&&t.update()}function x(){return(Cb()-
24943
- G)/1E3}a=Hb(a);if(!a)return null;var l=a.gl,g=l.getContextAttributes();l.isContextLost();var h=Ib(l,a);if(!h)return null;var r=Eb(),p={vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},w=h.extensions,t=$b(l,w),G=Cb(),C=l.drawingBufferWidth,J=l.drawingBufferHeight,H={tick:0,time:0,viewportWidth:C,viewportHeight:J,framebufferWidth:C,framebufferHeight:J,drawingBufferWidth:C,drawingBufferHeight:J,pixelRatio:a.pixelRatio},
24944
- C={elements:null,primitive:4,count:-1,offset:0,instances:-1},M=Yb(l,w),y=Jb(l,p,a,function(a){return K.destroyBuffer(a)}),T=Kb(l,w,y,p),K=Sb(l,w,M,p,y,T,C),F=Tb(l,r,p,a),A=Nb(l,w,M,function(){I.procs.poll()},H,p,a),O=Zb(l,w,M,p,a),S=Rb(l,w,M,A,O,p),I=Wb(l,r,w,M,y,T,A,S,{},K,F,C,H,t,a),r=Ub(l,S,I.procs.poll,H,g,w,M),Q=I.next,N=l.canvas,E=[],R=[],U=[],Z=[a.onDestroy],ca=null;N&&(N.addEventListener("webglcontextlost",f,!1),N.addEventListener("webglcontextrestored",d,!1));var aa=S.setFBO=q({framebuffer:Y.define.call(null,
24945
- 1,"framebuffer")});m();g=L(q,{clear:function(a){if("framebuffer"in a)if(a.framebuffer&&"framebufferCube"===a.framebuffer_reglType)for(var b=0;6>b;++b)aa(L({framebuffer:a.framebuffer.faces[b]},a),n);else aa(a,n);else n(null,a)},prop:Y.define.bind(null,1),context:Y.define.bind(null,2),"this":Y.define.bind(null,3),draw:q({}),buffer:function(a){return y.create(a,34962,!1,!1)},elements:function(a){return T.create(a,!1)},texture:A.create2D,cube:A.createCube,renderbuffer:O.create,framebuffer:S.create,framebufferCube:S.createCube,
24946
- vao:K.createVAO,attributes:g,frame:v,on:function(a,b){var c;switch(a){case "frame":return v(b);case "lost":c=R;break;case "restore":c=U;break;case "destroy":c=Z}c.push(b);return{cancel:function(){for(var a=0;a<c.length;++a)if(c[a]===b){c[a]=c[c.length-1];c.pop();break}}}},limits:M,hasExtension:function(a){return 0<=M.extensions.indexOf(a.toLowerCase())},read:r,destroy:function(){E.length=0;e();N&&(N.removeEventListener("webglcontextlost",f),N.removeEventListener("webglcontextrestored",d));F.clear();
24947
- S.clear();O.clear();K.clear();A.clear();T.clear();y.clear();t&&t.clear();Z.forEach(function(a){a()})},_gl:l,_refresh:m,poll:function(){u();t&&t.update()},now:x,stats:p});a.onDone(null,g);return g}});
24777
+ (function(da,ea){"object"===typeof exports&&"undefined"!==typeof module?module.exports=ea():"function"===typeof define&&define.amd?define(ea):da.createREGL=ea()})(this,function(){function da(a,b){this.id=Db++;this.type=a;this.data=b}function ea(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1<a.length&&b===c&&('"'===b||"'"===b))return['"'+a.substr(1,a.length-2).replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];if(b=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(a))return ea(a.substr(0,
24778
+ b.index)).concat(ea(b[1])).concat(ea(a.substr(b.index+b[0].length)));b=a.split(".");if(1===b.length)return['"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];a=[];for(c=0;c<b.length;++c)a=a.concat(ea(b[c]));return a}function bb(a){return"["+ea(a).join("][")+"]"}function cb(a,b){if("function"===typeof a)return new da(0,a);if("number"===typeof a||"boolean"===typeof a)return new da(5,a);if(Array.isArray(a))return new da(6,a.map(function(a,d){return cb(a,b+"["+d+"]")}));if(a instanceof da)return a}
24779
+ function Eb(){var a={"":0},b=[""];return{id:function(c){var d=a[c];if(d)return d;d=a[c]=b.length;b.push(c);return d},str:function(a){return b[a]}}}function Fb(a,b,c){function d(){var b=window.innerWidth,d=window.innerHeight;a!==document.body&&(d=f.getBoundingClientRect(),b=d.right-d.left,d=d.bottom-d.top);f.width=c*b;f.height=c*d}var f=document.createElement("canvas");O(f.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"});a.appendChild(f);a===document.body&&(f.style.position=
24780
+ "absolute",O(a.style,{margin:0,padding:0}));var e;a!==document.body&&"function"===typeof ResizeObserver?(e=new ResizeObserver(function(){setTimeout(d)}),e.observe(a)):window.addEventListener("resize",d,!1);d();return{canvas:f,onDestroy:function(){e?e.disconnect():window.removeEventListener("resize",d);a.removeChild(f)}}}function Gb(a,b){function c(c){try{return a.getContext(c,b)}catch(f){return null}}return c("webgl")||c("experimental-webgl")||c("webgl-experimental")}function db(a){return"string"===
24781
+ typeof a?a.split():a}function eb(a){return"string"===typeof a?document.querySelector(a):a}function Hb(a){var b=a||{},c,d,f,e;a={};var m=[],q=[],u="undefined"===typeof window?1:window.devicePixelRatio,r=!1,k={},n=function(a){},t=function(){};"string"===typeof b?c=document.querySelector(b):"object"===typeof b&&("string"===typeof b.nodeName&&"function"===typeof b.appendChild&&"function"===typeof b.getBoundingClientRect?c=b:"function"===typeof b.drawArrays||"function"===typeof b.drawElements?(e=b,f=e.canvas):
24782
+ ("gl"in b?e=b.gl:"canvas"in b?f=eb(b.canvas):"container"in b&&(d=eb(b.container)),"attributes"in b&&(a=b.attributes),"extensions"in b&&(m=db(b.extensions)),"optionalExtensions"in b&&(q=db(b.optionalExtensions)),"onDone"in b&&(n=b.onDone),"profile"in b&&(r=!!b.profile),"pixelRatio"in b&&(u=+b.pixelRatio),"cachedCode"in b&&(k=b.cachedCode)));c&&("canvas"===c.nodeName.toLowerCase()?f=c:d=c);if(!e){if(!f){c=Fb(d||document.body,n,u);if(!c)return null;f=c.canvas;t=c.onDestroy}void 0===a.premultipliedAlpha&&
24783
+ (a.premultipliedAlpha=!0);e=Gb(f,a)}return e?{gl:e,canvas:f,container:d,extensions:m,optionalExtensions:q,pixelRatio:u,profile:r,cachedCode:k,onDone:n,onDestroy:t}:(t(),n("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function Ib(a,b){function c(b){b=b.toLowerCase();var c;try{c=d[b]=a.getExtension(b)}catch(f){}return!!c}for(var d={},f=0;f<b.extensions.length;++f){var e=b.extensions[f];if(!c(e))return b.onDestroy(),b.onDone('"'+e+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),
24784
+ null}b.optionalExtensions.forEach(c);return{extensions:d,restore:function(){Object.keys(d).forEach(function(a){if(d[a]&&!c(a))throw Error("(regl): error restoring extension "+a);})}}}function S(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=b(d);return c}function fb(a){var b,c;b=(65535<a)<<4;a>>>=b;c=(255<a)<<3;a>>>=c;b|=c;c=(15<a)<<2;a>>>=c;b|=c;c=(3<a)<<1;return b|c|a>>>c>>1}function gb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[fb(a)>>2];return 0<b.length?b.pop():
24785
+ new ArrayBuffer(a)}function b(a){c[fb(a.byteLength)>>2].push(a)}var c=S(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var e=null;switch(b){case 5120:e=new Int8Array(a(c),0,c);break;case 5121:e=new Uint8Array(a(c),0,c);break;case 5122:e=new Int16Array(a(2*c),0,c);break;case 5123:e=new Uint16Array(a(2*c),0,c);break;case 5124:e=new Int32Array(a(4*c),0,c);break;case 5125:e=new Uint32Array(a(4*c),0,c);break;case 5126:e=new Float32Array(a(4*c),0,c);break;default:return null}return e.length!==
24786
+ c?e.subarray(0,c):e},freeType:function(a){b(a.buffer)}}}function fa(a){return!!a&&"object"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&"number"===typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||P(a.data))}function hb(a,b,c,d,f,e){for(var m=0;m<b;++m)for(var q=a[m],u=0;u<c;++u)for(var r=q[u],k=0;k<d;++k)f[e++]=r[k]}function ib(a,b,c,d,f){for(var e=1,m=c+1;m<b.length;++m)e*=b[m];var q=b[c];if(4===b.length-c){var u=b[c+1],r=b[c+2];b=b[c+3];for(m=0;m<q;++m)hb(a[m],
24787
+ u,r,b,d,f),f+=e}else for(m=0;m<q;++m)ib(a[m],b,c+1,d,f),f+=e}function Ha(a){return Ia[Object.prototype.toString.call(a)]|0}function jb(a,b){for(var c=0;c<b.length;++c)a[c]=b[c]}function kb(a,b,c,d,f,e,m){for(var q=0,u=0;u<c;++u)for(var r=0;r<d;++r)a[q++]=b[f*u+e*r+m]}function Jb(a,b,c,d){function f(b){this.id=u++;this.buffer=a.createBuffer();this.type=b;this.usage=35044;this.byteLength=0;this.dimension=1;this.dtype=5121;this.persistentData=null;c.profile&&(this.stats={size:0})}function e(b,c,d){b.byteLength=
24788
+ c.byteLength;a.bufferData(b.type,c,d)}function m(a,b,c,d,h,p){a.usage=c;if(Array.isArray(b)){if(a.dtype=d||5126,0<b.length)if(Array.isArray(b[0])){h=lb(b);for(var y=d=1;y<h.length;++y)d*=h[y];a.dimension=d;b=Ua(b,h,a.dtype);e(a,b,c);p?a.persistentData=b:B.freeType(b)}else"number"===typeof b[0]?(a.dimension=h,h=B.allocType(a.dtype,b.length),jb(h,b),e(a,h,c),p?a.persistentData=h:B.freeType(h)):P(b[0])&&(a.dimension=b[0].length,a.dtype=d||Ha(b[0])||5126,b=Ua(b,[b.length,b[0].length],a.dtype),e(a,b,c),
24789
+ p?a.persistentData=b:B.freeType(b))}else if(P(b))a.dtype=d||Ha(b),a.dimension=h,e(a,b,c),p&&(a.persistentData=new Uint8Array(new Uint8Array(b.buffer)));else if(fa(b)){h=b.shape;var f=b.stride,y=b.offset,w=0,z=0,k=0,m=0;1===h.length?(w=h[0],z=1,k=f[0],m=0):2===h.length&&(w=h[0],z=h[1],k=f[0],m=f[1]);a.dtype=d||Ha(b.data)||5126;a.dimension=z;h=B.allocType(a.dtype,w*z);kb(h,b.data,w,z,k,m,y);e(a,h,c);p?a.persistentData=h:B.freeType(h)}else b instanceof ArrayBuffer&&(a.dtype=5121,a.dimension=h,e(a,b,
24790
+ c),p&&(a.persistentData=new Uint8Array(new Uint8Array(b))))}function q(c){b.bufferCount--;d(c);a.deleteBuffer(c.buffer);c.buffer=null;delete r[c.id]}var u=0,r={};f.prototype.bind=function(){a.bindBuffer(this.type,this.buffer)};f.prototype.destroy=function(){q(this)};var k=[];c.profile&&(b.getTotalBufferSize=function(){var a=0;Object.keys(r).forEach(function(b){a+=r[b].stats.size});return a});return{create:function(d,e,g,l){function h(b){var d=35044,n=null,g=0,e=0,f=1;Array.isArray(b)||P(b)||fa(b)||
24791
+ b instanceof ArrayBuffer?n=b:"number"===typeof b?g=b|0:b&&("data"in b&&(n=b.data),"usage"in b&&(d=mb[b.usage]),"type"in b&&(e=Ja[b.type]),"dimension"in b&&(f=b.dimension|0),"length"in b&&(g=b.length|0));p.bind();n?m(p,n,d,e,f,l):(g&&a.bufferData(p.type,g,d),p.dtype=e||5121,p.usage=d,p.dimension=f,p.byteLength=g);c.profile&&(p.stats.size=p.byteLength*ja[p.dtype]);return h}b.bufferCount++;var p=new f(e);r[p.id]=p;g||h(d);h._reglType="buffer";h._buffer=p;h.subdata=function(b,c){var d=(c||0)|0,n;p.bind();
24792
+ if(P(b)||b instanceof ArrayBuffer)a.bufferSubData(p.type,d,b);else if(Array.isArray(b)){if(0<b.length)if("number"===typeof b[0]){var g=B.allocType(p.dtype,b.length);jb(g,b);a.bufferSubData(p.type,d,g);B.freeType(g)}else if(Array.isArray(b[0])||P(b[0]))n=lb(b),g=Ua(b,n,p.dtype),a.bufferSubData(p.type,d,g),B.freeType(g)}else if(fa(b)){n=b.shape;var e=b.stride,l=g=0,f=0,v=0;1===n.length?(g=n[0],l=1,f=e[0],v=0):2===n.length&&(g=n[0],l=n[1],f=e[0],v=e[1]);n=Array.isArray(b.data)?p.dtype:Ha(b.data);n=B.allocType(n,
24793
+ g*l);kb(n,b.data,g,l,f,v,b.offset);a.bufferSubData(p.type,d,n);B.freeType(n)}return h};c.profile&&(h.stats=p.stats);h.destroy=function(){q(p)};return h},createStream:function(a,b){var c=k.pop();c||(c=new f(a));c.bind();m(c,b,35040,0,1,!1);return c},destroyStream:function(a){k.push(a)},clear:function(){T(r).forEach(q);k.forEach(q)},getBuffer:function(a){return a&&a._buffer instanceof f?a._buffer:null},restore:function(){T(r).forEach(function(b){b.buffer=a.createBuffer();a.bindBuffer(b.type,b.buffer);
24794
+ a.bufferData(b.type,b.persistentData||b.byteLength,b.usage)})},_initBuffer:m}}function Kb(a,b,c,d){function f(a){this.id=u++;q[this.id]=this;this.buffer=a;this.primType=4;this.type=this.vertCount=0}function e(d,e,g,l,h,f,y){d.buffer.bind();var k;e?((k=y)||P(e)&&(!fa(e)||P(e.data))||(k=b.oes_element_index_uint?5125:5123),c._initBuffer(d.buffer,e,g,k,3)):(a.bufferData(34963,f,g),d.buffer.dtype=k||5121,d.buffer.usage=g,d.buffer.dimension=3,d.buffer.byteLength=f);k=y;if(!y){switch(d.buffer.dtype){case 5121:case 5120:k=
24795
+ 5121;break;case 5123:case 5122:k=5123;break;case 5125:case 5124:k=5125}d.buffer.dtype=k}d.type=k;e=h;0>e&&(e=d.buffer.byteLength,5123===k?e>>=1:5125===k&&(e>>=2));d.vertCount=e;e=l;0>l&&(e=4,l=d.buffer.dimension,1===l&&(e=0),2===l&&(e=1),3===l&&(e=4));d.primType=e}function m(a){d.elementsCount--;delete q[a.id];a.buffer.destroy();a.buffer=null}var q={},u=0,r={uint8:5121,uint16:5123};b.oes_element_index_uint&&(r.uint32=5125);f.prototype.bind=function(){this.buffer.bind()};var k=[];return{create:function(a,
24796
+ b){function g(a){if(a)if("number"===typeof a)l(a),h.primType=4,h.vertCount=a|0,h.type=5121;else{var b=null,c=35044,d=-1,f=-1,n=0,k=0;if(Array.isArray(a)||P(a)||fa(a))b=a;else if("data"in a&&(b=a.data),"usage"in a&&(c=mb[a.usage]),"primitive"in a&&(d=Ka[a.primitive]),"count"in a&&(f=a.count|0),"type"in a&&(k=r[a.type]),"length"in a)n=a.length|0;else if(n=f,5123===k||5122===k)n*=2;else if(5125===k||5124===k)n*=4;e(h,b,c,d,f,n,k)}else l(),h.primType=4,h.vertCount=0,h.type=5121;return g}var l=c.create(null,
24797
+ 34963,!0),h=new f(l._buffer);d.elementsCount++;g(a);g._reglType="elements";g._elements=h;g.subdata=function(a,b){l.subdata(a,b);return g};g.destroy=function(){m(h)};return g},createStream:function(a){var b=k.pop();b||(b=new f(c.create(null,34963,!0,!1)._buffer));e(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){k.push(a)},getElements:function(a){return"function"===typeof a&&a._elements instanceof f?a._elements:null},clear:function(){T(q).forEach(m)}}}function ob(a){for(var b=B.allocType(5123,
24798
+ a.length),c=0;c<a.length;++c)if(isNaN(a[c]))b[c]=65535;else if(Infinity===a[c])b[c]=31744;else if(-Infinity===a[c])b[c]=64512;else{pb[0]=a[c];var d=Lb[0],f=d>>>31<<15,e=(d<<1>>>24)-127,d=d>>13&1023;b[c]=-24>e?f:-14>e?f+(d+1024>>-14-e):15<e?f+31744:f+(e+15<<10)+d}return b}function qa(a){return Array.isArray(a)||P(a)}function ra(a){return"[object "+a+"]"}function qb(a){return Array.isArray(a)&&(0===a.length||"number"===typeof a[0])}function rb(a){return Array.isArray(a)&&0!==a.length&&qa(a[0])?!0:!1}
24799
+ function R(a){return Object.prototype.toString.call(a)}function Va(a){if(!a)return!1;var b=R(a);return 0<=Mb.indexOf(b)?!0:qb(a)||rb(a)||fa(a)}function sb(a,b){36193===a.type?(a.data=ob(b),B.freeType(b)):a.data=b}function La(a,b,c,d,f,e){a="undefined"!==typeof G[a]?G[a]:U[a]*ya[b];e&&(a*=6);if(f){for(d=0;1<=c;)d+=a*c*c,c/=2;return d}return a*c*d}function Nb(a,b,c,d,f,e,m){function q(){this.format=this.internalformat=6408;this.type=5121;this.flipY=this.premultiplyAlpha=this.compressed=!1;this.unpackAlignment=
24800
+ 1;this.colorSpace=37444;this.channels=this.height=this.width=0}function u(a,b){a.internalformat=b.internalformat;a.format=b.format;a.type=b.type;a.compressed=b.compressed;a.premultiplyAlpha=b.premultiplyAlpha;a.flipY=b.flipY;a.unpackAlignment=b.unpackAlignment;a.colorSpace=b.colorSpace;a.width=b.width;a.height=b.height;a.channels=b.channels}function r(a,b){if("object"===typeof b&&b){"premultiplyAlpha"in b&&(a.premultiplyAlpha=b.premultiplyAlpha);"flipY"in b&&(a.flipY=b.flipY);"alignment"in b&&(a.unpackAlignment=
24801
+ b.alignment);"colorSpace"in b&&(a.colorSpace=Ob[b.colorSpace]);"type"in b&&(a.type=W[b.type]);var c=a.width,d=a.height,e=a.channels,h=!1;"shape"in b?(c=b.shape[0],d=b.shape[1],3===b.shape.length&&(e=b.shape[2],h=!0)):("radius"in b&&(c=d=b.radius),"width"in b&&(c=b.width),"height"in b&&(d=b.height),"channels"in b&&(e=b.channels,h=!0));a.width=c|0;a.height=d|0;a.channels=e|0;c=!1;"format"in b&&(c=b.format,d=a.internalformat=Q[c],a.format=Ea[d],c in W&&!("type"in b)&&(a.type=W[c]),c in I&&(a.compressed=
24802
+ !0),c=!0);!h&&c?a.channels=U[a.format]:h&&!c&&a.channels!==Na[a.format]&&(a.format=a.internalformat=Na[a.channels])}}function k(b){a.pixelStorei(37440,b.flipY);a.pixelStorei(37441,b.premultiplyAlpha);a.pixelStorei(37443,b.colorSpace);a.pixelStorei(3317,b.unpackAlignment)}function n(){q.call(this);this.yOffset=this.xOffset=0;this.data=null;this.needsFree=!1;this.element=null;this.needsCopy=!1}function t(a,b){var c=null;Va(b)?c=b:b&&(r(a,b),"x"in b&&(a.xOffset=b.x|0),"y"in b&&(a.yOffset=b.y|0),Va(b.data)&&
24803
+ (c=b.data));if(b.copy){var d=f.viewportWidth,e=f.viewportHeight;a.width=a.width||d-a.xOffset;a.height=a.height||e-a.yOffset;a.needsCopy=!0}else if(!c)a.width=a.width||1,a.height=a.height||1,a.channels=a.channels||4;else if(P(c))a.channels=a.channels||4,a.data=c,"type"in b||5121!==a.type||(a.type=Ia[Object.prototype.toString.call(c)]|0);else if(qb(c)){a.channels=a.channels||4;d=c;e=d.length;switch(a.type){case 5121:case 5123:case 5125:case 5126:e=B.allocType(a.type,e);e.set(d);a.data=e;break;case 36193:a.data=
24804
+ ob(d)}a.alignment=1;a.needsFree=!0}else if(fa(c)){d=c.data;Array.isArray(d)||5121!==a.type||(a.type=Ia[Object.prototype.toString.call(d)]|0);var e=c.shape,h=c.stride,g,l,v,k;3===e.length?(v=e[2],k=h[2]):k=v=1;g=e[0];l=e[1];e=h[0];h=h[1];a.alignment=1;a.width=g;a.height=l;a.channels=v;a.format=a.internalformat=Na[v];a.needsFree=!0;g=k;c=c.offset;v=a.width;k=a.height;l=a.channels;for(var n=B.allocType(36193===a.type?5126:a.type,v*k*l),x=0,F=0;F<k;++F)for(var aa=0;aa<v;++aa)for(var Fa=0;Fa<l;++Fa)n[x++]=
24805
+ d[e*aa+h*F+g*Fa+c];sb(a,n)}else if(R(c)===Wa||R(c)===Xa||R(c)===ub)R(c)===Wa||R(c)===Xa?a.element=c:a.element=c.canvas,a.width=a.element.width,a.height=a.element.height,a.channels=4;else if(R(c)===vb)a.element=c,a.width=c.width,a.height=c.height,a.channels=4;else if(R(c)===wb)a.element=c,a.width=c.naturalWidth,a.height=c.naturalHeight,a.channels=4;else if(R(c)===xb)a.element=c,a.width=c.videoWidth,a.height=c.videoHeight,a.channels=4;else if(rb(c)){d=a.width||c[0].length;e=a.height||c.length;h=a.channels;
24806
+ h=qa(c[0][0])?h||c[0][0].length:h||1;g=Pa.shape(c);v=1;for(k=0;k<g.length;++k)v*=g[k];v=B.allocType(36193===a.type?5126:a.type,v);Pa.flatten(c,g,"",v);sb(a,v);a.alignment=1;a.width=d;a.height=e;a.channels=h;a.format=a.internalformat=Na[h];a.needsFree=!0}}function g(b,c,e,h,g){var v=b.element,l=b.data,f=b.internalformat,n=b.format,y=b.type,w=b.width,x=b.height;k(b);v?a.texSubImage2D(c,g,e,h,n,y,v):b.compressed?a.compressedTexSubImage2D(c,g,e,h,f,w,x,l):b.needsCopy?(d(),a.copyTexSubImage2D(c,g,e,h,
24807
+ b.xOffset,b.yOffset,w,x)):a.texSubImage2D(c,g,e,h,w,x,n,y,l)}function l(){return Qa.pop()||new n}function h(a){a.needsFree&&B.freeType(a.data);n.call(a);Qa.push(a)}function p(){q.call(this);this.genMipmaps=!1;this.mipmapHint=4352;this.mipmask=0;this.images=Array(16)}function y(a,b,c){var d=a.images[0]=l();a.mipmask=1;d.width=a.width=b;d.height=a.height=c;d.channels=a.channels=4}function C(a,b){var c=null;if(Va(b))c=a.images[0]=l(),u(c,a),t(c,b),a.mipmask=1;else if(r(a,b),Array.isArray(b.mipmap))for(var d=
24808
+ b.mipmap,e=0;e<d.length;++e)c=a.images[e]=l(),u(c,a),c.width>>=e,c.height>>=e,t(c,d[e]),a.mipmask|=1<<e;else c=a.images[0]=l(),u(c,a),t(c,b),a.mipmask=1;u(a,a.images[0])}function w(b,c){for(var e=b.images,h=0;h<e.length&&e[h];++h){var g=e[h],v=c,l=h,f=g.element,n=g.data,y=g.internalformat,w=g.format,x=g.type,F=g.width,aa=g.height;k(g);f?a.texImage2D(v,l,w,w,x,f):g.compressed?a.compressedTexImage2D(v,l,y,F,aa,0,n):g.needsCopy?(d(),a.copyTexImage2D(v,l,w,g.xOffset,g.yOffset,F,aa,0)):a.texImage2D(v,
24809
+ l,w,F,aa,0,w,x,n||null)}}function z(){var a=S.pop()||new p;q.call(a);for(var b=a.mipmask=0;16>b;++b)a.images[b]=null;return a}function wa(a){for(var b=a.images,c=0;c<b.length;++c)b[c]&&h(b[c]),b[c]=null;S.push(a)}function E(){this.magFilter=this.minFilter=9728;this.wrapT=this.wrapS=33071;this.anisotropic=1;this.genMipmaps=!1;this.mipmapHint=4352}function nb(a,b){"min"in b&&(a.minFilter=V[b.min],0<=Pb.indexOf(a.minFilter)&&!("faces"in b)&&(a.genMipmaps=!0));"mag"in b&&(a.magFilter=na[b.mag]);var c=
24810
+ a.wrapS,d=a.wrapT;if("wrap"in b){var e=b.wrap;"string"===typeof e?c=d=oa[e]:Array.isArray(e)&&(c=oa[e[0]],d=oa[e[1]])}else"wrapS"in b&&(c=oa[b.wrapS]),"wrapT"in b&&(d=oa[b.wrapT]);a.wrapS=c;a.wrapT=d;"anisotropic"in b&&(a.anisotropic=b.anisotropic);if("mipmap"in b){c=!1;switch(typeof b.mipmap){case "string":a.mipmapHint=J[b.mipmap];c=a.genMipmaps=!0;break;case "boolean":c=a.genMipmaps=b.mipmap;break;case "object":a.genMipmaps=!1,c=!0}!c||"min"in b||(a.minFilter=9984)}}function D(c,d){a.texParameteri(d,
24811
+ 10241,c.minFilter);a.texParameteri(d,10240,c.magFilter);a.texParameteri(d,10242,c.wrapS);a.texParameteri(d,10243,c.wrapT);b.ext_texture_filter_anisotropic&&a.texParameteri(d,34046,c.anisotropic);c.genMipmaps&&(a.hint(33170,c.mipmapHint),a.generateMipmap(d))}function v(b){q.call(this);this.mipmask=0;this.internalformat=6408;this.id=Z++;this.refCount=1;this.target=b;this.texture=a.createTexture();this.unit=-1;this.bindCount=0;this.texInfo=new E;m.profile&&(this.stats={size:0})}function ba(b){a.activeTexture(33984);
24812
+ a.bindTexture(b.target,b.texture)}function za(){var b=X[0];b?a.bindTexture(b.target,b.texture):a.bindTexture(3553,null)}function A(b){var c=b.texture,d=b.unit,h=b.target;0<=d&&(a.activeTexture(33984+d),a.bindTexture(h,null),X[d]=null);a.deleteTexture(c);b.texture=null;b.params=null;b.pixels=null;b.refCount=0;delete ka[b.id];e.textureCount--}var J={"don't care":4352,"dont care":4352,nice:4354,fast:4353},oa={repeat:10497,clamp:33071,mirror:33648},na={nearest:9728,linear:9729},V=O({mipmap:9987,"nearest mipmap nearest":9984,
24813
+ "linear mipmap nearest":9985,"nearest mipmap linear":9986,"linear mipmap linear":9987},na),Ob={none:0,browser:37444},W={uint8:5121,rgba4:32819,rgb565:33635,"rgb5 a1":32820},Q={alpha:6406,luminance:6409,"luminance alpha":6410,rgb:6407,rgba:6408,rgba4:32854,"rgb5 a1":32855,rgb565:36194},I={};b.ext_srgb&&(Q.srgb=35904,Q.srgba=35906);b.oes_texture_float&&(W.float32=W["float"]=5126);b.oes_texture_half_float&&(W.float16=W["half float"]=36193);b.webgl_depth_texture&&(O(Q,{depth:6402,"depth stencil":34041}),
24814
+ O(W,{uint16:5123,uint32:5125,"depth stencil":34042}));b.webgl_compressed_texture_s3tc&&O(I,{"rgb s3tc dxt1":33776,"rgba s3tc dxt1":33777,"rgba s3tc dxt3":33778,"rgba s3tc dxt5":33779});b.webgl_compressed_texture_atc&&O(I,{"rgb atc":35986,"rgba atc explicit alpha":35987,"rgba atc interpolated alpha":34798});b.webgl_compressed_texture_pvrtc&&O(I,{"rgb pvrtc 4bppv1":35840,"rgb pvrtc 2bppv1":35841,"rgba pvrtc 4bppv1":35842,"rgba pvrtc 2bppv1":35843});b.webgl_compressed_texture_etc1&&(I["rgb etc1"]=36196);
24815
+ var K=Array.prototype.slice.call(a.getParameter(34467));Object.keys(I).forEach(function(a){var b=I[a];0<=K.indexOf(b)&&(Q[a]=b)});var G=Object.keys(Q);c.textureFormats=G;var H=[];Object.keys(Q).forEach(function(a){H[Q[a]]=a});var xa=[];Object.keys(W).forEach(function(a){xa[W[a]]=a});var L=[];Object.keys(na).forEach(function(a){L[na[a]]=a});var pa=[];Object.keys(V).forEach(function(a){pa[V[a]]=a});var ga=[];Object.keys(oa).forEach(function(a){ga[oa[a]]=a});var Ea=G.reduce(function(a,c){var d=Q[c];
24816
+ 6409===d||6406===d||6409===d||6410===d||6402===d||34041===d||b.ext_srgb&&(35904===d||35906===d)?a[d]=d:32855===d||0<=c.indexOf("rgba")?a[d]=6408:a[d]=6407;return a},{}),Qa=[],S=[],Z=0,ka={},ha=c.maxTextureUnits,X=Array(ha).map(function(){return null});O(v.prototype,{bind:function(){this.bindCount+=1;var b=this.unit;if(0>b){for(var c=0;c<ha;++c){var d=X[c];if(d){if(0<d.bindCount)continue;d.unit=-1}X[c]=this;b=c;break}m.profile&&e.maxTextureUnits<b+1&&(e.maxTextureUnits=b+1);this.unit=b;a.activeTexture(33984+
24817
+ b);a.bindTexture(this.target,this.texture)}return b},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&A(this)}});m.profile&&(e.getTotalTextureSize=function(){var a=0;Object.keys(ka).forEach(function(b){a+=ka[b].stats.size});return a});return{create2D:function(b,c){function d(a,b){var c=f.texInfo;E.call(c);var e=z();"number"===typeof a?"number"===typeof b?y(e,a|0,b|0):y(e,a|0,a|0):a?(nb(c,a),C(e,a)):y(e,1,1);c.genMipmaps&&(e.mipmask=(e.width<<1)-1);f.mipmask=e.mipmask;u(f,
24818
+ e);f.internalformat=e.internalformat;d.width=e.width;d.height=e.height;ba(f);w(e,3553);D(c,3553);za();wa(e);m.profile&&(f.stats.size=La(f.internalformat,f.type,e.width,e.height,c.genMipmaps,!1));d.format=H[f.internalformat];d.type=xa[f.type];d.mag=L[c.magFilter];d.min=pa[c.minFilter];d.wrapS=ga[c.wrapS];d.wrapT=ga[c.wrapT];return d}var f=new v(3553);ka[f.id]=f;e.textureCount++;d(b,c);d.subimage=function(a,b,c,e){b|=0;c|=0;e|=0;var v=l();u(v,f);v.width=0;v.height=0;t(v,a);v.width=v.width||(f.width>>
24819
+ e)-b;v.height=v.height||(f.height>>e)-c;ba(f);g(v,3553,b,c,e);za();h(v);return d};d.resize=function(b,c){var e=b|0,h=c|0||e;if(e===f.width&&h===f.height)return d;d.width=f.width=e;d.height=f.height=h;ba(f);for(var g=0;f.mipmask>>g;++g){var v=e>>g,l=h>>g;if(!v||!l)break;a.texImage2D(3553,g,f.format,v,l,0,f.format,f.type,null)}za();m.profile&&(f.stats.size=La(f.internalformat,f.type,e,h,!1,!1));return d};d._reglType="texture2d";d._texture=f;m.profile&&(d.stats=f.stats);d.destroy=function(){f.decRef()};
24820
+ return d},createCube:function(b,c,d,f,k,n){function p(a,b,c,d,e,h){var f,g=A.texInfo;E.call(g);for(f=0;6>f;++f)J[f]=z();if("number"===typeof a||!a)for(a=a|0||1,f=0;6>f;++f)y(J[f],a,a);else if("object"===typeof a)if(b)C(J[0],a),C(J[1],b),C(J[2],c),C(J[3],d),C(J[4],e),C(J[5],h);else if(nb(g,a),r(A,a),"faces"in a)for(a=a.faces,f=0;6>f;++f)u(J[f],A),C(J[f],a[f]);else for(f=0;6>f;++f)C(J[f],a);u(A,J[0]);A.mipmask=g.genMipmaps?(J[0].width<<1)-1:J[0].mipmask;A.internalformat=J[0].internalformat;p.width=
24821
+ J[0].width;p.height=J[0].height;ba(A);for(f=0;6>f;++f)w(J[f],34069+f);D(g,34067);za();m.profile&&(A.stats.size=La(A.internalformat,A.type,p.width,p.height,g.genMipmaps,!0));p.format=H[A.internalformat];p.type=xa[A.type];p.mag=L[g.magFilter];p.min=pa[g.minFilter];p.wrapS=ga[g.wrapS];p.wrapT=ga[g.wrapT];for(f=0;6>f;++f)wa(J[f]);return p}var A=new v(34067);ka[A.id]=A;e.cubeCount++;var J=Array(6);p(b,c,d,f,k,n);p.subimage=function(a,b,c,d,e){c|=0;d|=0;e|=0;var f=l();u(f,A);f.width=0;f.height=0;t(f,b);
24822
+ f.width=f.width||(A.width>>e)-c;f.height=f.height||(A.height>>e)-d;ba(A);g(f,34069+a,c,d,e);za();h(f);return p};p.resize=function(b){b|=0;if(b!==A.width){p.width=A.width=b;p.height=A.height=b;ba(A);for(var c=0;6>c;++c)for(var x=0;A.mipmask>>x;++x)a.texImage2D(34069+c,x,A.format,b>>x,b>>x,0,A.format,A.type,null);za();m.profile&&(A.stats.size=La(A.internalformat,A.type,p.width,p.height,!1,!0));return p}};p._reglType="textureCube";p._texture=A;m.profile&&(p.stats=A.stats);p.destroy=function(){A.decRef()};
24823
+ return p},clear:function(){for(var b=0;b<ha;++b)a.activeTexture(33984+b),a.bindTexture(3553,null),X[b]=null;T(ka).forEach(A);e.cubeCount=0;e.textureCount=0},getTexture:function(a){return null},restore:function(){for(var b=0;b<ha;++b){var c=X[b];c&&(c.bindCount=0,c.unit=-1,X[b]=null)}T(ka).forEach(function(b){b.texture=a.createTexture();a.bindTexture(b.target,b.texture);for(var c=0;32>c;++c)if(0!==(b.mipmask&1<<c))if(3553===b.target)a.texImage2D(3553,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,
24824
+ b.type,null);else for(var d=0;6>d;++d)a.texImage2D(34069+d,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);D(b.texInfo,b.target)})},refresh:function(){for(var b=0;b<ha;++b){var c=X[b];c&&(c.bindCount=0,c.unit=-1,X[b]=null);a.activeTexture(33984+b);a.bindTexture(3553,null);a.bindTexture(34067,null)}}}}function Qb(a,b,c,d,f,e){function m(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var d=a=0;b?(a=b.width,d=b.height):c&&(a=c.width,d=c.height);this.width=a;this.height=
24825
+ d}function q(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function u(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function r(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160,b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function k(a){var b=3553,c=null,d=null,e=a;"object"===typeof a&&(e=a.data,"target"in a&&(b=a.target|
24826
+ 0));a=e._reglType;"texture2d"===a?c=e:"textureCube"===a?c=e:"renderbuffer"===a&&(d=e,b=36161);return new m(b,c,d)}function n(a,b,c,e,g){if(c)return a=d.create2D({width:a,height:b,format:e,type:g}),a._texture.refCount=0,new m(3553,a,null);a=f.create({width:a,height:b,format:e});a._renderbuffer.refCount=0;return new m(36161,null,a)}function t(a){return a&&(a.texture||a.renderbuffer)}function g(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,c),a.width=b,a.height=c)}
24827
+ function l(){this.id=B++;D[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function h(a){a.colorAttachments.forEach(q);q(a.depthAttachment);q(a.stencilAttachment);q(a.depthStencilAttachment)}function p(b){a.deleteFramebuffer(b.framebuffer);b.framebuffer=null;e.framebufferCount--;delete D[b.id]}function y(b){var d;a.bindFramebuffer(36160,b.framebuffer);var e=b.colorAttachments;
24828
+ for(d=0;d<e.length;++d)r(36064+d,e[d]);for(d=e.length;d<c.maxColorAttachments;++d)a.framebufferTexture2D(36160,36064+d,3553,null,0);a.framebufferTexture2D(36160,33306,3553,null,0);a.framebufferTexture2D(36160,36096,3553,null,0);a.framebufferTexture2D(36160,36128,3553,null,0);r(36096,b.depthAttachment);r(36128,b.stencilAttachment);r(33306,b.depthStencilAttachment);a.checkFramebufferStatus(36160);a.isContextLost();a.bindFramebuffer(36160,w.next?w.next.framebuffer:null);w.cur=w.next;a.getError()}function C(a,
24829
+ b){function c(a,b){var e,f=0,g=0,l=!0,w=!0;e=null;var p=!0,v="rgba",m="uint8",r=1,C=null,q=null,pa=null,ga=!1;if("number"===typeof a)f=a|0,g=b|0||f;else if(a){"shape"in a?(g=a.shape,f=g[0],g=g[1]):("radius"in a&&(f=g=a.radius),"width"in a&&(f=a.width),"height"in a&&(g=a.height));if("color"in a||"colors"in a)e=a.color||a.colors,Array.isArray(e);if(!e){"colorCount"in a&&(r=a.colorCount|0);"colorTexture"in a&&(p=!!a.colorTexture,v="rgba4");if("colorType"in a&&(m=a.colorType,!p))if("half float"===m||
24830
+ "float16"===m)v="rgba16f";else if("float"===m||"float32"===m)v="rgba32f";"colorFormat"in a&&(v=a.colorFormat,0<=z.indexOf(v)?p=!0:0<=wa.indexOf(v)&&(p=!1))}if("depthTexture"in a||"depthStencilTexture"in a)ga=!(!a.depthTexture&&!a.depthStencilTexture);"depth"in a&&("boolean"===typeof a.depth?l=a.depth:(C=a.depth,w=!1));"stencil"in a&&("boolean"===typeof a.stencil?w=a.stencil:(q=a.stencil,l=!1));"depthStencil"in a&&("boolean"===typeof a.depthStencil?l=w=a.depthStencil:(pa=a.depthStencil,w=l=!1))}else f=
24831
+ g=1;var D=null,ba=null,E=null,B=null;if(Array.isArray(e))D=e.map(k);else if(e)D=[k(e)];else for(D=Array(r),e=0;e<r;++e)D[e]=n(f,g,p,v,m);f=f||D[0].width;g=g||D[0].height;C?ba=k(C):l&&!w&&(ba=n(f,g,ga,"depth","uint32"));q?E=k(q):w&&!l&&(E=n(f,g,!1,"stencil","uint8"));pa?B=k(pa):!C&&!q&&w&&l&&(B=n(f,g,ga,"depth stencil","depth stencil"));l=null;for(e=0;e<D.length;++e)u(D[e],f,g),D[e]&&D[e].texture&&(w=Ya[D[e].texture._texture.format]*Ra[D[e].texture._texture.type],null===l&&(l=w));u(ba,f,g);u(E,f,g);
24832
+ u(B,f,g);h(d);d.width=f;d.height=g;d.colorAttachments=D;d.depthAttachment=ba;d.stencilAttachment=E;d.depthStencilAttachment=B;c.color=D.map(t);c.depth=t(ba);c.stencil=t(E);c.depthStencil=t(B);c.width=d.width;c.height=d.height;y(d);return c}var d=new l;e.framebufferCount++;c(a,b);return O(c,{resize:function(a,b){var e=Math.max(a|0,1),f=Math.max(b|0||e,1);if(e===d.width&&f===d.height)return c;for(var h=d.colorAttachments,l=0;l<h.length;++l)g(h[l],e,f);g(d.depthAttachment,e,f);g(d.stencilAttachment,
24833
+ e,f);g(d.depthStencilAttachment,e,f);d.width=c.width=e;d.height=c.height=f;y(d);return c},_reglType:"framebuffer",_framebuffer:d,destroy:function(){p(d);h(d)},use:function(a){w.setFBO({framebuffer:c},a)}})}var w={cur:null,next:null,dirty:!1,setFBO:null},z=["rgba"],wa=["rgba4","rgb565","rgb5 a1"];b.ext_srgb&&wa.push("srgba");b.ext_color_buffer_half_float&&wa.push("rgba16f","rgb16f");b.webgl_color_buffer_float&&wa.push("rgba32f");var E=["uint8"];b.oes_texture_half_float&&E.push("half float","float16");
24834
+ b.oes_texture_float&&E.push("float","float32");var B=0,D={};return O(w,{getFramebuffer:function(a){return"function"===typeof a&&"framebuffer"===a._reglType&&(a=a._framebuffer,a instanceof l)?a:null},create:C,createCube:function(a){function b(a){var e,f={color:null},g=0,h=null;e="rgba";var l="uint8",k=1;if("number"===typeof a)g=a|0;else if(a){"shape"in a?g=a.shape[0]:("radius"in a&&(g=a.radius|0),"width"in a?g=a.width|0:"height"in a&&(g=a.height|0));if("color"in a||"colors"in a)h=a.color||a.colors,
24835
+ Array.isArray(h);h||("colorCount"in a&&(k=a.colorCount|0),"colorType"in a&&(l=a.colorType),"colorFormat"in a&&(e=a.colorFormat));"depth"in a&&(f.depth=a.depth);"stencil"in a&&(f.stencil=a.stencil);"depthStencil"in a&&(f.depthStencil=a.depthStencil)}else g=1;if(h)if(Array.isArray(h))for(a=[],e=0;e<h.length;++e)a[e]=h[e];else a=[h];else for(a=Array(k),h={radius:g,format:e,type:l},e=0;e<k;++e)a[e]=d.createCube(h);f.color=Array(a.length);for(e=0;e<a.length;++e)k=a[e],g=g||k.width,f.color[e]={target:34069,
24836
+ data:a[e]};for(e=0;6>e;++e){for(k=0;k<a.length;++k)f.color[k].target=34069+e;0<e&&(f.depth=c[0].depth,f.stencil=c[0].stencil,f.depthStencil=c[0].depthStencil);if(c[e])c[e](f);else c[e]=C(f)}return O(b,{width:g,height:g,color:a})}var c=Array(6);b(a);return O(b,{faces:c,resize:function(a){var d=a|0;if(d===b.width)return b;var e=b.color;for(a=0;a<e.length;++a)e[a].resize(d);for(a=0;6>a;++a)c[a].resize(d);b.width=b.height=d;return b},_reglType:"framebufferCube",destroy:function(){c.forEach(function(a){a.destroy()})}})},
24837
+ clear:function(){T(D).forEach(p)},restore:function(){w.cur=null;w.next=null;w.dirty=!0;T(D).forEach(function(b){b.framebuffer=a.createFramebuffer();y(b)})}})}function Za(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}function Rb(a,b,c,d,f,e,m){function q(a){if(a!==p.currentVAO){var c=b.oes_vertex_array_object;a?c.bindVertexArrayOES(a.vao):c.bindVertexArrayOES(null);p.currentVAO=a}}function u(c){if(c!==
24838
+ p.currentVAO){if(c)c.bindAttrs();else{for(var d=b.angle_instanced_arrays,e=0;e<g.length;++e){var f=g[e];f.buffer?(a.enableVertexAttribArray(e),f.buffer.bind(),a.vertexAttribPointer(e,f.size,f.type,f.normalized,f.stride,f.offfset),d&&f.divisor&&d.vertexAttribDivisorANGLE(e,f.divisor)):(a.disableVertexAttribArray(e),a.vertexAttrib4f(e,f.x,f.y,f.z,f.w))}m.elements?a.bindBuffer(34963,m.elements.buffer.buffer):a.bindBuffer(34963,null)}p.currentVAO=c}}function r(){T(h).forEach(function(a){a.destroy()})}
24839
+ function k(){this.id=++l;this.attributes=[];this.elements=null;this.ownsElements=!1;this.offset=this.count=0;this.instances=-1;this.primitive=4;var a=b.oes_vertex_array_object;this.vao=a?a.createVertexArrayOES():null;h[this.id]=this;this.buffers=[]}function n(){b.oes_vertex_array_object&&T(h).forEach(function(a){a.refresh()})}var t=c.maxAttributes,g=Array(t);for(c=0;c<t;++c)g[c]=new Za;var l=0,h={},p={Record:Za,scope:{},state:g,currentVAO:null,targetVAO:null,restore:b.oes_vertex_array_object?n:function(){},
24840
+ createVAO:function(a){function b(a){var d;Array.isArray(a)?(d=a,c.elements&&c.ownsElements&&c.elements.destroy(),c.elements=null,c.ownsElements=!1,c.offset=0,c.count=0,c.instances=-1,c.primitive=4):(a.elements?(d=a.elements,c.ownsElements?("function"===typeof d&&"elements"===d._reglType?c.elements.destroy():c.elements(d),c.ownsElements=!1):e.getElements(a.elements)?(c.elements=a.elements,c.ownsElements=!1):(c.elements=e.create(a.elements),c.ownsElements=!0)):(c.elements=null,c.ownsElements=!1),d=
24841
+ a.attributes,c.offset=0,c.count=-1,c.instances=-1,c.primitive=4,c.elements&&(c.count=c.elements._elements.vertCount,c.primitive=c.elements._elements.primType),"offset"in a&&(c.offset=a.offset|0),"count"in a&&(c.count=a.count|0),"instances"in a&&(c.instances=a.instances|0),"primitive"in a&&(c.primitive=Ka[a.primitive]));a={};var g=c.attributes;g.length=d.length;for(var h=0;h<d.length;++h){var l=d[h],k=g[h]=new Za,n=l.data||l;if(Array.isArray(n)||P(n)||fa(n)){var p;c.buffers[h]&&(p=c.buffers[h],P(n)&&
24842
+ p._buffer.byteLength>=n.byteLength?p.subdata(n):(p.destroy(),c.buffers[h]=null));c.buffers[h]||(p=c.buffers[h]=f.create(l,34962,!1,!0));k.buffer=f.getBuffer(p);k.size=k.buffer.dimension|0;k.normalized=!1;k.type=k.buffer.dtype;k.offset=0;k.stride=0;k.divisor=0;k.state=1;a[h]=1}else f.getBuffer(l)?(k.buffer=f.getBuffer(l),k.size=k.buffer.dimension|0,k.normalized=!1,k.type=k.buffer.dtype,k.offset=0,k.stride=0,k.divisor=0,k.state=1):f.getBuffer(l.buffer)?(k.buffer=f.getBuffer(l.buffer),k.size=(+l.size||
24843
+ k.buffer.dimension)|0,k.normalized=!!l.normalized||!1,k.type="type"in l?Ja[l.type]:k.buffer.dtype,k.offset=(l.offset||0)|0,k.stride=(l.stride||0)|0,k.divisor=(l.divisor||0)|0,k.state=1):"x"in l&&(k.x=+l.x||0,k.y=+l.y||0,k.z=+l.z||0,k.w=+l.w||0,k.state=2)}for(p=0;p<c.buffers.length;++p)!a[p]&&c.buffers[p]&&(c.buffers[p].destroy(),c.buffers[p]=null);c.refresh();return b}var c=new k;d.vaoCount+=1;b.destroy=function(){for(var a=0;a<c.buffers.length;++a)c.buffers[a]&&c.buffers[a].destroy();c.buffers.length=
24844
+ 0;c.ownsElements&&(c.elements.destroy(),c.elements=null,c.ownsElements=!1);c.destroy()};b._vao=c;b._reglType="vao";return b(a)},getVAO:function(a){return"function"===typeof a&&a._vao?a._vao:null},destroyBuffer:function(b){for(var c=0;c<g.length;++c){var d=g[c];d.buffer===b&&(a.disableVertexAttribArray(c),d.buffer=null)}},setVAO:b.oes_vertex_array_object?q:u,clear:b.oes_vertex_array_object?r:function(){}};k.prototype.bindAttrs=function(){for(var c=b.angle_instanced_arrays,d=this.attributes,f=0;f<d.length;++f){var g=
24845
+ d[f];g.buffer?(a.enableVertexAttribArray(f),a.bindBuffer(34962,g.buffer.buffer),a.vertexAttribPointer(f,g.size,g.type,g.normalized,g.stride,g.offset),c&&g.divisor&&c.vertexAttribDivisorANGLE(f,g.divisor)):(a.disableVertexAttribArray(f),a.vertexAttrib4f(f,g.x,g.y,g.z,g.w))}for(c=d.length;c<t;++c)a.disableVertexAttribArray(c);(c=e.getElements(this.elements))?a.bindBuffer(34963,c.buffer.buffer):a.bindBuffer(34963,null)};k.prototype.refresh=function(){var a=b.oes_vertex_array_object;a&&(a.bindVertexArrayOES(this.vao),
24846
+ this.bindAttrs(),p.currentVAO=null,a.bindVertexArrayOES(null))};k.prototype.destroy=function(){if(this.vao){var a=b.oes_vertex_array_object;this===p.currentVAO&&(p.currentVAO=null,a.bindVertexArrayOES(null));a.deleteVertexArrayOES(this.vao);this.vao=null}this.ownsElements&&(this.elements.destroy(),this.elements=null,this.ownsElements=!1);h[this.id]&&(delete h[this.id],--d.vaoCount)};return p}function Sb(a,b,c,d){function f(a,b,c,d){this.name=a;this.id=b;this.location=c;this.info=d}function e(a,b){for(var c=
24847
+ 0;c<a.length;++c)if(a[c].id===b.id){a[c].location=b.location;return}a.push(b)}function m(c,d,e){e=35632===c?r:k;var f=e[d];if(!f){var g=b.str(d),f=a.createShader(c);a.shaderSource(f,g);a.compileShader(f);e[d]=f}return f}function q(a,b){this.id=g++;this.fragId=a;this.vertId=b;this.program=null;this.uniforms=[];this.attributes=[];this.refCount=1;d.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function u(c,g,k){var n;n=m(35632,c.fragId);var t=m(35633,c.vertId);g=c.program=a.createProgram();
24848
+ a.attachShader(g,n);a.attachShader(g,t);if(k)for(n=0;n<k.length;++n)t=k[n],a.bindAttribLocation(g,t[0],t[1]);a.linkProgram(g);t=a.getProgramParameter(g,35718);d.profile&&(c.stats.uniformsCount=t);var r=c.uniforms;for(n=0;n<t;++n)if(k=a.getActiveUniform(g,n))if(1<k.size)for(var q=0;q<k.size;++q){var u=k.name.replace("[0]","["+q+"]");e(r,new f(u,b.id(u),a.getUniformLocation(g,u),k))}else e(r,new f(k.name,b.id(k.name),a.getUniformLocation(g,k.name),k));t=a.getProgramParameter(g,35721);d.profile&&(c.stats.attributesCount=
24849
+ t);c=c.attributes;for(n=0;n<t;++n)(k=a.getActiveAttrib(g,n))&&e(c,new f(k.name,b.id(k.name),a.getAttribLocation(g,k.name),k))}var r={},k={},n={},t=[],g=0;d.profile&&(c.getMaxUniformsCount=function(){var a=0;t.forEach(function(b){b.stats.uniformsCount>a&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;t.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var b=a.deleteShader.bind(a);T(r).forEach(b);r={};T(k).forEach(b);
24850
+ k={};t.forEach(function(b){a.deleteProgram(b.program)});t.length=0;n={};c.shaderCount=0},program:function(b,d,e,f){var g=n[d];g||(g=n[d]={});var m=g[b];if(m&&(m.refCount++,!f))return m;var z=new q(d,b);c.shaderCount++;u(z,e,f);m||(g[b]=z);t.push(z);return O(z,{destroy:function(){z.refCount--;if(0>=z.refCount){a.deleteProgram(z.program);var b=t.indexOf(z);t.splice(b,1);c.shaderCount--}0>=g[z.vertId].refCount&&(a.deleteShader(k[z.vertId]),delete k[z.vertId],delete n[z.fragId][z.vertId]);Object.keys(n[z.fragId]).length||
24851
+ (a.deleteShader(r[z.fragId]),delete r[z.fragId],delete n[z.fragId])}})},restore:function(){r={};k={};for(var a=0;a<t.length;++a)u(t[a],null,t[a].attributes.map(function(a){return[a.location,a.name]}))},shader:m,frag:-1,vert:-1}}function Tb(a,b,c,d,f,e,m){function q(e){var f;f=null===b.next?5121:b.next.colorAttachments[0].texture._texture.type;var n=0,t=0,g=d.framebufferWidth,l=d.framebufferHeight,h=null;P(e)?h=e:e&&(n=e.x|0,t=e.y|0,g=(e.width||d.framebufferWidth-n)|0,l=(e.height||d.framebufferHeight-
24852
+ t)|0,h=e.data||null);c();e=g*l*4;h||(5121===f?h=new Uint8Array(e):5126===f&&(h=h||new Float32Array(e)));a.pixelStorei(3333,4);a.readPixels(n,t,g,l,6408,f,h);return h}function u(a){var c;b.setFBO({framebuffer:a.framebuffer},function(){c=q(a)});return c}return function(a){return a&&"framebuffer"in a?u(a):q(a)}}function Ub(a){for(var b=Array(a.length>>2),c=0;c<b.length;c++)b[c]=0;for(c=0;c<8*a.length;c+=8)b[c>>5]|=(a.charCodeAt(c/8)&255)<<24-c%32;var d=8*a.length;a=[1779033703,-1150833019,1013904242,
24853
+ -1521486534,1359893119,-1694144372,528734635,1541459225];var c=Array(64),f,e,m,q,u,r,k,n,t,g,l;b[d>>5]|=128<<24-d%32;b[(d+64>>9<<4)+15]=d;for(n=0;n<b.length;n+=16){d=a[0];f=a[1];e=a[2];m=a[3];q=a[4];u=a[5];r=a[6];k=a[7];for(t=0;64>t;t++){if(16>t)c[t]=b[t+n];else{g=t;l=c[t-2];l=Y(l,17)^Y(l,19)^l>>>10;l=H(l,c[t-7]);var h;h=c[t-15];h=Y(h,7)^Y(h,18)^h>>>3;c[g]=H(H(l,h),c[t-16])}g=q;g=Y(g,6)^Y(g,11)^Y(g,25);g=H(H(H(H(k,g),q&u^~q&r),Vb[t]),c[t]);k=d;k=Y(k,2)^Y(k,13)^Y(k,22);l=H(k,d&f^d&e^f&e);k=r;r=u;u=
24854
+ q;q=H(m,g);m=e;e=f;f=d;d=H(g,l)}a[0]=H(d,a[0]);a[1]=H(f,a[1]);a[2]=H(e,a[2]);a[3]=H(m,a[3]);a[4]=H(q,a[4]);a[5]=H(u,a[5]);a[6]=H(r,a[6]);a[7]=H(k,a[7])}b="";for(c=0;c<32*a.length;c+=8)b+=String.fromCharCode(a[c>>5]>>>24-c%32&255);return b}function Wb(a){for(var b="",c,d=0;d<a.length;d++)c=a.charCodeAt(d),b+="0123456789abcdef".charAt(c>>>4&15)+"0123456789abcdef".charAt(c&15);return b}function Xb(a){for(var b="",c=-1,d,f;++c<a.length;)d=a.charCodeAt(c),f=c+1<a.length?a.charCodeAt(c+1):0,55296<=d&&56319>=
24855
+ d&&56320<=f&&57343>=f&&(d=65536+((d&1023)<<10)+(f&1023),c++),127>=d?b+=String.fromCharCode(d):2047>=d?b+=String.fromCharCode(192|d>>>6&31,128|d&63):65535>=d?b+=String.fromCharCode(224|d>>>12&15,128|d>>>6&63,128|d&63):2097151>=d&&(b+=String.fromCharCode(240|d>>>18&7,128|d>>>12&63,128|d>>>6&63,128|d&63));return b}function Y(a,b){return a>>>b|a<<32-b}function H(a,b){var c=(a&65535)+(b&65535);return(a>>16)+(b>>16)+(c>>16)<<16|c&65535}function Aa(a){return Array.prototype.slice.call(a)}function Ba(a){return Aa(a).join("")}
24856
+ function Yb(a){function b(){var a=[],b=[];return O(function(){a.push.apply(a,Aa(arguments))},{def:function(){var c="v"+f++;b.push(c);0<arguments.length&&(a.push(c,"="),a.push.apply(a,Aa(arguments)),a.push(";"));return c},toString:function(){return Ba([0<b.length?"var "+b.join(",")+";":"",Ba(a)])}})}function c(){function a(b,e){d(b,e,"=",c.def(b,e),";")}var c=b(),d=b(),e=c.toString,f=d.toString;return O(function(){c.apply(c,Aa(arguments))},{def:c.def,entry:c,exit:d,save:a,set:function(b,d,e){a(b,d);
24857
+ c(b,d,"=",e,";")},toString:function(){return e()+f()}})}var d=a&&a.cache,f=0,e=[],m=[],q=[],u=b(),r={};return{global:u,link:function(a,b){var c=b&&b.stable;if(!c)for(var d=0;d<m.length;++d)if(m[d]===a&&!q[d])return e[d];d="g"+f++;e.push(d);m.push(a);q.push(c);return d},block:b,proc:function(a,b){function d(){var a="a"+e.length;e.push(a);return a}var e=[];b=b||0;for(var f=0;f<b;++f)d();var f=c(),h=f.toString;return r[a]=O(f,{arg:d,toString:function(){return Ba(["function(",e.join(),"){",h(),"}"])}})},
24858
+ scope:c,cond:function(){var a=Ba(arguments),b=c(),d=c(),e=b.toString,f=d.toString;return O(b,{then:function(){b.apply(b,Aa(arguments));return this},"else":function(){d.apply(d,Aa(arguments));return this},toString:function(){var b=f();b&&(b="else{"+b+"}");return Ba(["if(",a,"){",e(),"}",b])}})},compile:function(){var a=['"use strict";',u,"return {"];Object.keys(r).forEach(function(b){a.push('"',b,'":',r[b].toString(),",")});a.push("}");var b=Ba(a).replace(/;/g,";\n").replace(/}/g,"}\n").replace(/{/g,
24859
+ "{\n"),c;if(d&&(c=Wb(Ub(Xb(b))),d[c]))return d[c].apply(null,m);b=Function.apply(null,e.concat(b));d&&(d[c]=b);return b.apply(null,m)}}}function Sa(a){return Array.isArray(a)||P(a)||fa(a)}function yb(a){return a.sort(function(a,c){return"viewport"===a?-1:"viewport"===c?1:a<c?-1:1})}function K(a,b,c,d){this.thisDep=a;this.contextDep=b;this.propDep=c;this.append=d}function la(a){return a&&!(a.thisDep||a.contextDep||a.propDep)}function E(a){return new K(!1,!1,!1,a)}function L(a,b){var c=a.type;if(0===
24860
+ c)return c=a.data.length,new K(!0,1<=c,2<=c,b);if(4===c)return c=a.data,new K(c.thisDep,c.contextDep,c.propDep,b);if(5===c)return new K(!1,!1,!1,b);if(6===c){for(var d=c=!1,f=!1,e=0;e<a.data.length;++e){var m=a.data[e];1===m.type?f=!0:2===m.type?d=!0:3===m.type?c=!0:0===m.type?(c=!0,m=m.data,1<=m&&(d=!0),2<=m&&(f=!0)):4===m.type&&(c=c||m.data.thisDep,d=d||m.data.contextDep,f=f||m.data.propDep)}return new K(c,d,f,b)}return new K(3===c,2===c,1===c,b)}function Zb(a,b,c,d,f,e,m,q,u,r,k,n,t,g,l,h){function p(a){return a.replace(".",
24861
+ "_")}function y(a,b,c){var d=p(a);Ma.push(a);Da[d]=ta[d]=!!c;ua[d]=b}function C(a,b,c){var d=p(a);Ma.push(a);Array.isArray(c)?(ta[d]=c.slice(),Da[d]=c.slice()):ta[d]=Da[d]=c;ma[d]=b}function w(){var a=Yb({cache:l}),c=a.link,d=a.global;a.id=ra++;a.batchId="0";var e=c(tb),f=a.shared={props:"a0"};Object.keys(tb).forEach(function(a){f[a]=d.def(e,".",a)});var g=a.next={},k=a.current={};Object.keys(ma).forEach(function(a){Array.isArray(ta[a])&&(g[a]=d.def(f.next,".",a),k[a]=d.def(f.current,".",a))});var ca=
24862
+ a.constants={};Object.keys(Oa).forEach(function(a){ca[a]=d.def(JSON.stringify(Oa[a]))});a.invoke=function(b,d){switch(d.type){case 0:var e=["this",f.context,f.props,a.batchId];return b.def(c(d.data),".call(",e.slice(0,Math.max(d.data.length+1,4)),")");case 1:return b.def(f.props,d.data);case 2:return b.def(f.context,d.data);case 3:return b.def("this",d.data);case 4:return d.data.append(a,b),d.data.ref;case 5:return d.data.toString();case 6:return d.data.map(function(c){return a.invoke(b,c)})}};a.attribCache=
24863
+ {};var N={};a.scopeAttrib=function(a){a=b.id(a);if(a in N)return N[a];var d=r.scope[a];d||(d=r.scope[a]=new ha);return N[a]=c(d)};return a}function z(a){var b=a["static"];a=a.dynamic;var c;if("profile"in b){var d=!!b.profile;c=E(function(a,b){return d});c.enable=d}else if("profile"in a){var e=a.profile;c=L(e,function(a,b){return a.invoke(b,e)})}return c}function B(a,b){var c=a["static"],d=a.dynamic;if("framebuffer"in c){var e=c.framebuffer;return e?(e=q.getFramebuffer(e),E(function(a,b){var c=a.link(e),
24864
+ d=a.shared;b.set(d.framebuffer,".next",c);d=d.context;b.set(d,".framebufferWidth",c+".width");b.set(d,".framebufferHeight",c+".height");return c})):E(function(a,b){var c=a.shared;b.set(c.framebuffer,".next","null");c=c.context;b.set(c,".framebufferWidth",c+".drawingBufferWidth");b.set(c,".framebufferHeight",c+".drawingBufferHeight");return"null"})}if("framebuffer"in d){var f=d.framebuffer;return L(f,function(a,b){var c=a.invoke(b,f),d=a.shared,e=d.framebuffer,c=b.def(e,".getFramebuffer(",c,")");b.set(e,
24865
+ ".next",c);d=d.context;b.set(d,".framebufferWidth",c+"?"+c+".width:"+d+".drawingBufferWidth");b.set(d,".framebufferHeight",c+"?"+c+".height:"+d+".drawingBufferHeight");return c})}return null}function H(a,b,c){function d(a){if(a in e){var c=e[a];a=!0;var x=c.x|0,g=c.y|0,k,h;"width"in c?k=c.width|0:a=!1;"height"in c?h=c.height|0:a=!1;return new K(!a&&b&&b.thisDep,!a&&b&&b.contextDep,!a&&b&&b.propDep,function(a,b){var d=a.shared.context,e=k;"width"in c||(e=b.def(d,".","framebufferWidth","-",x));var f=
24866
+ h;"height"in c||(f=b.def(d,".","framebufferHeight","-",g));return[x,g,e,f]})}if(a in f){var aa=f[a];a=L(aa,function(a,b){var c=a.invoke(b,aa),d=a.shared.context,e=b.def(c,".x|0"),f=b.def(c,".y|0"),N=b.def('"width" in ',c,"?",c,".width|0:","(",d,".","framebufferWidth","-",e,")"),c=b.def('"height" in ',c,"?",c,".height|0:","(",d,".","framebufferHeight","-",f,")");return[e,f,N,c]});b&&(a.thisDep=a.thisDep||b.thisDep,a.contextDep=a.contextDep||b.contextDep,a.propDep=a.propDep||b.propDep);return a}return b?
24867
+ new K(b.thisDep,b.contextDep,b.propDep,function(a,b){var c=a.shared.context;return[0,0,b.def(c,".","framebufferWidth"),b.def(c,".","framebufferHeight")]}):null}var e=a["static"],f=a.dynamic;if(a=d("viewport")){var g=a;a=new K(a.thisDep,a.contextDep,a.propDep,function(a,b){var c=g.append(a,b),d=a.shared.context;b.set(d,".viewportWidth",c[2]);b.set(d,".viewportHeight",c[3]);return c})}return{viewport:a,scissor_box:d("scissor.box")}}function G(a,b){var c=a["static"];if("string"===typeof c.frag&&"string"===
24868
+ typeof c.vert){if(0<Object.keys(b.dynamic).length)return null;var c=b["static"],d=Object.keys(c);if(0<d.length&&"number"===typeof c[d[0]]){for(var e=[],f=0;f<d.length;++f)e.push([c[d[f]]|0,d[f]]);return e}}return null}function D(a,c,d){function e(a){if(a in f){var c=b.id(f[a]);a=E(function(){return c});a.id=c;return a}if(a in g){var d=g[a];return L(d,function(a,b){var c=a.invoke(b,d);return b.def(a.shared.strings,".id(",c,")")})}return null}var f=a["static"],g=a.dynamic,h=e("frag"),ca=e("vert"),N=
24869
+ null;la(h)&&la(ca)?(N=k.program(ca.id,h.id,null,d),a=E(function(a,b){return a.link(N)})):a=new K(h&&h.thisDep||ca&&ca.thisDep,h&&h.contextDep||ca&&ca.contextDep,h&&h.propDep||ca&&ca.propDep,function(a,b){var c=a.shared.shader,d;d=h?h.append(a,b):b.def(c,".","frag");var e;e=ca?ca.append(a,b):b.def(c,".","vert");return b.def(c+".program("+e+","+d+")")});return{frag:h,vert:ca,progVar:a,program:N}}function v(a,b){function c(a,b){if(a in d){var e=d[a]|0;b?g.offset=e:g.instances=e;return E(function(a,c){b&&
24870
+ (a.OFFSET=e);return e})}if(a in f){var x=f[a];return L(x,function(a,c){var d=a.invoke(c,x);b&&(a.OFFSET=d);return d})}if(b){if(N)return E(function(a,b){return a.OFFSET=0});if(k)return new K(h.thisDep,h.contextDep,h.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.vao+".currentVAO.offset:0")})}else if(k)return new K(h.thisDep,h.contextDep,h.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.vao+".currentVAO.instances:-1")});return null}var d=a["static"],
24871
+ f=a.dynamic,g={},k=!1,h=function(){if("vao"in d){var a=d.vao;null!==a&&null===r.getVAO(a)&&(a=r.createVAO(a));k=!0;g.vao=a;return E(function(b){var c=r.getVAO(a);return c?b.link(c):"null"})}if("vao"in f){k=!0;var b=f.vao;return L(b,function(a,c){var d=a.invoke(c,b);return c.def(a.shared.vao+".getVAO("+d+")")})}return null}(),N=!1,ia=function(){if("elements"in d){var a=d.elements;g.elements=a;if(Sa(a)){var b=g.elements=e.create(a,!0),a=e.getElements(b);N=!0}else a&&(a=e.getElements(a),N=!0);b=E(function(b,
24872
+ c){if(a){var d=b.link(a);return b.ELEMENTS=d}return b.ELEMENTS=null});b.value=a;return b}if("elements"in f){N=!0;var c=f.elements;return L(c,function(a,b){var d=a.shared,e=d.isBufferArgs,d=d.elements,f=a.invoke(b,c),N=b.def("null"),e=b.def(e,"(",f,")"),f=a.cond(e).then(N,"=",d,".createStream(",f,");")["else"](N,"=",d,".getElements(",f,");");b.entry(f);b.exit(a.cond(e).then(d,".destroyStream(",N,");"));return a.ELEMENTS=N})}return k?new K(h.thisDep,h.contextDep,h.propDep,function(a,b){return b.def(a.shared.vao+
24873
+ ".currentVAO?"+a.shared.elements+".getElements("+a.shared.vao+".currentVAO.elements):null")}):null}(),va=c("offset",!0),l=function(){if("primitive"in d){var a=d.primitive;g.primitive=a;return E(function(b,c){return Ka[a]})}if("primitive"in f){var b=f.primitive;return L(b,function(a,c){var d=a.constants.primTypes,e=a.invoke(c,b);return c.def(d,"[",e,"]")})}return N?la(ia)?ia.value?E(function(a,b){return b.def(a.ELEMENTS,".primType")}):E(function(){return 4}):new K(ia.thisDep,ia.contextDep,ia.propDep,
24874
+ function(a,b){var c=a.ELEMENTS;return b.def(c,"?",c,".primType:",4)}):k?new K(h.thisDep,h.contextDep,h.propDep,function(a,b){return b.def(a.shared.vao+".currentVAO?"+a.shared.vao+".currentVAO.primitive:4")}):null}(),n=function(){if("count"in d){var a=d.count|0;g.count=a;return E(function(){return a})}if("count"in f){var b=f.count;return L(b,function(a,c){return a.invoke(c,b)})}return N?la(ia)?ia?va?new K(va.thisDep,va.contextDep,va.propDep,function(a,b){return b.def(a.ELEMENTS,".vertCount-",a.OFFSET)}):
24875
+ E(function(a,b){return b.def(a.ELEMENTS,".vertCount")}):E(function(){return-1}):new K(ia.thisDep||va.thisDep,ia.contextDep||va.contextDep,ia.propDep||va.propDep,function(a,b){var c=a.ELEMENTS;return a.OFFSET?b.def(c,"?",c,".vertCount-",a.OFFSET,":-1"):b.def(c,"?",c,".vertCount:-1")}):k?new K(h.thisDep,h.contextDep,h.propDep,function(a,b){return b.def(a.shared.vao,".currentVAO?",a.shared.vao,".currentVAO.count:-1")}):null}(),m=c("instances",!1);return{elements:ia,primitive:l,count:n,instances:m,offset:va,
24876
+ vao:h,vaoActive:k,elementsActive:N,"static":g}}function ba(a,b){var c=a["static"],d=a.dynamic,e={};Ma.forEach(function(a){function b(N,g){if(a in c){var x=N(c[a]);e[f]=E(function(){return x})}else if(a in d){var F=d[a];e[f]=L(F,function(a,b){return g(a,b,a.invoke(b,F))})}}var f=p(a);switch(a){case "cull.enable":case "blend.enable":case "dither":case "stencil.enable":case "depth.enable":case "scissor.enable":case "polygonOffset.enable":case "sample.alpha":case "sample.enable":case "depth.mask":return b(function(a){return a},
24877
+ function(a,b,c){return c});case "depth.func":return b(function(a){return $a[a]},function(a,b,c){return b.def(a.constants.compareFuncs,"[",c,"]")});case "depth.range":return b(function(a){return a},function(a,b,c){a=b.def("+",c,"[0]");b=b.def("+",c,"[1]");return[a,b]});case "blend.func":return b(function(a){return[Ga["srcRGB"in a?a.srcRGB:a.src],Ga["dstRGB"in a?a.dstRGB:a.dst],Ga["srcAlpha"in a?a.srcAlpha:a.src],Ga["dstAlpha"in a?a.dstAlpha:a.dst]]},function(a,b,c){function d(a,e){return b.def('"',
24878
+ a,e,'" in ',c,"?",c,".",a,e,":",c,".",a)}a=a.constants.blendFuncs;var e=d("src","RGB"),f=d("dst","RGB"),e=b.def(a,"[",e,"]"),g=b.def(a,"[",d("src","Alpha"),"]"),f=b.def(a,"[",f,"]");a=b.def(a,"[",d("dst","Alpha"),"]");return[e,f,g,a]});case "blend.equation":return b(function(a){if("string"===typeof a)return[X[a],X[a]];if("object"===typeof a)return[X[a.rgb],X[a.alpha]]},function(a,b,c){var d=a.constants.blendEquations,e=b.def(),f=b.def();a=a.cond("typeof ",c,'==="string"');a.then(e,"=",f,"=",d,"[",
24879
+ c,"];");a["else"](e,"=",d,"[",c,".rgb];",f,"=",d,"[",c,".alpha];");b(a);return[e,f]});case "blend.color":return b(function(a){return S(4,function(b){return+a[b]})},function(a,b,c){return S(4,function(a){return b.def("+",c,"[",a,"]")})});case "stencil.mask":return b(function(a){return a|0},function(a,b,c){return b.def(c,"|0")});case "stencil.func":return b(function(a){return[$a[a.cmp||"keep"],a.ref||0,"mask"in a?a.mask:-1]},function(a,b,c){a=b.def('"cmp" in ',c,"?",a.constants.compareFuncs,"[",c,".cmp]",
24880
+ ":",7680);var d=b.def(c,".ref|0");b=b.def('"mask" in ',c,"?",c,".mask|0:-1");return[a,d,b]});case "stencil.opFront":case "stencil.opBack":return b(function(b){return["stencil.opBack"===a?1029:1028,Ta[b.fail||"keep"],Ta[b.zfail||"keep"],Ta[b.zpass||"keep"]]},function(b,c,d){function e(a){return c.def('"',a,'" in ',d,"?",f,"[",d,".",a,"]:",7680)}var f=b.constants.stencilOps;return["stencil.opBack"===a?1029:1028,e("fail"),e("zfail"),e("zpass")]});case "polygonOffset.offset":return b(function(a){return[a.factor|
24881
+ 0,a.units|0]},function(a,b,c){a=b.def(c,".factor|0");b=b.def(c,".units|0");return[a,b]});case "cull.face":return b(function(a){var b=0;"front"===a?b=1028:"back"===a&&(b=1029);return b},function(a,b,c){return b.def(c,'==="front"?',1028,":",1029)});case "lineWidth":return b(function(a){return a},function(a,b,c){return c});case "frontFace":return b(function(a){return zb[a]},function(a,b,c){return b.def(c+'==="cw"?2304:2305')});case "colorMask":return b(function(a){return a.map(function(a){return!!a})},
24882
+ function(a,b,c){return S(4,function(a){return"!!"+c+"["+a+"]"})});case "sample.coverage":return b(function(a){return["value"in a?a.value:1,!!a.invert]},function(a,b,c){a=b.def('"value" in ',c,"?+",c,".value:1");b=b.def("!!",c,".invert");return[a,b]})}});return e}function P(a,b){var c=a["static"],d=a.dynamic,e={};Object.keys(c).forEach(function(a){var b=c[a],d;if("number"===typeof b||"boolean"===typeof b)d=E(function(){return b});else if("function"===typeof b){var f=b._reglType;if("texture2d"===f||
24883
+ "textureCube"===f)d=E(function(a){return a.link(b)});else if("framebuffer"===f||"framebufferCube"===f)d=E(function(a){return a.link(b.color[0])})}else qa(b)&&(d=E(function(a){return a.global.def("[",S(b.length,function(a){return b[a]}),"]")}));d.value=b;e[a]=d});Object.keys(d).forEach(function(a){var b=d[a];e[a]=L(b,function(a,c){return a.invoke(c,b)})});return e}function A(a,c){var d=a["static"],e=a.dynamic,g={};Object.keys(d).forEach(function(a){var c=d[a],e=b.id(a),x=new ha;if(Sa(c))x.state=1,
24884
+ x.buffer=f.getBuffer(f.create(c,34962,!1,!0)),x.type=0;else{var F=f.getBuffer(c);if(F)x.state=1,x.buffer=F,x.type=0;else if("constant"in c){var h=c.constant;x.buffer="null";x.state=2;"number"===typeof h?x.x=h:Ca.forEach(function(a,b){b<h.length&&(x[a]=h[b])})}else{var F=Sa(c.buffer)?f.getBuffer(f.create(c.buffer,34962,!1,!0)):f.getBuffer(c.buffer),k=c.offset|0,l=c.stride|0,n=c.size|0,Fa=!!c.normalized,m=0;"type"in c&&(m=Ja[c.type]);c=c.divisor|0;x.buffer=F;x.state=1;x.size=n;x.normalized=Fa;x.type=
24885
+ m||F.dtype;x.offset=k;x.stride=l;x.divisor=c}}g[a]=E(function(a,b){var c=a.attribCache;if(e in c)return c[e];var d={isStream:!1};Object.keys(x).forEach(function(a){d[a]=x[a]});x.buffer&&(d.buffer=a.link(x.buffer),d.type=d.type||d.buffer+".dtype");return c[e]=d})});Object.keys(e).forEach(function(a){var b=e[a];g[a]=L(b,function(a,c){function d(a){c(F[a],"=",e,".",a,"|0;")}var e=a.invoke(c,b),f=a.shared,g=a.constants,x=f.isBufferArgs,f=f.buffer,F={isStream:c.def(!1)},h=new ha;h.state=1;Object.keys(h).forEach(function(a){F[a]=
24886
+ c.def(""+h[a])});var k=F.buffer,l=F.type;c("if(",x,"(",e,")){",F.isStream,"=true;",k,"=",f,".createStream(",34962,",",e,");",l,"=",k,".dtype;","}else{",k,"=",f,".getBuffer(",e,");","if(",k,"){",l,"=",k,".dtype;",'}else if("constant" in ',e,"){",F.state,"=",2,";","if(typeof "+e+'.constant === "number"){',F[Ca[0]],"=",e,".constant;",Ca.slice(1).map(function(a){return F[a]}).join("="),"=0;","}else{",Ca.map(function(a,b){return F[a]+"="+e+".constant.length>"+b+"?"+e+".constant["+b+"]:0;"}).join(""),"}}else{",
24887
+ "if(",x,"(",e,".buffer)){",k,"=",f,".createStream(",34962,",",e,".buffer);","}else{",k,"=",f,".getBuffer(",e,".buffer);","}",l,'="type" in ',e,"?",g.glTypes,"[",e,".type]:",k,".dtype;",F.normalized,"=!!",e,".normalized;");d("size");d("offset");d("stride");d("divisor");c("}}");c.exit("if(",F.isStream,"){",f,".destroyStream(",k,");","}");return F})});return g}function J(a){var b=a["static"],c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=E(function(a,b){return"number"===typeof c||
24888
+ "boolean"===typeof c?""+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=L(b,function(a,c){return a.invoke(c,b)})});return d}function oa(a,b,d,e,f){function g(a){var b=l[a];b&&(m[a]=b)}var k=G(a,b),h=B(a,f),l=H(a,h,f),n=v(a,f),m=ba(a,f),q=D(a,f,k);g("viewport");g(p("scissor.box"));var t=0<Object.keys(m).length,h={framebuffer:h,draw:n,shader:q,state:m,dirty:t,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};h.profile=z(a,f);h.uniforms=P(d,f);h.drawVAO=h.scopeVAO=n.vao;if(!h.drawVAO&&
24889
+ q.program&&!k&&c.angle_instanced_arrays&&n["static"].elements){var u=!0;a=q.program.attributes.map(function(a){a=b["static"][a];u=u&&!!a;return a});if(u&&0<a.length){var $b=r.getVAO(r.createVAO({attributes:a,elements:n["static"].elements}));h.drawVAO=new K(null,null,null,function(a,b){return a.link($b)});h.useVAO=!0}}k?h.useVAO=!0:h.attributes=A(b,f);h.context=J(e,f);return h}function na(a,b,c){var d=a.shared.context,e=a.scope();Object.keys(c).forEach(function(f){b.save(d,"."+f);var g=c[f].append(a,
24890
+ b);Array.isArray(g)?e(d,".",f,"=[",g.join(),"];"):e(d,".",f,"=",g,";")});b(e)}function V(a,b,c,d){var e=a.shared,f=e.gl,g=e.framebuffer,h;R&&(h=b.def(e.extensions,".webgl_draw_buffers"));var k=a.constants,e=k.drawBuffer,k=k.backBuffer;a=c?c.append(a,b):b.def(g,".next");d||b("if(",a,"!==",g,".cur){");b("if(",a,"){",f,".bindFramebuffer(",36160,",",a,".framebuffer);");R&&b(h,".drawBuffersWEBGL(",e,"[",a,".colorAttachments.length]);");b("}else{",f,".bindFramebuffer(",36160,",null);");R&&b(h,".drawBuffersWEBGL(",
24891
+ k,");");b("}",g,".cur=",a,";");d||b("}")}function T(a,b,c){var d=a.shared,e=d.gl,f=a.current,g=a.next,h=d.current,k=d.next,l=a.cond(h,".dirty");Ma.forEach(function(b){b=p(b);if(!(b in c.state)){var d,F;if(b in g){d=g[b];F=f[b];var n=S(ta[b].length,function(a){return l.def(d,"[",a,"]")});l(a.cond(n.map(function(a,b){return a+"!=="+F+"["+b+"]"}).join("||")).then(e,".",ma[b],"(",n,");",n.map(function(a,b){return F+"["+b+"]="+a}).join(";"),";"))}else d=l.def(k,".",b),n=a.cond(d,"!==",h,".",b),l(n),b in
24892
+ ua?n(a.cond(d).then(e,".enable(",ua[b],");")["else"](e,".disable(",ua[b],");"),h,".",b,"=",d,";"):n(e,".",ma[b],"(",d,");",h,".",b,"=",d,";")}});0===Object.keys(c.state).length&&l(h,".dirty=false;");b(l)}function W(a,b,c,d){var e=a.shared,f=a.current,g=e.current,h=e.gl,k;yb(Object.keys(c)).forEach(function(e){var l=c[e];if(!d||d(l)){var n=l.append(a,b);if(ua[e]){var m=ua[e];la(l)?(k=a.link(n,{stable:!0}),b(a.cond(k).then(h,".enable(",m,");")["else"](h,".disable(",m,");")),b(g,".",e,"=",k,";")):(b(a.cond(n).then(h,
24893
+ ".enable(",m,");")["else"](h,".disable(",m,");")),b(g,".",e,"=",n,";"))}else if(qa(n)){var p=f[e];b(h,".",ma[e],"(",n,");",n.map(function(a,b){return p+"["+b+"]="+a}).join(";"),";")}else la(l)?(k=a.link(n,{stable:!0}),b(h,".",ma[e],"(",k,");",g,".",e,"=",k,";")):b(h,".",ma[e],"(",n,");",g,".",e,"=",n,";")}})}function Q(a,b){sa&&(a.instancing=b.def(a.shared.extensions,".angle_instanced_arrays"))}function I(a,b,c,d,e){function f(){return"undefined"===typeof performance?"Date.now()":"performance.now()"}
24894
+ function h(a){t=b.def();a(t,"=",f(),";");"string"===typeof e?a(m,".count+=",e,";"):a(m,".count++;");g&&(d?(r=b.def(),a(r,"=",q,".getNumPendingQueries();")):a(q,".beginQuery(",m,");"))}function k(a){a(m,".cpuTime+=",f(),"-",t,";");g&&(d?a(q,".pushScopeStats(",r,",",q,".getNumPendingQueries(),",m,");"):a(q,".endQuery();"))}function l(a){var c=b.def(p,".profile");b(p,".profile=",a,";");b.exit(p,".profile=",c,";")}var n=a.shared,m=a.stats,p=n.current,q=n.timer;c=c.profile;var t,r;if(c){if(la(c)){c.enable?
24895
+ (h(b),k(b.exit),l("true")):l("false");return}c=c.append(a,b);l(c)}else c=b.def(p,".profile");n=a.block();h(n);b("if(",c,"){",n,"}");a=a.block();k(a);b.exit("if(",c,"){",a,"}")}function M(a,b,c,d,e){function f(a){switch(a){case 35664:case 35667:case 35671:return 2;case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;default:return 1}}function g(c,d,e){function f(){b("if(!",m,".buffer){",n,".enableVertexAttribArray(",l,");}");var c=e.type,g;g=e.size?b.def(e.size,"||",
24896
+ d):d;b("if(",m,".type!==",c,"||",m,".size!==",g,"||",q.map(function(a){return m+"."+a+"!=="+e[a]}).join("||"),"){",n,".bindBuffer(",34962,",",p,".buffer);",n,".vertexAttribPointer(",[l,g,c,e.normalized,e.stride,e.offset],");",m,".type=",c,";",m,".size=",g,";",q.map(function(a){return m+"."+a+"="+e[a]+";"}).join(""),"}");sa&&(c=e.divisor,b("if(",m,".divisor!==",c,"){",a.instancing,".vertexAttribDivisorANGLE(",[l,c],");",m,".divisor=",c,";}"))}function k(){b("if(",m,".buffer){",n,".disableVertexAttribArray(",
24897
+ l,");",m,".buffer=null;","}if(",Ca.map(function(a,b){return m+"."+a+"!=="+aa[b]}).join("||"),"){",n,".vertexAttrib4f(",l,",",aa,");",Ca.map(function(a,b){return m+"."+a+"="+aa[b]+";"}).join(""),"}")}var n=h.gl,l=b.def(c,".location"),m=b.def(h.attributes,"[",l,"]");c=e.state;var p=e.buffer,aa=[e.x,e.y,e.z,e.w],q=["buffer","normalized","offset","stride"];1===c?f():2===c?k():(b("if(",c,"===",1,"){"),f(),b("}else{"),k(),b("}"))}var h=a.shared;d.forEach(function(d){var h=d.name,k=c.attributes[h],l;if(k){if(!e(k))return;
24898
+ l=k.append(a,b)}else{if(!e(Ab))return;var n=a.scopeAttrib(h);l={};Object.keys(new ha).forEach(function(a){l[a]=b.def(n,".",a)})}g(a.link(d),f(d.info.type),l)})}function U(a,c,d,e,f,g){for(var h=a.shared,k=h.gl,l,n=0;n<e.length;++n){var m=e[n],p=m.name,q=m.info.type,t=d.uniforms[p],m=a.link(m)+".location",r;if(t){if(!f(t))continue;if(la(t)){p=t.value;if(35678===q||35680===q)q=a.link(p._texture||p.color[0]._texture),c(k,".uniform1i(",m,",",q+".bind());"),c.exit(q,".unbind();");else if(35674===q||35675===
24899
+ q||35676===q)p=a.global.def("new Float32Array(["+Array.prototype.slice.call(p)+"])"),t=2,35675===q?t=3:35676===q&&(t=4),c(k,".uniformMatrix",t,"fv(",m,",false,",p,");");else{switch(q){case 5126:l="1f";break;case 35664:l="2f";break;case 35665:l="3f";break;case 35666:l="4f";break;case 35670:l="1i";break;case 5124:l="1i";break;case 35671:l="2i";break;case 35667:l="2i";break;case 35672:l="3i";break;case 35668:l="3i";break;case 35673:l="4i";break;case 35669:l="4i"}c(k,".uniform",l,"(",m,",",qa(p)?Array.prototype.slice.call(p):
24900
+ p,");")}continue}else r=t.append(a,c)}else{if(!f(Ab))continue;r=c.def(h.uniforms,"[",b.id(p),"]")}35678===q?c("if(",r,"&&",r,'._reglType==="framebuffer"){',r,"=",r,".color[0];","}"):35680===q&&c("if(",r,"&&",r,'._reglType==="framebufferCube"){',r,"=",r,".color[0];","}");p=1;switch(q){case 35678:case 35680:q=c.def(r,"._texture");c(k,".uniform1i(",m,",",q,".bind());");c.exit(q,".unbind();");continue;case 5124:case 35670:l="1i";break;case 35667:case 35671:l="2i";p=2;break;case 35668:case 35672:l="3i";
24901
+ p=3;break;case 35669:case 35673:l="4i";p=4;break;case 5126:l="1f";break;case 35664:l="2f";p=2;break;case 35665:l="3f";p=3;break;case 35666:l="4f";p=4;break;case 35674:l="Matrix2fv";break;case 35675:l="Matrix3fv";break;case 35676:l="Matrix4fv"}if("M"===l.charAt(0)){c(k,".uniform",l,"(",m,",");var m=Math.pow(q-35674+2,2),u=a.global.def("new Float32Array(",m,")");Array.isArray(r)?c("false,(",S(m,function(a){return u+"["+a+"]="+r[a]}),",",u,")"):c("false,(Array.isArray(",r,")||",r," instanceof Float32Array)?",
24902
+ r,":(",S(m,function(a){return u+"["+a+"]="+r+"["+a+"]"}),",",u,")");c(");")}else{if(1<p){for(var q=[],v=[],t=0;t<p;++t)Array.isArray(r)?v.push(r[t]):v.push(c.def(r+"["+t+"]")),g&&q.push(c.def());g&&c("if(!",a.batchId,"||",q.map(function(a,b){return a+"!=="+v[b]}).join("||"),"){",q.map(function(a,b){return a+"="+v[b]+";"}).join(""));c(k,".uniform",l,"(",m,",",v.join(","),");")}else g&&(q=c.def(),c("if(!",a.batchId,"||",q,"!==",r,"){",q,"=",r,";")),c(k,".uniform",l,"(",m,",",r,");");g&&c("}")}}}function Y(a,
24903
+ b,c,d){function e(f){var g=n[f];return g?g.contextDep&&d.contextDynamic||g.propDep?g.append(a,c):g.append(a,b):b.def(l,".",f)}function f(){function a(){c(u,".drawElementsInstancedANGLE(",[p,t,v,q+"<<(("+v+"-5121)>>1)",r],");")}function b(){c(u,".drawArraysInstancedANGLE(",[p,q,t,r],");")}m&&"null"!==m?y?a():(c("if(",m,"){"),a(),c("}else{"),b(),c("}")):b()}function g(){function a(){c(k+".drawElements("+[p,t,v,q+"<<(("+v+"-5121)>>1)"]+");")}function b(){c(k+".drawArrays("+[p,q,t]+");")}m&&"null"!==
24904
+ m?y?a():(c("if(",m,"){"),a(),c("}else{"),b(),c("}")):b()}var h=a.shared,k=h.gl,l=h.draw,n=d.draw,m=function(){var e=n.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f);n.elementsActive&&f("if("+e+")"+k+".bindBuffer(34963,"+e+".buffer.buffer);")}else e=f.def(),f(e,"=",l,".","elements",";","if(",e,"){",k,".bindBuffer(",34963,",",e,".buffer.buffer);}","else if(",h.vao,".currentVAO){",e,"=",a.shared.elements+".getElements("+h.vao,".currentVAO.elements);",ja?"":"if("+
24905
+ e+")"+k+".bindBuffer(34963,"+e+".buffer.buffer);","}");return e}(),p=e("primitive"),q=e("offset"),t=function(){var e=n.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(l,".","count");return e}();if("number"===typeof t){if(0===t)return}else c("if(",t,"){"),c.exit("}");var r,u;sa&&(r=e("instances"),u=a.instancing);var v=m+".type",y=n.elements&&la(n.elements)&&!n.vaoActive;sa&&("number"!==typeof r||0<=r)?"string"===typeof r?(c("if(",r,">0){"),f(),c("}else if(",
24906
+ r,"<0){"),g(),c("}")):f():g()}function xa(a,b,c,d,e){b=w();e=b.proc("body",e);sa&&(b.instancing=e.def(b.shared.extensions,".angle_instanced_arrays"));a(b,e,c,d);return b.compile().body}function da(a,b,c,d){Q(a,b);c.useVAO?c.drawVAO?b(a.shared.vao,".setVAO(",c.drawVAO.append(a,b),");"):b(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(b(a.shared.vao,".setVAO(null);"),M(a,b,c,d.attributes,function(){return!0}));U(a,b,c,d.uniforms,function(){return!0},!1);Y(a,b,b,c)}function pa(a,b){var c=a.proc("draw",
24907
+ 1);Q(a,c);na(a,c,b.context);V(a,c,b.framebuffer);T(a,c,b);W(a,c,b.state);I(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,".useProgram(",d,".program);");if(b.shader.program)da(a,c,b,b.shader.program);else{c(a.shared.vao,".setVAO(null);");var e=a.global.def("{}"),f=c.def(d,".id"),g=c.def(e,"[",f,"]");c(a.cond(g).then(g,".call(this,a0);")["else"](g,"=",e,"[",f,"]=",a.link(function(c){return xa(da,a,b,c,1)}),"(",d,");",g,".call(this,a0);"))}0<Object.keys(b.state).length&&c(a.shared.current,
24908
+ ".dirty=true;");a.shared.vao&&c(a.shared.vao,".setVAO(null);")}function ga(a,b,c,d){function e(){return!0}a.batchId="a1";Q(a,b);M(a,b,c,d.attributes,e);U(a,b,c,d.uniforms,e,!1);Y(a,b,b,c)}function Ea(a,b,c,d){function e(a){return a.contextDep&&g||a.propDep}function f(a){return!e(a)}Q(a,b);var g=c.contextDep,h=b.def(),k=b.def();a.shared.props=k;a.batchId=h;var l=a.scope(),n=a.scope();b(l.entry,"for(",h,"=0;",h,"<","a1",";++",h,"){",k,"=","a0","[",h,"];",n,"}",l.exit);c.needsContext&&na(a,n,c.context);
24909
+ c.needsFramebuffer&&V(a,n,c.framebuffer);W(a,n,c.state,e);c.profile&&e(c.profile)&&I(a,n,c,!1,!0);d?(c.useVAO?c.drawVAO?e(c.drawVAO)?n(a.shared.vao,".setVAO(",c.drawVAO.append(a,n),");"):l(a.shared.vao,".setVAO(",c.drawVAO.append(a,l),");"):l(a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);"):(l(a.shared.vao,".setVAO(null);"),M(a,l,c,d.attributes,f),M(a,n,c,d.attributes,e)),U(a,l,c,d.uniforms,f,!1),U(a,n,c,d.uniforms,e,!0),Y(a,l,n,c)):(b=a.global.def("{}"),d=c.shader.progVar.append(a,n),k=n.def(d,
24910
+ ".id"),l=n.def(b,"[",k,"]"),n(a.shared.gl,".useProgram(",d,".program);","if(!",l,"){",l,"=",b,"[",k,"]=",a.link(function(b){return xa(ga,a,c,b,2)}),"(",d,");}",l,".call(this,a0[",h,"],",h,");"))}function Qa(a,b){function c(a){return a.contextDep&&e||a.propDep}var d=a.proc("batch",2);a.batchId="0";Q(a,d);var e=!1,f=!0;Object.keys(b.context).forEach(function(a){e=e||b.context[a].propDep});e||(na(a,d,b.context),f=!1);var g=b.framebuffer,h=!1;g?(g.propDep?e=h=!0:g.contextDep&&e&&(h=!0),h||V(a,d,g)):V(a,
24911
+ d,null);b.state.viewport&&b.state.viewport.propDep&&(e=!0);T(a,d,b);W(a,d,b.state,function(a){return!c(a)});b.profile&&c(b.profile)||I(a,d,b,!1,"a1");b.contextDep=e;b.needsContext=f;b.needsFramebuffer=h;f=b.shader.progVar;if(f.contextDep&&e||f.propDep)Ea(a,d,b,null);else if(f=f.append(a,d),d(a.shared.gl,".useProgram(",f,".program);"),b.shader.program)Ea(a,d,b,b.shader.program);else{d(a.shared.vao,".setVAO(null);");var g=a.global.def("{}"),h=d.def(f,".id"),k=d.def(g,"[",h,"]");d(a.cond(k).then(k,".call(this,a0,a1);")["else"](k,
24912
+ "=",g,"[",h,"]=",a.link(function(c){return xa(Ea,a,b,c,2)}),"(",f,");",k,".call(this,a0,a1);"))}0<Object.keys(b.state).length&&d(a.shared.current,".dirty=true;");a.shared.vao&&d(a.shared.vao,".setVAO(null);")}function ea(a,c){function d(b){var g=c.shader[b];g&&(g=g.append(a,e),isNaN(g)?e.set(f.shader,"."+b,g):e.set(f.shader,"."+b,a.link(g,{stable:!0})))}var e=a.proc("scope",3);a.batchId="a2";var f=a.shared,g=f.current;na(a,e,c.context);c.framebuffer&&c.framebuffer.append(a,e);yb(Object.keys(c.state)).forEach(function(b){var d=
24913
+ c.state[b],g=d.append(a,e);qa(g)?g.forEach(function(c,d){isNaN(c)?e.set(a.next[b],"["+d+"]",c):e.set(a.next[b],"["+d+"]",a.link(c,{stable:!0}))}):la(d)?e.set(f.next,"."+b,a.link(g,{stable:!0})):e.set(f.next,"."+b,g)});I(a,e,c,!0,!0);["elements","offset","count","instances","primitive"].forEach(function(b){var d=c.draw[b];d&&(d=d.append(a,e),isNaN(d)?e.set(f.draw,"."+b,d):e.set(f.draw,"."+b,a.link(d),{stable:!0}))});Object.keys(c.uniforms).forEach(function(d){var g=c.uniforms[d].append(a,e);Array.isArray(g)&&
24914
+ (g="["+g.map(function(b){return isNaN(b)?b:a.link(b,{stable:!0})})+"]");e.set(f.uniforms,"["+a.link(b.id(d),{stable:!0})+"]",g)});Object.keys(c.attributes).forEach(function(b){var d=c.attributes[b].append(a,e),f=a.scopeAttrib(b);Object.keys(new ha).forEach(function(a){e.set(f,"."+a,d[a])})});if(c.scopeVAO){var h=c.scopeVAO.append(a,e);isNaN(h)?e.set(f.vao,".targetVAO",h):e.set(f.vao,".targetVAO",a.link(h,{stable:!0}))}d("vert");d("frag");0<Object.keys(c.state).length&&(e(g,".dirty=true;"),e.exit(g,
24915
+ ".dirty=true;"));e("a1(",a.shared.context,",a0,",a.batchId,");")}function fa(a){if("object"===typeof a&&!qa(a)){for(var b=Object.keys(a),c=0;c<b.length;++c)if(Z.isDynamic(a[b[c]]))return!0;return!1}}function ka(a,b,c){function d(a,b){g.forEach(function(c){var d=e[c];Z.isDynamic(d)&&(d=a.invoke(b,d),b(n,".",c,"=",d,";"))})}var e=b["static"][c];if(e&&fa(e)){var f=a.global,g=Object.keys(e),h=!1,k=!1,l=!1,n=a.global.def("{}");g.forEach(function(b){var c=e[b];if(Z.isDynamic(c))"function"===typeof c&&(c=
24916
+ e[b]=Z.unbox(c)),b=L(c,null),h=h||b.thisDep,l=l||b.propDep,k=k||b.contextDep;else{f(n,".",b,"=");switch(typeof c){case "number":f(c);break;case "string":f('"',c,'"');break;case "object":Array.isArray(c)&&f("[",c.join(),"]");break;default:f(a.link(c))}f(";")}});b.dynamic[c]=new Z.DynamicVariable(4,{thisDep:h,contextDep:k,propDep:l,ref:n,append:d});delete b["static"][c]}}var ha=r.Record,X={add:32774,subtract:32778,"reverse subtract":32779};c.ext_blend_minmax&&(X.min=32775,X.max=32776);var sa=c.angle_instanced_arrays,
24917
+ R=c.webgl_draw_buffers,ja=c.oes_vertex_array_object,ta={dirty:!0,profile:h.profile},Da={},Ma=[],ua={},ma={};y("dither",3024);y("blend.enable",3042);C("blend.color","blendColor",[0,0,0,0]);C("blend.equation","blendEquationSeparate",[32774,32774]);C("blend.func","blendFuncSeparate",[1,0,1,0]);y("depth.enable",2929,!0);C("depth.func","depthFunc",513);C("depth.range","depthRange",[0,1]);C("depth.mask","depthMask",!0);C("colorMask","colorMask",[!0,!0,!0,!0]);y("cull.enable",2884);C("cull.face","cullFace",
24918
+ 1029);C("frontFace","frontFace",2305);C("lineWidth","lineWidth",1);y("polygonOffset.enable",32823);C("polygonOffset.offset","polygonOffset",[0,0]);y("sample.alpha",32926);y("sample.enable",32928);C("sample.coverage","sampleCoverage",[1,!1]);y("stencil.enable",2960);C("stencil.mask","stencilMask",-1);C("stencil.func","stencilFunc",[519,0,-1]);C("stencil.opFront","stencilOpSeparate",[1028,7680,7680,7680]);C("stencil.opBack","stencilOpSeparate",[1029,7680,7680,7680]);y("scissor.enable",3089);C("scissor.box",
24919
+ "scissor",[0,0,a.drawingBufferWidth,a.drawingBufferHeight]);C("viewport","viewport",[0,0,a.drawingBufferWidth,a.drawingBufferHeight]);var tb={gl:a,context:t,strings:b,next:Da,current:ta,draw:n,elements:e,buffer:f,shader:k,attributes:r.state,vao:r,uniforms:u,framebuffer:q,extensions:c,timer:g,isBufferArgs:Sa},Oa={primTypes:Ka,compareFuncs:$a,blendFuncs:Ga,blendEquations:X,stencilOps:Ta,glTypes:Ja,orientationType:zb};R&&(Oa.backBuffer=[1029],Oa.drawBuffer=S(d.maxDrawbuffers,function(a){return 0===a?
24920
+ [0]:S(a,function(a){return 36064+a})}));var ra=0;return{next:Da,current:ta,procs:function(){var a=w(),b=a.proc("poll"),e=a.proc("refresh"),f=a.block();b(f);e(f);var g=a.shared,h=g.gl,k=g.next,l=g.current;f(l,".dirty=false;");V(a,b);V(a,e,null,!0);var n;sa&&(n=a.link(sa));c.oes_vertex_array_object&&e(a.link(c.oes_vertex_array_object),".bindVertexArrayOES(null);");var g=e.def(g.attributes),m=e.def(0),p=a.cond(m,".buffer");p.then(h,".enableVertexAttribArray(i);",h,".bindBuffer(",34962,",",m,".buffer.buffer);",
24921
+ h,".vertexAttribPointer(i,",m,".size,",m,".type,",m,".normalized,",m,".stride,",m,".offset);")["else"](h,".disableVertexAttribArray(i);",h,".vertexAttrib4f(i,",m,".x,",m,".y,",m,".z,",m,".w);",m,".buffer=null;");var q=a.link(d.maxAttributes,{stable:!0});e("for(var i=0;i<",q,";++i){",m,"=",g,"[i];",p,"}");sa&&e("for(var i=0;i<",q,";++i){",n,".vertexAttribDivisorANGLE(i,",g,"[i].divisor);","}");e(a.shared.vao,".currentVAO=null;",a.shared.vao,".setVAO(",a.shared.vao,".targetVAO);");Object.keys(ua).forEach(function(c){var d=
24922
+ ua[c],g=f.def(k,".",c),n=a.block();n("if(",g,"){",h,".enable(",d,")}else{",h,".disable(",d,")}",l,".",c,"=",g,";");e(n);b("if(",g,"!==",l,".",c,"){",n,"}")});Object.keys(ma).forEach(function(c){var d=ma[c],g=ta[c],n,m,p=a.block();p(h,".",d,"(");qa(g)?(d=g.length,n=a.global.def(k,".",c),m=a.global.def(l,".",c),p(S(d,function(a){return n+"["+a+"]"}),");",S(d,function(a){return m+"["+a+"]="+n+"["+a+"];"}).join("")),b("if(",S(d,function(a){return n+"["+a+"]!=="+m+"["+a+"]"}).join("||"),"){",p,"}")):(n=
24923
+ f.def(k,".",c),m=f.def(l,".",c),p(n,");",l,".",c,"=",n,";"),b("if(",n,"!==",m,"){",p,"}"));e(p)});return a.compile()}(),compile:function(a,b,c,d,e){var f=w();f.stats=f.link(e);Object.keys(b["static"]).forEach(function(a){ka(f,b,a)});ac.forEach(function(b){ka(f,a,b)});var g=oa(a,b,c,d,f);g.shader.program&&(g.shader.program.attributes.sort(function(a,b){return a.name<b.name?-1:1}),g.shader.program.uniforms.sort(function(a,b){return a.name<b.name?-1:1}));pa(f,g);ea(f,g);Qa(f,g);return O(f.compile(),
24924
+ {destroy:function(){g.shader.program.destroy()}})}}}function Bb(a,b){for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}var O=function(a,b){for(var c=Object.keys(b),d=0;d<c.length;++d)a[c[d]]=b[c[d]];return a},Db=0,Z={DynamicVariable:da,define:function(a,b){return new da(a,bb(b+""))},isDynamic:function(a){return"function"===typeof a&&!a._reglType||a instanceof da},unbox:cb,accessor:bb},ab={next:"function"===typeof requestAnimationFrame?function(a){return requestAnimationFrame(a)}:function(a){return setTimeout(a,
24925
+ 16)},cancel:"function"===typeof cancelAnimationFrame?function(a){return cancelAnimationFrame(a)}:clearTimeout},Cb="undefined"!==typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date},B=gb();B.zero=gb();var bc=function(a,b){var c=1;b.ext_texture_filter_anisotropic&&(c=a.getParameter(34047));var d=1,f=1;b.webgl_draw_buffers&&(d=a.getParameter(34852),f=a.getParameter(36063));var e=!!b.oes_texture_float;if(e){e=a.createTexture();a.bindTexture(3553,e);a.texImage2D(3553,
24926
+ 0,6408,1,1,0,6408,5126,null);var m=a.createFramebuffer();a.bindFramebuffer(36160,m);a.framebufferTexture2D(36160,36064,3553,e,0);a.bindTexture(3553,null);if(36053!==a.checkFramebufferStatus(36160))e=!1;else{a.viewport(0,0,1,1);a.clearColor(1,0,0,1);a.clear(16384);var q=B.allocType(5126,4);a.readPixels(0,0,1,1,6408,5126,q);a.getError()?e=!1:(a.deleteFramebuffer(m),a.deleteTexture(e),e=1===q[0]);B.freeType(q)}}q=!0;"undefined"!==typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||
24927
+ /Edge/.test(navigator.userAgent))||(q=a.createTexture(),m=B.allocType(5121,36),a.activeTexture(33984),a.bindTexture(34067,q),a.texImage2D(34069,0,6408,3,3,0,6408,5121,m),B.freeType(m),a.bindTexture(34067,null),a.deleteTexture(q),q=!a.getError());return{colorBits:[a.getParameter(3410),a.getParameter(3411),a.getParameter(3412),a.getParameter(3413)],depthBits:a.getParameter(3414),stencilBits:a.getParameter(3415),subpixelBits:a.getParameter(3408),extensions:Object.keys(b).filter(function(a){return!!b[a]}),
24928
+ maxAnisotropic:c,maxDrawbuffers:d,maxColorAttachments:f,pointSizeDims:a.getParameter(33901),lineWidthDims:a.getParameter(33902),maxViewportDims:a.getParameter(3386),maxCombinedTextureUnits:a.getParameter(35661),maxCubeMapSize:a.getParameter(34076),maxRenderbufferSize:a.getParameter(34024),maxTextureUnits:a.getParameter(34930),maxTextureSize:a.getParameter(3379),maxAttributes:a.getParameter(34921),maxVertexUniforms:a.getParameter(36347),maxVertexTextureUnits:a.getParameter(35660),maxVaryingVectors:a.getParameter(36348),
24929
+ maxFragmentUniforms:a.getParameter(36349),glsl:a.getParameter(35724),renderer:a.getParameter(7937),vendor:a.getParameter(7936),version:a.getParameter(7938),readFloat:e,npotTextureCube:q}},P=function(a){return a instanceof Uint8Array||a instanceof Uint16Array||a instanceof Uint32Array||a instanceof Int8Array||a instanceof Int16Array||a instanceof Int32Array||a instanceof Float32Array||a instanceof Float64Array||a instanceof Uint8ClampedArray},T=function(a){return Object.keys(a).map(function(b){return a[b]})},
24930
+ Pa={shape:function(a){for(var b=[];a.length;a=a[0])b.push(a.length);return b},flatten:function(a,b,c,d){var f=1;if(b.length)for(var e=0;e<b.length;++e)f*=b[e];else f=0;c=d||B.allocType(c,f);switch(b.length){case 0:break;case 1:d=b[0];for(b=0;b<d;++b)c[b]=a[b];break;case 2:d=b[0];b=b[1];for(e=f=0;e<d;++e)for(var m=a[e],q=0;q<b;++q)c[f++]=m[q];break;case 3:hb(a,b[0],b[1],b[2],c,0);break;default:ib(a,b,0,c,0)}return c}},Ia={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,
24931
+ "[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121},Ja={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,"float":5126,float32:5126},mb={dynamic:35048,stream:35040,"static":35044},Ua=Pa.flatten,lb=Pa.shape,ja=[];ja[5120]=1;ja[5122]=2;ja[5124]=4;ja[5121]=1;ja[5123]=2;ja[5125]=4;ja[5126]=4;var Ka={points:0,point:0,lines:1,line:1,triangles:4,
24932
+ triangle:4,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},pb=new Float32Array(1),Lb=new Uint32Array(pb.buffer),Pb=[9984,9986,9985,9987],Na=[0,6409,6410,6407,6408],U={};U[6409]=U[6406]=U[6402]=1;U[34041]=U[6410]=2;U[6407]=U[35904]=3;U[6408]=U[35906]=4;var Wa=ra("HTMLCanvasElement"),Xa=ra("OffscreenCanvas"),ub=ra("CanvasRenderingContext2D"),vb=ra("ImageBitmap"),wb=ra("HTMLImageElement"),xb=ra("HTMLVideoElement"),Mb=Object.keys(Ia).concat([Wa,Xa,ub,vb,wb,xb]),ya=[];ya[5121]=1;ya[5126]=
24933
+ 4;ya[36193]=2;ya[5123]=2;ya[5125]=4;var G=[];G[32854]=2;G[32855]=2;G[36194]=2;G[34041]=4;G[33776]=.5;G[33777]=.5;G[33778]=1;G[33779]=1;G[35986]=.5;G[35987]=1;G[34798]=1;G[35840]=.5;G[35841]=.25;G[35842]=.5;G[35843]=.25;G[36196]=.5;var M=[];M[32854]=2;M[32855]=2;M[36194]=2;M[33189]=2;M[36168]=1;M[34041]=4;M[35907]=4;M[34836]=16;M[34842]=8;M[34843]=6;var cc=function(a,b,c,d,f){function e(a){this.id=r++;this.refCount=1;this.renderbuffer=a;this.format=32854;this.height=this.width=0;f.profile&&(this.stats=
24934
+ {size:0})}function m(b){var c=b.renderbuffer;a.bindRenderbuffer(36161,null);a.deleteRenderbuffer(c);b.renderbuffer=null;b.refCount=0;delete k[b.id];d.renderbufferCount--}var q={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};b.ext_srgb&&(q.srgba=35907);b.ext_color_buffer_half_float&&(q.rgba16f=34842,q.rgb16f=34843);b.webgl_color_buffer_float&&(q.rgba32f=34836);var u=[];Object.keys(q).forEach(function(a){u[q[a]]=a});var r=0,k={};e.prototype.decRef=function(){0>=
24935
+ --this.refCount&&m(this)};f.profile&&(d.getTotalRenderbufferSize=function(){var a=0;Object.keys(k).forEach(function(b){a+=k[b].stats.size});return a});return{create:function(b,c){function g(b,c){var d=0,e=0,k=32854;"object"===typeof b&&b?("shape"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):("radius"in b&&(d=e=b.radius|0),"width"in b&&(d=b.width|0),"height"in b&&(e=b.height|0)),"format"in b&&(k=q[b.format])):"number"===typeof b?(d=b|0,e="number"===typeof c?c|0:d):b||(d=e=1);if(d!==l.width||e!==l.height||k!==
24936
+ l.format)return g.width=l.width=d,g.height=l.height=e,l.format=k,a.bindRenderbuffer(36161,l.renderbuffer),a.renderbufferStorage(36161,k,d,e),f.profile&&(l.stats.size=M[l.format]*l.width*l.height),g.format=u[l.format],g}var l=new e(a.createRenderbuffer());k[l.id]=l;d.renderbufferCount++;g(b,c);g.resize=function(b,c){var d=b|0,e=c|0||d;if(d===l.width&&e===l.height)return g;g.width=l.width=d;g.height=l.height=e;a.bindRenderbuffer(36161,l.renderbuffer);a.renderbufferStorage(36161,l.format,d,e);f.profile&&
24937
+ (l.stats.size=M[l.format]*l.width*l.height);return g};g._reglType="renderbuffer";g._renderbuffer=l;f.profile&&(g.stats=l.stats);g.destroy=function(){l.decRef()};return g},clear:function(){T(k).forEach(m)},restore:function(){T(k).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,null)}}},Ya=[];Ya[6408]=4;Ya[6407]=3;var Ra=[];Ra[5121]=1;Ra[5126]=4;Ra[36193]=2;var Vb=[1116352408,
24938
+ 1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,
24939
+ 275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],Ca=["x","y","z","w"],ac="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Ga={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,
24940
+ "dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},$a={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Ta={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},zb={cw:2304,ccw:2305},
24941
+ Ab=new K(!1,!1,!1,function(){}),dc=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=null}function d(a,b,d){var e=m.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;q.push(e)}if(!b.ext_disjoint_timer_query)return null;var f=[],e=[],m=[],q=[],u=[],r=[];return{beginQuery:function(a){var c=f.pop()||b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);e.push(c);d(e.length-1,e.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},
24942
+ pushScopeStats:d,update:function(){var a,c;a=e.length;if(0!==a){r.length=Math.max(r.length,a+1);u.length=Math.max(u.length,a+1);u[0]=0;var d=r[0]=0;for(c=a=0;c<e.length;++c){var g=e[c];b.ext_disjoint_timer_query.getQueryObjectEXT(g,34919)?(d+=b.ext_disjoint_timer_query.getQueryObjectEXT(g,34918),f.push(g)):e[a++]=g;u[c+1]=d;r[c+1]=a}e.length=a;for(c=a=0;c<q.length;++c){var d=q[c],l=d.startQueryIndex,g=d.endQueryIndex;d.sum+=u[g]-u[l];l=r[l];g=r[g];g===l?(d.stats.gpuTime+=d.sum/1E6,m.push(d)):(d.startQueryIndex=
24943
+ l,d.endQueryIndex=g,q[a++]=d)}q.length=a}},getNumPendingQueries:function(){return e.length},clear:function(){f.push.apply(f,e);for(var a=0;a<f.length;a++)b.ext_disjoint_timer_query.deleteQueryEXT(f[a]);e.length=0;f.length=0},restore:function(){e.length=0;f.length=0}}};return function(a){function b(){if(0===I.length)z&&z.update(),R=null;else{R=ab.next(b);k();for(var a=I.length-1;0<=a;--a){var c=I[a];c&&c(D,null,0)}g.flush();z&&z.update()}}function c(){!R&&0<I.length&&(R=ab.next(b))}function d(){R&&
24944
+ (ab.cancel(b),R=null)}function f(a){a.preventDefault();d();S.forEach(function(a){a()})}function e(a){g.getError();h.restore();J.restore();G.restore();L.restore();P.restore();V.restore();A.restore();z&&z.restore();M.procs.refresh();c();T.forEach(function(a){a()})}function m(a){function b(a,c){var d={},e={};Object.keys(a).forEach(function(b){var f=a[b];if(Z.isDynamic(f))e[b]=Z.unbox(f,b);else{if(c&&Array.isArray(f))for(var g=0;g<f.length;++g)if(Z.isDynamic(f[g])){e[b]=Z.unbox(f,b);return}d[b]=f}});
24945
+ return{dynamic:e,"static":d}}function c(a){for(;n.length<a;)n.push(null);return n}var d=b(a.context||{},!0),e=b(a.uniforms||{},!0),f=b(a.attributes||{},!1);a=b(function(a){function b(a){if(a in c){var d=c[a];delete c[a];Object.keys(d).forEach(function(b){c[a+"."+b]=d[b]})}}var c=O({},a);delete c.uniforms;delete c.attributes;delete c.context;delete c.vao;"stencil"in c&&c.stencil.op&&(c.stencil.opBack=c.stencil.opFront=c.stencil.op,delete c.stencil.op);b("blend");b("depth");b("cull");b("stencil");b("polygonOffset");
24946
+ b("scissor");b("sample");"vao"in a&&(c.vao=a.vao);return c}(a),!1);var g={gpuTime:0,cpuTime:0,count:0},h=M.compile(a,f,e,d,g),k=h.draw,l=h.batch,m=h.scope,n=[];return O(function(a,b){var d;if("function"===typeof a)return m.call(this,null,a,0);if("function"===typeof b)if("number"===typeof a)for(d=0;d<a;++d)m.call(this,null,b,d);else if(Array.isArray(a))for(d=0;d<a.length;++d)m.call(this,a[d],b,d);else return m.call(this,a,b,0);else if("number"===typeof a){if(0<a)return l.call(this,c(a|0),a|0)}else if(Array.isArray(a)){if(a.length)return l.call(this,
24947
+ a,a.length)}else return k.call(this,a)},{stats:g,destroy:function(){h.destroy()}})}function q(a,b){var c=0;M.procs.poll();var d=b.color;d&&(g.clearColor(+d[0]||0,+d[1]||0,+d[2]||0,+d[3]||0),c|=16384);"depth"in b&&(g.clearDepth(+b.depth),c|=256);"stencil"in b&&(g.clearStencil(b.stencil|0),c|=1024);g.clear(c)}function u(a){I.push(a);c();return{cancel:function(){function b(){var a=Bb(I,b);I[a]=I[I.length-1];--I.length;0>=I.length&&d()}var c=Bb(I,a);I[c]=b}}}function r(){var a=W.viewport,b=W.scissor_box;
24948
+ a[0]=a[1]=b[0]=b[1]=0;D.viewportWidth=D.framebufferWidth=D.drawingBufferWidth=a[2]=b[2]=g.drawingBufferWidth;D.viewportHeight=D.framebufferHeight=D.drawingBufferHeight=a[3]=b[3]=g.drawingBufferHeight}function k(){D.tick+=1;D.time=t();r();M.procs.poll()}function n(){L.refresh();r();M.procs.refresh();z&&z.update()}function t(){return(Cb()-E)/1E3}a=Hb(a);if(!a)return null;var g=a.gl,l=g.getContextAttributes();g.isContextLost();var h=Ib(g,a);if(!h)return null;var p=Eb(),y={vaoCount:0,bufferCount:0,elementsCount:0,
24949
+ framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},C=a.cachedCode||{},w=h.extensions,z=dc(g,w),E=Cb(),B=g.drawingBufferWidth,H=g.drawingBufferHeight,D={tick:0,time:0,viewportWidth:B,viewportHeight:H,framebufferWidth:B,framebufferHeight:H,drawingBufferWidth:B,drawingBufferHeight:H,pixelRatio:a.pixelRatio},B={elements:null,primitive:4,count:-1,offset:0,instances:-1},v=bc(g,w),G=Jb(g,y,a,function(a){return A.destroyBuffer(a)}),K=Kb(g,w,G,y),A=Rb(g,w,v,
24950
+ y,G,K,B),J=Sb(g,p,y,a),L=Nb(g,w,v,function(){M.procs.poll()},D,y,a),P=cc(g,w,v,y,a),V=Qb(g,w,v,L,P,y),M=Zb(g,p,w,v,G,K,L,V,{},A,J,B,D,z,C,a),p=Tb(g,V,M.procs.poll,D,l,w,v),W=M.next,Q=g.canvas,I=[],S=[],T=[],U=[a.onDestroy],R=null;Q&&(Q.addEventListener("webglcontextlost",f,!1),Q.addEventListener("webglcontextrestored",e,!1));var Y=V.setFBO=m({framebuffer:Z.define.call(null,1,"framebuffer")});n();l=O(m,{clear:function(a){if("framebuffer"in a)if(a.framebuffer&&"framebufferCube"===a.framebuffer_reglType)for(var b=
24951
+ 0;6>b;++b)Y(O({framebuffer:a.framebuffer.faces[b]},a),q);else Y(a,q);else q(null,a)},prop:Z.define.bind(null,1),context:Z.define.bind(null,2),"this":Z.define.bind(null,3),draw:m({}),buffer:function(a){return G.create(a,34962,!1,!1)},elements:function(a){return K.create(a,!1)},texture:L.create2D,cube:L.createCube,renderbuffer:P.create,framebuffer:V.create,framebufferCube:V.createCube,vao:A.createVAO,attributes:l,frame:u,on:function(a,b){var c;switch(a){case "frame":return u(b);case "lost":c=S;break;
24952
+ case "restore":c=T;break;case "destroy":c=U}c.push(b);return{cancel:function(){for(var a=0;a<c.length;++a)if(c[a]===b){c[a]=c[c.length-1];c.pop();break}}}},limits:v,hasExtension:function(a){return 0<=v.extensions.indexOf(a.toLowerCase())},read:p,destroy:function(){I.length=0;d();Q&&(Q.removeEventListener("webglcontextlost",f),Q.removeEventListener("webglcontextrestored",e));J.clear();V.clear();P.clear();A.clear();L.clear();K.clear();G.clear();z&&z.clear();U.forEach(function(a){a()})},_gl:g,_refresh:n,
24953
+ poll:function(){k();z&&z.update()},now:t,stats:y,getCachedCode:function(){return C},preloadCachedCode:function(a){Object.entries(a).forEach(function(a){C[a[0]]=a[1]})}});a.onDone(null,l);return l}});
24948
24954
 
24949
24955
  },{}],198:[function(_dereq_,module,exports){
24950
24956
  'use strict'
@@ -37952,24 +37958,42 @@ drawing.dashStyle = function(dash, lineWidth) {
37952
37958
  return dash;
37953
37959
  };
37954
37960
 
37961
+ function setFillStyle(sel, trace, gd) {
37962
+ var markerPattern = trace.fillpattern;
37963
+ var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, 0, '');
37964
+ if(patternShape) {
37965
+ var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, 0, null);
37966
+ var patternFGColor = drawing.getPatternAttr(markerPattern.fgcolor, 0, null);
37967
+ var patternFGOpacity = markerPattern.fgopacity;
37968
+ var patternSize = drawing.getPatternAttr(markerPattern.size, 0, 8);
37969
+ var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, 0, 0.3);
37970
+ var patternID = trace.uid;
37971
+ drawing.pattern(sel, 'point', gd, patternID,
37972
+ patternShape, patternSize, patternSolidity,
37973
+ undefined, markerPattern.fillmode,
37974
+ patternBGColor, patternFGColor, patternFGOpacity
37975
+ );
37976
+ } else if(trace.fillcolor) {
37977
+ sel.call(Color.fill, trace.fillcolor);
37978
+ }
37979
+ }
37980
+
37955
37981
  // Same as fillGroupStyle, except in this case the selection may be a transition
37956
- drawing.singleFillStyle = function(sel) {
37982
+ drawing.singleFillStyle = function(sel, gd) {
37957
37983
  var node = d3.select(sel.node());
37958
37984
  var data = node.data();
37959
- var fillcolor = (((data[0] || [])[0] || {}).trace || {}).fillcolor;
37960
- if(fillcolor) {
37961
- sel.call(Color.fill, fillcolor);
37962
- }
37985
+ var trace = ((data[0] || [])[0] || {}).trace || {};
37986
+ setFillStyle(sel, trace, gd);
37963
37987
  };
37964
37988
 
37965
- drawing.fillGroupStyle = function(s) {
37989
+ drawing.fillGroupStyle = function(s, gd) {
37966
37990
  s.style('stroke-width', 0)
37967
37991
  .each(function(d) {
37968
37992
  var shape = d3.select(this);
37969
37993
  // N.B. 'd' won't be a calcdata item when
37970
37994
  // fill !== 'none' on a segment-less and marker-less trace
37971
37995
  if(d[0].trace) {
37972
- shape.call(Color.fill, d[0].trace.fillcolor);
37996
+ setFillStyle(shape, d[0].trace, gd);
37973
37997
  }
37974
37998
  });
37975
37999
  };
@@ -38122,12 +38146,7 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
38122
38146
  sel.style(prop, getFullUrl(fullID, gd))
38123
38147
  .style(prop + '-opacity', null);
38124
38148
 
38125
- var className2query = function(s) {
38126
- return '.' + s.attr('class').replace(/\s/g, '.');
38127
- };
38128
- var k = className2query(d3.select(sel.node().parentNode)) +
38129
- '>' + className2query(sel);
38130
- fullLayout._gradientUrlQueryParts[k] = 1;
38149
+ sel.classed('gradient_filled', true);
38131
38150
  };
38132
38151
 
38133
38152
  /**
@@ -38334,11 +38353,6 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
38334
38353
  .style('fill-opacity', null);
38335
38354
 
38336
38355
  sel.classed('pattern_filled', true);
38337
- var className2query = function(s) {
38338
- return '.' + s.attr('class').replace(/\s/g, '.');
38339
- };
38340
- var k = className2query(d3.select(sel.node().parentNode)) + '>.pattern_filled';
38341
- fullLayout._patternUrlQueryParts[k] = 1;
38342
38356
  };
38343
38357
 
38344
38358
  /*
@@ -38354,9 +38368,7 @@ drawing.initGradients = function(gd) {
38354
38368
  var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');
38355
38369
  gradientsGroup.selectAll('linearGradient,radialGradient').remove();
38356
38370
 
38357
- // initialize stash of query parts filled in Drawing.gradient,
38358
- // used to fix URL strings during image exports
38359
- fullLayout._gradientUrlQueryParts = {};
38371
+ d3.select(gd).selectAll('.gradient_filled').classed('gradient_filled', false);
38360
38372
  };
38361
38373
 
38362
38374
  drawing.initPatterns = function(gd) {
@@ -38365,9 +38377,7 @@ drawing.initPatterns = function(gd) {
38365
38377
  var patternsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'patterns');
38366
38378
  patternsGroup.selectAll('pattern').remove();
38367
38379
 
38368
- // initialize stash of query parts filled in Drawing.pattern,
38369
- // used to fix URL strings during image exports
38370
- fullLayout._patternUrlQueryParts = {};
38380
+ d3.select(gd).selectAll('.pattern_filled').classed('pattern_filled', false);
38371
38381
  };
38372
38382
 
38373
38383
  drawing.getPatternAttr = function(mp, i, dflt) {
@@ -39219,7 +39229,7 @@ drawing.setTextPointsScale = function(selection, xScale, yScale) {
39219
39229
  });
39220
39230
  };
39221
39231
 
39222
- },{"../../components/fx/helpers":292,"../../constants/alignment":361,"../../constants/interactions":365,"../../constants/xmlns_namespaces":367,"../../lib":388,"../../lib/svg_text_utils":414,"../../registry":481,"../../traces/scatter/make_bubble_size_func":546,"../../traces/scatter/subtypes":554,"../color":256,"../colorscale":268,"./symbol_defs":279,"@plotly/d3":14,"fast-isnumeric":121,"tinycolor2":204}],279:[function(_dereq_,module,exports){
39232
+ },{"../../components/fx/helpers":292,"../../constants/alignment":361,"../../constants/interactions":365,"../../constants/xmlns_namespaces":367,"../../lib":388,"../../lib/svg_text_utils":414,"../../registry":481,"../../traces/scatter/make_bubble_size_func":547,"../../traces/scatter/subtypes":555,"../color":256,"../colorscale":268,"./symbol_defs":279,"@plotly/d3":14,"fast-isnumeric":121,"tinycolor2":204}],279:[function(_dereq_,module,exports){
39223
39233
  'use strict';
39224
39234
 
39225
39235
  var d3 = _dereq_('@plotly/d3');
@@ -40318,7 +40328,7 @@ function errorCoords(d, xa, ya) {
40318
40328
  return out;
40319
40329
  }
40320
40330
 
40321
- },{"../../traces/scatter/subtypes":554,"../drawing":278,"@plotly/d3":14,"fast-isnumeric":121}],286:[function(_dereq_,module,exports){
40331
+ },{"../../traces/scatter/subtypes":555,"../drawing":278,"@plotly/d3":14,"fast-isnumeric":121}],286:[function(_dereq_,module,exports){
40322
40332
  'use strict';
40323
40333
 
40324
40334
  var d3 = _dereq_('@plotly/d3');
@@ -45704,12 +45714,16 @@ module.exports = function style(s, gd, legend) {
45704
45714
  var colorscale = cOpts.colorscale;
45705
45715
  var reversescale = cOpts.reversescale;
45706
45716
 
45707
- var fillGradient = function(s) {
45717
+ var fillStyle = function(s) {
45708
45718
  if(s.size()) {
45709
- var gradientID = 'legendfill-' + trace.uid;
45710
- Drawing.gradient(s, gd, gradientID,
45711
- getGradientDirection(reversescale),
45712
- colorscale, 'fill');
45719
+ if(showFill) {
45720
+ Drawing.fillGroupStyle(s, gd);
45721
+ } else {
45722
+ var gradientID = 'legendfill-' + trace.uid;
45723
+ Drawing.gradient(s, gd, gradientID,
45724
+ getGradientDirection(reversescale),
45725
+ colorscale, 'fill');
45726
+ }
45713
45727
  }
45714
45728
  };
45715
45729
 
@@ -45738,7 +45752,7 @@ module.exports = function style(s, gd, legend) {
45738
45752
  fill.enter().append('path').classed('js-fill', true);
45739
45753
  fill.exit().remove();
45740
45754
  fill.attr('d', pathStart + 'h' + itemWidth + 'v6h-' + itemWidth + 'z')
45741
- .call(showFill ? Drawing.fillGroupStyle : fillGradient);
45755
+ .call(fillStyle);
45742
45756
 
45743
45757
  if(showLine || showGradientLine) {
45744
45758
  var lw = boundLineWidth(undefined, trace.line, MAX_LINE_WIDTH, CST_LINE_WIDTH);
@@ -46277,7 +46291,7 @@ function dimAttr(v, dflt, max) {
46277
46291
  return v;
46278
46292
  }
46279
46293
 
46280
- },{"../../lib":388,"../../registry":481,"../../traces/pie/helpers":522,"../../traces/pie/style_one":523,"../../traces/scatter/subtypes":554,"../color":256,"../colorscale/helpers":267,"../drawing":278,"./constants":307,"@plotly/d3":14}],315:[function(_dereq_,module,exports){
46294
+ },{"../../lib":388,"../../registry":481,"../../traces/pie/helpers":523,"../../traces/pie/style_one":524,"../../traces/scatter/subtypes":555,"../color":256,"../colorscale/helpers":267,"../drawing":278,"./constants":307,"@plotly/d3":14}],315:[function(_dereq_,module,exports){
46281
46295
  'use strict';
46282
46296
 
46283
46297
  var constants = _dereq_('./constants');
@@ -47511,7 +47525,7 @@ function fillCustomButton(customButtons) {
47511
47525
  return customButtons;
47512
47526
  }
47513
47527
 
47514
- },{"../../plots/cartesian/axis_ids":442,"../../registry":481,"../../traces/scatter/subtypes":554,"../fx/helpers":292,"./buttons":316,"./constants":317,"./modebar":321}],321:[function(_dereq_,module,exports){
47528
+ },{"../../plots/cartesian/axis_ids":442,"../../registry":481,"../../traces/scatter/subtypes":555,"../fx/helpers":292,"./buttons":316,"./constants":317,"./modebar":321}],321:[function(_dereq_,module,exports){
47515
47529
  'use strict';
47516
47530
 
47517
47531
  var d3 = _dereq_('@plotly/d3');
@@ -47854,7 +47868,7 @@ function createModeBar(gd, buttons) {
47854
47868
 
47855
47869
  module.exports = createModeBar;
47856
47870
 
47857
- },{"../../fonts/ploticon":369,"../../lib":388,"../../version":587,"@plotly/d3":14,"fast-isnumeric":121}],322:[function(_dereq_,module,exports){
47871
+ },{"../../fonts/ploticon":369,"../../lib":388,"../../version":590,"@plotly/d3":14,"fast-isnumeric":121}],322:[function(_dereq_,module,exports){
47858
47872
  'use strict';
47859
47873
 
47860
47874
  var fontAttrs = _dereq_('../../plots/font_attributes');
@@ -49446,7 +49460,7 @@ module.exports = templatedArray('shape', {
49446
49460
  editType: 'arraydraw'
49447
49461
  });
49448
49462
 
49449
- },{"../../constants/axis_placeable_objects":362,"../../lib/extend":380,"../../plot_api/plot_template":427,"../../traces/scatter/attributes":529,"../annotations/attributes":239,"../drawing/attributes":277}],337:[function(_dereq_,module,exports){
49463
+ },{"../../constants/axis_placeable_objects":362,"../../lib/extend":380,"../../plot_api/plot_template":427,"../../traces/scatter/attributes":530,"../annotations/attributes":239,"../drawing/attributes":277}],337:[function(_dereq_,module,exports){
49450
49464
  'use strict';
49451
49465
 
49452
49466
  var Lib = _dereq_('../../lib');
@@ -54596,7 +54610,7 @@ exports.Fx = {
54596
54610
  exports.Snapshot = _dereq_('./snapshot');
54597
54611
  exports.PlotSchema = _dereq_('./plot_api/plot_schema');
54598
54612
 
54599
- },{"../build/plotcss":1,"./components/annotations":247,"./components/annotations3d":252,"./components/colorbar":262,"./components/colorscale":268,"./components/errorbars":284,"./components/fx":296,"./components/grid":300,"./components/images":305,"./components/legend":313,"./components/modebar":319,"./components/rangeselector":327,"./components/rangeslider":334,"./components/shapes":348,"./components/sliders":353,"./components/updatemenus":359,"./fonts/ploticon":369,"./locale-en":418,"./locale-en-us":417,"./plot_api":422,"./plot_api/plot_schema":426,"./plots/plots":479,"./registry":481,"./snapshot":486,"./traces/scatter":541,"./version":587,"native-promise-only":174}],369:[function(_dereq_,module,exports){
54613
+ },{"../build/plotcss":1,"./components/annotations":247,"./components/annotations3d":252,"./components/colorbar":262,"./components/colorscale":268,"./components/errorbars":284,"./components/fx":296,"./components/grid":300,"./components/images":305,"./components/legend":313,"./components/modebar":319,"./components/rangeselector":327,"./components/rangeslider":334,"./components/shapes":348,"./components/sliders":353,"./components/updatemenus":359,"./fonts/ploticon":369,"./locale-en":418,"./locale-en-us":417,"./plot_api":422,"./plot_api/plot_schema":426,"./plots/plots":479,"./registry":481,"./snapshot":486,"./traces/scatter":542,"./version":590,"native-promise-only":174}],369:[function(_dereq_,module,exports){
54600
54614
  'use strict';
54601
54615
 
54602
54616
  module.exports = {
@@ -59774,12 +59788,15 @@ var createRegl = _dereq_('regl');
59774
59788
  *
59775
59789
  * @return {boolean} true if all createRegl calls succeeded, false otherwise
59776
59790
  */
59777
- module.exports = function prepareRegl(gd, extensions) {
59791
+ module.exports = function prepareRegl(gd, extensions, reglPrecompiled) {
59778
59792
  var fullLayout = gd._fullLayout;
59779
59793
  var success = true;
59780
59794
 
59781
59795
  fullLayout._glcanvas.each(function(d) {
59782
- if(d.regl) return;
59796
+ if(d.regl) {
59797
+ d.regl.preloadCachedCode(reglPrecompiled);
59798
+ return;
59799
+ }
59783
59800
  // only parcoords needs pick layer
59784
59801
  if(d.pick && !fullLayout._has('parcoords')) return;
59785
59802
 
@@ -59791,7 +59808,8 @@ module.exports = function prepareRegl(gd, extensions) {
59791
59808
  preserveDrawingBuffer: true
59792
59809
  },
59793
59810
  pixelRatio: gd._context.plotGlPixelRatio || global.devicePixelRatio,
59794
- extensions: extensions || []
59811
+ extensions: extensions || [],
59812
+ cachedCode: reglPrecompiled || {}
59795
59813
  });
59796
59814
  } catch(e) {
59797
59815
  success = false;
@@ -60619,6 +60637,7 @@ exports.convertToTspans = function(_context, gd, _callback) {
60619
60637
  // Until we get tex integrated more fully (so it can be used along with non-tex)
60620
60638
  // allow some elements to prohibit it by attaching 'data-notex' to the original
60621
60639
  var tex = (!_context.attr('data-notex')) &&
60640
+ gd && gd._context.typesetMath &&
60622
60641
  (typeof MathJax !== 'undefined') &&
60623
60642
  str.match(FIND_TEX);
60624
60643
 
@@ -60773,70 +60792,154 @@ function cleanEscapesForTex(s) {
60773
60792
  .replace(GT_MATCH, '\\gt ');
60774
60793
  }
60775
60794
 
60795
+ var inlineMath = [['$', '$'], ['\\(', '\\)']];
60796
+
60776
60797
  function texToSVG(_texString, _config, _callback) {
60798
+ var MathJaxVersion = parseInt(
60799
+ (MathJax.version || '').split('.')[0]
60800
+ );
60801
+
60802
+ if(
60803
+ MathJaxVersion !== 2 &&
60804
+ MathJaxVersion !== 3
60805
+ ) {
60806
+ Lib.warn('No MathJax version:', MathJax.version);
60807
+ return;
60808
+ }
60809
+
60777
60810
  var originalRenderer,
60778
60811
  originalConfig,
60779
60812
  originalProcessSectionDelay,
60780
60813
  tmpDiv;
60781
60814
 
60782
- MathJax.Hub.Queue(
60783
- function() {
60815
+ var setConfig2 = function() {
60784
60816
  originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);
60785
60817
 
60786
60818
  originalProcessSectionDelay = MathJax.Hub.processSectionDelay;
60787
60819
  if(MathJax.Hub.processSectionDelay !== undefined) {
60788
- // MathJax 2.5+
60820
+ // MathJax 2.5+ but not 3+
60789
60821
  MathJax.Hub.processSectionDelay = 0;
60790
60822
  }
60791
60823
 
60792
60824
  return MathJax.Hub.Config({
60793
60825
  messageStyle: 'none',
60794
60826
  tex2jax: {
60795
- inlineMath: [['$', '$'], ['\\(', '\\)']]
60827
+ inlineMath: inlineMath
60796
60828
  },
60797
60829
  displayAlign: 'left',
60798
60830
  });
60799
- },
60800
- function() {
60801
- // Get original renderer
60831
+ };
60832
+
60833
+ var setConfig3 = function() {
60834
+ originalConfig = Lib.extendDeepAll({}, MathJax.config);
60835
+
60836
+ if(!MathJax.config.tex) {
60837
+ MathJax.config.tex = {};
60838
+ }
60839
+
60840
+ MathJax.config.tex.inlineMath = inlineMath;
60841
+ };
60842
+
60843
+ var setRenderer2 = function() {
60802
60844
  originalRenderer = MathJax.Hub.config.menuSettings.renderer;
60803
60845
  if(originalRenderer !== 'SVG') {
60804
60846
  return MathJax.Hub.setRenderer('SVG');
60805
60847
  }
60806
- },
60807
- function() {
60848
+ };
60849
+
60850
+ var setRenderer3 = function() {
60851
+ originalRenderer = MathJax.config.startup.output;
60852
+ if(originalRenderer !== 'svg') {
60853
+ MathJax.config.startup.output = 'svg';
60854
+ }
60855
+ };
60856
+
60857
+ var initiateMathJax = function() {
60808
60858
  var randomID = 'math-output-' + Lib.randstr({}, 64);
60809
60859
  tmpDiv = d3.select('body').append('div')
60810
60860
  .attr({id: randomID})
60811
- .style({visibility: 'hidden', position: 'absolute'})
60812
- .style({'font-size': _config.fontSize + 'px'})
60861
+ .style({
60862
+ visibility: 'hidden',
60863
+ position: 'absolute',
60864
+ 'font-size': _config.fontSize + 'px'
60865
+ })
60813
60866
  .text(cleanEscapesForTex(_texString));
60814
60867
 
60815
- return MathJax.Hub.Typeset(tmpDiv.node());
60816
- },
60817
- function() {
60818
- var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');
60868
+ var tmpNode = tmpDiv.node();
60869
+
60870
+ return MathJaxVersion === 2 ?
60871
+ MathJax.Hub.Typeset(tmpNode) :
60872
+ MathJax.typeset([tmpNode]);
60873
+ };
60874
+
60875
+ var finalizeMathJax = function() {
60876
+ var sel = tmpDiv.select(
60877
+ MathJaxVersion === 2 ? '.MathJax_SVG' : '.MathJax'
60878
+ );
60819
60879
 
60820
- if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) {
60880
+ var node = !sel.empty() && tmpDiv.select('svg').node();
60881
+ if(!node) {
60821
60882
  Lib.log('There was an error in the tex syntax.', _texString);
60822
60883
  _callback();
60823
60884
  } else {
60824
- var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect();
60825
- _callback(tmpDiv.select('.MathJax_SVG'), glyphDefs, svgBBox);
60885
+ var nodeBBox = node.getBoundingClientRect();
60886
+ var glyphDefs;
60887
+ if(MathJaxVersion === 2) {
60888
+ glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');
60889
+ } else {
60890
+ glyphDefs = sel.select('defs');
60891
+ }
60892
+ _callback(sel, glyphDefs, nodeBBox);
60826
60893
  }
60827
60894
 
60828
60895
  tmpDiv.remove();
60896
+ };
60829
60897
 
60898
+ var resetRenderer2 = function() {
60830
60899
  if(originalRenderer !== 'SVG') {
60831
60900
  return MathJax.Hub.setRenderer(originalRenderer);
60832
60901
  }
60833
- },
60834
- function() {
60902
+ };
60903
+
60904
+ var resetRenderer3 = function() {
60905
+ if(originalRenderer !== 'svg') {
60906
+ MathJax.config.startup.output = originalRenderer;
60907
+ }
60908
+ };
60909
+
60910
+ var resetConfig2 = function() {
60835
60911
  if(originalProcessSectionDelay !== undefined) {
60836
60912
  MathJax.Hub.processSectionDelay = originalProcessSectionDelay;
60837
60913
  }
60838
60914
  return MathJax.Hub.Config(originalConfig);
60839
- });
60915
+ };
60916
+
60917
+ var resetConfig3 = function() {
60918
+ MathJax.config = originalConfig;
60919
+ };
60920
+
60921
+ if(MathJaxVersion === 2) {
60922
+ MathJax.Hub.Queue(
60923
+ setConfig2,
60924
+ setRenderer2,
60925
+ initiateMathJax,
60926
+ finalizeMathJax,
60927
+ resetRenderer2,
60928
+ resetConfig2
60929
+ );
60930
+ } else if(MathJaxVersion === 3) {
60931
+ setConfig3();
60932
+ setRenderer3();
60933
+ MathJax.startup.defaultReady();
60934
+
60935
+ MathJax.startup.promise.then(function() {
60936
+ initiateMathJax();
60937
+ finalizeMathJax();
60938
+
60939
+ resetRenderer3();
60940
+ resetConfig3();
60941
+ });
60942
+ }
60840
60943
  }
60841
60944
 
60842
60945
  var TAG_STYLES = {
@@ -66656,6 +66759,11 @@ var configAttributes = {
66656
66759
  dflt: false,
66657
66760
  },
66658
66761
 
66762
+ typesetMath: {
66763
+ valType: 'boolean',
66764
+ dflt: true,
66765
+ },
66766
+
66659
66767
  plotlyServerURL: {
66660
66768
  valType: 'string',
66661
66769
  dflt: '',
@@ -69236,7 +69344,7 @@ function toImage(gd, opts) {
69236
69344
 
69237
69345
  module.exports = toImage;
69238
69346
 
69239
- },{"../lib":388,"../plots/plots":479,"../snapshot/helpers":485,"../snapshot/svgtoimg":487,"../snapshot/tosvg":489,"../version":587,"./plot_api":424,"fast-isnumeric":121}],431:[function(_dereq_,module,exports){
69347
+ },{"../lib":388,"../plots/plots":479,"../snapshot/helpers":485,"../snapshot/svgtoimg":487,"../snapshot/tosvg":489,"../version":590,"./plot_api":424,"fast-isnumeric":121}],431:[function(_dereq_,module,exports){
69240
69348
  'use strict';
69241
69349
 
69242
69350
  var Lib = _dereq_('../lib');
@@ -83968,7 +84076,7 @@ proto.hoverFormatter = function(axisName, val) {
83968
84076
  return Axes.tickText(axis, axis.c2l(val), 'hover').text;
83969
84077
  };
83970
84078
 
83971
- },{"../../../stackgl_modules":588,"../../components/dragelement/helpers":274,"../../components/fx":296,"../../lib/show_no_webgl_msg":410,"../../plots/cartesian/axes":438,"../../registry":481,"../cartesian/autorange":437,"../cartesian/constants":445,"../cartesian/constraints":446,"./camera":472,"./convert":473,"webgl-context":221}],476:[function(_dereq_,module,exports){
84079
+ },{"../../../stackgl_modules":591,"../../components/dragelement/helpers":274,"../../components/fx":296,"../../lib/show_no_webgl_msg":410,"../../plots/cartesian/axes":438,"../../registry":481,"../cartesian/autorange":437,"../cartesian/constants":445,"../cartesian/constraints":446,"./camera":472,"./convert":473,"webgl-context":221}],476:[function(_dereq_,module,exports){
83972
84080
  'use strict';
83973
84081
 
83974
84082
  function xformMatrix(m, v) {
@@ -88819,7 +88927,7 @@ module.exports = function toSVG(gd, format, scale) {
88819
88927
  var toppaper = fullLayout._toppaper;
88820
88928
  var width = fullLayout.width;
88821
88929
  var height = fullLayout.height;
88822
- var i, k;
88930
+ var i;
88823
88931
 
88824
88932
  // make background color a rect in the svg, then revert after scraping
88825
88933
  // all other alterations have been dealt with by properly preparing the svg
@@ -88892,32 +89000,21 @@ module.exports = function toSVG(gd, format, scale) {
88892
89000
  }
88893
89001
  });
88894
89002
 
88895
- var queryParts = [];
88896
- if(fullLayout._gradientUrlQueryParts) {
88897
- for(k in fullLayout._gradientUrlQueryParts) queryParts.push(k);
88898
- }
88899
-
88900
- if(fullLayout._patternUrlQueryParts) {
88901
- for(k in fullLayout._patternUrlQueryParts) queryParts.push(k);
88902
- }
88903
-
88904
- if(queryParts.length) {
88905
- svg.selectAll(queryParts.join(',')).each(function() {
88906
- var pt = d3.select(this);
89003
+ svg.selectAll('.gradient_filled,.pattern_filled').each(function() {
89004
+ var pt = d3.select(this);
88907
89005
 
88908
- // similar to font family styles above,
88909
- // we must remove " after the SVG DOM has been serialized
88910
- var fill = this.style.fill;
88911
- if(fill && fill.indexOf('url(') !== -1) {
88912
- pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
88913
- }
89006
+ // similar to font family styles above,
89007
+ // we must remove " after the SVG DOM has been serialized
89008
+ var fill = this.style.fill;
89009
+ if(fill && fill.indexOf('url(') !== -1) {
89010
+ pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
89011
+ }
88914
89012
 
88915
- var stroke = this.style.stroke;
88916
- if(stroke && stroke.indexOf('url(') !== -1) {
88917
- pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
88918
- }
88919
- });
88920
- }
89013
+ var stroke = this.style.stroke;
89014
+ if(stroke && stroke.indexOf('url(') !== -1) {
89015
+ pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
89016
+ }
89017
+ });
88921
89018
 
88922
89019
  if(format === 'pdf' || format === 'eps') {
88923
89020
  // these formats make the extra line MathJax adds around symbols look super thick in some cases
@@ -89100,7 +89197,7 @@ module.exports = extendFlat({
89100
89197
  colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
89101
89198
  );
89102
89199
 
89103
- },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../plots/attributes":434,"../../plots/cartesian/axis_format_attributes":441,"../../plots/font_attributes":469,"../../plots/template_attributes":480,"../scatter/attributes":529}],492:[function(_dereq_,module,exports){
89200
+ },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../plots/attributes":434,"../../plots/cartesian/axis_format_attributes":441,"../../plots/font_attributes":469,"../../plots/template_attributes":480,"../scatter/attributes":530}],492:[function(_dereq_,module,exports){
89104
89201
  'use strict';
89105
89202
 
89106
89203
  var Registry = _dereq_('../../registry');
@@ -90033,7 +90130,7 @@ function createHeatmap(scene, fullTrace, calcTrace) {
90033
90130
 
90034
90131
  module.exports = createHeatmap;
90035
90132
 
90036
- },{"../../../stackgl_modules":588,"../../lib/str2rgbarray":413,"../../plots/cartesian/axes":438}],502:[function(_dereq_,module,exports){
90133
+ },{"../../../stackgl_modules":591,"../../lib/str2rgbarray":413,"../../plots/cartesian/axes":438}],502:[function(_dereq_,module,exports){
90037
90134
  'use strict';
90038
90135
 
90039
90136
  var Lib = _dereq_('../../lib');
@@ -91779,7 +91876,28 @@ module.exports = {
91779
91876
  cleanRanges: cleanRanges
91780
91877
  };
91781
91878
 
91782
- },{"../../lib":388,"../../lib/gup":385,"./constants":514,"@plotly/d3":14}],512:[function(_dereq_,module,exports){
91879
+ },{"../../lib":388,"../../lib/gup":385,"./constants":515,"@plotly/d3":14}],512:[function(_dereq_,module,exports){
91880
+ 'use strict';
91881
+
91882
+ module.exports = {
91883
+ attributes: _dereq_('./attributes'),
91884
+ supplyDefaults: _dereq_('./defaults'),
91885
+ calc: _dereq_('./calc'),
91886
+ colorbar: {
91887
+ container: 'line',
91888
+ min: 'cmin',
91889
+ max: 'cmax'
91890
+ },
91891
+
91892
+ moduleType: 'trace',
91893
+ name: 'parcoords',
91894
+ basePlotModule: _dereq_('./base_plot'),
91895
+ categories: ['gl', 'regl', 'noOpacity', 'noHover'],
91896
+ meta: {
91897
+ }
91898
+ };
91899
+
91900
+ },{"./attributes":510,"./base_plot":513,"./calc":514,"./defaults":516}],513:[function(_dereq_,module,exports){
91783
91901
  'use strict';
91784
91902
 
91785
91903
  var d3 = _dereq_('@plotly/d3');
@@ -91838,7 +91956,7 @@ exports.toSVG = function(gd) {
91838
91956
  }, 60);
91839
91957
  };
91840
91958
 
91841
- },{"../../constants/xmlns_namespaces":367,"../../plots/get_data":471,"./plot":521,"@plotly/d3":14}],513:[function(_dereq_,module,exports){
91959
+ },{"../../constants/xmlns_namespaces":367,"../../plots/get_data":471,"./plot":522,"@plotly/d3":14}],514:[function(_dereq_,module,exports){
91842
91960
  'use strict';
91843
91961
 
91844
91962
  var isArrayOrTypedArray = _dereq_('../../lib').isArrayOrTypedArray;
@@ -91874,7 +91992,7 @@ function constHalf(len) {
91874
91992
  return out;
91875
91993
  }
91876
91994
 
91877
- },{"../../components/colorscale":268,"../../lib":388,"../../lib/gup":385}],514:[function(_dereq_,module,exports){
91995
+ },{"../../components/colorscale":268,"../../lib":388,"../../lib/gup":385}],515:[function(_dereq_,module,exports){
91878
91996
  'use strict';
91879
91997
 
91880
91998
 
@@ -91927,7 +92045,7 @@ module.exports = {
91927
92045
  }
91928
92046
  };
91929
92047
 
91930
- },{}],515:[function(_dereq_,module,exports){
92048
+ },{}],516:[function(_dereq_,module,exports){
91931
92049
  'use strict';
91932
92050
 
91933
92051
  var Lib = _dereq_('../../lib');
@@ -92039,7 +92157,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
92039
92157
  coerce('labelside');
92040
92158
  };
92041
92159
 
92042
- },{"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"../../lib":388,"../../plots/array_container_defaults":433,"../../plots/cartesian/axes":438,"../../plots/domain":468,"./attributes":510,"./axisbrush":511,"./constants":514,"./merge_length":519}],516:[function(_dereq_,module,exports){
92160
+ },{"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"../../lib":388,"../../plots/array_container_defaults":433,"../../plots/cartesian/axes":438,"../../plots/domain":468,"./attributes":510,"./axisbrush":511,"./constants":515,"./merge_length":520}],517:[function(_dereq_,module,exports){
92043
92161
  'use strict';
92044
92162
 
92045
92163
  var isTypedArray = _dereq_('../../lib').isTypedArray;
@@ -92056,29 +92174,16 @@ exports.isVisible = function(dimension) {
92056
92174
  return dimension.visible || !('visible' in dimension);
92057
92175
  };
92058
92176
 
92059
- },{"../../lib":388}],517:[function(_dereq_,module,exports){
92177
+ },{"../../lib":388}],518:[function(_dereq_,module,exports){
92060
92178
  'use strict';
92061
92179
 
92062
- module.exports = {
92063
- attributes: _dereq_('./attributes'),
92064
- supplyDefaults: _dereq_('./defaults'),
92065
- calc: _dereq_('./calc'),
92066
- plot: _dereq_('./plot'),
92067
- colorbar: {
92068
- container: 'line',
92069
- min: 'cmin',
92070
- max: 'cmax'
92071
- },
92180
+ var index = _dereq_('./base_index');
92072
92181
 
92073
- moduleType: 'trace',
92074
- name: 'parcoords',
92075
- basePlotModule: _dereq_('./base_plot'),
92076
- categories: ['gl', 'regl', 'noOpacity', 'noHover'],
92077
- meta: {
92078
- }
92079
- };
92182
+ index.plot = _dereq_('./plot');
92183
+
92184
+ module.exports = index;
92080
92185
 
92081
- },{"./attributes":510,"./base_plot":512,"./calc":513,"./defaults":515,"./plot":521}],518:[function(_dereq_,module,exports){
92186
+ },{"./base_index":512,"./plot":522}],519:[function(_dereq_,module,exports){
92082
92187
  'use strict';
92083
92188
 
92084
92189
  var glslify = _dereq_('glslify');
@@ -92622,7 +92727,7 @@ module.exports = function(canvasGL, d) {
92622
92727
  };
92623
92728
  };
92624
92729
 
92625
- },{"../../lib":388,"./constants":514,"glslify":158}],519:[function(_dereq_,module,exports){
92730
+ },{"../../lib":388,"./constants":515,"glslify":158}],520:[function(_dereq_,module,exports){
92626
92731
  'use strict';
92627
92732
 
92628
92733
  /**
@@ -92652,7 +92757,7 @@ module.exports = function(traceOut, dimensions, dataAttr, len) {
92652
92757
  return len;
92653
92758
  };
92654
92759
 
92655
- },{}],520:[function(_dereq_,module,exports){
92760
+ },{}],521:[function(_dereq_,module,exports){
92656
92761
  'use strict';
92657
92762
 
92658
92763
  var d3 = _dereq_('@plotly/d3');
@@ -93413,12 +93518,13 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
93413
93518
  brush.ensureAxisBrush(axisOverlays, paperColor);
93414
93519
  };
93415
93520
 
93416
- },{"../../components/colorscale":268,"../../components/drawing":278,"../../lib":388,"../../lib/gup":385,"../../lib/svg_text_utils":414,"../../plots/cartesian/axes":438,"./axisbrush":511,"./constants":514,"./helpers":516,"./lines":518,"@plotly/d3":14,"color-rgba":37}],521:[function(_dereq_,module,exports){
93521
+ },{"../../components/colorscale":268,"../../components/drawing":278,"../../lib":388,"../../lib/gup":385,"../../lib/svg_text_utils":414,"../../plots/cartesian/axes":438,"./axisbrush":511,"./constants":515,"./helpers":517,"./lines":519,"@plotly/d3":14,"color-rgba":37}],522:[function(_dereq_,module,exports){
93417
93522
  'use strict';
93418
93523
 
93419
93524
  var parcoords = _dereq_('./parcoords');
93420
93525
  var prepareRegl = _dereq_('../../lib/prepare_regl');
93421
93526
  var isVisible = _dereq_('./helpers').isVisible;
93527
+ var reglPrecompiled = {};
93422
93528
 
93423
93529
  function newIndex(visibleIndices, orig, dim) {
93424
93530
  var origIndex = orig.indexOf(dim);
@@ -93439,10 +93545,10 @@ function sorter(visibleIndices, orig) {
93439
93545
  };
93440
93546
  }
93441
93547
 
93442
- module.exports = function plot(gd, cdModule) {
93548
+ var exports = module.exports = function plot(gd, cdModule) {
93443
93549
  var fullLayout = gd._fullLayout;
93444
93550
 
93445
- var success = prepareRegl(gd);
93551
+ var success = prepareRegl(gd, [], reglPrecompiled);
93446
93552
  if(!success) return;
93447
93553
 
93448
93554
  var currentDims = {};
@@ -93560,7 +93666,9 @@ module.exports = function plot(gd, cdModule) {
93560
93666
  );
93561
93667
  };
93562
93668
 
93563
- },{"../../lib/prepare_regl":401,"./helpers":516,"./parcoords":520}],522:[function(_dereq_,module,exports){
93669
+ exports.reglPrecompiled = reglPrecompiled;
93670
+
93671
+ },{"../../lib/prepare_regl":401,"./helpers":517,"./parcoords":521}],523:[function(_dereq_,module,exports){
93564
93672
  'use strict';
93565
93673
 
93566
93674
  var Lib = _dereq_('../../lib');
@@ -93600,7 +93708,7 @@ exports.getRotationAngle = function(rotation) {
93600
93708
  return (rotation === 'auto' ? 0 : rotation) * Math.PI / 180;
93601
93709
  };
93602
93710
 
93603
- },{"../../lib":388}],523:[function(_dereq_,module,exports){
93711
+ },{"../../lib":388}],524:[function(_dereq_,module,exports){
93604
93712
  'use strict';
93605
93713
 
93606
93714
  var Color = _dereq_('../../components/color');
@@ -93616,7 +93724,7 @@ module.exports = function styleOne(s, pt, trace) {
93616
93724
  .call(Color.stroke, lineColor);
93617
93725
  };
93618
93726
 
93619
- },{"../../components/color":256,"./helpers":522}],524:[function(_dereq_,module,exports){
93727
+ },{"../../components/color":256,"./helpers":523}],525:[function(_dereq_,module,exports){
93620
93728
  'use strict';
93621
93729
 
93622
93730
  var scatterglAttrs = _dereq_('../scatter/attributes');
@@ -93700,7 +93808,7 @@ module.exports = {
93700
93808
  transforms: undefined
93701
93809
  };
93702
93810
 
93703
- },{"../scatter/attributes":529}],525:[function(_dereq_,module,exports){
93811
+ },{"../scatter/attributes":530}],526:[function(_dereq_,module,exports){
93704
93812
  'use strict';
93705
93813
 
93706
93814
  var createPointCloudRenderer = _dereq_('../../../stackgl_modules').gl_pointcloud2d;
@@ -93894,7 +94002,7 @@ function createPointcloud(scene, data) {
93894
94002
 
93895
94003
  module.exports = createPointcloud;
93896
94004
 
93897
- },{"../../../stackgl_modules":588,"../../lib/str2rgbarray":413,"../../plots/cartesian/autorange":437,"../scatter/get_trace_color":539}],526:[function(_dereq_,module,exports){
94005
+ },{"../../../stackgl_modules":591,"../../lib/str2rgbarray":413,"../../plots/cartesian/autorange":437,"../scatter/get_trace_color":540}],527:[function(_dereq_,module,exports){
93898
94006
  'use strict';
93899
94007
 
93900
94008
  var Lib = _dereq_('../../lib');
@@ -93933,7 +94041,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor) {
93933
94041
  traceOut._length = null;
93934
94042
  };
93935
94043
 
93936
- },{"../../lib":388,"./attributes":524}],527:[function(_dereq_,module,exports){
94044
+ },{"../../lib":388,"./attributes":525}],528:[function(_dereq_,module,exports){
93937
94045
  'use strict';
93938
94046
 
93939
94047
  var deprecationWarning = [
@@ -93957,7 +94065,7 @@ module.exports = {
93957
94065
  }
93958
94066
  };
93959
94067
 
93960
- },{"../../plots/gl2d":474,"../scatter3d/calc":557,"./attributes":524,"./convert":525,"./defaults":526}],528:[function(_dereq_,module,exports){
94068
+ },{"../../plots/gl2d":474,"../scatter3d/calc":558,"./attributes":525,"./convert":526,"./defaults":527}],529:[function(_dereq_,module,exports){
93961
94069
  'use strict';
93962
94070
 
93963
94071
  var Lib = _dereq_('../../lib');
@@ -94000,7 +94108,7 @@ module.exports = function arraysToCalcdata(cd, trace) {
94000
94108
  }
94001
94109
  };
94002
94110
 
94003
- },{"../../lib":388}],529:[function(_dereq_,module,exports){
94111
+ },{"../../lib":388}],530:[function(_dereq_,module,exports){
94004
94112
  'use strict';
94005
94113
 
94006
94114
  var axisHoverFormat = _dereq_('../../plots/cartesian/axis_format_attributes').axisHoverFormat;
@@ -94009,6 +94117,7 @@ var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplat
94009
94117
  var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
94010
94118
  var fontAttrs = _dereq_('../../plots/font_attributes');
94011
94119
  var dash = _dereq_('../../components/drawing/attributes').dash;
94120
+ var pattern = _dereq_('../../components/drawing/attributes').pattern;
94012
94121
 
94013
94122
  var Drawing = _dereq_('../../components/drawing');
94014
94123
  var constants = _dereq_('./constants');
@@ -94196,6 +94305,7 @@ module.exports = {
94196
94305
  editType: 'style',
94197
94306
  anim: true,
94198
94307
  },
94308
+ fillpattern: pattern,
94199
94309
  marker: extendFlat({
94200
94310
  symbol: {
94201
94311
  valType: 'enumerated',
@@ -94350,7 +94460,7 @@ module.exports = {
94350
94460
  }),
94351
94461
  };
94352
94462
 
94353
- },{"../../components/colorscale/attributes":263,"../../components/drawing":278,"../../components/drawing/attributes":277,"../../lib/extend":380,"../../plots/cartesian/axis_format_attributes":441,"../../plots/font_attributes":469,"../../plots/template_attributes":480,"./constants":533}],530:[function(_dereq_,module,exports){
94463
+ },{"../../components/colorscale/attributes":263,"../../components/drawing":278,"../../components/drawing/attributes":277,"../../lib/extend":380,"../../plots/cartesian/axis_format_attributes":441,"../../plots/font_attributes":469,"../../plots/template_attributes":480,"./constants":534}],531:[function(_dereq_,module,exports){
94354
94464
  'use strict';
94355
94465
 
94356
94466
  var isNumeric = _dereq_('fast-isnumeric');
@@ -94647,7 +94757,7 @@ module.exports = {
94647
94757
  getStackOpts: getStackOpts
94648
94758
  };
94649
94759
 
94650
- },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/align_period":435,"../../plots/cartesian/axes":438,"./arrays_to_calcdata":528,"./calc_selection":531,"./colorscale_calc":532,"./subtypes":554,"fast-isnumeric":121}],531:[function(_dereq_,module,exports){
94760
+ },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/align_period":435,"../../plots/cartesian/axes":438,"./arrays_to_calcdata":529,"./calc_selection":532,"./colorscale_calc":533,"./subtypes":555,"fast-isnumeric":121}],532:[function(_dereq_,module,exports){
94651
94761
  'use strict';
94652
94762
 
94653
94763
  var Lib = _dereq_('../../lib');
@@ -94658,7 +94768,7 @@ module.exports = function calcSelection(cd, trace) {
94658
94768
  }
94659
94769
  };
94660
94770
 
94661
- },{"../../lib":388}],532:[function(_dereq_,module,exports){
94771
+ },{"../../lib":388}],533:[function(_dereq_,module,exports){
94662
94772
  'use strict';
94663
94773
 
94664
94774
  var hasColorscale = _dereq_('../../components/colorscale/helpers').hasColorscale;
@@ -94693,7 +94803,7 @@ module.exports = function calcMarkerColorscale(gd, trace) {
94693
94803
  }
94694
94804
  };
94695
94805
 
94696
- },{"../../components/colorscale/calc":264,"../../components/colorscale/helpers":267,"./subtypes":554}],533:[function(_dereq_,module,exports){
94806
+ },{"../../components/colorscale/calc":264,"../../components/colorscale/helpers":267,"./subtypes":555}],534:[function(_dereq_,module,exports){
94697
94807
  'use strict';
94698
94808
 
94699
94809
  module.exports = {
@@ -94713,7 +94823,7 @@ module.exports = {
94713
94823
  eventDataKeys: []
94714
94824
  };
94715
94825
 
94716
- },{}],534:[function(_dereq_,module,exports){
94826
+ },{}],535:[function(_dereq_,module,exports){
94717
94827
  'use strict';
94718
94828
 
94719
94829
  var calc = _dereq_('./calc');
@@ -94885,7 +94995,7 @@ function getInterp(calcTrace, index, position, posAttr) {
94885
94995
  return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);
94886
94996
  }
94887
94997
 
94888
- },{"./calc":530}],535:[function(_dereq_,module,exports){
94998
+ },{"./calc":531}],536:[function(_dereq_,module,exports){
94889
94999
  'use strict';
94890
95000
 
94891
95001
 
@@ -94915,7 +95025,7 @@ module.exports = function crossTraceDefaults(fullData) {
94915
95025
  }
94916
95026
  };
94917
95027
 
94918
- },{}],536:[function(_dereq_,module,exports){
95028
+ },{}],537:[function(_dereq_,module,exports){
94919
95029
  'use strict';
94920
95030
 
94921
95031
  var Lib = _dereq_('../../lib');
@@ -94932,6 +95042,7 @@ var handleLineDefaults = _dereq_('./line_defaults');
94932
95042
  var handleLineShapeDefaults = _dereq_('./line_shape_defaults');
94933
95043
  var handleTextDefaults = _dereq_('./text_defaults');
94934
95044
  var handleFillColorDefaults = _dereq_('./fillcolor_defaults');
95045
+ var coercePattern = _dereq_('../../lib').coercePattern;
94935
95046
 
94936
95047
  module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
94937
95048
  function coerce(attr, dflt) {
@@ -94985,6 +95096,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
94985
95096
  if(traceOut.fill !== 'none') {
94986
95097
  handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
94987
95098
  if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
95099
+ coercePattern(coerce, 'fillpattern', traceOut.fillcolor, false);
94988
95100
  }
94989
95101
 
94990
95102
  var lineColor = (traceOut.line || {}).color;
@@ -95002,7 +95114,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
95002
95114
  Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
95003
95115
  };
95004
95116
 
95005
- },{"../../lib":388,"../../registry":481,"./attributes":529,"./constants":533,"./fillcolor_defaults":537,"./line_defaults":542,"./line_shape_defaults":544,"./marker_defaults":548,"./period_defaults":549,"./stack_defaults":552,"./subtypes":554,"./text_defaults":555,"./xy_defaults":556}],537:[function(_dereq_,module,exports){
95117
+ },{"../../lib":388,"../../registry":481,"./attributes":530,"./constants":534,"./fillcolor_defaults":538,"./line_defaults":543,"./line_shape_defaults":545,"./marker_defaults":549,"./period_defaults":550,"./stack_defaults":553,"./subtypes":555,"./text_defaults":556,"./xy_defaults":557}],538:[function(_dereq_,module,exports){
95006
95118
  'use strict';
95007
95119
 
95008
95120
  var Color = _dereq_('../../components/color');
@@ -95030,7 +95142,7 @@ module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coe
95030
95142
  ));
95031
95143
  };
95032
95144
 
95033
- },{"../../components/color":256,"../../lib":388}],538:[function(_dereq_,module,exports){
95145
+ },{"../../components/color":256,"../../lib":388}],539:[function(_dereq_,module,exports){
95034
95146
  'use strict';
95035
95147
 
95036
95148
  var Axes = _dereq_('../../plots/cartesian/axes');
@@ -95048,7 +95160,7 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
95048
95160
  return labels;
95049
95161
  };
95050
95162
 
95051
- },{"../../plots/cartesian/axes":438}],539:[function(_dereq_,module,exports){
95163
+ },{"../../plots/cartesian/axes":438}],540:[function(_dereq_,module,exports){
95052
95164
  'use strict';
95053
95165
 
95054
95166
  var Color = _dereq_('../../components/color');
@@ -95088,7 +95200,7 @@ module.exports = function getTraceColor(trace, di) {
95088
95200
  }
95089
95201
  };
95090
95202
 
95091
- },{"../../components/color":256,"./subtypes":554}],540:[function(_dereq_,module,exports){
95203
+ },{"../../components/color":256,"./subtypes":555}],541:[function(_dereq_,module,exports){
95092
95204
  'use strict';
95093
95205
 
95094
95206
  var Lib = _dereq_('../../lib');
@@ -95299,7 +95411,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
95299
95411
  }
95300
95412
  };
95301
95413
 
95302
- },{"../../components/color":256,"../../components/fx":296,"../../lib":388,"../../registry":481,"./get_trace_color":539}],541:[function(_dereq_,module,exports){
95414
+ },{"../../components/color":256,"../../components/fx":296,"../../lib":388,"../../registry":481,"./get_trace_color":540}],542:[function(_dereq_,module,exports){
95303
95415
  'use strict';
95304
95416
 
95305
95417
  var subtypes = _dereq_('./subtypes');
@@ -95336,7 +95448,7 @@ module.exports = {
95336
95448
  }
95337
95449
  };
95338
95450
 
95339
- },{"../../plots/cartesian":452,"./arrays_to_calcdata":528,"./attributes":529,"./calc":530,"./cross_trace_calc":534,"./cross_trace_defaults":535,"./defaults":536,"./format_labels":538,"./hover":540,"./marker_colorbar":547,"./plot":550,"./select":551,"./style":553,"./subtypes":554}],542:[function(_dereq_,module,exports){
95451
+ },{"../../plots/cartesian":452,"./arrays_to_calcdata":529,"./attributes":530,"./calc":531,"./cross_trace_calc":535,"./cross_trace_defaults":536,"./defaults":537,"./format_labels":539,"./hover":541,"./marker_colorbar":548,"./plot":551,"./select":552,"./style":554,"./subtypes":555}],543:[function(_dereq_,module,exports){
95340
95452
  'use strict';
95341
95453
 
95342
95454
  var isArrayOrTypedArray = _dereq_('../../lib').isArrayOrTypedArray;
@@ -95359,7 +95471,7 @@ module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout,
95359
95471
  if(!(opts || {}).noDash) coerce('line.dash');
95360
95472
  };
95361
95473
 
95362
- },{"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"../../lib":388}],543:[function(_dereq_,module,exports){
95474
+ },{"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"../../lib":388}],544:[function(_dereq_,module,exports){
95363
95475
  'use strict';
95364
95476
 
95365
95477
  var numConstants = _dereq_('../../constants/numerical');
@@ -95811,7 +95923,7 @@ module.exports = function linePoints(d, opts) {
95811
95923
  return segments;
95812
95924
  };
95813
95925
 
95814
- },{"../../constants/numerical":366,"../../lib":388,"./constants":533}],544:[function(_dereq_,module,exports){
95926
+ },{"../../constants/numerical":366,"../../lib":388,"./constants":534}],545:[function(_dereq_,module,exports){
95815
95927
  'use strict';
95816
95928
 
95817
95929
 
@@ -95821,7 +95933,7 @@ module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {
95821
95933
  if(shape === 'spline') coerce('line.smoothing');
95822
95934
  };
95823
95935
 
95824
- },{}],545:[function(_dereq_,module,exports){
95936
+ },{}],546:[function(_dereq_,module,exports){
95825
95937
  'use strict';
95826
95938
 
95827
95939
  var LINKEDFILLS = {tonextx: 1, tonexty: 1, tonext: 1};
@@ -95903,7 +96015,7 @@ module.exports = function linkTraces(gd, plotinfo, cdscatter) {
95903
96015
  return cdscatterSorted;
95904
96016
  };
95905
96017
 
95906
- },{}],546:[function(_dereq_,module,exports){
96018
+ },{}],547:[function(_dereq_,module,exports){
95907
96019
  'use strict';
95908
96020
 
95909
96021
  var isNumeric = _dereq_('fast-isnumeric');
@@ -95939,7 +96051,7 @@ module.exports = function makeBubbleSizeFn(trace, factor) {
95939
96051
  };
95940
96052
  };
95941
96053
 
95942
- },{"fast-isnumeric":121}],547:[function(_dereq_,module,exports){
96054
+ },{"fast-isnumeric":121}],548:[function(_dereq_,module,exports){
95943
96055
  'use strict';
95944
96056
 
95945
96057
  module.exports = {
@@ -95948,7 +96060,7 @@ module.exports = {
95948
96060
  max: 'cmax'
95949
96061
  };
95950
96062
 
95951
- },{}],548:[function(_dereq_,module,exports){
96063
+ },{}],549:[function(_dereq_,module,exports){
95952
96064
  'use strict';
95953
96065
 
95954
96066
  var Color = _dereq_('../../components/color');
@@ -96021,7 +96133,7 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
96021
96133
  }
96022
96134
  };
96023
96135
 
96024
- },{"../../components/color":256,"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"./subtypes":554}],549:[function(_dereq_,module,exports){
96136
+ },{"../../components/color":256,"../../components/colorscale/defaults":266,"../../components/colorscale/helpers":267,"./subtypes":555}],550:[function(_dereq_,module,exports){
96025
96137
  'use strict';
96026
96138
 
96027
96139
  var dateTick0 = _dereq_('../../lib').dateTick0;
@@ -96060,7 +96172,7 @@ module.exports = function handlePeriodDefaults(traceIn, traceOut, layout, coerce
96060
96172
  }
96061
96173
  };
96062
96174
 
96063
- },{"../../constants/numerical":366,"../../lib":388}],550:[function(_dereq_,module,exports){
96175
+ },{"../../constants/numerical":366,"../../lib":388}],551:[function(_dereq_,module,exports){
96064
96176
  'use strict';
96065
96177
 
96066
96178
  var d3 = _dereq_('@plotly/d3');
@@ -96367,11 +96479,11 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition
96367
96479
  // the points on the axes are the first two points. Otherwise
96368
96480
  // animations get a little crazy if the number of points changes.
96369
96481
  transition(ownFillEl3).attr('d', 'M' + pt1 + 'L' + pt0 + 'L' + fullpath.substr(1))
96370
- .call(Drawing.singleFillStyle);
96482
+ .call(Drawing.singleFillStyle, gd);
96371
96483
  } else {
96372
96484
  // fill to self: just join the path to itself
96373
96485
  transition(ownFillEl3).attr('d', fullpath + 'Z')
96374
- .call(Drawing.singleFillStyle);
96486
+ .call(Drawing.singleFillStyle, gd);
96375
96487
  }
96376
96488
  }
96377
96489
  } else if(tonext) {
@@ -96383,7 +96495,7 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition
96383
96495
  // This makes strange results if one path is *not* entirely
96384
96496
  // inside the other, but then that is a strange usage.
96385
96497
  transition(tonext).attr('d', fullpath + 'Z' + prevRevpath + 'Z')
96386
- .call(Drawing.singleFillStyle);
96498
+ .call(Drawing.singleFillStyle, gd);
96387
96499
  } else {
96388
96500
  // tonextx/y: for now just connect endpoints with lines. This is
96389
96501
  // the correct behavior if the endpoints are at the same value of
@@ -96391,7 +96503,7 @@ function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transition
96391
96503
  // things depending on whether the new endpoint projects onto the
96392
96504
  // existing curve or off the end of it
96393
96505
  transition(tonext).attr('d', fullpath + 'L' + prevRevpath.substr(1) + 'Z')
96394
- .call(Drawing.singleFillStyle);
96506
+ .call(Drawing.singleFillStyle, gd);
96395
96507
  }
96396
96508
  trace._polygons = trace._polygons.concat(prevPolygons);
96397
96509
  } else {
@@ -96612,7 +96724,7 @@ function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {
96612
96724
  });
96613
96725
  }
96614
96726
 
96615
- },{"../../components/drawing":278,"../../lib":388,"../../lib/polygon":400,"../../registry":481,"./line_points":543,"./link_traces":545,"./subtypes":554,"@plotly/d3":14}],551:[function(_dereq_,module,exports){
96727
+ },{"../../components/drawing":278,"../../lib":388,"../../lib/polygon":400,"../../registry":481,"./line_points":544,"./link_traces":546,"./subtypes":555,"@plotly/d3":14}],552:[function(_dereq_,module,exports){
96616
96728
  'use strict';
96617
96729
 
96618
96730
  var subtypes = _dereq_('./subtypes');
@@ -96657,7 +96769,7 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
96657
96769
  return selection;
96658
96770
  };
96659
96771
 
96660
- },{"./subtypes":554}],552:[function(_dereq_,module,exports){
96772
+ },{"./subtypes":555}],553:[function(_dereq_,module,exports){
96661
96773
  'use strict';
96662
96774
 
96663
96775
  var perStackAttrs = ['orientation', 'groupnorm', 'stackgaps'];
@@ -96754,7 +96866,7 @@ module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce)
96754
96866
  }
96755
96867
  };
96756
96868
 
96757
- },{}],553:[function(_dereq_,module,exports){
96869
+ },{}],554:[function(_dereq_,module,exports){
96758
96870
  'use strict';
96759
96871
 
96760
96872
  var d3 = _dereq_('@plotly/d3');
@@ -96784,7 +96896,7 @@ function style(gd) {
96784
96896
  .call(Drawing.lineGroupStyle);
96785
96897
 
96786
96898
  s.selectAll('g.trace path.js-fill')
96787
- .call(Drawing.fillGroupStyle);
96899
+ .call(Drawing.fillGroupStyle, gd);
96788
96900
 
96789
96901
  Registry.getComponentMethod('errorbars', 'style')(s);
96790
96902
  }
@@ -96816,7 +96928,7 @@ module.exports = {
96816
96928
  styleOnSelect: styleOnSelect
96817
96929
  };
96818
96930
 
96819
- },{"../../components/drawing":278,"../../registry":481,"@plotly/d3":14}],554:[function(_dereq_,module,exports){
96931
+ },{"../../components/drawing":278,"../../registry":481,"@plotly/d3":14}],555:[function(_dereq_,module,exports){
96820
96932
  'use strict';
96821
96933
 
96822
96934
  var Lib = _dereq_('../../lib');
@@ -96846,7 +96958,7 @@ module.exports = {
96846
96958
  }
96847
96959
  };
96848
96960
 
96849
- },{"../../lib":388}],555:[function(_dereq_,module,exports){
96961
+ },{"../../lib":388}],556:[function(_dereq_,module,exports){
96850
96962
  'use strict';
96851
96963
 
96852
96964
  var Lib = _dereq_('../../lib');
@@ -96867,7 +96979,7 @@ module.exports = function(traceIn, traceOut, layout, coerce, opts) {
96867
96979
  }
96868
96980
  };
96869
96981
 
96870
- },{"../../lib":388}],556:[function(_dereq_,module,exports){
96982
+ },{"../../lib":388}],557:[function(_dereq_,module,exports){
96871
96983
  'use strict';
96872
96984
 
96873
96985
  var Lib = _dereq_('../../lib');
@@ -96903,7 +97015,7 @@ module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {
96903
97015
  return len;
96904
97016
  };
96905
97017
 
96906
- },{"../../lib":388,"../../registry":481}],557:[function(_dereq_,module,exports){
97018
+ },{"../../lib":388,"../../registry":481}],558:[function(_dereq_,module,exports){
96907
97019
  'use strict';
96908
97020
 
96909
97021
  var arraysToCalcdata = _dereq_('../scatter/arrays_to_calcdata');
@@ -96923,7 +97035,7 @@ module.exports = function calc(gd, trace) {
96923
97035
  return cd;
96924
97036
  };
96925
97037
 
96926
- },{"../scatter/arrays_to_calcdata":528,"../scatter/colorscale_calc":532}],558:[function(_dereq_,module,exports){
97038
+ },{"../scatter/arrays_to_calcdata":529,"../scatter/colorscale_calc":533}],559:[function(_dereq_,module,exports){
96927
97039
  'use strict';
96928
97040
 
96929
97041
  var baseAttrs = _dereq_('../../plots/attributes');
@@ -97018,7 +97130,31 @@ attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = 'c
97018
97130
  attrs.hovertemplate = scatterAttrs.hovertemplate;
97019
97131
  attrs.texttemplate = scatterAttrs.texttemplate;
97020
97132
 
97021
- },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../lib/sort_object_keys":411,"../../plot_api/edit_types":420,"../../plots/attributes":434,"../../plots/cartesian/axis_format_attributes":441,"../scatter/attributes":529,"./constants":560}],559:[function(_dereq_,module,exports){
97133
+ },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../lib/sort_object_keys":411,"../../plot_api/edit_types":420,"../../plots/attributes":434,"../../plots/cartesian/axis_format_attributes":441,"../scatter/attributes":530,"./constants":562}],560:[function(_dereq_,module,exports){
97134
+ 'use strict';
97135
+
97136
+ var hover = _dereq_('./hover');
97137
+
97138
+ module.exports = {
97139
+ moduleType: 'trace',
97140
+ name: 'scattergl',
97141
+ basePlotModule: _dereq_('../../plots/cartesian'),
97142
+ categories: ['gl', 'regl', 'cartesian', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like'],
97143
+
97144
+ attributes: _dereq_('./attributes'),
97145
+ supplyDefaults: _dereq_('./defaults'),
97146
+ crossTraceDefaults: _dereq_('../scatter/cross_trace_defaults'),
97147
+ colorbar: _dereq_('../scatter/marker_colorbar'),
97148
+ formatLabels: _dereq_('./format_labels'),
97149
+ calc: _dereq_('./calc'),
97150
+ hoverPoints: hover.hoverPoints,
97151
+ selectPoints: _dereq_('./select'),
97152
+
97153
+ meta: {
97154
+ }
97155
+ };
97156
+
97157
+ },{"../../plots/cartesian":452,"../scatter/cross_trace_defaults":536,"../scatter/marker_colorbar":548,"./attributes":559,"./calc":561,"./defaults":564,"./format_labels":566,"./hover":568,"./select":572}],561:[function(_dereq_,module,exports){
97022
97158
  'use strict';
97023
97159
 
97024
97160
  var cluster = _dereq_('@plotly/point-cluster');
@@ -97204,7 +97340,7 @@ function sceneOptions(gd, subplot, trace, positions, x, y) {
97204
97340
  return opts;
97205
97341
  }
97206
97342
 
97207
- },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/align_period":435,"../../plots/cartesian/autorange":437,"../../plots/cartesian/axis_ids":442,"../scatter/calc":530,"../scatter/colorscale_calc":532,"./constants":560,"./convert":561,"./scene_update":569,"@plotly/point-cluster":15}],560:[function(_dereq_,module,exports){
97343
+ },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/align_period":435,"../../plots/cartesian/autorange":437,"../../plots/cartesian/axis_ids":442,"../scatter/calc":531,"../scatter/colorscale_calc":533,"./constants":562,"./convert":563,"./scene_update":571,"@plotly/point-cluster":15}],562:[function(_dereq_,module,exports){
97208
97344
  'use strict';
97209
97345
 
97210
97346
  var SYMBOL_SIZE = 20;
@@ -97229,7 +97365,7 @@ module.exports = {
97229
97365
  }
97230
97366
  };
97231
97367
 
97232
- },{}],561:[function(_dereq_,module,exports){
97368
+ },{}],563:[function(_dereq_,module,exports){
97233
97369
  'use strict';
97234
97370
 
97235
97371
  var isNumeric = _dereq_('fast-isnumeric');
@@ -97876,7 +98012,7 @@ module.exports = {
97876
98012
  textPosition: convertTextPosition
97877
98013
  };
97878
98014
 
97879
- },{"../../components/drawing":278,"../../components/fx/helpers":292,"../../constants/interactions":365,"../../lib":388,"../../lib/gl_format_color":384,"../../plots/cartesian/axis_ids":442,"../../registry":481,"../scatter/make_bubble_size_func":546,"../scatter/subtypes":554,"./constants":560,"./helpers":565,"color-normalize":35,"fast-isnumeric":121,"svg-path-sdf":202}],562:[function(_dereq_,module,exports){
98015
+ },{"../../components/drawing":278,"../../components/fx/helpers":292,"../../constants/interactions":365,"../../lib":388,"../../lib/gl_format_color":384,"../../plots/cartesian/axis_ids":442,"../../registry":481,"../scatter/make_bubble_size_func":547,"../scatter/subtypes":555,"./constants":562,"./helpers":567,"color-normalize":35,"fast-isnumeric":121,"svg-path-sdf":202}],564:[function(_dereq_,module,exports){
97880
98016
  'use strict';
97881
98017
 
97882
98018
  var Lib = _dereq_('../../lib');
@@ -97949,7 +98085,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
97949
98085
  Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
97950
98086
  };
97951
98087
 
97952
- },{"../../lib":388,"../../registry":481,"../scatter/constants":533,"../scatter/fillcolor_defaults":537,"../scatter/line_defaults":542,"../scatter/marker_defaults":548,"../scatter/period_defaults":549,"../scatter/subtypes":554,"../scatter/text_defaults":555,"../scatter/xy_defaults":556,"./attributes":558,"./helpers":565}],563:[function(_dereq_,module,exports){
98088
+ },{"../../lib":388,"../../registry":481,"../scatter/constants":534,"../scatter/fillcolor_defaults":538,"../scatter/line_defaults":543,"../scatter/marker_defaults":549,"../scatter/period_defaults":550,"../scatter/subtypes":555,"../scatter/text_defaults":556,"../scatter/xy_defaults":557,"./attributes":559,"./helpers":567}],565:[function(_dereq_,module,exports){
97953
98089
  'use strict';
97954
98090
 
97955
98091
  var Lib = _dereq_('../../lib');
@@ -97997,7 +98133,7 @@ module.exports = {
97997
98133
  styleTextSelection: styleTextSelection
97998
98134
  };
97999
98135
 
98000
- },{"../../components/color":256,"../../constants/interactions":365,"../../lib":388}],564:[function(_dereq_,module,exports){
98136
+ },{"../../components/color":256,"../../constants/interactions":365,"../../lib":388}],566:[function(_dereq_,module,exports){
98001
98137
  'use strict';
98002
98138
 
98003
98139
  var scatterFormatLabels = _dereq_('../scatter/format_labels');
@@ -98009,7 +98145,7 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
98009
98145
  return scatterFormatLabels(cdi, trace, fullLayout);
98010
98146
  };
98011
98147
 
98012
- },{"../scatter/format_labels":538}],565:[function(_dereq_,module,exports){
98148
+ },{"../scatter/format_labels":539}],567:[function(_dereq_,module,exports){
98013
98149
  'use strict';
98014
98150
 
98015
98151
  var constants = _dereq_('./constants');
@@ -98026,7 +98162,7 @@ exports.isDotSymbol = function(symbol) {
98026
98162
  symbol > 200;
98027
98163
  };
98028
98164
 
98029
- },{"./constants":560}],566:[function(_dereq_,module,exports){
98165
+ },{"./constants":562}],568:[function(_dereq_,module,exports){
98030
98166
  'use strict';
98031
98167
 
98032
98168
  var Registry = _dereq_('../../registry');
@@ -98246,32 +98382,9 @@ module.exports = {
98246
98382
  calcHover: calcHover
98247
98383
  };
98248
98384
 
98249
- },{"../../lib":388,"../../registry":481,"../scatter/get_trace_color":539}],567:[function(_dereq_,module,exports){
98250
- 'use strict';
98251
-
98252
- var hover = _dereq_('./hover');
98253
-
98254
- module.exports = {
98255
- moduleType: 'trace',
98256
- name: 'scattergl',
98257
- basePlotModule: _dereq_('../../plots/cartesian'),
98258
- categories: ['gl', 'regl', 'cartesian', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like'],
98259
-
98260
- attributes: _dereq_('./attributes'),
98261
- supplyDefaults: _dereq_('./defaults'),
98262
- crossTraceDefaults: _dereq_('../scatter/cross_trace_defaults'),
98263
- colorbar: _dereq_('../scatter/marker_colorbar'),
98264
- formatLabels: _dereq_('./format_labels'),
98265
- calc: _dereq_('./calc'),
98266
- plot: _dereq_('./plot'),
98267
- hoverPoints: hover.hoverPoints,
98268
- selectPoints: _dereq_('./select'),
98269
-
98270
- meta: {
98271
- }
98272
- };
98273
-
98274
- },{"../../plots/cartesian":452,"../scatter/cross_trace_defaults":535,"../scatter/marker_colorbar":547,"./attributes":558,"./calc":559,"./defaults":562,"./format_labels":564,"./hover":566,"./plot":568,"./select":570}],568:[function(_dereq_,module,exports){
98385
+ },{"../../lib":388,"../../registry":481,"../scatter/get_trace_color":540}],569:[function(_dereq_,module,exports){
98386
+ arguments[4][518][0].apply(exports,arguments)
98387
+ },{"./base_index":560,"./plot":570,"dup":518}],570:[function(_dereq_,module,exports){
98275
98388
  'use strict';
98276
98389
 
98277
98390
  var createScatter = _dereq_('regl-scatter2d');
@@ -98288,6 +98401,7 @@ var linkTraces = _dereq_('../scatter/link_traces');
98288
98401
 
98289
98402
  var styleTextSelection = _dereq_('./edit_style').styleTextSelection;
98290
98403
 
98404
+ var reglPrecompiled = {};
98291
98405
 
98292
98406
  function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {
98293
98407
  var gs = fullLayout._size;
@@ -98308,7 +98422,7 @@ function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {
98308
98422
  ];
98309
98423
  }
98310
98424
 
98311
- module.exports = function plot(gd, subplot, cdata) {
98425
+ var exports = module.exports = function plot(gd, subplot, cdata) {
98312
98426
  if(!cdata.length) return;
98313
98427
 
98314
98428
  var fullLayout = gd._fullLayout;
@@ -98320,7 +98434,7 @@ module.exports = function plot(gd, subplot, cdata) {
98320
98434
  // we may have more subplots than initialized data due to Axes.getSubplots method
98321
98435
  if(!scene) return;
98322
98436
 
98323
- var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);
98437
+ var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint'], reglPrecompiled);
98324
98438
  if(!success) {
98325
98439
  scene.init();
98326
98440
  return;
@@ -98644,7 +98758,9 @@ module.exports = function plot(gd, subplot, cdata) {
98644
98758
  }
98645
98759
  };
98646
98760
 
98647
- },{"../../components/dragelement/helpers":274,"../../lib":388,"../../lib/prepare_regl":401,"../scatter/link_traces":545,"../scatter/subtypes":554,"./edit_style":563,"gl-text":156,"regl-error2d":193,"regl-line2d":194,"regl-scatter2d":195}],569:[function(_dereq_,module,exports){
98761
+ exports.reglPrecompiled = reglPrecompiled;
98762
+
98763
+ },{"../../components/dragelement/helpers":274,"../../lib":388,"../../lib/prepare_regl":401,"../scatter/link_traces":546,"../scatter/subtypes":555,"./edit_style":565,"gl-text":156,"regl-error2d":193,"regl-line2d":194,"regl-scatter2d":195}],571:[function(_dereq_,module,exports){
98648
98764
  'use strict';
98649
98765
 
98650
98766
  var Lib = _dereq_('../../lib');
@@ -98794,7 +98910,7 @@ module.exports = function sceneUpdate(gd, subplot) {
98794
98910
  return scene;
98795
98911
  };
98796
98912
 
98797
- },{"../../lib":388}],570:[function(_dereq_,module,exports){
98913
+ },{"../../lib":388}],572:[function(_dereq_,module,exports){
98798
98914
  'use strict';
98799
98915
 
98800
98916
  var subTypes = _dereq_('../scatter/subtypes');
@@ -98867,7 +98983,7 @@ module.exports = function select(searchInfo, selectionTester) {
98867
98983
  return selection;
98868
98984
  };
98869
98985
 
98870
- },{"../scatter/subtypes":554,"./edit_style":563}],571:[function(_dereq_,module,exports){
98986
+ },{"../scatter/subtypes":555,"./edit_style":565}],573:[function(_dereq_,module,exports){
98871
98987
  'use strict';
98872
98988
 
98873
98989
  var scatterAttrs = _dereq_('../scatter/attributes');
@@ -99010,7 +99126,37 @@ module.exports = {
99010
99126
  opacity: scatterGlAttrs.opacity
99011
99127
  };
99012
99128
 
99013
- },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../plot_api/plot_template":427,"../../plots/cartesian/axis_format_attributes":441,"../../plots/cartesian/constants":445,"../../plots/template_attributes":480,"../scatter/attributes":529,"../scattergl/attributes":558}],572:[function(_dereq_,module,exports){
99129
+ },{"../../components/colorscale/attributes":263,"../../lib/extend":380,"../../plot_api/plot_template":427,"../../plots/cartesian/axis_format_attributes":441,"../../plots/cartesian/constants":445,"../../plots/template_attributes":480,"../scatter/attributes":530,"../scattergl/attributes":559}],574:[function(_dereq_,module,exports){
99130
+ 'use strict';
99131
+
99132
+ var Registry = _dereq_('../../registry');
99133
+ var Grid = _dereq_('../../components/grid');
99134
+
99135
+ module.exports = {
99136
+ moduleType: 'trace',
99137
+ name: 'splom',
99138
+
99139
+ categories: ['gl', 'regl', 'cartesian', 'symbols', 'showLegend', 'scatter-like'],
99140
+
99141
+ attributes: _dereq_('./attributes'),
99142
+ supplyDefaults: _dereq_('./defaults'),
99143
+ colorbar: _dereq_('../scatter/marker_colorbar'),
99144
+
99145
+ calc: _dereq_('./calc'),
99146
+ plot: _dereq_('./plot'),
99147
+ hoverPoints: _dereq_('./hover').hoverPoints,
99148
+ selectPoints: _dereq_('./select'),
99149
+ editStyle: _dereq_('./edit_style'),
99150
+
99151
+ meta: {
99152
+ }
99153
+ };
99154
+
99155
+ // splom traces use the 'grid' component to generate their axes,
99156
+ // register it here
99157
+ Registry.register(Grid);
99158
+
99159
+ },{"../../components/grid":300,"../../registry":481,"../scatter/marker_colorbar":548,"./attributes":573,"./calc":576,"./defaults":577,"./edit_style":578,"./hover":580,"./plot":582,"./select":584}],575:[function(_dereq_,module,exports){
99014
99160
  'use strict';
99015
99161
 
99016
99162
  var createLine = _dereq_('regl-line2d');
@@ -99024,12 +99170,14 @@ var shouldShowZeroLine = _dereq_('../../plots/cartesian/axes').shouldShowZeroLin
99024
99170
 
99025
99171
  var SPLOM = 'splom';
99026
99172
 
99173
+ var reglPrecompiled = {};
99174
+
99027
99175
  function plot(gd) {
99028
99176
  var fullLayout = gd._fullLayout;
99029
99177
  var _module = Registry.getModule(SPLOM);
99030
99178
  var splomCalcData = getModuleCalcData(gd.calcdata, _module)[0];
99031
99179
 
99032
- var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);
99180
+ var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint'], reglPrecompiled);
99033
99181
  if(!success) return;
99034
99182
 
99035
99183
  if(fullLayout._hasOnlyLargeSploms) {
@@ -99232,10 +99380,11 @@ module.exports = {
99232
99380
  updateGrid: updateGrid,
99233
99381
  clean: clean,
99234
99382
  updateFx: Cartesian.updateFx,
99235
- toSVG: Cartesian.toSVG
99383
+ toSVG: Cartesian.toSVG,
99384
+ reglPrecompiled: reglPrecompiled
99236
99385
  };
99237
99386
 
99238
- },{"../../lib/prepare_regl":401,"../../plots/cartesian":452,"../../plots/cartesian/axes":438,"../../plots/cartesian/axis_ids":442,"../../plots/get_data":471,"../../registry":481,"regl-line2d":194}],573:[function(_dereq_,module,exports){
99387
+ },{"../../lib/prepare_regl":401,"../../plots/cartesian":452,"../../plots/cartesian/axes":438,"../../plots/cartesian/axis_ids":442,"../../plots/get_data":471,"../../registry":481,"regl-line2d":194}],576:[function(_dereq_,module,exports){
99239
99388
  'use strict';
99240
99389
 
99241
99390
  var Lib = _dereq_('../../lib');
@@ -99338,7 +99487,7 @@ module.exports = function calc(gd, trace) {
99338
99487
  return [{x: false, y: false, t: {}, trace: trace}];
99339
99488
  };
99340
99489
 
99341
- },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/axis_ids":442,"../scatter/calc":530,"../scatter/colorscale_calc":532,"../scattergl/constants":560,"../scattergl/convert":561,"./scene_update":580}],574:[function(_dereq_,module,exports){
99490
+ },{"../../constants/numerical":366,"../../lib":388,"../../plots/cartesian/axis_ids":442,"../scatter/calc":531,"../scatter/colorscale_calc":533,"../scattergl/constants":562,"../scattergl/convert":563,"./scene_update":583}],577:[function(_dereq_,module,exports){
99342
99491
  'use strict';
99343
99492
 
99344
99493
  var Lib = _dereq_('../../lib');
@@ -99509,7 +99658,7 @@ function handleAxisDefaults(traceIn, traceOut, layout, coerce) {
99509
99658
  }
99510
99659
  }
99511
99660
 
99512
- },{"../../lib":388,"../../plots/array_container_defaults":433,"../parcoords/merge_length":519,"../scatter/marker_defaults":548,"../scatter/subtypes":554,"../scattergl/helpers":565,"./attributes":571}],575:[function(_dereq_,module,exports){
99661
+ },{"../../lib":388,"../../plots/array_container_defaults":433,"../parcoords/merge_length":520,"../scatter/marker_defaults":549,"../scatter/subtypes":555,"../scattergl/helpers":567,"./attributes":573}],578:[function(_dereq_,module,exports){
99513
99662
  'use strict';
99514
99663
 
99515
99664
  var Lib = _dereq_('../../lib');
@@ -99533,7 +99682,7 @@ module.exports = function editStyle(gd, cd0) {
99533
99682
  }
99534
99683
  };
99535
99684
 
99536
- },{"../../lib":388,"../scatter/colorscale_calc":532,"../scattergl/convert":561}],576:[function(_dereq_,module,exports){
99685
+ },{"../../lib":388,"../scatter/colorscale_calc":533,"../scattergl/convert":563}],579:[function(_dereq_,module,exports){
99537
99686
  'use strict';
99538
99687
 
99539
99688
  exports.getDimIndex = function getDimIndex(trace, ax) {
@@ -99549,7 +99698,7 @@ exports.getDimIndex = function getDimIndex(trace, ax) {
99549
99698
  return false;
99550
99699
  };
99551
99700
 
99552
- },{}],577:[function(_dereq_,module,exports){
99701
+ },{}],580:[function(_dereq_,module,exports){
99553
99702
  'use strict';
99554
99703
 
99555
99704
  var helpers = _dereq_('./helpers');
@@ -99602,38 +99751,16 @@ module.exports = {
99602
99751
  hoverPoints: hoverPoints
99603
99752
  };
99604
99753
 
99605
- },{"../scattergl/hover":566,"./helpers":576}],578:[function(_dereq_,module,exports){
99754
+ },{"../scattergl/hover":568,"./helpers":579}],581:[function(_dereq_,module,exports){
99606
99755
  'use strict';
99607
99756
 
99608
- var Registry = _dereq_('../../registry');
99609
- var Grid = _dereq_('../../components/grid');
99757
+ var index = _dereq_('./base_index');
99610
99758
 
99611
- module.exports = {
99612
- moduleType: 'trace',
99613
- name: 'splom',
99759
+ index.basePlotModule = _dereq_('./base_plot'),
99614
99760
 
99615
- basePlotModule: _dereq_('./base_plot'),
99616
- categories: ['gl', 'regl', 'cartesian', 'symbols', 'showLegend', 'scatter-like'],
99761
+ module.exports = index;
99617
99762
 
99618
- attributes: _dereq_('./attributes'),
99619
- supplyDefaults: _dereq_('./defaults'),
99620
- colorbar: _dereq_('../scatter/marker_colorbar'),
99621
-
99622
- calc: _dereq_('./calc'),
99623
- plot: _dereq_('./plot'),
99624
- hoverPoints: _dereq_('./hover').hoverPoints,
99625
- selectPoints: _dereq_('./select'),
99626
- editStyle: _dereq_('./edit_style'),
99627
-
99628
- meta: {
99629
- }
99630
- };
99631
-
99632
- // splom traces use the 'grid' component to generate their axes,
99633
- // register it here
99634
- Registry.register(Grid);
99635
-
99636
- },{"../../components/grid":300,"../../registry":481,"../scatter/marker_colorbar":547,"./attributes":571,"./base_plot":572,"./calc":573,"./defaults":574,"./edit_style":575,"./hover":577,"./plot":579,"./select":581}],579:[function(_dereq_,module,exports){
99763
+ },{"./base_index":574,"./base_plot":575}],582:[function(_dereq_,module,exports){
99637
99764
  'use strict';
99638
99765
 
99639
99766
  var createMatrix = _dereq_('regl-splom');
@@ -99776,7 +99903,7 @@ function plotOne(gd, cd0) {
99776
99903
  }
99777
99904
  }
99778
99905
 
99779
- },{"../../components/dragelement/helpers":274,"../../lib":388,"../../plots/cartesian/axis_ids":442,"regl-splom":196}],580:[function(_dereq_,module,exports){
99906
+ },{"../../components/dragelement/helpers":274,"../../lib":388,"../../plots/cartesian/axis_ids":442,"regl-splom":196}],583:[function(_dereq_,module,exports){
99780
99907
  'use strict';
99781
99908
 
99782
99909
  var Lib = _dereq_('../../lib');
@@ -99840,7 +99967,7 @@ module.exports = function sceneUpdate(gd, trace) {
99840
99967
  return scene;
99841
99968
  };
99842
99969
 
99843
- },{"../../lib":388}],581:[function(_dereq_,module,exports){
99970
+ },{"../../lib":388}],584:[function(_dereq_,module,exports){
99844
99971
  'use strict';
99845
99972
 
99846
99973
  var Lib = _dereq_('../../lib');
@@ -99907,7 +100034,7 @@ module.exports = function select(searchInfo, selectionTester) {
99907
100034
  return selection;
99908
100035
  };
99909
100036
 
99910
- },{"../../lib":388,"../scatter/subtypes":554,"./helpers":576}],582:[function(_dereq_,module,exports){
100037
+ },{"../../lib":388,"../scatter/subtypes":555,"./helpers":579}],585:[function(_dereq_,module,exports){
99911
100038
  'use strict';
99912
100039
 
99913
100040
  var Axes = _dereq_('../plots/cartesian/axes');
@@ -100311,7 +100438,7 @@ function last(array, indices) {
100311
100438
  return array[indices[indices.length - 1]];
100312
100439
  }
100313
100440
 
100314
- },{"../constants/numerical":366,"../lib":388,"../plot_api/plot_schema":426,"../plots/cartesian/axes":438,"./helpers":585}],583:[function(_dereq_,module,exports){
100441
+ },{"../constants/numerical":366,"../lib":388,"../plot_api/plot_schema":426,"../plots/cartesian/axes":438,"./helpers":588}],586:[function(_dereq_,module,exports){
100315
100442
  'use strict';
100316
100443
 
100317
100444
  var Lib = _dereq_('../lib');
@@ -100571,7 +100698,7 @@ function getFilterFunc(opts, d2c, targetCalendar) {
100571
100698
  }
100572
100699
  }
100573
100700
 
100574
- },{"../constants/filter_ops":364,"../lib":388,"../plots/cartesian/axes":438,"../registry":481,"./helpers":585}],584:[function(_dereq_,module,exports){
100701
+ },{"../constants/filter_ops":364,"../lib":388,"../plots/cartesian/axes":438,"../registry":481,"./helpers":588}],587:[function(_dereq_,module,exports){
100575
100702
  'use strict';
100576
100703
 
100577
100704
  var Lib = _dereq_('../lib');
@@ -100815,7 +100942,7 @@ function transformOne(trace, state) {
100815
100942
  return newData;
100816
100943
  }
100817
100944
 
100818
- },{"../lib":388,"../plot_api/plot_schema":426,"../plots/plots":479,"./helpers":585}],585:[function(_dereq_,module,exports){
100945
+ },{"../lib":388,"../plot_api/plot_schema":426,"../plots/plots":479,"./helpers":588}],588:[function(_dereq_,module,exports){
100819
100946
  'use strict';
100820
100947
 
100821
100948
  exports.pointsAccessorFunction = function(transforms, opts) {
@@ -100833,7 +100960,7 @@ exports.pointsAccessorFunction = function(transforms, opts) {
100833
100960
  return originalPointsAccessor;
100834
100961
  };
100835
100962
 
100836
- },{}],586:[function(_dereq_,module,exports){
100963
+ },{}],589:[function(_dereq_,module,exports){
100837
100964
  'use strict';
100838
100965
 
100839
100966
  var Lib = _dereq_('../lib');
@@ -100971,13 +101098,13 @@ function getSortFunc(opts, d2c) {
100971
101098
  }
100972
101099
  }
100973
101100
 
100974
- },{"../constants/numerical":366,"../lib":388,"../plots/cartesian/axes":438,"./helpers":585}],587:[function(_dereq_,module,exports){
101101
+ },{"../constants/numerical":366,"../lib":388,"../plots/cartesian/axes":438,"./helpers":588}],590:[function(_dereq_,module,exports){
100975
101102
  'use strict';
100976
101103
 
100977
101104
  // package version injected by `npm run preprocess`
100978
- exports.version = '2.9.0';
101105
+ exports.version = '2.11.0';
100979
101106
 
100980
- },{}],588:[function(_dereq_,module,exports){
101107
+ },{}],591:[function(_dereq_,module,exports){
100981
101108
  (function (global){(function (){
100982
101109
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.stackgl = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof _dereq_&&_dereq_;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof _dereq_&&_dereq_,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_glvis_,module,exports){
100983
101110
  'use strict'
@@ -136155,7 +136282,7 @@ var robustSum = _glvis_("robust-sum")
136155
136282
  var robustScale = _glvis_("robust-scale")
136156
136283
  var compress = _glvis_("robust-compress")
136157
136284
 
136158
- var NUM_EXPANDED = 4
136285
+ var NUM_EXPANDED = 6
136159
136286
 
136160
136287
  function determinant_2(sum, scale, prod, compress) {
136161
136288
  return function robustDeterminant2(m) {
@@ -136169,10 +136296,24 @@ function determinant_3(sum, scale, prod, compress) {
136169
136296
  }
136170
136297
  }
136171
136298
 
136299
+ function determinant_4(sum, scale, prod, compress) {
136300
+ return function robustDeterminant4(m) {
136301
+ return compress(sum(sum(scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][1]), sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), -m[1][2]), scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][3]))), m[0][0]), scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][2]), scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), m[1][3]))), -m[0][1])), sum(scale(sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][3]))), m[0][2]), scale(sum(scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][2]))), -m[0][3]))))
136302
+ }
136303
+ }
136304
+
136305
+ function determinant_5(sum, scale, prod, compress) {
136306
+ return function robustDeterminant5(m) {
136307
+ return compress(sum(sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][1]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), -m[1][4]))), m[0][0]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][4]))), -m[0][1])), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), -m[1][4]))), m[0][2]), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][4]))), -m[0][3]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][3]))), m[0][4])))))
136308
+ }
136309
+ }
136310
+
136172
136311
  function compileDeterminant(n) {
136173
136312
  var fn =
136174
136313
  n === 2 ? determinant_2 :
136175
- n === 3 ? determinant_3 : undefined
136314
+ n === 3 ? determinant_3 :
136315
+ n === 4 ? determinant_4 :
136316
+ n === 5 ? determinant_5 : undefined
136176
136317
  return fn(robustSum, robustScale, twoProduct, compress)
136177
136318
  }
136178
136319
 
@@ -136181,7 +136322,7 @@ var CACHE = [
136181
136322
  function robustDeterminant1(m) { return [m[0][0]] }
136182
136323
  ]
136183
136324
 
136184
- function proc(det0, det1, det2, det3, CACHE, gen) {
136325
+ function proc(det0, det1, det2, det3, det4, det5, CACHE, gen) {
136185
136326
  return function robustDeterminant(m) {
136186
136327
  switch (m.length) {
136187
136328
  case 0:
@@ -136192,6 +136333,10 @@ function proc(det0, det1, det2, det3, CACHE, gen) {
136192
136333
  return det2(m)
136193
136334
  case 3:
136194
136335
  return det3(m)
136336
+ case 4:
136337
+ return det4(m)
136338
+ case 5:
136339
+ return det5(m)
136195
136340
  }
136196
136341
  var det = CACHE[m.length]
136197
136342
  if (!det) det = CACHE[m.length] = gen(m.length)
@@ -136435,13 +136580,16 @@ generateInSphereTest()
136435
136580
 
136436
136581
  var determinant = _glvis_("robust-determinant")
136437
136582
 
136438
- var NUM_EXPAND = 3
136583
+ var NUM_EXPAND = 6
136439
136584
 
136440
136585
  function generateSolver(n) {
136441
136586
  var fn =
136442
- n === 2 ? solve2d : solve3d
136587
+ n === 2 ? solve2d :
136588
+ n === 3 ? solve3d :
136589
+ n === 4 ? solve4d :
136590
+ n === 5 ? solve5d : solve6d
136443
136591
 
136444
- if(n < NUM_EXPAND) {
136592
+ if(n < 6) {
136445
136593
  return fn(determinant[n])
136446
136594
  }
136447
136595
  return fn(determinant)
@@ -136467,18 +136615,38 @@ function solve3d(det) {
136467
136615
  }
136468
136616
  }
136469
136617
 
136618
+ function solve4d(det) {
136619
+ return function robustLinearSolve4d(A, b) {
136620
+ return [det([[+b[0], +A[0][1], +A[0][2], +A[0][3]], [+b[1], +A[1][1], +A[1][2], +A[1][3]], [+b[2], +A[2][1], +A[2][2], +A[2][3]], [+b[3], +A[3][1], +A[3][2], +A[3][3]]]), det([[+A[0][0], +b[0], +A[0][2], +A[0][3]], [+A[1][0], +b[1], +A[1][2], +A[1][3]], [+A[2][0], +b[2], +A[2][2], +A[2][3]], [+A[3][0], +b[3], +A[3][2], +A[3][3]]]), det([[+A[0][0], +A[0][1], +b[0], +A[0][3]], [+A[1][0], +A[1][1], +b[1], +A[1][3]], [+A[2][0], +A[2][1], +b[2], +A[2][3]], [+A[3][0], +A[3][1], +b[3], +A[3][3]]]), det([[+A[0][0], +A[0][1], +A[0][2], +b[0]], [+A[1][0], +A[1][1], +A[1][2], +b[1]], [+A[2][0], +A[2][1], +A[2][2], +b[2]], [+A[3][0], +A[3][1], +A[3][2], +b[3]]]), det(A)]
136621
+ }
136622
+ }
136623
+
136624
+ function solve5d(det) {
136625
+ return function robustLinearSolve5d(A, b) {
136626
+ return [det([[+b[0], +A[0][1], +A[0][2], +A[0][3], +A[0][4]], [+b[1], +A[1][1], +A[1][2], +A[1][3], +A[1][4]], [+b[2], +A[2][1], +A[2][2], +A[2][3], +A[2][4]], [+b[3], +A[3][1], +A[3][2], +A[3][3], +A[3][4]], [+b[4], +A[4][1], +A[4][2], +A[4][3], +A[4][4]]]), det([[+A[0][0], +b[0], +A[0][2], +A[0][3], +A[0][4]], [+A[1][0], +b[1], +A[1][2], +A[1][3], +A[1][4]], [+A[2][0], +b[2], +A[2][2], +A[2][3], +A[2][4]], [+A[3][0], +b[3], +A[3][2], +A[3][3], +A[3][4]], [+A[4][0], +b[4], +A[4][2], +A[4][3], +A[4][4]]]), det([[+A[0][0], +A[0][1], +b[0], +A[0][3], +A[0][4]], [+A[1][0], +A[1][1], +b[1], +A[1][3], +A[1][4]], [+A[2][0], +A[2][1], +b[2], +A[2][3], +A[2][4]], [+A[3][0], +A[3][1], +b[3], +A[3][3], +A[3][4]], [+A[4][0], +A[4][1], +b[4], +A[4][3], +A[4][4]]]), det([[+A[0][0], +A[0][1], +A[0][2], +b[0], +A[0][4]], [+A[1][0], +A[1][1], +A[1][2], +b[1], +A[1][4]], [+A[2][0], +A[2][1], +A[2][2], +b[2], +A[2][4]], [+A[3][0], +A[3][1], +A[3][2], +b[3], +A[3][4]], [+A[4][0], +A[4][1], +A[4][2], +b[4], +A[4][4]]]), det([[+A[0][0], +A[0][1], +A[0][2], +A[0][3], +b[0]], [+A[1][0], +A[1][1], +A[1][2], +A[1][3], +b[1]], [+A[2][0], +A[2][1], +A[2][2], +A[2][3], +b[2]], [+A[3][0], +A[3][1], +A[3][2], +A[3][3], +b[3]], [+A[4][0], +A[4][1], +A[4][2], +A[4][3], +b[4]]]), det(A)]
136627
+ }
136628
+ }
136629
+
136630
+ function solve6d(det) {
136631
+ return function robustLinearSolve6d(A, b) {
136632
+ return [det([[+b[0], +A[0][1], +A[0][2], +A[0][3], +A[0][4], +A[0][5]], [+b[1], +A[1][1], +A[1][2], +A[1][3], +A[1][4], +A[1][5]], [+b[2], +A[2][1], +A[2][2], +A[2][3], +A[2][4], +A[2][5]], [+b[3], +A[3][1], +A[3][2], +A[3][3], +A[3][4], +A[3][5]], [+b[4], +A[4][1], +A[4][2], +A[4][3], +A[4][4], +A[4][5]], [+b[5], +A[5][1], +A[5][2], +A[5][3], +A[5][4], +A[5][5]]]), det([[+A[0][0], +b[0], +A[0][2], +A[0][3], +A[0][4], +A[0][5]], [+A[1][0], +b[1], +A[1][2], +A[1][3], +A[1][4], +A[1][5]], [+A[2][0], +b[2], +A[2][2], +A[2][3], +A[2][4], +A[2][5]], [+A[3][0], +b[3], +A[3][2], +A[3][3], +A[3][4], +A[3][5]], [+A[4][0], +b[4], +A[4][2], +A[4][3], +A[4][4], +A[4][5]], [+A[5][0], +b[5], +A[5][2], +A[5][3], +A[5][4], +A[5][5]]]), det([[+A[0][0], +A[0][1], +b[0], +A[0][3], +A[0][4], +A[0][5]], [+A[1][0], +A[1][1], +b[1], +A[1][3], +A[1][4], +A[1][5]], [+A[2][0], +A[2][1], +b[2], +A[2][3], +A[2][4], +A[2][5]], [+A[3][0], +A[3][1], +b[3], +A[3][3], +A[3][4], +A[3][5]], [+A[4][0], +A[4][1], +b[4], +A[4][3], +A[4][4], +A[4][5]], [+A[5][0], +A[5][1], +b[5], +A[5][3], +A[5][4], +A[5][5]]]), det([[+A[0][0], +A[0][1], +A[0][2], +b[0], +A[0][4], +A[0][5]], [+A[1][0], +A[1][1], +A[1][2], +b[1], +A[1][4], +A[1][5]], [+A[2][0], +A[2][1], +A[2][2], +b[2], +A[2][4], +A[2][5]], [+A[3][0], +A[3][1], +A[3][2], +b[3], +A[3][4], +A[3][5]], [+A[4][0], +A[4][1], +A[4][2], +b[4], +A[4][4], +A[4][5]], [+A[5][0], +A[5][1], +A[5][2], +b[5], +A[5][4], +A[5][5]]]), det([[+A[0][0], +A[0][1], +A[0][2], +A[0][3], +b[0], +A[0][5]], [+A[1][0], +A[1][1], +A[1][2], +A[1][3], +b[1], +A[1][5]], [+A[2][0], +A[2][1], +A[2][2], +A[2][3], +b[2], +A[2][5]], [+A[3][0], +A[3][1], +A[3][2], +A[3][3], +b[3], +A[3][5]], [+A[4][0], +A[4][1], +A[4][2], +A[4][3], +b[4], +A[4][5]], [+A[5][0], +A[5][1], +A[5][2], +A[5][3], +b[5], +A[5][5]]]), det([[+A[0][0], +A[0][1], +A[0][2], +A[0][3], +A[0][4], +b[0]], [+A[1][0], +A[1][1], +A[1][2], +A[1][3], +A[1][4], +b[1]], [+A[2][0], +A[2][1], +A[2][2], +A[2][3], +A[2][4], +b[2]], [+A[3][0], +A[3][1], +A[3][2], +A[3][3], +A[3][4], +b[3]], [+A[4][0], +A[4][1], +A[4][2], +A[4][3], +A[4][4], +b[4]], [+A[5][0], +A[5][1], +A[5][2], +A[5][3], +A[5][4], +b[5]]]), det(A)]
136633
+ }
136634
+ }
136635
+
136470
136636
  var CACHE = [
136471
136637
  robustLinearSolve0d,
136472
136638
  robustLinearSolve1d
136473
136639
  ]
136474
136640
 
136475
- function proc(s0, s1, s2, s3, CACHE, g) {
136641
+ function proc(s0, s1, s2, s3, s4, s5, CACHE, g) {
136476
136642
  return function dispatchLinearSolve(A, b) {
136477
136643
  switch (A.length) {
136478
136644
  case 0: return s0(A, b);
136479
136645
  case 1: return s1(A, b);
136480
136646
  case 2: return s2(A, b);
136481
136647
  case 3: return s3(A, b);
136648
+ case 4: return s4(A, b);
136649
+ case 5: return s5(A, b);
136482
136650
  }
136483
136651
  var s = CACHE[A.length];
136484
136652
  if (!s) s = CACHE[A.length] = g(A.length);
@@ -136487,7 +136655,7 @@ function proc(s0, s1, s2, s3, CACHE, g) {
136487
136655
  }
136488
136656
 
136489
136657
  function generateDispatch() {
136490
- while(CACHE.length <= NUM_EXPAND) {
136658
+ while(CACHE.length < NUM_EXPAND) {
136491
136659
  CACHE.push(generateSolver(CACHE.length))
136492
136660
  }
136493
136661
  module.exports = proc.apply(undefined, CACHE.concat([CACHE, generateSolver]))