forked from processing-js/processing-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprocessing.min.js
More file actions
executable file
·426 lines (426 loc) · 219 KB
/
processing.min.js
File metadata and controls
executable file
·426 lines (426 loc) · 219 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
(function e$$0(y,O,k){function g(a,b){if(!O[a]){if(!y[a]){var f="function"==typeof require&&require;if(!b&&f)return f(a,!0);if(l)return l(a,!0);throw Error("Cannot find module '"+a+"'");}f=O[a]={exports:{}};y[a][0].call(f.exports,function(d){var b=y[a][1][d];return g(b?b:d)},f,f.exports,e$$0,y,O,k)}return O[a].exports}for(var l="function"==typeof require&&require,p=0;p<k.length;p++)g(k[p]);return g})({1:[function(C,y,O){y={isDomPresent:!0,navigator:navigator,window:window,document:document,ajax:function(k){var g=
new XMLHttpRequest;g.open("GET",k,!1);g.overrideMimeType&&g.overrideMimeType("text/plain");g.setRequestHeader("If-Modified-Since","Fri, 01 Jan 1960 00:00:00 GMT");g.send(null);if(200!==g.status&&0!==g.status)throw"XMLHttpRequest failed, status code "+g.status;return g.responseText}};window.Processing=C("./src/")(y)},{"./src/":27}],2:[function(C,y,O){y.exports={name:"Processing.js",version:"1.4.2",dependencies:{argv:"~0.0.2",browserify:"~2.18.1",express:"~3.3.3","node-minify":"~0.7.3",nunjucks:"~0.1.9",
open:"0.0.3"},devDependencies:{grunt:"~0.4.1","grunt-cli":"~0.1.8","grunt-contrib-jshint":"~0.4.3"}}},{}],3:[function(C,y,O){y.exports=function(k){if(k instanceof Array){var g=-1;this.hasNext=function(){return++g<k.length};this.next=function(){return k[g]}}else{if(k.iterator instanceof Function)return k.iterator();throw"Unable to iterate: "+k;}}},{}],4:[function(C,y,O){y.exports={X:0,Y:1,Z:2,R:3,G:4,B:5,A:6,U:7,V:8,NX:9,NY:10,NZ:11,EDGE:12,SR:13,SG:14,SB:15,SA:16,SW:17,TX:18,TY:19,TZ:20,VX:21,VY:22,
VZ:23,VW:24,AR:25,AG:26,AB:27,DR:3,DG:4,DB:5,DA:6,SPR:28,SPG:29,SPB:30,SHINE:31,ER:32,EG:33,EB:34,BEEN_LIT:35,VERTEX_FIELD_COUNT:36,P2D:1,JAVA2D:1,WEBGL:2,P3D:2,OPENGL:2,PDF:0,DXF:0,OTHER:0,WINDOWS:1,MAXOSX:2,LINUX:3,EPSILON:1E-4,MAX_FLOAT:3.4028235E38,MIN_FLOAT:-3.4028235E38,MAX_INT:2147483647,MIN_INT:-2147483648,PI:Math.PI,TWO_PI:2*Math.PI,TAU:2*Math.PI,HALF_PI:Math.PI/2,THIRD_PI:Math.PI/3,QUARTER_PI:Math.PI/4,DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,WHITESPACE:" \t\n\r\f\u00a0",RGB:1,ARGB:2,
HSB:3,ALPHA:4,CMYK:5,TIFF:0,TARGA:1,JPEG:2,GIF:3,BLUR:11,GRAY:12,INVERT:13,OPAQUE:14,POSTERIZE:15,THRESHOLD:16,ERODE:17,DILATE:18,REPLACE:0,BLEND:1,ADD:2,SUBTRACT:4,LIGHTEST:8,DARKEST:16,DIFFERENCE:32,EXCLUSION:64,MULTIPLY:128,SCREEN:256,OVERLAY:512,HARD_LIGHT:1024,SOFT_LIGHT:2048,DODGE:4096,BURN:8192,ALPHA_MASK:4278190080,RED_MASK:16711680,GREEN_MASK:65280,BLUE_MASK:255,CUSTOM:0,ORTHOGRAPHIC:2,PERSPECTIVE:3,POINT:2,POINTS:2,LINE:4,LINES:4,TRIANGLE:8,TRIANGLES:9,TRIANGLE_STRIP:10,TRIANGLE_FAN:11,
QUAD:16,QUADS:16,QUAD_STRIP:17,POLYGON:20,PATH:21,RECT:30,ELLIPSE:31,ARC:32,SPHERE:40,BOX:41,GROUP:0,PRIMITIVE:1,GEOMETRY:3,VERTEX:0,BEZIER_VERTEX:1,CURVE_VERTEX:2,BREAK:3,CLOSESHAPE:4,OPEN:1,CLOSE:2,CORNER:0,CORNERS:1,RADIUS:2,CENTER_RADIUS:2,CENTER:3,DIAMETER:3,CENTER_DIAMETER:3,BASELINE:0,TOP:101,BOTTOM:102,NORMAL:1,NORMALIZED:1,IMAGE:2,MODEL:4,SHAPE:5,SQUARE:"butt",ROUND:"round",PROJECT:"square",MITER:"miter",BEVEL:"bevel",AMBIENT:0,DIRECTIONAL:1,SPOT:3,BACKSPACE:8,TAB:9,ENTER:10,RETURN:13,ESC:27,
DELETE:127,CODED:65535,SHIFT:16,CONTROL:17,ALT:18,CAPSLK:20,PGUP:33,PGDN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLK:144,META:157,INSERT:155,ARROW:"default",CROSS:"crosshair",HAND:"pointer",MOVE:"move",TEXT:"text",WAIT:"wait",NOCURSOR:"url('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='), auto",DISABLE_OPENGL_2X_SMOOTH:1,ENABLE_OPENGL_2X_SMOOTH:-1,ENABLE_OPENGL_4X_SMOOTH:2,
ENABLE_NATIVE_FONTS:3,DISABLE_DEPTH_TEST:4,ENABLE_DEPTH_TEST:-4,ENABLE_DEPTH_SORT:5,DISABLE_DEPTH_SORT:-5,DISABLE_OPENGL_ERROR_REPORT:6,ENABLE_OPENGL_ERROR_REPORT:-6,ENABLE_ACCURATE_TEXTURES:7,DISABLE_ACCURATE_TEXTURES:-7,HINT_COUNT:10,SINCOS_LENGTH:720,PRECISIONB:15,PRECISIONF:32768,PREC_MAXVAL:32767,PREC_ALPHA_SHIFT:9,PREC_RED_SHIFT:1,NORMAL_MODE_AUTO:0,NORMAL_MODE_SHAPE:1,NORMAL_MODE_VERTEX:2,MAX_LIGHTS:8}},{}],5:[function(C,y,O){y.exports=function(k){function g(){}function l(a,f,d){if(a.hasOwnProperty(f)&&
"function"===typeof a[f]){var m=a[f];if("$overloads"in m)m.$defaultOverload=d;else if("$overloads"in d||m.length!==d.length){var n;"$overloads"in d?(n=d.$overloads.slice(0),n[m.length]=m,m=d.$defaultOverload):(n=[],n[d.length]=d,n[m.length]=m);var r=function(){return(r.$overloads[arguments.length]||("$methodArgsIndex"in r&&arguments.length>r.$methodArgsIndex?r.$overloads[r.$methodArgsIndex]:null)||r.$defaultOverload).apply(this,arguments)};r.$overloads=n;"$methodArgsIndex"in d&&(r.$methodArgsIndex=
d.$methodArgsIndex);r.$defaultOverload=m;r.name=f;a[f]=r}}else a[f]=d}function p(b,f){function d(d){a.defineProperty(b,d,{get:function(){return f[d]},set:function(c){f[d]=c},enumerable:!0})}var m=[],n;for(n in f)"function"===typeof f[n]?l(b,n,f[n]):"$"===n.charAt(0)||n in b||m.push(n);for(;0<m.length;)d(m.shift());b.$super=f}g.prototype=k.PConstants;var a=new g;Object.keys(k).forEach(function(b){a[b]=k[b]});a.defineProperty=function(a,f,d){"defineProperty"in Object?Object.defineProperty(a,f,d):(d.hasOwnProperty("get")&&
a.__defineGetter__(f,d.get),d.hasOwnProperty("set")&&a.__defineSetter__(f,d.set))};a.extendClassChain=function(a){for(var f=[a],d=a.$upcast;d;d=d.$upcast)p(d,a),f.push(d),a=d;for(;0<f.length;)f.pop().$self=a};a.extendStaticMembers=function(a,f){p(a,f)};a.extendInterfaceMembers=function(a,f){p(a,f)};a.addMethod=function(a,f,d,m){var n=a[f];if(n||m){var r=d.length;if("$overloads"in n)n.$overloads[r]=d;else{var c=function(){return(c.$overloads[arguments.length]||("$methodArgsIndex"in c&&arguments.length>
c.$methodArgsIndex?c.$overloads[c.$methodArgsIndex]:null)||c.$defaultOverload).apply(this,arguments)},g=[];n&&(g[n.length]=n);g[r]=d;c.$overloads=g;c.$defaultOverload=n||d;m&&(c.$methodArgsIndex=r);c.name=f;a[f]=c}}else a[f]=d};a.createJavaArray=function(b,f){var d=null,m=null;if("string"===typeof b)if("boolean"===b)m=!1;else{var n;n="string"!==typeof b?!1:-1!=="byte int char color float long double".split(" ").indexOf(b);n&&(m=0)}if("number"===typeof f[0])if(n=0|f[0],1>=f.length){d=[];d.length=n;
for(var r=0;r<n;++r)d[r]=m}else for(d=[],m=f.slice(1),r=0;r<n;++r)d.push(a.createJavaArray(b,m));return d};a.defineProperty(a,"screenWidth",{get:function(){return window.innerWidth}});a.defineProperty(a,"screenHeight",{get:function(){return window.innerHeight}});return a}},{}],6:[function(C,y,O){y.exports=function(k,g){var l=g.window,p=g.document,a=l.XMLHttpRequest,b=g.noop,f=g.isDOMPresent,d=g.version;k.version=d?d:"@DEV-VERSION@";k.lib={};k.registerLibrary=function(d,c){k.lib[d]=c;c.hasOwnProperty("init")&&
c.init(defaultScope)};k.Sketch=function(d){this.attachFunction=d;this.options={pauseOnBlur:!1,globalKeyEvents:!1};this.onExit=this.onFrameEnd=this.onFrameStart=this.onLoop=this.onPause=this.onSetup=this.onLoad=b;this.params={};this.imageCache={pending:0,images:{},operaCache:{},add:function(d,a){if(!this.images[d]&&(f||(this.images[d]=null),a||(a=new Image,a.onload=function(d){return function(){d.pending--}}(this),this.pending++,a.src=d),this.images[d]=a,l.opera)){var b=p.createElement("div");b.appendChild(a);
b.style.position="absolute";b.style.opacity=0;b.style.width="1px";b.style.height="1px";this.operaCache[d]||(p.body.appendChild(b),this.operaCache[d]=b)}}};this.sourceCode=void 0;this.attach=function(d){if("function"===typeof this.attachFunction)this.attachFunction(d);else if(this.sourceCode){var a=(new Function("return ("+this.sourceCode+");"))();a(d);this.attachFunction=a}else throw"Unable to attach sketch to the processing instance";};this.toString=function(){var d,a;a="((function(Sketch) {\n"+
("var sketch = new Sketch(\n"+this.sourceCode+");\n");for(d in this.options)if(this.options.hasOwnProperty(d)){var f=this.options[d];a+="sketch.options."+d+" = "+("string"===typeof f?'"'+f+'"':""+f)+";\n"}for(d in this.imageCache)this.options.hasOwnProperty(d)&&(a+='sketch.imageCache.add("'+d+'");\n');return a+"return sketch;\n})(Processing.Sketch))"}};var m=k.loadSketchFromSources=function(d,c){function f(d,c){var b=new a;b.onreadystatechange=function(){if(4===b.readyState){var d;200!==b.status&&
0!==b.status?d="Invalid XHR status "+b.status:""===b.responseText&&(d="withCredentials"in new a&&!1===(new a).withCredentials&&"file:"===l.location.protocol?"XMLHttpRequest failure, possibly due to a same-origin policy violation. You can try loading this page in another browser, or load it from http://localhost using a local webserver. See the Processing.js README for a more detailed explanation of this problem and solutions.":"File is empty.");c(b.responseText,d)}};b.open("GET",d,!0);b.overrideMimeType&&
b.overrideMimeType("application/json");b.setRequestHeader("If-Modified-Since","Fri, 01 Jan 1960 00:00:00 GMT");b.send(null)}function b(c,a){function l(b,f){m[c]=b;++w;f&&n.push(a+" ==> "+f);if(w===g)if(0===n.length)try{return new k(d,m.join("\n"))}catch(od){throw console.log("Processing.js: Unable to execute pjs sketch."),od;}else throw"Processing.js: Unable to load pjs sketch files: "+n.join("\n");}if("#"===a.charAt(0)){var ta=p.getElementById(a.substring(1));ta?l(ta.text||ta.textContent):l("","Unable to load pjs sketch: element with id '"+
a.substring(1)+"' was not found")}else f(a,l)}for(var m=[],n=[],g=c.length,w=0,ga=0;ga<g;++ga)b(ga,c[ga])},n=function(){p.removeEventListener("DOMContentLoaded",n,!1);processingInstances=[];k.instances=processingInstances;for(var d=p.getElementsByTagName("canvas"),c,a=0,f=d.length;a<f;a++){var b=d[a].getAttribute("data-processing-sources");null===b&&(b=d[a].getAttribute("data-src"),null===b&&(b=d[a].getAttribute("datasrc")));if(b){c=b.split(/\s+/g);for(b=0;b<c.length;)c[b]?b++:c.splice(b,1);m(d[a],
c)}}d=p.getElementsByTagName("script");f=[];for(a=d.length-1;0<=a;a--)f.push(d[a]);a=0;for(b=f.length;a<b;a++)if(c=f[a],c.getAttribute&&(d=c.getAttribute("type"))&&("text/processing"===d.toLowerCase()||"application/processing"===d.toLowerCase())){var g=c.getAttribute("data-processing-target"),d=void 0;if(g)d=p.getElementById(g);else{for(g=c.nextSibling;g&&1!==g.nodeType;)g=g.nextSibling;g&&"canvas"===g.nodeName.toLowerCase()&&(d=g)}d&&(c.getAttribute("src")?(c=c.getAttribute("src").split(/\s+/),m(d,
c)):(c=c.textContent||c.text,new k(d,c)))}};p.addEventListener("DOMContentLoaded",n,!1);k.reload=function(){if(0<processingInstances.length)for(var d=processingInstances.length-1;0<=d;d--)processingInstances[d]&&processingInstances[d].exit();n()};k.disableInit=function(){p.removeEventListener("DOMContentLoaded",n,!1)};return k}},{}],7:[function(C,y,O){y.exports=function(k,g){return null===k||null===g?null===k&&null===g:"string"===typeof k||"object"!==typeof k?k===g:k.equals instanceof Function?k.equals(g):
k===g}},{}],8:[function(C,y,O){y.exports=function(k,g){if("string"===typeof k){for(var l=0,p=0;p<k.length;++p)l=31*l+k.charCodeAt(p)&4294967295;return l}if("object"!==typeof k)return k&4294967295;if(k.hashCode instanceof Function)return k.hashCode();k.$id===g&&(k.$id=Math.floor(65536*Math.random())-32768<<16|Math.floor(65536*Math.random()));return k.$id}},{}],9:[function(C,y,O){y.exports=function(k){function g(a){var b=-1;this.hasNext=function(){return b+1<a.length};this.next=function(){return a[++b]};
this.remove=function(){a.splice(b--,1)}}function l(a){var b=[];a&&a.toArray&&(b=a.toArray());this.get=function(a){return b[a]};this.contains=function(a){return-1<this.indexOf(a)};this.indexOf=function(a){for(var d=0,m=b.length;d<m;++d)if(p(a,b[d]))return d;return-1};this.lastIndexOf=function(a){for(var d=b.length-1;0<=d;--d)if(p(a,b[d]))return d;return-1};this.add=function(){if(1===arguments.length)b.push(arguments[0]);else if(2===arguments.length){var a=arguments[0];if("number"===typeof a)if(0<=
a&&a<=b.length)b.splice(a,0,arguments[1]);else throw a+" is not a valid index";else throw typeof a+" is not a number";}else throw"Please use the proper number of parameters.";};this.addAll=function(a,d){var m;if("number"===typeof a){if(0>a||a>b.length)throw"Index out of bounds for addAll: "+a+" greater or equal than "+b.length;for(m=new ObjectIterator(d);m.hasNext();)b.splice(a++,0,m.next())}else for(m=new ObjectIterator(a);m.hasNext();)b.push(m.next())};this.set=function(){if(2===arguments.length){var a=
arguments[0];if("number"===typeof a)if(0<=a&&a<b.length)b.splice(a,1,arguments[1]);else throw a+" is not a valid index.";else throw typeof a+" is not a number";}else throw"Please use the proper number of parameters.";};this.size=function(){return b.length};this.clear=function(){b.length=0};this.remove=function(a){if("number"===typeof a)return b.splice(a,1)[0];a=this.indexOf(a);return-1<a?(b.splice(a,1),!0):!1};this.removeAll=function(a){var d,b,n,r=new l;r.addAll(this);this.clear();for(b=d=0;d<r.size();d++)n=
r.get(d),a.contains(n)||this.add(b++,n);return this.size()<r.size()?!0:!1};this.isEmpty=function(){return!b.length};this.clone=function(){return new l(this)};this.toArray=function(){return b.slice(0)};this.iterator=function(){return new g(b)}}var p=k.virtEquals;return l}},{}],10:[function(C,y,O){y.exports=function(k,g){var l=function(p){this.code="string"===typeof p&&1===p.length?p.charCodeAt(0):"number"===typeof p?p:p instanceof l?p:NaN;return k[this.code]===g?k[this.code]=this:k[this.code]};l.prototype.toString=
function(){return String.fromCharCode(this.code)};l.prototype.valueOf=function(){return this.code};return l}({})},{}],11:[function(C,y,O){y.exports=function(k){function g(){function a(d){d=l(d)%c.length;return 0>d?c.length+d:d}function b(){if(!(k<=r*c.length)){for(var d=[],b=0;b<c.length;++b)void 0!==c[b]&&(d=d.concat(c[b]));b=2*c.length;c=[];c.length=b;for(b=0;b<d.length;++b){var f=a(d[b].key),m=c[f];void 0===m&&(c[f]=m=[]);m.push(d[b])}}}function f(d,a){function b(){for(;!n;)if(++m,f>=c.length)n=
!0;else if(void 0===c[f]||m>=c[f].length)m=-1,++f;else break}var f=0,m=-1,n=!1,r;this.hasNext=function(){return!n};this.next=function(){r=d(c[f][m]);b();return r};this.remove=function(){void 0!==r&&(a(r),--m,b())};b()}function d(d,a,c){this.clear=function(){ta.clear()};this.contains=function(d){return a(d)};this.containsAll=function(d){for(d=d.iterator();d.hasNext();)if(!this.contains(d.next()))return!1;return!0};this.isEmpty=function(){return ta.isEmpty()};this.iterator=function(){return new f(d,
c)};this.remove=function(d){return this.contains(d)?(c(d),!0):!1};this.removeAll=function(d){for(d=d.iterator();d.hasNext();){var a=d.next();this.contains(a)&&c(a)}return!0};this.retainAll=function(d){for(var a=this.iterator(),b=[];a.hasNext();){var f=a.next();d.contains(f)||b.push(f)}for(d=0;d<b.length;++d)c(b[d]);return 0<b.length};this.size=function(){return ta.size()};this.toArray=function(){for(var d=[],a=this.iterator();a.hasNext();)d.push(a.next());return d}}function m(d){this._isIn=function(a){return a===
ta&&void 0===d.removed};this.equals=function(a){return p(d.key,a.getKey())};this.getKey=function(){return d.key};this.getValue=function(){return d.value};this.hashCode=function(a){return l(d.key)};this.setValue=function(a){var c=d.value;d.value=a;return c}}if(1===arguments.length&&arguments[0]instanceof g)return arguments[0].clone();var n=0<arguments.length?arguments[0]:16,r=1<arguments.length?arguments[1]:0.75,c=[];c.length=n;var k=0,ta=this;this.clear=function(){k=0;c=[];c.length=n};this.clone=
function(){var d=new g;d.putAll(this);return d};this.containsKey=function(d){var b=a(d),b=c[b];if(void 0===b)return!1;for(var f=0;f<b.length;++f)if(p(b[f].key,d))return!0;return!1};this.containsValue=function(d){for(var a=0;a<c.length;++a){var b=c[a];if(void 0!==b)for(var f=0;f<b.length;++f)if(p(b[f].value,d))return!0}return!1};this.entrySet=function(){return new d(function(d){return new m(d)},function(d){return d instanceof m&&d._isIn(ta)},function(d){return ta.remove(d.getKey())})};this.get=function(d){var b=
a(d),b=c[b];if(void 0===b)return null;for(var f=0;f<b.length;++f)if(p(b[f].key,d))return b[f].value;return null};this.isEmpty=function(){return 0===k};this.keySet=function(){return new d(function(d){return d.key},function(d){return ta.containsKey(d)},function(d){return ta.remove(d)})};this.values=function(){return new d(function(d){return d.value},function(d){return ta.containsValue(d)},function(d){return ta.removeByValue(d)})};this.put=function(d,f){var m=a(d),n=c[m];if(void 0===n)return++k,c[m]=
[{key:d,value:f}],b(),null;for(m=0;m<n.length;++m)if(p(n[m].key,d)){var r=n[m].value;n[m].value=f;return r}++k;n.push({key:d,value:f});b();return null};this.putAll=function(d){for(d=d.entrySet().iterator();d.hasNext();){var a=d.next();this.put(a.getKey(),a.getValue())}};this.remove=function(d){var b=a(d),f=c[b];if(void 0===f)return null;for(var m=0;m<f.length;++m)if(p(f[m].key,d))return--k,d=f[m].value,f[m].removed=!0,1<f.length?f.splice(m,1):c[b]=void 0,d;return null};this.removeByValue=function(d){var a,
b,f,m;for(a in c)if(c.hasOwnProperty(a))for(b=0,f=c[a].length;b<f;b++)if(m=c[a][b],m.value===d)return c[a].splice(b,1),!0;return!1};this.size=function(){return k}}var l=k.virtHashCode,p=k.virtEquals;return g}},{}],12:[function(C,y,O){y.exports=function(k,g){function l(b,f){b===g&&(b="");this.name=b;f===g&&(f=0);this.size=f;this.glyph=!1;this.descent=this.ascent=0;this.leading=1.2*f;var d=b.indexOf(" Italic Bold");-1!==d&&(b=b.substring(0,d));this.style="normal";d=b.indexOf(" Italic");-1!==d&&(b=b.substring(0,
d),this.style="italic");this.weight="normal";d=b.indexOf(" Bold");-1!==d&&(b=b.substring(0,d),this.weight="bold");this.family="sans-serif";if(b!==g)switch(b){case "sans-serif":case "serif":case "monospace":case "fantasy":case "cursive":this.family=b;break;default:this.family='"'+b+'", sans-serif'}var d=this.size/250,m=p.createElement("canvas");m.width=500;m.height=500;m.style.opacity=0;var n=this.getCSSDefinition("250px","normal"),r=m.getContext("2d");r.font=n;m.width=r.measureText("dbflkhyjqpg").width;
r.font=n;n=p.createElement("div");n.style.position="absolute";n.style.opacity=0;n.style.fontFamily='"'+this.name+'"';n.style.fontSize="250px";n.innerHTML="dbflkhyjqpg<br/>dbflkhyjqpg";p.body.appendChild(n);var c=m.width,k=m.height,m=k/2;r.fillStyle="white";r.fillRect(0,0,c,k);r.fillStyle="black";r.fillText("dbflkhyjqpg",0,m);for(var k=r.getImageData(0,0,c,k).data,l=0,F=4*c,A=k.length;++l<A&&255===k[l];)a();c=Math.round(l/F);for(l=A-1;0<--l&&255===k[l];)a();k=Math.round(l/F);this.ascent=d*(m-c);this.descent=
d*(k-m);p.defaultView.getComputedStyle&&(m=p.defaultView.getComputedStyle(n,null).getPropertyValue("height"),m=d*m.replace("px",""),m>=2*this.size&&(this.leading=Math.round(m/2)));p.body.removeChild(n);d=this.caching?r:void 0;this.context2d=d;this.css=this.getCSSDefinition();this.context2d&&(this.context2d.font=this.css)}var p=k.Browser.document,a=k.noop;l.prototype.caching=!0;l.prototype.getCSSDefinition=function(a,f){a===g&&(a=this.size+"px");f===g&&(f=this.leading+"px");return[this.style,"normal",
this.weight,a+"/"+f,this.family].join(" ")};l.prototype.measureTextWidth=function(a){return this.context2d.measureText(a).width};l.prototype.measureTextWidthFallback=function(a){var f=p.createElement("canvas").getContext("2d");f.font=this.css;return f.measureText(a).width};l.PFontCache={length:0};l.get=function(a,f){f=(10*f+0.5|0)/10;var d=l.PFontCache,m=a+"/"+f;if(!d[m]){d[m]=new l(a,f);d.length++;if(50===d.length){l.prototype.measureTextWidth=l.prototype.measureTextWidthFallback;l.prototype.caching=
!1;for(var n in d)"length"!==n&&(d[n].context2d=null);return new l(a,f)}if(400===d.length)return l.PFontCache={},l.get=l.getFallback,new l(a,f)}return d[m]};l.getFallback=function(a,f){return new l(a,f)};l.list=function(){return["sans-serif","serif","monospace","fantasy","cursive"]};l.preloading={template:{},initialized:!1,initialize:function(){var a=p.createElement("style");a.setAttribute("type","text/css");a.innerHTML='@font-face {\n font-family: "PjsEmptyFont";\n src: url(\'data:application/x-font-ttf;base64,'+
function(){return"#E3KAI2wAgT1MvMg7Eo3VmNtYX7ABi3CxnbHlm7Abw3kaGVhZ7ACs3OGhoZWE7A53CRobXR47AY3AGbG9jYQ7G03Bm1heH7ABC3CBuYW1l7Ae3AgcG9zd7AI3AE#B3AQ2kgTY18PPPUACwAg3ALSRoo3#yld0xg32QAB77#E777773B#E3C#I#Q77773E#Q7777777772CMAIw7AB77732B#M#Q3wAB#g3B#E#E2BB//82BB////w#B7#gAEg3E77x2B32B#E#Q#MTcBAQ32gAe#M#QQJ#E32M#QQJ#I#g32Q77#".replace(/[#237]/g,function(a){return"AAAAAAAA".substr(~~a?7-a:6)})}()+"')\n format('truetype');\n}";p.head.appendChild(a);a=p.createElement("span");a.style.cssText='position: absolute; top: 0; left: 0; opacity: 0; font-family: "PjsEmptyFont", fantasy;';
a.innerHTML="AAAAAAAA";p.body.appendChild(a);this.template=a;this.initialized=!0},getElementWidth:function(a){return p.defaultView.getComputedStyle(a,"").getPropertyValue("width")},timeAttempted:0,pending:function(a){this.initialized||this.initialize();for(var f,d,m=this.getElementWidth(this.template),n=0;n<this.fontList.length;n++){f=this.fontList[n];d=this.getElementWidth(f);if(4E3>this.timeAttempted&&d===m)return this.timeAttempted+=a,!0;p.body.removeChild(f);this.fontList.splice(n--,1);this.timeAttempted=
0}return 0===this.fontList.length?!1:!0},fontList:[],addedList:{},add:function(a){this.initialized||this.initialize();var f="object"===typeof a?a.fontFace:a;a="object"===typeof a?a.url:a;if(!this.addedList[f]){var d=p.createElement("style");d.setAttribute("type","text/css");d.innerHTML="@font-face{\n font-family: '"+f+"';\n src: url('"+a+"');\n}\n";p.head.appendChild(d);this.addedList[f]=!0;a=p.createElement("span");a.style.cssText="position: absolute; top: 0; left: 0; opacity: 0;";a.style.fontFamily=
'"'+f+'", "PjsEmptyFont", fantasy';a.innerHTML="AAAAAAAA";p.body.appendChild(a);this.fontList.push(a)}}};return l}},{}],13:[function(C,y,O){y.exports=function(k,g){var l=k.p,p=function(){0===arguments.length?this.reset():1===arguments.length&&arguments[0]instanceof p?this.set(arguments[0].array()):6===arguments.length&&this.set(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])};p.prototype={set:function(){if(6===arguments.length){var a=arguments;this.set([a[0],a[1],a[2],
a[3],a[4],a[5]])}else 1===arguments.length&&arguments[0]instanceof p?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},get:function(){var a=new p;a.set(this.elements);return a},reset:function(){this.set([1,0,0,0,1,0])},array:function(){return this.elements.slice()},translate:function(a,b){this.elements[2]=a*this.elements[0]+b*this.elements[1]+this.elements[2];this.elements[5]=a*this.elements[3]+b*this.elements[4]+this.elements[5]},
invTranslate:function(a,b){this.translate(-a,-b)},transpose:function(){},mult:function(a,b){var f,d;a instanceof PVector?(f=a.x,d=a.y,b||(b=new PVector)):a instanceof Array&&(f=a[0],d=a[1],b||(b=[]));b instanceof Array?(b[0]=this.elements[0]*f+this.elements[1]*d+this.elements[2],b[1]=this.elements[3]*f+this.elements[4]*d+this.elements[5]):b instanceof PVector&&(b.x=this.elements[0]*f+this.elements[1]*d+this.elements[2],b.y=this.elements[3]*f+this.elements[4]*d+this.elements[5],b.z=0);return b},multX:function(a,
b){return a*this.elements[0]+b*this.elements[1]+this.elements[2]},multY:function(a,b){return a*this.elements[3]+b*this.elements[4]+this.elements[5]},skewX:function(a){this.apply(1,0,1,a,0,0)},skewY:function(a){this.apply(1,0,1,0,a,0)},shearX:function(a){this.apply(1,0,1,Math.tan(a),0,0)},shearY:function(a){this.apply(1,0,1,0,Math.tan(a),0)},determinant:function(){return this.elements[0]*this.elements[4]-this.elements[1]*this.elements[3]},invert:function(){var a=this.determinant();if(Math.abs(a)>PConstants.MIN_INT){var b=
this.elements[0],f=this.elements[1],d=this.elements[2],m=this.elements[3],n=this.elements[4],r=this.elements[5];this.elements[0]=n/a;this.elements[3]=-m/a;this.elements[1]=-f/a;this.elements[4]=b/a;this.elements[2]=(f*r-n*d)/a;this.elements[5]=(m*d-b*r)/a;return!0}return!1},scale:function(a,b){a&&!b&&(b=a);a&&b&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[3]*=a,this.elements[4]*=b)},invScale:function(a,b){a&&!b&&(b=a);this.scale(1/a,1/b)},apply:function(){var a;1===arguments.length&&arguments[0]instanceof
p?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,this.elements[2],0,0,this.elements[5]],f=0,d=0;2>d;d++)for(var m=0;3>m;m++,f++)b[f]+=this.elements[3*d+0]*a[m+0]+this.elements[3*d+1]*a[m+3];this.elements=b.slice()},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof p?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&
arguments[0]instanceof Array&&(a=arguments[0]);var b=[0,0,a[2],0,0,a[5]];b[2]=a[2]+this.elements[2]*a[0]+this.elements[5]*a[1];b[5]=a[5]+this.elements[2]*a[3]+this.elements[5]*a[4];b[0]=this.elements[0]*a[0]+this.elements[3]*a[1];b[3]=this.elements[0]*a[3]+this.elements[3]*a[4];b[1]=this.elements[1]*a[0]+this.elements[4]*a[1];b[4]=this.elements[1]*a[3]+this.elements[4]*a[4];this.elements=b.slice()},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var f=this.elements[0],d=this.elements[1];this.elements[0]=
b*f+a*d;this.elements[1]=-a*f+b*d;f=this.elements[3];d=this.elements[4];this.elements[3]=b*f+a*d;this.elements[4]=-a*f+b*d},rotateZ:function(a){this.rotate(a)},invRotateZ:function(a){this.rotateZ(a-Math.PI)},print:function(){var a=printMatrixHelper(this.elements),a=""+l.nfs(this.elements[0],a,4)+" "+l.nfs(this.elements[1],a,4)+" "+l.nfs(this.elements[2],a,4)+"\n"+l.nfs(this.elements[3],a,4)+" "+l.nfs(this.elements[4],a,4)+" "+l.nfs(this.elements[5],a,4)+"\n\n";l.println(a)}};return p}},{}],14:[function(C,
y,O){y.exports=function(k,g){var l=k.p,p=function(){this.reset()};p.prototype={set:function(){16===arguments.length?this.elements=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof p?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},get:function(){var a=new p;a.set(this.elements);return a},reset:function(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},array:function(){return this.elements.slice()},
translate:function(a,b,f){f===g&&(f=0);this.elements[3]+=a*this.elements[0]+b*this.elements[1]+f*this.elements[2];this.elements[7]+=a*this.elements[4]+b*this.elements[5]+f*this.elements[6];this.elements[11]+=a*this.elements[8]+b*this.elements[9]+f*this.elements[10];this.elements[15]+=a*this.elements[12]+b*this.elements[13]+f*this.elements[14]},transpose:function(){var a=this.elements[4];this.elements[4]=this.elements[1];this.elements[1]=a;a=this.elements[8];this.elements[8]=this.elements[2];this.elements[2]=
a;a=this.elements[6];this.elements[6]=this.elements[9];this.elements[9]=a;a=this.elements[3];this.elements[3]=this.elements[12];this.elements[12]=a;a=this.elements[7];this.elements[7]=this.elements[13];this.elements[13]=a;a=this.elements[11];this.elements[11]=this.elements[14];this.elements[14]=a},mult:function(a,b){var f,d,m,n;a instanceof PVector?(f=a.x,d=a.y,m=a.z,n=1,b||(b=new PVector)):a instanceof Array&&(f=a[0],d=a[1],m=a[2],n=a[3]||1,!b||3!==b.length&&4!==b.length)&&(b=[0,0,0]);b instanceof
Array&&(3===b.length?(b[0]=this.elements[0]*f+this.elements[1]*d+this.elements[2]*m+this.elements[3],b[1]=this.elements[4]*f+this.elements[5]*d+this.elements[6]*m+this.elements[7],b[2]=this.elements[8]*f+this.elements[9]*d+this.elements[10]*m+this.elements[11]):4===b.length&&(b[0]=this.elements[0]*f+this.elements[1]*d+this.elements[2]*m+this.elements[3]*n,b[1]=this.elements[4]*f+this.elements[5]*d+this.elements[6]*m+this.elements[7]*n,b[2]=this.elements[8]*f+this.elements[9]*d+this.elements[10]*m+
this.elements[11]*n,b[3]=this.elements[12]*f+this.elements[13]*d+this.elements[14]*m+this.elements[15]*n));b instanceof PVector&&(b.x=this.elements[0]*f+this.elements[1]*d+this.elements[2]*m+this.elements[3],b.y=this.elements[4]*f+this.elements[5]*d+this.elements[6]*m+this.elements[7],b.z=this.elements[8]*f+this.elements[9]*d+this.elements[10]*m+this.elements[11]);return b},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof p?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):
1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,d=0;4>d;d++)for(var m=0;4>m;m++,f++)b[f]+=this.elements[m+0]*a[4*d+0]+this.elements[m+4]*a[4*d+1]+this.elements[m+8]*a[4*d+2]+this.elements[m+12]*a[4*d+3];this.elements=b.slice()},apply:function(){var a;1===arguments.length&&arguments[0]instanceof p?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&
(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,d=0;4>d;d++)for(var m=0;4>m;m++,f++)b[f]+=this.elements[4*d+0]*a[m+0]+this.elements[4*d+1]*a[m+4]+this.elements[4*d+2]*a[m+8]+this.elements[4*d+3]*a[m+12];this.elements=b.slice()},rotate:function(a,b,f,d){if(f){var m=Math.cos(a);a=Math.sin(a);var n=1-m;this.apply(n*b*b+m,n*b*f-a*d,n*b*d+a*f,0,n*b*f+a*d,n*f*f+m,n*f*d-a*b,0,n*b*d-a*f,n*f*d+a*b,n*d*d+m,0,0,0,0,1)}else this.rotateZ(a)},invApply:function(){inverseCopy===g&&(inverseCopy=new p);
var a=arguments;inverseCopy.set(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]);if(!inverseCopy.invert())return!1;this.preApply(inverseCopy);return!0},rotateX:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},rotateY:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},rotateZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},scale:function(a,
b,f){!a||b||f?a&&(b&&!f)&&(f=1):b=f=a;a&&(b&&f)&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[2]*=f,this.elements[4]*=a,this.elements[5]*=b,this.elements[6]*=f,this.elements[8]*=a,this.elements[9]*=b,this.elements[10]*=f,this.elements[12]*=a,this.elements[13]*=b,this.elements[14]*=f)},skewX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},skewY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},shearX:function(a){a=Math.tan(a);this.apply(1,a,0,0,
0,1,0,0,0,0,1,0,0,0,0,1)},shearY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},multX:function(a,b,f,d){return f?d?this.elements[0]*a+this.elements[1]*b+this.elements[2]*f+this.elements[3]*d:this.elements[0]*a+this.elements[1]*b+this.elements[2]*f+this.elements[3]:this.elements[0]*a+this.elements[1]*b+this.elements[3]},multY:function(a,b,f,d){return f?d?this.elements[4]*a+this.elements[5]*b+this.elements[6]*f+this.elements[7]*d:this.elements[4]*a+this.elements[5]*b+this.elements[6]*
f+this.elements[7]:this.elements[4]*a+this.elements[5]*b+this.elements[7]},multZ:function(a,b,f,d){return d?this.elements[8]*a+this.elements[9]*b+this.elements[10]*f+this.elements[11]*d:this.elements[8]*a+this.elements[9]*b+this.elements[10]*f+this.elements[11]},multW:function(a,b,f,d){return d?this.elements[12]*a+this.elements[13]*b+this.elements[14]*f+this.elements[15]*d:this.elements[12]*a+this.elements[13]*b+this.elements[14]*f+this.elements[15]},invert:function(){var a=this.elements[0]*this.elements[5]-
this.elements[1]*this.elements[4],b=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4],f=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4],d=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5],m=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5],n=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6],r=this.elements[8]*this.elements[13]-this.elements[9]*this.elements[12],c=this.elements[8]*this.elements[14]-this.elements[10]*
this.elements[12],g=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12],k=this.elements[9]*this.elements[14]-this.elements[10]*this.elements[13],l=this.elements[9]*this.elements[15]-this.elements[11]*this.elements[13],p=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14],y=a*p-b*l+f*k+d*g-m*c+n*r;if(1E-9>=Math.abs(y))return!1;var w=[];w[0]=+this.elements[5]*p-this.elements[6]*l+this.elements[7]*k;w[4]=-this.elements[4]*p+this.elements[6]*g-this.elements[7]*c;
w[8]=+this.elements[4]*l-this.elements[5]*g+this.elements[7]*r;w[12]=-this.elements[4]*k+this.elements[5]*c-this.elements[6]*r;w[1]=-this.elements[1]*p+this.elements[2]*l-this.elements[3]*k;w[5]=+this.elements[0]*p-this.elements[2]*g+this.elements[3]*c;w[9]=-this.elements[0]*l+this.elements[1]*g-this.elements[3]*r;w[13]=+this.elements[0]*k-this.elements[1]*c+this.elements[2]*r;w[2]=+this.elements[13]*n-this.elements[14]*m+this.elements[15]*d;w[6]=-this.elements[12]*n+this.elements[14]*f-this.elements[15]*
b;w[10]=+this.elements[12]*m-this.elements[13]*f+this.elements[15]*a;w[14]=-this.elements[12]*d+this.elements[13]*b-this.elements[14]*a;w[3]=-this.elements[9]*n+this.elements[10]*m-this.elements[11]*d;w[7]=+this.elements[8]*n-this.elements[10]*f+this.elements[11]*b;w[11]=-this.elements[8]*m+this.elements[9]*f-this.elements[11]*a;w[15]=+this.elements[8]*d-this.elements[9]*b+this.elements[10]*a;a=1/y;w[0]*=a;w[1]*=a;w[2]*=a;w[3]*=a;w[4]*=a;w[5]*=a;w[6]*=a;w[7]*=a;w[8]*=a;w[9]*=a;w[10]*=a;w[11]*=a;w[12]*=
a;w[13]*=a;w[14]*=a;w[15]*=a;this.elements=w.slice();return!0},toString:function(){for(var a="",b=0;15>b;b++)a+=this.elements[b]+", ";return a+=this.elements[15]},print:function(){var a=printMatrixHelper(this.elements),a=""+l.nfs(this.elements[0],a,4)+" "+l.nfs(this.elements[1],a,4)+" "+l.nfs(this.elements[2],a,4)+" "+l.nfs(this.elements[3],a,4)+"\n"+l.nfs(this.elements[4],a,4)+" "+l.nfs(this.elements[5],a,4)+" "+l.nfs(this.elements[6],a,4)+" "+l.nfs(this.elements[7],a,4)+"\n"+l.nfs(this.elements[8],
a,4)+" "+l.nfs(this.elements[9],a,4)+" "+l.nfs(this.elements[10],a,4)+" "+l.nfs(this.elements[11],a,4)+"\n"+l.nfs(this.elements[12],a,4)+" "+l.nfs(this.elements[13],a,4)+" "+l.nfs(this.elements[14],a,4)+" "+l.nfs(this.elements[15],a,4)+"\n\n";l.println(a)},invTranslate:function(a,b,f){this.preApply(1,0,0,-a,0,1,0,-b,0,0,1,-f,0,0,0,1)},invRotateX:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},invRotateY:function(a){var b=Math.cos(-a);a=Math.sin(-a);
this.preApply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},invRotateZ:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},invScale:function(a,b,f){this.preApply([1/a,0,0,0,0,1/b,0,0,0,0,1/f,0,0,0,0,1])}};return p}},{}],15:[function(C,y,O){y.exports=function(k){var g=k.PConstants,l=k.PMatrix2D,p=k.PMatrix3D;k=function(a){this.family=a||g.GROUP;this.style=this.visible=!0;this.children=[];this.nameTable=[];this.params=[];this.name="";this.parent=this.height=this.width=
this.close=this.kind=this.matrix=this.image=null};k.prototype={isVisible:function(){return this.visible},setVisible:function(a){this.visible=a},disableStyle:function(){this.style=!1;for(var a=0,b=this.children.length;a<b;a++)this.children[a].disableStyle()},enableStyle:function(){this.style=!0;for(var a=0,b=this.children.length;a<b;a++)this.children[a].enableStyle()},getFamily:function(){return this.family},getWidth:function(){return this.width},getHeight:function(){return this.height},setName:function(a){this.name=
a},getName:function(){return this.name},draw:function(a){if(!a)throw"render context missing for draw() in PShape";this.visible&&(this.pre(a),this.drawImpl(a),this.post(a))},drawImpl:function(a){this.family===g.GROUP?this.drawGroup(a):this.family===g.PRIMITIVE?this.drawPrimitive(a):this.family===g.GEOMETRY?this.drawGeometry(a):this.family===g.PATH&&this.drawPath(a)},drawPath:function(a){var b,f;if(0!==this.vertices.length){a.beginShape();if(0===this.vertexCodes.length)if(2===this.vertices[0].length)for(b=
0,f=this.vertices.length;b<f;b++)a.vertex(this.vertices[b][0],this.vertices[b][1]);else for(b=0,f=this.vertices.length;b<f;b++)a.vertex(this.vertices[b][0],this.vertices[b][1],this.vertices[b][2]);else{var d=0;if(2===this.vertices[0].length)for(b=0,f=this.vertexCodes.length;b<f;b++)this.vertexCodes[b]===g.VERTEX?(a.vertex(this.vertices[d][0],this.vertices[d][1],this.vertices[d].moveTo),a.breakShape=!1,d++):this.vertexCodes[b]===g.BEZIER_VERTEX?(a.bezierVertex(this.vertices[d+0][0],this.vertices[d+
0][1],this.vertices[d+1][0],this.vertices[d+1][1],this.vertices[d+2][0],this.vertices[d+2][1]),d+=3):this.vertexCodes[b]===g.CURVE_VERTEX?(a.curveVertex(this.vertices[d][0],this.vertices[d][1]),d++):this.vertexCodes[b]===g.BREAK&&(a.breakShape=!0);else for(b=0,f=this.vertexCodes.length;b<f;b++)this.vertexCodes[b]===g.VERTEX?(a.vertex(this.vertices[d][0],this.vertices[d][1],this.vertices[d][2]),!0===this.vertices[d].moveTo?vertArray[vertArray.length-1].moveTo=!0:!1===this.vertices[d].moveTo&&(vertArray[vertArray.length-
1].moveTo=!1),a.breakShape=!1):this.vertexCodes[b]===g.BEZIER_VERTEX?(a.bezierVertex(this.vertices[d+0][0],this.vertices[d+0][1],this.vertices[d+0][2],this.vertices[d+1][0],this.vertices[d+1][1],this.vertices[d+1][2],this.vertices[d+2][0],this.vertices[d+2][1],this.vertices[d+2][2]),d+=3):this.vertexCodes[b]===g.CURVE_VERTEX?(a.curveVertex(this.vertices[d][0],this.vertices[d][1],this.vertices[d][2]),d++):this.vertexCodes[b]===g.BREAK&&(a.breakShape=!0)}a.endShape(this.close?g.CLOSE:g.OPEN)}},drawGeometry:function(a){var b,
f;a.beginShape(this.kind);if(this.style)for(b=0,f=this.vertices.length;b<f;b++)a.vertex(this.vertices[b]);else for(b=0,f=this.vertices.length;b<f;b++){var d=this.vertices[b];0===d[2]?a.vertex(d[0],d[1]):a.vertex(d[0],d[1],d[2])}a.endShape()},drawGroup:function(a){for(var b=0,f=this.children.length;b<f;b++)this.children[b].draw(a)},drawPrimitive:function(a){if(this.kind===g.POINT)a.point(this.params[0],this.params[1]);else if(this.kind===g.LINE)4===this.params.length?a.line(this.params[0],this.params[1],
this.params[2],this.params[3]):a.line(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5]);else if(this.kind===g.TRIANGLE)a.triangle(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5]);else if(this.kind===g.QUAD)a.quad(this.params[0],this.params[1],this.params[2],this.params[3],this.params[4],this.params[5],this.params[6],this.params[7]);else if(this.kind===g.RECT)if(null!==this.image){var b=imageModeConvert;a.imageMode(g.CORNER);
a.image(this.image,this.params[0],this.params[1],this.params[2],this.params[3]);imageModeConvert=b}else b=a.curRectMode,a.rectMode(g.CORNER),a.rect(this.params[0],this.params[1],this.params[2],this.params[3]),a.curRectMode=b;else this.kind===g.ELLIPSE?(b=a.curEllipseMode,a.ellipseMode(g.CORNER),a.ellipse(this.params[0],this.params[1],this.params[2],this.params[3]),a.curEllipseMode=b):this.kind===g.ARC?(b=curEllipseMode,a.ellipseMode(g.CORNER),a.arc(this.params[0],this.params[1],this.params[2],this.params[3],
this.params[4],this.params[5]),curEllipseMode=b):this.kind===g.BOX?1===this.params.length?a.box(this.params[0]):a.box(this.params[0],this.params[1],this.params[2]):this.kind===g.SPHERE&&a.sphere(this.params[0])},pre:function(a){this.matrix&&(a.pushMatrix(),a.transform(this.matrix));this.style&&(a.pushStyle(),this.styles(a))},post:function(a){this.matrix&&a.popMatrix();this.style&&a.popStyle()},styles:function(a){this.stroke?(a.stroke(this.strokeColor),a.strokeWeight(this.strokeWeight),a.strokeCap(this.strokeCap),
a.strokeJoin(this.strokeJoin)):a.noStroke();this.fill?a.fill(this.fillColor):a.noFill()},getChild:function(a){var b,f;if("number"===typeof a)return this.children[a];var d;if(""===a||this.name===a)return this;if(0<this.nameTable.length){b=0;for(f=this.nameTable.length;b<f||d;b++)if(this.nameTable[b].getName===a){d=this.nameTable[b];break}if(d)return d}b=0;for(f=this.children.length;b<f;b++)if(d=this.children[b].getChild(a))return d;return null},getChildCount:function(){return this.children.length},
addChild:function(a){this.children.push(a);a.parent=this;null!==a.getName()&&this.addName(a.getName(),a)},addName:function(a,b){null!==this.parent?this.parent.addName(a,b):this.nameTable.push([a,b])},translate:function(){2===arguments.length?(this.checkMatrix(2),this.matrix.translate(arguments[0],arguments[1])):(this.checkMatrix(3),this.matrix.translate(arguments[0],arguments[1],0))},checkMatrix:function(a){null===this.matrix?this.matrix=2===a?new l:new p:3===a&&this.matrix instanceof l&&(this.matrix=
new p)},rotateX:function(a){this.rotate(a,1,0,0)},rotateY:function(a){this.rotate(a,0,1,0)},rotateZ:function(a){this.rotate(a,0,0,1)},rotate:function(){1===arguments.length?(this.checkMatrix(2),this.matrix.rotate(arguments[0])):(this.checkMatrix(3),this.matrix.rotate(arguments[0],arguments[1],arguments[2],arguments[3]))},scale:function(){2===arguments.length?(this.checkMatrix(2),this.matrix.scale(arguments[0],arguments[1])):3===arguments.length?(this.checkMatrix(2),this.matrix.scale(arguments[0],
arguments[1],arguments[2])):(this.checkMatrix(2),this.matrix.scale(arguments[0]))},resetMatrix:function(){this.checkMatrix(2);this.matrix.reset()},applyMatrix:function(a){1===arguments.length?this.applyMatrix(a.elements[0],a.elements[1],0,a.elements[2],a.elements[3],a.elements[4],0,a.elements[5],0,0,1,0,0,0,0,1):6===arguments.length?(this.checkMatrix(2),this.matrix.apply(arguments[0],arguments[1],arguments[2],0,arguments[3],arguments[4],arguments[5],0,0,0,1,0,0,0,0,1)):16===arguments.length&&(this.checkMatrix(3),
this.matrix.apply(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10],arguments[11],arguments[12],arguments[13],arguments[14],arguments[15]))}};return k}},{}],16:[function(C,y,O){y.exports=function(k){var g=k.CommonFunctions,l=k.PConstants,p=k.PShape,a=k.XMLElement,b=k.colors,f=function(){p.call(this);if(1===arguments.length){if(this.element=arguments[0],this.vertexCodes=[],this.vertices=[],this.opacity=1,
this.stroke=!1,this.strokeColor=l.ALPHA_MASK,this.strokeWeight=1,this.strokeCap=l.SQUARE,this.strokeJoin=l.MITER,this.strokeName=this.strokeGradientPaint=this.strokeGradient=null,this.strokeOpacity=1,this.fill=!0,this.fillColor=l.ALPHA_MASK,this.fillName=this.fillGradientPaint=this.fillGradient=null,this.fillOpacity=1,"svg"!==this.element.getName())throw"root is not <svg>, it's <"+this.element.getName()+">";}else 2===arguments.length&&("string"===typeof arguments[1]?-1<arguments[1].indexOf(".svg")&&
(this.element=new a(!0,arguments[1]),this.vertexCodes=[],this.vertices=[],this.opacity=1,this.stroke=!1,this.strokeColor=l.ALPHA_MASK,this.strokeWeight=1,this.strokeCap=l.SQUARE,this.strokeJoin=l.MITER,this.strokeName=this.strokeGradientPaint=this.strokeGradient="",this.strokeOpacity=1,this.fill=!0,this.fillColor=l.ALPHA_MASK,this.fillGradientPaint=this.fillGradient=null,this.fillOpacity=1):arguments[0]&&(this.element=arguments[1],this.vertexCodes=arguments[0].vertexCodes.slice(),this.vertices=arguments[0].vertices.slice(),
this.stroke=arguments[0].stroke,this.strokeColor=arguments[0].strokeColor,this.strokeWeight=arguments[0].strokeWeight,this.strokeCap=arguments[0].strokeCap,this.strokeJoin=arguments[0].strokeJoin,this.strokeGradient=arguments[0].strokeGradient,this.strokeGradientPaint=arguments[0].strokeGradientPaint,this.strokeName=arguments[0].strokeName,this.fill=arguments[0].fill,this.fillColor=arguments[0].fillColor,this.fillGradient=arguments[0].fillGradient,this.fillGradientPaint=arguments[0].fillGradientPaint,
this.fillName=arguments[0].fillName,this.strokeOpacity=arguments[0].strokeOpacity,this.fillOpacity=arguments[0].fillOpacity,this.opacity=arguments[0].opacity));this.name=this.element.getStringAttribute("id");this.visible="none"!==this.element.getStringAttribute("display","inline");var d=this.element.getAttribute("transform");d&&(this.matrix=this.parseMatrix(d));d=this.element.getStringAttribute("viewBox");null!==d&&(d=d.split(" "),this.width=d[2],this.height=d[3]);var d=this.element.getStringAttribute("width"),
b=this.element.getStringAttribute("height");if(null!==d)this.width=this.parseUnitSize(d),this.height=this.parseUnitSize(b);else if(0===this.width||0===this.height)throw this.height=this.width=1,"The width and/or height is not readable in the <svg> tag of this file.";this.parseColors(this.element);this.parseChildren(this.element)};f.prototype=new p;f.prototype.parseMatrix=function(){function d(d){var a=[];d.replace(/\((.*?)\)/,function(){return function(d,c){a=c.replace(/,+/g," ").split(/\s+/)}}());
return a}return function(a){this.checkMatrix(2);var b=[];a.replace(/\s*(\w+)\((.*?)\)/g,function(d){b.push(g.trim(d))});if(0===b.length)return null;a=0;for(var f=b.length;a<f;a++){var c=d(b[a]);if(-1!==b[a].indexOf("matrix"))this.matrix.set(c[0],c[2],c[4],c[1],c[3],c[5]);else if(-1!==b[a].indexOf("translate"))this.matrix.translate(c[0],2===c.length?c[1]:0);else if(-1!==b[a].indexOf("scale"))this.matrix.scale(c[0],2===c.length?c[1]:c[0]);else if(-1!==b[a].indexOf("rotate")){var k=c[0];1===c.length?
this.matrix.rotate(g.radians(k)):3===c.length&&(this.matrix.translate(c[1],c[2]),this.matrix.rotate(g.radians(c[0])),this.matrix.translate(-c[1],-c[2]))}else-1!==b[a].indexOf("skewX")?this.matrix.skewX(parseFloat(c[0])):-1!==b[a].indexOf("skewY")?this.matrix.skewY(c[0]):-1!==b[a].indexOf("shearX")?this.matrix.shearX(c[0]):-1!==b[a].indexOf("shearY")&&this.matrix.shearY(c[0])}return this.matrix}}();f.prototype.parseChildren=function(d){d=d.getChildren();var a=new p,b,f;b=0;for(f=d.length;b<f;b++){var c=
this.parseChild(d[b]);c&&a.addChild(c)}b=0;for(f=a.children.length;b<f;b++)this.children.push(a.children[b])};f.prototype.getName=function(){return this.name};f.prototype.parseChild=function(d){var a=d.getName(),b;"g"===a?b=new f(this,d):"defs"===a?b=new f(this,d):"line"===a?(b=new f(this,d),b.parseLine()):"circle"===a?(b=new f(this,d),b.parseEllipse(!0)):"ellipse"===a?(b=new f(this,d),b.parseEllipse(!1)):"rect"===a?(b=new f(this,d),b.parseRect()):"polygon"===a?(b=new f(this,d),b.parsePoly(!0)):"polyline"===
a?(b=new f(this,d),b.parsePoly(!1)):"path"===a?(b=new f(this,d),b.parsePath()):"radialGradient"===a?unimplemented("PShapeSVG.prototype.parseChild, name = radialGradient"):"linearGradient"===a?unimplemented("PShapeSVG.prototype.parseChild, name = linearGradient"):"text"===a?unimplemented("PShapeSVG.prototype.parseChild, name = text"):"filter"===a?unimplemented("PShapeSVG.prototype.parseChild, name = filter"):"mask"===a&&unimplemented("PShapeSVG.prototype.parseChild, name = mask");return b};f.prototype.parsePath=
function(){this.family=l.PATH;this.kind=0;var d=g.trim(this.element.getStringAttribute("d").replace(/[\s,]+/g," "));if(null!==d)for(var d=d.split(""),a=0,b=0,f=0,c=0,k=c=f=0,p=0,F=0,A=0,y=A=c=F=f=0,w=0,ga="",q=[],C=!1,P,tb,v;y<d.length;)if(w=d[y].charCodeAt(0),65<=w&&90>=w||97<=w&&122>=w){v=y;y++;if(y<d.length)for(q=[],w=d[y].charCodeAt(0);!(65<=w&&90>=w||97<=w&&100>=w||102<=w&&122>=w)&&!1===C;)32===w?""!==ga&&(q.push(parseFloat(ga)),ga=""):45===w?101===d[y-1].charCodeAt(0)?ga+=d[y].toString():(""!==
ga&&q.push(parseFloat(ga)),ga=d[y].toString()):ga+=d[y].toString(),y++,y===d.length?C=!0:w=d[y].charCodeAt(0);""!==ga&&(q.push(parseFloat(ga)),ga="");tb=d[v];w=tb.charCodeAt(0);if(77===w){if(2<=q.length&&0===q.length%2&&(a=q[0],b=q[1],this.parsePathMoveto(a,b),2<q.length))for(v=2,w=q.length;v<w;v+=2)a=q[v],b=q[v+1],this.parsePathLineto(a,b)}else if(109===w){if(2<=q.length&&0===q.length%2&&(a+=q[0],b+=q[1],this.parsePathMoveto(a,b),2<q.length))for(v=2,w=q.length;v<w;v+=2)a+=q[v],b+=q[v+1],this.parsePathLineto(a,
b)}else if(76===w){if(2<=q.length&&0===q.length%2)for(v=0,w=q.length;v<w;v+=2)a=q[v],b=q[v+1],this.parsePathLineto(a,b)}else if(108===w){if(2<=q.length&&0===q.length%2)for(v=0,w=q.length;v<w;v+=2)a+=q[v],b+=q[v+1],this.parsePathLineto(a,b)}else if(72===w)for(v=0,w=q.length;v<w;v++)a=q[v],this.parsePathLineto(a,b);else if(104===w)for(v=0,w=q.length;v<w;v++)a+=q[v],this.parsePathLineto(a,b);else if(86===w)for(v=0,w=q.length;v<w;v++)b=q[v],this.parsePathLineto(a,b);else if(118===w)for(v=0,w=q.length;v<
w;v++)b+=q[v],this.parsePathLineto(a,b);else if(67===w){if(6<=q.length&&0===q.length%6)for(v=0,w=q.length;v<w;v+=6)f=q[v],k=q[v+1],c=q[v+2],p=q[v+3],F=q[v+4],A=q[v+5],this.parsePathCurveto(f,k,c,p,F,A),a=F,b=A}else if(99===w){if(6<=q.length&&0===q.length%6)for(v=0,w=q.length;v<w;v+=6)f=a+q[v],k=b+q[v+1],c=a+q[v+2],p=b+q[v+3],F=a+q[v+4],A=b+q[v+5],this.parsePathCurveto(f,k,c,p,F,A),a=F,b=A}else if(83===w){if(4<=q.length&&0===q.length%4)for(v=0,w=q.length;v<w;v+=4)"c"===P.toLowerCase()||"s"===P.toLowerCase()?
(f=this.vertices[this.vertices.length-2][0],F=this.vertices[this.vertices.length-2][1],c=this.vertices[this.vertices.length-1][0],A=this.vertices[this.vertices.length-1][1],f=c+(c-f),k=A+(A-F)):(f=this.vertices[this.vertices.length-1][0],k=this.vertices[this.vertices.length-1][1]),c=q[v],p=q[v+1],F=q[v+2],A=q[v+3],this.parsePathCurveto(f,k,c,p,F,A),a=F,b=A}else if(115===w){if(4<=q.length&&0===q.length%4)for(v=0,w=q.length;v<w;v+=4)"c"===P.toLowerCase()||"s"===P.toLowerCase()?(f=this.vertices[this.vertices.length-
2][0],F=this.vertices[this.vertices.length-2][1],c=this.vertices[this.vertices.length-1][0],A=this.vertices[this.vertices.length-1][1],f=c+(c-f),k=A+(A-F)):(f=this.vertices[this.vertices.length-1][0],k=this.vertices[this.vertices.length-1][1]),c=a+q[v],p=b+q[v+1],F=a+q[v+2],A=b+q[v+3],this.parsePathCurveto(f,k,c,p,F,A),a=F,b=A}else if(81===w){if(4<=q.length&&0===q.length%4)for(v=0,w=q.length;v<w;v+=4)f=q[v],c=q[v+1],F=q[v+2],A=q[v+3],this.parsePathQuadto(a,b,f,c,F,A),a=F,b=A}else if(113===w){if(4<=
q.length&&0===q.length%4)for(v=0,w=q.length;v<w;v+=4)f=a+q[v],c=b+q[v+1],F=a+q[v+2],A=b+q[v+3],this.parsePathQuadto(a,b,f,c,F,A),a=F,b=A}else if(84===w){if(2<=q.length&&0===q.length%2)for(v=0,w=q.length;v<w;v+=2)"q"===P.toLowerCase()||"t"===P.toLowerCase()?(f=this.vertices[this.vertices.length-2][0],F=this.vertices[this.vertices.length-2][1],c=this.vertices[this.vertices.length-1][0],A=this.vertices[this.vertices.length-1][1],f=c+(c-f),c=A+(A-F)):(f=a,c=b),F=q[v],A=q[v+1],this.parsePathQuadto(a,b,
f,c,F,A),a=F,b=A}else if(116===w){if(2<=q.length&&0===q.length%2)for(v=0,w=q.length;v<w;v+=2)"q"===P.toLowerCase()||"t"===P.toLowerCase()?(f=this.vertices[this.vertices.length-2][0],F=this.vertices[this.vertices.length-2][1],c=this.vertices[this.vertices.length-1][0],A=this.vertices[this.vertices.length-1][1],f=c+(c-f),c=A+(A-F)):(f=a,c=b),F=a+q[v],A=b+q[v+1],this.parsePathQuadto(a,b,f,c,F,A),a=F,b=A}else if(90===w||122===w)this.close=!0;P=tb.toString()}else y++};f.prototype.parsePathQuadto=function(a,
b,f,r,c,g){if(0<this.vertices.length)this.parsePathCode(l.BEZIER_VERTEX),this.parsePathVertex(a+2*(f-a)/3,b+2*(r-b)/3),this.parsePathVertex(c+2*(f-c)/3,g+2*(r-g)/3),this.parsePathVertex(c,g);else throw"Path must start with M/m";};f.prototype.parsePathCurveto=function(a,b,f,r,c,g){if(0<this.vertices.length)this.parsePathCode(l.BEZIER_VERTEX),this.parsePathVertex(a,b),this.parsePathVertex(f,r),this.parsePathVertex(c,g);else throw"Path must start with M/m";};f.prototype.parsePathLineto=function(a,b){if(0<
this.vertices.length)this.parsePathCode(l.VERTEX),this.parsePathVertex(a,b),this.vertices[this.vertices.length-1].moveTo=!1;else throw"Path must start with M/m";};f.prototype.parsePathMoveto=function(a,b){0<this.vertices.length&&this.parsePathCode(l.BREAK);this.parsePathCode(l.VERTEX);this.parsePathVertex(a,b);this.vertices[this.vertices.length-1].moveTo=!0};f.prototype.parsePathVertex=function(a,b){var f=[];f[0]=a;f[1]=b;this.vertices.push(f)};f.prototype.parsePathCode=function(a){this.vertexCodes.push(a)};
f.prototype.parsePoly=function(a){this.family=l.PATH;this.close=a;a=g.trim(this.element.getStringAttribute("points").replace(/[,\s]+/g," "));if(null!==a)if(a=a.split(" "),0===a.length%2)for(var b=0,f=a.length;b<f;b++){var r=[];r[0]=a[b];r[1]=a[++b];this.vertices.push(r)}else throw"Error parsing polygon points: odd number of coordinates provided";};f.prototype.parseRect=function(){this.kind=l.RECT;this.family=l.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("x");this.params[1]=
this.element.getFloatAttribute("y");this.params[2]=this.element.getFloatAttribute("width");this.params[3]=this.element.getFloatAttribute("height");if(0>this.params[2]||0>this.params[3])throw"svg error: negative width or height found while parsing <rect>";};f.prototype.parseEllipse=function(a){this.kind=l.ELLIPSE;this.family=l.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("cx")|0;this.params[1]=this.element.getFloatAttribute("cy")|0;var b;if(a){if(a=b=this.element.getFloatAttribute("r"),
0>a)throw"svg error: negative radius found while parsing <circle>";}else if(a=this.element.getFloatAttribute("rx"),b=this.element.getFloatAttribute("ry"),0>a||0>b)throw"svg error: negative x-axis radius or y-axis radius found while parsing <ellipse>";this.params[0]-=a;this.params[1]-=b;this.params[2]=2*a;this.params[3]=2*b};f.prototype.parseLine=function(){this.kind=l.LINE;this.family=l.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("x1");this.params[1]=this.element.getFloatAttribute("y1");
this.params[2]=this.element.getFloatAttribute("x2");this.params[3]=this.element.getFloatAttribute("y2")};f.prototype.parseColors=function(a){a.hasAttribute("opacity")&&this.setOpacity(a.getAttribute("opacity"));a.hasAttribute("stroke")&&this.setStroke(a.getAttribute("stroke"));a.hasAttribute("stroke-width")&&this.setStrokeWeight(a.getAttribute("stroke-width"));a.hasAttribute("stroke-linejoin")&&this.setStrokeJoin(a.getAttribute("stroke-linejoin"));a.hasAttribute("stroke-linecap")&&this.setStrokeCap(a.getStringAttribute("stroke-linecap"));
a.hasAttribute("fill")&&this.setFill(a.getStringAttribute("fill"));if(a.hasAttribute("style")){a=a.getStringAttribute("style").toString().split(";");for(var b=0,f=a.length;b<f;b++){var r=g.trim(a[b].split(":"));"fill"===r[0]?this.setFill(r[1]):"fill-opacity"===r[0]?this.setFillOpacity(r[1]):"stroke"===r[0]?this.setStroke(r[1]):"stroke-width"===r[0]?this.setStrokeWeight(r[1]):"stroke-linecap"===r[0]?this.setStrokeCap(r[1]):"stroke-linejoin"===r[0]?this.setStrokeJoin(r[1]):"stroke-opacity"===r[0]?this.setStrokeOpacity(r[1]):
"opacity"===r[0]&&this.setOpacity(r[1])}}};f.prototype.setFillOpacity=function(a){this.fillOpacity=parseFloat(a);this.fillColor=255*this.fillOpacity<<24|this.fillColor&16777215};f.prototype.setFill=function(a){var f=this.fillColor&4278190080;"none"===a?this.fill=!1:0===a.indexOf("#")?(this.fill=!0,4===a.length&&(a=a.replace(/#(.)(.)(.)/,"#$1$1$2$2$3$3")),this.fillColor=f|parseInt(a.substring(1),16)&16777215):0===a.indexOf("rgb")?(this.fill=!0,this.fillColor=f|this.parseRGB(a)):0===a.indexOf("url(#")?
this.fillName=a.substring(5,a.length-1):b[a]&&(this.fill=!0,this.fillColor=f|parseInt(b[a].substring(1),16)&16777215)};f.prototype.setOpacity=function(a){this.strokeColor=255*parseFloat(a)<<24|this.strokeColor&16777215;this.fillColor=255*parseFloat(a)<<24|this.fillColor&16777215};f.prototype.setStroke=function(a){var f=this.strokeColor&4278190080;"none"===a?this.stroke=!1:"#"===a.charAt(0)?(this.stroke=!0,4===a.length&&(a=a.replace(/#(.)(.)(.)/,"#$1$1$2$2$3$3")),this.strokeColor=f|parseInt(a.substring(1),
16)&16777215):0===a.indexOf("rgb")?(this.stroke=!0,this.strokeColor=f|this.parseRGB(a)):0===a.indexOf("url(#")?this.strokeName=a.substring(5,a.length-1):b[a]&&(this.stroke=!0,this.strokeColor=f|parseInt(b[a].substring(1),16)&16777215)};f.prototype.setStrokeWeight=function(a){this.strokeWeight=this.parseUnitSize(a)};f.prototype.setStrokeJoin=function(a){"miter"===a?this.strokeJoin=l.MITER:"round"===a?this.strokeJoin=l.ROUND:"bevel"===a&&(this.strokeJoin=l.BEVEL)};f.prototype.setStrokeCap=function(a){"butt"===
a?this.strokeCap=l.SQUARE:"round"===a?this.strokeCap=l.ROUND:"square"===a&&(this.strokeCap=l.PROJECT)};f.prototype.setStrokeOpacity=function(a){this.strokeOpacity=parseFloat(a);this.strokeColor=255*this.strokeOpacity<<24|this.strokeColor&16777215};f.prototype.parseRGB=function(a){a=a.substring(a.indexOf("(")+1,a.indexOf(")")).split(", ");return a[0]<<16|a[1]<<8|a[2]};f.prototype.parseUnitSize=function(a){var b=a.length-2;return 0>b?a:a.indexOf("pt")===b?1.25*parseFloat(a.substring(0,b)):a.indexOf("pc")===
b?15*parseFloat(a.substring(0,b)):a.indexOf("mm")===b?3.543307*parseFloat(a.substring(0,b)):a.indexOf("cm")===b?35.43307*parseFloat(a.substring(0,b)):a.indexOf("in")===b?90*parseFloat(a.substring(0,b)):a.indexOf("px")===b?parseFloat(a.substring(0,b)):parseFloat(a)};return f}},{}],17:[function(C,y,O){y.exports=function(k,g){function l(a,d,b){this.x=a||0;this.y=d||0;this.z=b||0}function p(a){return function(d,b){var n=d.get();n[a](b);return n}}var a=k.PConstants;l.fromAngle=function(a,d){if(d===g||
null===d)d=new l;d.x=Math.cos(a);d.y=Math.sin(a);return d};l.random2D=function(b){return l.fromAngle(Math.random()*a.TWO_PI,b)};l.random3D=function(b){var d=Math.random()*a.TWO_PI,m=2*Math.random()-1,n=Math.sqrt(1-m*m),r=n*Math.cos(d),d=n*Math.sin(d);b===g||null===b?b=new l(r,d,m):b.set(r,d,m);return b};l.dist=function(a,d){return a.dist(d)};l.dot=function(a,d){return a.dot(d)};l.cross=function(a,d){return a.cross(d)};l.sub=function(a,d){return new l(a.x-d.x,a.y-d.y,a.z-d.z)};l.angleBetween=function(a,
d){return Math.acos(a.dot(d)/(a.mag()*d.mag()))};l.lerp=function(a,d,b){a=new l(a.x,a.y,a.z);a.lerp(d,b);return a};l.prototype={set:function(a,d,b){1===arguments.length?this.set(a.x||a[0]||0,a.y||a[1]||0,a.z||a[2]||0):(this.x=a,this.y=d,this.z=b)},get:function(){return new l(this.x,this.y,this.z)},mag:function(){var a=this.x,d=this.y,b=this.z;return Math.sqrt(a*a+d*d+b*b)},magSq:function(){var a=this.x,d=this.y,b=this.z;return a*a+d*d+b*b},setMag:function(a,d){if(d===g)d=a,this.normalize(),this.mult(d);
else return a.normalize(),a.mult(d),a},add:function(a,d,b){1===arguments.length?(this.x+=a.x,this.y+=a.y,this.z+=a.z):(this.x+=a,this.y+=d,this.z+=b)},sub:function(a,d,b){1===arguments.length?(this.x-=a.x,this.y-=a.y,this.z-=a.z):(this.x-=a,this.y-=d,this.z-=b)},mult:function(a){"number"===typeof a?(this.x*=a,this.y*=a,this.z*=a):(this.x*=a.x,this.y*=a.y,this.z*=a.z)},div:function(a){"number"===typeof a?(this.x/=a,this.y/=a,this.z/=a):(this.x/=a.x,this.y/=a.y,this.z/=a.z)},rotate:function(a){var d=
this.x,b=Math.cos(a);a=Math.sin(a);this.x=b*this.x-a*this.y;this.y=a*d+b*this.y},dist:function(a){var d=this.x-a.x,b=this.y-a.y;a=this.z-a.z;return Math.sqrt(d*d+b*b+a*a)},dot:function(a,d,b){return 1===arguments.length?this.x*a.x+this.y*a.y+this.z*a.z:this.x*a+this.y*d+this.z*b},cross:function(a){var b=this.x,m=this.y,n=this.z;return new l(m*a.z-a.y*n,n*a.x-a.z*b,b*a.y-a.x*m)},lerp:function(a,b,m,n){var r,c;2===arguments.length?(n=b,r=a.x,c=a.y,m=a.z):(r=a,c=b);this.x+=(r-this.x)*n;this.y+=(c-this.y)*
n;this.z+=(m-this.z)*n},normalize:function(){var a=this.mag();0<a&&this.div(a)},limit:function(a){this.mag()>a&&(this.normalize(),this.mult(a))},heading:function(){return-Math.atan2(-this.y,this.x)},heading2D:function(){return this.heading()},toString:function(){return"["+this.x+", "+this.y+", "+this.z+"]"},array:function(){return[this.x,this.y,this.z]}};for(var b in l.prototype)l.prototype.hasOwnProperty(b)&&!l.hasOwnProperty(b)&&(l[b]=p(b));return l}},{}],18:[function(C,y,O){y.exports=function(){var k=
function(g,k,p,a,b){this.fullName=g||"";this.name=k||"";this.namespace=p||"";this.value=a;this.type=b};k.prototype={getName:function(){return this.name},getFullName:function(){return this.fullName},getNamespace:function(){return this.namespace},getValue:function(){return this.value},getType:function(){return this.type},setValue:function(g){this.value=g}};return k}},{}],19:[function(C,y,O){y.exports=function(k,g){var l=k.Browser,p=l.ajax,a=l.window.DOMParser,b=k.XMLAttribute,f=function(a,b,f,r){this.attributes=
[];this.children=[];this.name=this.fullName=null;this.namespace="";this.parent=this.content=null;this.systemID=this.lineNr="";this.type="ELEMENT";a&&("string"===typeof a?b===g&&-1<a.indexOf("<")?this.parse(a):(this.fullName=a,this.namespace=b,this.systemId=f,this.lineNr=r):this.parse(b))};f.prototype={parse:function(b){var f;try{var n=b.substring(b.length-4);if(".xml"===n||".svg"===n)b=p(b);f=(new a).parseFromString(b,"text/xml");var r=f.documentElement;if(r)this.parseChildrenRecursive(null,r);else throw"Error loading document";
return this}catch(c){throw c;}},parseChildrenRecursive:function(a,m){var n,r,c,g;a?(n=new f(m.nodeName),n.parent=a):(this.fullName=m.localName,this.name=m.nodeName,n=this);if(3===m.nodeType&&""!==m.textContent)return this.createPCDataElement(m.textContent);if(4===m.nodeType)return this.createCDataElement(m.textContent);if(m.attributes)for(c=0,g=m.attributes.length;c<g;c++)r=m.attributes[c],r=new b(r.getname,r.nodeName,r.namespaceURI,r.nodeValue,r.nodeType),n.attributes.push(r);if(m.childNodes)for(c=
0,g=m.childNodes.length;c<g;c++)r=n.parseChildrenRecursive(n,m.childNodes[c]),null!==r&&n.children.push(r);return n},createElement:function(a,b,n,r){return n===g?new f(a,b):new f(a,b,n,r)},createPCDataElement:function(a,b){if(""===a.replace(/^\s+$/g,""))return null;var n=new f;n.type="TEXT";n.content=a;return n},createCDataElement:function(a){var b=this.createPCDataElement(a);if(null===b)return null;b.type="CDATA";var f={"<":"<",">":">","'":"'",'"':"""},r;for(r in f)Object.hasOwnProperty(f,
r)||(a=a.replace(RegExp(r,"g"),f[r]));b.cdata=a;return b},hasAttribute:function(){if(1===arguments.length)return null!==this.getAttribute(arguments[0]);if(2===arguments.length)return null!==this.getAttribute(arguments[0],arguments[1])},equals:function(a){if(!(a instanceof f))return!1;var b,n;if(this.fullName!==a.fullName||this.attributes.length!==a.getAttributeCount()||this.attributes.length!==a.attributes.length)return!1;var r,c;b=0;for(n=this.attributes.length;b<n;b++)if(r=this.attributes[b].getName(),
c=this.attributes[b].getNamespace(),r=a.findAttribute(r,c),null===r||this.attributes[b].getValue()!==r.getValue()||this.attributes[b].getType()!==r.getType())return!1;if(this.children.length!==a.getChildCount())return!1;if(0<this.children.length){b=0;for(n=this.children.length;b<n;b++)if(r=this.getChild(b),c=a.getChild(b),!r.equals(c))return!1;return!0}return this.content===a.content},getContent:function(){if("TEXT"===this.type||"CDATA"===this.type)return this.content;var a=this.children;return 1!==
a.length||"TEXT"!==a[0].type&&"CDATA"!==a[0].type?null:a[0].content},getAttribute:function(){var a;if(2===arguments.length)return(a=this.findAttribute(arguments[0]))?a.getValue():arguments[1];if(1===arguments.length)return(a=this.findAttribute(arguments[0]))?a.getValue():null;if(3===arguments.length)return(a=this.findAttribute(arguments[0],arguments[1]))?a.getValue():arguments[2]},getStringAttribute:function(){return 1===arguments.length?this.getAttribute(arguments[0]):2===arguments.length?this.getAttribute(arguments[0],
arguments[1]):this.getAttribute(arguments[0],arguments[1],arguments[2])},getString:function(a){return this.getStringAttribute(a)},getFloatAttribute:function(){return 1===arguments.length?parseFloat(this.getAttribute(arguments[0],0)):2===arguments.length?this.getAttribute(arguments[0],arguments[1]):this.getAttribute(arguments[0],arguments[1],arguments[2])},getFloat:function(a){return this.getFloatAttribute(a)},getIntAttribute:function(){return 1===arguments.length?this.getAttribute(arguments[0],0):
2===arguments.length?this.getAttribute(arguments[0],arguments[1]):this.getAttribute(arguments[0],arguments[1],arguments[2])},getInt:function(a){return this.getIntAttribute(a)},hasChildren:function(){return 0<this.children.length},addChild:function(a){null!==a&&(a.parent=this,this.children.push(a))},insertChild:function(a,b){if(a){if(null===a.getLocalName()&&!this.hasChildren()){var f=this.children[this.children.length-1];if(null===f.getLocalName()){f.setContent(f.getContent()+a.getContent());return}}a.parent=
this;this.children.splice(b,0,a)}},getChild:function(a){if("number"===typeof a)return this.children[a];if(-1!==a.indexOf("/"))return this.getChildRecursive(a.split("/"),0);for(var b,f,r=0,c=this.getChildCount();r<c;r++)if(b=this.getChild(r),f=b.getName(),null!==f&&f===a)return b;return null},getChildren:function(){if(1===arguments.length){if("number"===typeof arguments[0])return this.getChild(arguments[0]);if(-1!==arguments[0].indexOf("/"))return this.getChildrenRecursive(arguments[0].split("/"),
0);for(var a=[],b,f,r=0,c=this.getChildCount();r<c;r++)b=this.getChild(r),f=b.getName(),null!==f&&f===arguments[0]&&a.push(b);return a}return this.children},getChildCount:function(){return this.children.length},getChildRecursive:function(a,b){if(b===a.length)return this;for(var f,r,c=a[b],g=0,k=this.getChildCount();g<k;g++)if(f=this.getChild(g),r=f.getName(),null!==r&&r===c)return f.getChildRecursive(a,b+1);return null},getChildrenRecursive:function(a,b){if(b===a.length-1)return this.getChildren(a[b]);
for(var f=this.getChildren(a[b]),r=[],c=0;c<f.length;c++)r=r.concat(f[c].getChildrenRecursive(a,b+1));return r},isLeaf:function(){return!this.hasChildren()},listChildren:function(){for(var a=[],b=0,f=this.children.length;b<f;b++)a.push(this.getChild(b).getName());return a},removeAttribute:function(a,b){this.namespace=b||"";for(var f=0,r=this.attributes.length;f<r;f++)if(this.attributes[f].getName()===a&&this.attributes[f].getNamespace()===this.namespace){this.attributes.splice(f,1);break}},removeChild:function(a){if(a)for(var b=
0,f=this.children.length;b<f;b++)if(this.children[b].equals(a)){this.children.splice(b,1);break}},removeChildAtIndex:function(a){this.children.length>a&&this.children.splice(a,1)},findAttribute:function(a,b){this.namespace=b||"";for(var f=0,r=this.attributes.length;f<r;f++)if(this.attributes[f].getName()===a&&this.attributes[f].getNamespace()===this.namespace)return this.attributes[f];return null},setAttribute:function(){var a;if(3===arguments.length){a=arguments[0].indexOf(":");var f=arguments[0].substring(a+
1);(a=this.findAttribute(f,arguments[1]))?a.setValue(arguments[2]):(a=new b(arguments[0],f,arguments[1],arguments[2],"CDATA"),this.attributes.push(a))}else(a=this.findAttribute(arguments[0]))?a.setValue(arguments[1]):(a=new b(arguments[0],arguments[0],null,arguments[1],"CDATA"),this.attributes.push(a))},setString:function(a,b){this.setAttribute(a,b)},setInt:function(a,b){this.setAttribute(a,b)},setFloat:function(a,b){this.setAttribute(a,b)},setContent:function(a){0<this.children.length&&Processing.debug("Tried to set content for XMLElement with children");
this.content=a},setName:function(){if(1===arguments.length)this.name=arguments[0],this.fullName=arguments[0],this.namespace=null;else{var a=arguments[0].indexOf(":");this.name=null===arguments[1]||0>a?arguments[0]:arguments[0].substring(a+1);this.fullName=arguments[0];this.namespace=arguments[1]}},getName:function(){return this.fullName},getLocalName:function(){return this.name},getAttributeCount:function(){return this.attributes.length},toString:function(){if("TEXT"===this.type)return this.content;
if("CDATA"===this.type)return this.cdata;var a=this.fullName,b="<"+a,f;for(f=0;f<this.attributes.length;f++)var r=this.attributes[f],b=b+(" "+r.getName()+'="'+r.getValue()+'"');if(0===this.children.length)b=""===this.content?b+"/>":b+(">"+this.content+"</"+a+">");else{b+=">";for(f=0;f<this.children.length;f++)b+=this.children[f].toString();b+="</"+a+">"}return b}};f.parse=function(a){var b=new f;b.parse(a);return b};return f}},{}],20:[function(C,y,O){y.exports={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",
aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",
darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",
hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",
linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",
palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",
tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{}],21:[function(C,y,O){y.exports=function(k,g,l){return function(p,a){p.__contains=function(b,f){return"string"!==typeof b?b.contains.apply(b,a(arguments)):null!==b&&null!==f&&"string"===typeof f&&-1<b.indexOf(f)};p.__replaceAll=function(b,f,d){return"string"!==typeof b?b.replaceAll.apply(b,a(arguments)):
b.replace(RegExp(f,"g"),d)};p.__replaceFirst=function(b,f,d){return"string"!==typeof b?b.replaceFirst.apply(b,a(arguments)):b.replace(RegExp(f,""),d)};p.__replace=function(b,f,d){if("string"!==typeof b)return b.replace.apply(b,a(arguments));if(f instanceof RegExp)return b.replace(f,d);"string"!==typeof f&&(f=f.toString());if(""===f)return b;var g=b.indexOf(f);if(0>g)return b;var n=0,r="";do r+=b.substring(n,g)+d,n=g+f.length;while(0<=(g=b.indexOf(f,n)));return r+b.substring(n)};p.__equals=function(b,
f){return b.equals instanceof Function?b.equals.apply(b,a(arguments)):g(b,f)};p.__equalsIgnoreCase=function(b,f){return"string"!==typeof b?b.equalsIgnoreCase.apply(b,a(arguments)):b.toLowerCase()===f.toLowerCase()};p.__toCharArray=function(b){if("string"!==typeof b)return b.toCharArray.apply(b,a(arguments));for(var f=[],d=0,g=b.length;d<g;++d)f[d]=new Char(b.charAt(d));return f};p.__split=function(b,f,d){if("string"!==typeof b)return b.split.apply(b,a(arguments));var g=RegExp(f);if(d===l||1>d)return b.split(g);
for(var n=[],r=b,c;-1!==(c=r.search(g))&&n.length<d-1;){var k=g.exec(r).toString();n.push(r.substring(0,c));r=r.substring(c+k.length)}-1===c&&""===r||n.push(r);return n};p.__codePointAt=function(a,f){var d=a.charCodeAt(f),g;return 55296<=d&&56319>=d?(g=a.charCodeAt(f+1),1024*(d-55296)+(g-56320)+65536):d};p.__matches=function(a,f){return RegExp(f).test(a)};p.__startsWith=function(b,f,d){if("string"!==typeof b)return b.startsWith.apply(b,a(arguments));d=d||0;return 0>d||d>b.length?!1:""===f||f===b?
!0:b.indexOf(f)===d};p.__endsWith=function(b,f){if("string"!==typeof b)return b.endsWith.apply(b,a(arguments));var d=f?f.length:0;return""===f||f===b?!0:b.indexOf(f)===b.length-d};p.__hashCode=function(b){return b.hashCode instanceof Function?b.hashCode.apply(b,a(arguments)):k(b)};p.__printStackTrace=function(a){p.println("Exception: "+a.toString())}}}},{}],22:[function(C,y,O){y.exports=function(k,g){function l(a,b){var c=a||362436069,d=b||521288629,f=function(){c=36969*(c&65535)+(c>>>16)&4294967295;
d=18E3*(d&65535)+(d>>>16)&4294967295;return((c&65535)<<16|d&65535)&4294967295};this.nextDouble=function(){var a=f()/4294967296;return 0>a?1+a:a};this.nextInt=f}function p(a){function b(a,c,d,f){a&=15;var g=8>a?c:d;c=4>a?d:12===a||14===a?c:f;return(0===(a&1)?g:-g)+(0===(a&2)?c:-c)}function c(a,b,c){b=0===(a&1)?b:c;return 0===(a&2)?-b:b}function d(a,b,c){return b+a*(c-b)}a=a!==g?new l(a):l.createRandomized();var f,k,m=new Uint8Array(512);for(f=0;256>f;++f)m[f]=f;for(f=0;256>f;++f){var p=m[k=a.nextInt()&
255];m[k]=m[f];m[f]=p}for(f=0;256>f;++f)m[f+256]=m[f];this.noise3d=function(a,c,f){var g=Math.floor(a)&255,k=Math.floor(c)&255,n=Math.floor(f)&255;a-=Math.floor(a);c-=Math.floor(c);f-=Math.floor(f);var l=(3-2*a)*a*a,p=(3-2*c)*c*c,F=m[g]+k,y=m[F]+n,F=m[F+1]+n,k=m[g+1]+k,g=m[k]+n,n=m[k+1]+n;return d((3-2*f)*f*f,d(p,d(l,b(m[y],a,c,f),b(m[g],a-1,c,f)),d(l,b(m[F],a,c-1,f),b(m[n],a-1,c-1,f))),d(p,d(l,b(m[y+1],a,c,f-1),b(m[g+1],a-1,c,f-1)),d(l,b(m[F+1],a,c-1,f-1),b(m[n+1],a-1,c-1,f-1))))};this.noise2d=function(a,
b){var f=Math.floor(a)&255,g=Math.floor(b)&255;a-=Math.floor(a);b-=Math.floor(b);var n=(3-2*a)*a*a,k=m[f]+g,f=m[f+1]+g;return d((3-2*b)*b*b,d(n,c(m[k],a,b),c(m[f],a-1,b)),d(n,c(m[k+1],a,b-1),c(m[f+1],a-1,b-1)))};this.noise1d=function(a){var b=Math.floor(a)&255;a-=Math.floor(a);return d((3-2*a)*a*a,0===(m[b]&1)?-a:a,0===(m[b+1]&1)?-(a-1):a-1)}}var a=Math.random;k.abs=Math.abs;k.ceil=Math.ceil;k.exp=Math.exp;k.floor=Math.floor;k.log=Math.log;k.pow=Math.pow;k.round=Math.round;k.sqrt=Math.sqrt;k.acos=
Math.acos;k.asin=Math.asin;k.atan=Math.atan;k.atan2=Math.atan2;k.cos=Math.cos;k.sin=Math.sin;k.tan=Math.tan;k.constrain=function(a,b,c){return a>c?c:a<b?b:a};k.dist=function(){var a,b,c;if(4===arguments.length)return a=arguments[0]-arguments[2],b=arguments[1]-arguments[3],Math.sqrt(a*a+b*b);if(6===arguments.length)return a=arguments[0]-arguments[3],b=arguments[1]-arguments[4],c=arguments[2]-arguments[5],Math.sqrt(a*a+b*b+c*c)};k.lerp=function(a,b,c){return(b-a)*c+a};k.mag=function(a,b,c){return c?
Math.sqrt(a*a+b*b+c*c):Math.sqrt(a*a+b*b)};k.map=function(a,b,c,d,f){return d+(f-d)*((a-b)/(c-b))};k.max=function(){if(2===arguments.length)return arguments[0]<arguments[1]?arguments[1]:arguments[0];var a=1===arguments.length?arguments[0]:arguments;if(!("length"in a&&0<a.length))throw"Non-empty array is expected";for(var b=a[0],c=a.length,d=1;d<c;++d)b<a[d]&&(b=a[d]);return b};k.min=function(){if(2===arguments.length)return arguments[0]<arguments[1]?arguments[0]:arguments[1];var a=1===arguments.length?
arguments[0]:arguments;if(!("length"in a&&0<a.length))throw"Non-empty array is expected";for(var b=a[0],c=a.length,d=1;d<c;++d)b>a[d]&&(b=a[d]);return b};k.norm=function(a,b,c){return(a-b)/(c-b)};k.sq=function(a){return a*a};k.degrees=function(a){return 180*a/Math.PI};k.random=function(){if(0===arguments.length)return a();if(1===arguments.length)return a()*arguments[0];var b=arguments[0],d=arguments[1];return a()*(d-b)+b};l.createRandomized=function(){var a=new Date;return new l(a/6E4&4294967295,
a&4294967295)};k.randomSeed=function(b){a=(new l(b)).nextDouble};k.Random=function(a){var b=!1,c,d;this.nextGaussian=function(){if(b)return b=!1,c;var a,f,g;do a=2*d()-1,f=2*d()-1,g=a*a+f*f;while(1<=g||0===g);g=Math.sqrt(-2*Math.log(g)/g);c=f*g;b=!0;return a*g};d=a===g?Math.random:(new l(a)).nextDouble};var b=g,f=4,d=0.5,m=g;k.noise=function(a,k,c){b===g&&(b=new p(m));for(var l=b,y=1,F=1,A=0,C=0;C<f;++C){y*=d;switch(arguments.length){case 1:A+=y*(1+l.noise1d(F*a))/2;break;case 2:A+=y*(1+l.noise2d(F*
a,F*k))/2;break;case 3:A+=y*(1+l.noise3d(F*a,F*k,F*c))/2}F*=2}return A};k.noiseDetail=function(a,b){f=a;b!==g&&(d=b)};k.noiseSeed=function(a){m=a;b=g}}},{}],23:[function(C,y,O){y.exports=function(k){var g={trim:function(g){if(g instanceof Array){for(var k=[],a=0;a<g.length;a++)k.push(g[a].replace(/^\s*/,"").replace(/\s*$/,"").replace(/\r*$/,""));return k}return g.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\r*$/,"")},radians:function(g){return g/180*Math.PI},nfCoreScalar:function(g,p,a,b,f,d){p=
0>g?a:p;a=0===f;f=f===k||0>f?0:f;g=Math.abs(g);if(a)for(f=1,g*=10;1E-6<Math.abs(Math.round(g)-g)&&7>f;)++f,g*=10;else 0!==f&&(g*=Math.pow(10,f));a=2*g;Math.floor(g)===g?a=g:Math.floor(a)===a?(g=Math.floor(g),a=g+g%2):a=Math.round(g);g="";for(b+=f;0<b||0<a;)b--,g=""+a%10+g,a=Math.floor(a/10);if(d!==k)for(b=g.length-3-f;0<b;)g=g.substring(0,b)+d+g.substring(b),b-=3;return 0<f?p+g.substring(0,g.length-f)+"."+g.substring(g.length-f,g.length):p+g},nfCore:function(k,p,a,b,f,d){if(k instanceof Array){for(var m=
[],n=0,r=k.length;n<r;n++)m.push(g.nfCoreScalar(k[n],p,a,b,f,d));return m}return g.nfCoreScalar(k,p,a,b,f,d)},nf:function(k,p,a){return g.nfCore(k,"","-",p,a)},nfs:function(k,p,a){return g.nfCore(k," ","-",p,a)},nfp:function(k,p,a){return g.nfCore(k,"+","-",p,a)},nfc:function(k,p){return g.nfCore(k,"","-",0,p,",")},withCommonFunctions:function(k){"trim radians nf nfs nfp nfc".split(" ").forEach(function(p){k[p]=g[p]})}};return g}()},{}],24:[function(C,y,O){y.exports=function(k,g,l,p,a,b){function f(a,
b){var d=a,f=0,g=0;k.pmouseX=k.mouseX;k.pmouseY=k.mouseY;if(d.offsetParent){do f+=d.offsetLeft,g+=d.offsetTop;while(d=d.offsetParent)}d=a;do f-=d.scrollLeft||0,g-=d.scrollTop||0;while(d=d.parentNode);var m,n,l,y;p.defaultView&&p.defaultView.getComputedStyle&&(m=parseInt(p.defaultView.getComputedStyle(a,null).paddingLeft,10)||0,n=parseInt(p.defaultView.getComputedStyle(a,null).paddingTop,10)||0,l=parseInt(p.defaultView.getComputedStyle(a,null).borderLeftWidth,10)||0,y=parseInt(p.defaultView.getComputedStyle(a,
null).borderTopWidth,10)||0);f=f+m+l;g=g+n+y;f+=window.pageXOffset;g+=window.pageYOffset;return{X:f,Y:g}}function d(a,b){var d=f(a,b);k.mouseX=b.pageX-d.X;k.mouseY=b.pageY-d.Y}function m(a){var b=f(a.changedTouches[0].target,a.changedTouches[0]),d;for(d=0;d<a.touches.length;d++){var g=a.touches[d];g.offsetX=g.pageX-b.X;g.offsetY=g.pageY-b.Y}for(d=0;d<a.targetTouches.length;d++)g=a.targetTouches[d],g.offsetX=g.pageX-b.X,g.offsetY=g.pageY-b.Y;for(d=0;d<a.changedTouches.length;d++)g=a.changedTouches[d],
g.offsetX=g.pageX-b.X,g.offsetY=g.pageY-b.Y;return a}l(g,"touchstart",function(f){g.setAttribute("style","-webkit-user-select: none");g.setAttribute("onclick","void(0)");g.setAttribute("style","-webkit-tap-highlight-color:rgba(0,0,0,0)");for(var c=0,n=eventHandlers.length;c<n;c++){var p=eventHandlers[c].type;"mouseout"!==p&&"mousemove"!==p&&"mousedown"!==p&&"mouseup"!==p&&"DOMMouseScroll"!==p&&"mousewheel"!==p&&"touchstart"!==p||detachEventHandler(eventHandlers[c])}k.touchStart!==b||k.touchMove!==
b||k.touchEnd!==b||k.touchCancel!==b?(l(g,"touchstart",function(a){k.touchStart!==b&&(a=m(a),k.touchStart(a))}),l(g,"touchmove",function(a){k.touchMove!==b&&(a.preventDefault(),a=m(a),k.touchMove(a))}),l(g,"touchend",function(a){k.touchEnd!==b&&(a=m(a),k.touchEnd(a))}),l(g,"touchcancel",function(a){k.touchCancel!==b&&(a=m(a),k.touchCancel(a))})):(l(g,"touchstart",function(b){d(g,b.touches[0]);k.__mousePressed=!0;k.mouseDragging=!1;k.mouseButton=a.LEFT;"function"===typeof k.mousePressed&&k.mousePressed()}),
l(g,"touchmove",function(a){a.preventDefault();d(g,a.touches[0]);"function"!==typeof k.mouseMoved||k.__mousePressed||k.mouseMoved();"function"===typeof k.mouseDragged&&k.__mousePressed&&(k.mouseDragged(),k.mouseDragging=!0)}),l(g,"touchend",function(a){k.__mousePressed=!1;"function"!==typeof k.mouseClicked||k.mouseDragging||k.mouseClicked();"function"===typeof k.mouseReleased&&k.mouseReleased()}));g.dispatchEvent(f)});(function(){var a=!0,b=function(a){a.preventDefault();a.stopPropagation()};k.disableContextMenu=
function(){a&&(l(g,"contextmenu",b),a=!1)};k.enableContextMenu=function(){a||(detachEventHandler({elem:g,type:"contextmenu",fn:b}),a=!0)}})();l(g,"mousemove",function(a){d(g,a);"function"!==typeof k.mouseMoved||k.__mousePressed||k.mouseMoved();"function"===typeof k.mouseDragged&&k.__mousePressed&&(k.mouseDragged(),k.mouseDragging=!0)});l(g,"mouseout",function(a){"function"===typeof k.mouseOut&&k.mouseOut()});l(g,"mouseover",function(a){d(g,a);"function"===typeof k.mouseOver&&k.mouseOver()});g.onmousedown=
function(){g.focus();return!1};l(g,"mousedown",function(b){k.__mousePressed=!0;k.mouseDragging=!1;switch(b.which){case 1:k.mouseButton=a.LEFT;break;case 2:k.mouseButton=a.CENTER;break;case 3:k.mouseButton=a.RIGHT}"function"===typeof k.mousePressed&&k.mousePressed()});l(g,"mouseup",function(a){k.__mousePressed=!1;"function"!==typeof k.mouseClicked||k.mouseDragging||k.mouseClicked();"function"===typeof k.mouseReleased&&k.mouseReleased()});var n=function(a){var b=0;a.wheelDelta?(b=a.wheelDelta/120,window.opera&&
(b=-b)):a.detail&&(b=-a.detail/3);(k.mouseScroll=b)&&"function"===typeof k.mouseScrolled&&k.mouseScrolled()};l(p,"DOMMouseScroll",n);l(p,"mousewheel",n)}},{}],25:[function(C,y,O){y.exports=function(k,g){function l(){var a="abs acos alpha ambient ambientLight append applyMatrix arc arrayCopy asin atan atan2 background beginCamera beginDraw beginShape bezier bezierDetail bezierPoint bezierTangent bezierVertex binary blend blendColor blit_resize blue box breakShape brightness camera ceil Character color colorMode concat constrain copy cos createFont createGraphics createImage cursor curve curveDetail curvePoint curveTangent curveTightness curveVertex day degrees directionalLight disableContextMenu dist draw ellipse ellipseMode emissive enableContextMenu endCamera endDraw endShape exit exp expand externals fill filter floor focused frameCount frameRate frustum get glyphLook glyphTable green height hex hint hour hue image imageMode intersect join key keyCode keyPressed keyReleased keyTyped lerp lerpColor lightFalloff lights lightSpecular line link loadBytes loadFont loadGlyphs loadImage loadPixels loadShape loadXML loadStrings log loop mag map match matchAll max millis min minute mix modelX modelY modelZ modes month mouseButton mouseClicked mouseDragged mouseMoved mouseOut mouseOver mousePressed mouseReleased mouseScroll mouseScrolled mouseX mouseY name nf nfc nfp nfs noCursor noFill noise noiseDetail noiseSeed noLights noLoop norm normal noSmooth noStroke noTint ortho param parseBoolean parseByte parseChar parseFloat parseInt peg perspective PImage pixels PMatrix2D PMatrix3D PMatrixStack pmouseX pmouseY point pointLight popMatrix popStyle pow print printCamera println printMatrix printProjection PShape PShapeSVG pushMatrix pushStyle quad radians random Random randomSeed rect rectMode red redraw requestImage resetMatrix reverse rotate rotateX rotateY rotateZ round saturation save saveFrame saveStrings scale screenX screenY screenZ second set setup shape shapeMode shared shearX shearY shininess shorten sin size smooth sort specular sphere sphereDetail splice split splitTokens spotLight sq sqrt status str stroke strokeCap strokeJoin strokeWeight subset tan text textAlign textAscent textDescent textFont textLeading textMode textSize texture textureMode textWidth tint toImageData touchCancel touchEnd touchMove touchStart translate transform triangle trim unbinary unhex updatePixels use3DContext vertex width XMLElement XML year __contains __equals __equalsIgnoreCase __frameRate __hashCode __int_cast __instanceof __keyPressed __mousePressed __printStackTrace __replace __replaceAll __replaceFirst __toCharArray __split __codePointAt __startsWith __endsWith __matches".split(" ");
d&&Object.keys(d).forEach(function(b){a.push(b)});var b={},c,f;c=0;for(f=a.length;c<f;++c)b[a[c]]=null;for(var g in k.lib)if(k.lib.hasOwnProperty(g)&&k.lib[g].exports){var m=k.lib[g].exports;c=0;for(f=m.length;c<f;++c)b[m[c]]=null}return b}function p(a){function d(a){var b=/^\s*/.exec(a);if(b[0].length===a.length)a={left:b[0],middle:"",right:""};else{var c=/\s*$/.exec(a);a={left:b[0],middle:a.substring(b[0].length,c.index),right:c[0]}}a.untrim=function(a){return this.left+a+this.right};return a}function c(a){return a.replace(/^\s+/,
"").replace(/\s+$/,"")}function g(a,b){for(var c=0,d=b.length;c<d;++c)a[b[c]]=null;return a}function k(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function p(a){return a.substring(2,a.length-1)}function A(a,b){var c=N.length;N.push(a);return'"'+b+c+'"'}function y(a){a=a.replace(La,function(a){return A(a,"E")});a=a.replace(oa,function(a){return A(a,"D")});return a=a.replace(ub,function(a){return A(a,"H")})}function w(a,b){return a.replace(Fb,function(a,c,d,e,f,ib){return d!==b?a:A(a,
"G")})}function C(a){this.name=a}function q(a,b){this.params=a;this.methodArgsParam=b}function O(a){var b=c(a.substring(1,a.length-1));a=[];var d=null;if(""!==b)for(var b=b.split(","),e=0;e<b.length;++e){var f=/\b([A-Za-z_$][\w$]*\b)(\s*"[ABC][\d]*")*\s*$/.exec(b[e]);if(e===b.length-1&&0<=b[e].indexOf("...")){d=new C(f[1]);break}a.push(new C(f[1]))}return new q(a,d)}function P(a){function b(a,c,f,ib){a=N[ib];e=!0;a=d(a.substring(1,a.length-1));return"__"+f+(""===a.middle?A("("+c.replace(/\.\s*$/,
"")+")","B"):A("("+c.replace(/\.\s*$/,"")+","+a.middle+")","B"))}function c(a,b,d){e=!0;return"__instanceof"+A("("+b+", "+d+")","B")}a=a.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s*"C\d+")+\s*("A\d+")/g,function(a,b,c){return c});a=a.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\s*"B\d+")\s*("A\d+")/g,function(a,b,c){return A(a,"F")});a=a.replace(ub,function(a){return A(a,"H")});a=a.replace(/\bnew\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)\s*("C\d+"(?:\s*"C\d+")*)/g,
function(a,b,c){a=c.replace(/"C(\d+)"/g,function(a,b){return N[b]}).replace(/\[\s*\]/g,"[null]").replace(/\s*\]\s*\[\s*/g,", ");a="{"+a.substring(1,a.length-1)+"}";b="('"+b+"', "+A(a,"A")+")";return"$p.createJavaArray"+A(b,"B")});a=a.replace(/(\.\s*length)\s*"B\d+"/g,"$1");a=a.replace(/#([0-9A-Fa-f]{6})\b/g,function(a,b){return"0xFF"+b});a=a.replace(/"B(\d+)"(\s*(?:[\w$']|"B))/g,function(a,b,c){b=N[b];if(!/^\(\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\s*(?:"C\d+"\s*)*\)$/.test(b))return a;
if(/^\(\s*int\s*\)$/.test(b))return"(int)"+c;b=b.split(/"C(\d+)"/g);return 1<b.length&&!/^\[\s*\]$/.test(N[b[1]])?a:""+c});a=a.replace(/\(int\)([^,\]\)\}\?\:\*\+\-\/\^\|\%\&\~<\>\=]+)/g,function(a,b){var c=d(b);return c.untrim("__int_cast("+c.middle+")")});a=a.replace(/\bsuper(\s*"B\d+")/g,"$$superCstr$1").replace(/\bsuper(\s*\.)/g,"$$super$1");a=a.replace(/\b0+((\d*)(?:\.[\d*])?(?:[eE][\-\+]?\d+)?[fF]?)\b/,function(a,b,c){return b===c?a:""===c?"0"+b:b});a=a.replace(/\b(\.?\d+\.?)[fF]\b/g,"$1");a=
a.replace(/([^\s])%([^=\s])/g,"$1 % $2");a=a.replace(/\b(frameRate|keyPressed|mousePressed)\b(?!\s*"B)/g,"__$1");a=a.replace(/\b(boolean|byte|char|float|int)\s*"B/g,function(a,b){return"parse"+b.substring(0,1).toUpperCase()+b.substring(1)+'"B'});a=a.replace(/\bpixels\b\s*(("C(\d+)")|\.length)?(\s*=(?!=)([^,\]\)\}]+))?/g,function(a,b,c,d,e,f){return c?(a=N[d],e?"pixels.setPixel"+A("("+a.substring(1,a.length-1)+","+f+")","B"):"pixels.getPixel"+A("("+a.substring(1,a.length-1)+")","B")):b?"pixels.getLength"+
A("()","B"):e?"pixels.set"+A("("+f+")","B"):"pixels.toArray"+A("()","B")});var e;do e=!1,a=a.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*\.\s*(?:[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*\.\s*)*)(replace|replaceAll|replaceFirst|contains|equals|equalsIgnoreCase|hashCode|toCharArray|printStackTrace|split|startsWith|endsWith|codePointAt|matches)\s*"B(\d+)"/g,b);while(e);do e=!1,a=a.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*(?:\.\s*[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*)*)instanceof\s+([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)/g,
c);while(e);return a=a.replace(/\bthis(\s*"B\d+")/g,"$$constr$1")}function tb(a,b){this.baseInterfaceName=a;this.body=b;b.owner=this}function v(a){var b=RegExp(/\bnew\s*([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)\s*"B\d+"\s*"A(\d+)"/).exec(a);a=aa;var c="class"+ ++xa;aa=c;var e=b[1]+"$"+c,b=new tb(e,Ua(N[b[2]],e,"","implements "+b[1]));b.classId=c;b.scopeId=a;E[c]=b;aa=a;return b}function pc(a,b,c){this.name=a;this.params=b;this.body=c}function Ka(a){a=RegExp(/\b([A-Za-z_$][\w$]*)\s*"B(\d+)"\s*"A(\d+)"/).exec(a);
return new pc("function"!==a[1]?a[1]:null,O(N[a[2]]),Ea(N[a[3]]))}function X(a){this.members=a}function Z(a){a=a.split(",");for(var b=0;b<a.length;++b){var e=a[b].indexOf(":");a[b]=0>e?{value:ia(a[b])}:{label:c(a[b].substring(0,e)),value:ia(c(a[b].substring(e+1)))}}return new X(a)}function S(a){if("("===a.charAt(0)||"["===a.charAt(0))return a.charAt(0)+S(a.substring(1,a.length-1))+a.charAt(a.length-1);if("{"===a.charAt(0))return/^\{\s*(?:[A-Za-z_$][\w$]*|'\d+')\s*:/.test(a)?"{"+A(a.substring(1,a.length-
1),"I")+"}":"["+S(a.substring(1,a.length-1))+"]";a=d(a);var b=P(a.middle),b=b.replace(/"[ABC](\d+)"/g,function(a,b){return S(N[b])});return a.untrim(b)}function da(a){return a.replace(/(\.\s*)?((?:\b[A-Za-z_]|\$)[\w$]*)(\s*\.\s*([A-Za-z_$][\w$]*)(\s*\()?)?/g,function(a,b,c,e,d,f){return b?a:U({name:c,member:d,callSign:!!f})+(e===m?"":e)})}function ka(a,b){this.expr=a;this.transforms=b}function pa(a,b,c){this.name=a;this.value=b;this.isDefault=c}function Xb(a,b){var e=a.indexOf("="),d,f;0>e?(d=a,e=
b,f=!0):(d=a.substring(0,e),e=ia(a.substring(e+1)),f=!1);return new pa(c(d.replace(/(\s*"C\d+")+/g,"")),e,f)}function db(a){return"int"===a||"float"===a?"0":"boolean"===a?"false":"color"===a?"0x00000000":"null"}function ya(a,b){this.definitions=a;this.varType=b}function Gb(a){this.expression=a}function eb(a){if(za.test(a)){var b=vb.exec(a);a=a.substring(b[0].length).split(",");for(var c=db(b[2]),e=0;e<a.length;++e)a[e]=Xb(a[e],c);return new ya(a,b[2])}return new Gb(ia(a))}function Hb(a,b,c){this.initStatement=
a;this.condition=b;this.step=c}function Ib(a,b){this.initStatement=a;this.container=b}function kb(a,b){this.initStatement=a;this.container=b}function Fa(a){if(/\bin\b/.test(a))return a=a.substring(1,a.length-1).split(/\bin\b/g),new Ib(eb(c(a[0])),ia(a[1]));if(0<=a.indexOf(":")&&0>a.indexOf(";"))return a=a.substring(1,a.length-1).split(":"),new kb(eb(c(a[0])),ia(a[1]));a=a.substring(1,a.length-1).split(";");return new Hb(eb(c(a[0])),ia(a[1]),ia(a[2]))}function ua(a){a.sort(function(a,b){return b.weight-
a.weight})}function Va(a,b,c){this.name=a;this.body=b;this.isStatic=c;b.owner=this}function Ma(a,b,c){this.name=a;this.body=b;this.isStatic=c;b.owner=this}function Yb(a){var b=La.exec(a);La.lastIndex=0;var c=0<=b[1].indexOf("static"),e=N[p(b[6])];a=aa;var d="class"+ ++xa;aa=d;b="interface"===b[2]?new Va(b[3],fa(e,b[3],b[4]),c):new Ma(b[3],Ua(e,b[3],b[4],b[5]),c);b.classId=d;b.scopeId=a;E[d]=b;aa=a;return b}function Jb(a,b,c,e){this.name=a;this.params=b;this.body=c;this.isStatic=e}function Kb(a){a=
oa.exec(a);oa.lastIndex=0;var b=0<=a[1].indexOf("static"),c=";"!==a[6]?N[p(a[6])]:"{}";return new Jb(a[3],O(N[p(a[4])]),Ea(c),b)}function Wa(a,b,c){this.definitions=a;this.fieldType=b;this.isStatic=c}function Zb(a){var b=vb.exec(a),c=0<=b[1].indexOf("static");a=a.substring(b[0].length).split(/,\s*/g);for(var e=db(b[2]),d=0;d<a.length;++d)a[d]=Xb(a[d],e);return new Wa(a,b[2],c)}function Xa(a,b){this.params=a;this.body=b}function $b(a){a=RegExp(/"B(\d+)"\s*"A(\d+)"/).exec(a);var b=O(N[a[1]]);return new Xa(b,
Ea(N[a[2]]))}function wb(a,b,c,e,d,f){this.name=a;this.interfacesNames=b;this.methodsNames=c;this.fields=e;this.innerClasses=d;this.misc=f;a=0;for(b=e.length;a<b;++a)e[a].owner=this}function Na(a,b,c,e,d,f,g,h,k){this.name=a;this.baseClassName=b;this.interfacesNames=c;this.functions=e;this.methods=d;this.fields=f;this.cstrs=g;this.innerClasses=h;this.misc=k;a=0;for(b=f.length;a<b;++a)f[a].owner=this}function H(a,b){this.name=a;this.body=b;b.owner=this}function lb(a,b){this.name=a;this.body=b;b.owner=
this}function ac(a){var b=La.exec(a);La.lastIndex=0;var c=N[p(b[6])];a=aa;var e="class"+ ++xa;aa=e;b="interface"===b[2]?new H(b[3],fa(c,b[3],b[4])):new lb(b[3],Ua(c,b[3],b[4],b[5]));b.classId=e;b.scopeId=a;E[e]=b;aa=a;return b}function mb(a,b,c){this.name=a;this.params=b;this.body=c}function bc(a){a=oa.exec(a);oa.lastIndex=0;return new mb(a[3],O(N[p(a[4])]),Ea(N[p(a[6])]))}function Lb(a,b){this.argument=a;this.misc=b}function cc(a,b){this.argument=a;this.misc=b}function Mb(a,b,c){this.name=a;this.argument=
b;this.misc=c}function V(a){this.expr=a}function Nb(a){this.label=a}function xb(a){for(var b=[],c=0,e=a.length;c<e;++c){var d=a[c];d instanceof ya?b=b.concat(d.getNames()):d instanceof Lb&&d.argument.initStatement instanceof ya?b=b.concat(d.argument.initStatement.getNames()):(d instanceof Va||d instanceof Ma||d instanceof H||d instanceof lb||d instanceof mb||d instanceof pc)&&b.push(d.name)}return g({},b)}function e(a){this.statements=a}function h(a){this.statements=a}var ea=l(),ca=[];a=a.replace(/\r\n?|\n\r/g,
"\n").replace(/("(?:[^"\\\n]|\\.)*")|('(?:[^'\\\n]|\\.)*')|(([\[\(=|&!\^:?]\s*)(\/(?![*\/])(?:[^\/\\\n]|\\.)*\/[gim]*)\b)|(\/\/[^\n]*\n)|(\/\*(?:(?!\*\/)(?:.|\n))*\*\/)/g,function(a,b,c,e,d,f,g,h){return b||c?(b=ca.length,ca.push(a),"'"+b+"'"):e?(b=ca.length,ca.push(f),d+"'"+b+"'"):""!==h?" ":"\n"});a=a.replace(/__x([0-9A-F]{4})/g,function(a,b){return"__x005F_x"+b});a=a.replace(/\$/g,"__x0024");a=a.replace(/return\s*[\n\r]+/g,"return ");var T,qa=function(a,b,c,e){if(b||e)return a;T=!0;return""};do T=
!1,a=a.replace(/([<]?)<\s*((?:\?|[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\[\])*(?:\s+(?:extends|super)\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)?(?:\s*,\s*(?:\?|[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)(?:\[\])*(?:\s+(?:extends|super)\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)?)*)\s*>([=]?)/g,qa);while(T);var N=function(a){var b=[];a=a.split(/([\{\[\(\)\]\}])/);for(var c=a[0],e=[],d=1;d<a.length;d+=2){var f=a[d];if("["===f||"{"===f||"("===f)e.push(c),c=f;
else if("]"===f||"}"===f||")"===f){var g="}"===f?"A":")"===f?"B":"C",h=b.length;b.push(c+f);c=e.pop()+'"'+g+(h+1)+'"'}c+=a[d+1]}b.unshift(c);return b}(a),U,E={},aa,xa=0,Ua,fa,Ea,Aa,ia,La=/\b((?:(?:public|private|final|protected|static|abstract)\s+)*)(class|interface)\s+([A-Za-z_$][\w$]*\b)(\s+extends\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\b)*)?(\s+implements\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*\b)*)?\s*("A\d+")/g,
oa=/\b((?:(?:public|private|final|protected|static|abstract|synchronized)\s+)*)((?!(?:else|new|return|throw|function|public|private|protected)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*([A-Za-z_$][\w$]*\b)\s*("B\d+")(\s*throws\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)*)?\s*("A\d+"|;)/g,za=/^((?:(?:public|private|final|protected|static)\s+)*)((?!(?:else|new|return|throw)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*([A-Za-z_$][\w$]*\b)\s*(?:"C\d+"\s*)*([=,]|$)/,
Fb=/\b((?:(?:public|private|final|protected|static|abstract)\s+)*)((?!(?:new|return|throw)\b)[A-Za-z_$][\w$]*\b)\s*("B\d+")(\s*throws\s+[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*,\s*[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)*)?\s*("A\d+")/g,vb=/^((?:(?:public|private|final|protected|static)\s+)*)((?!(?:new|return|throw)\b)[A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*(?:\s*"C\d+")*)\s*/,ub=/\bfunction(?:\s+([A-Za-z_$][\w$]*))?\s*("B\d+")\s*("A\d+")/g;C.prototype.toString=function(){return this.name};
q.prototype.getNames=function(){for(var a=[],b=0,c=this.params.length;b<c;++b)a.push(this.params[b].name);return a};q.prototype.prependMethodArgs=function(a){return this.methodArgsParam?"{\nvar "+this.methodArgsParam.name+" = Array.prototype.slice.call(arguments, "+this.params.length+");\n"+a.substring(1):a};q.prototype.toString=function(){if(0===this.params.length)return"()";for(var a="(",b=0,c=this.params.length;b<c;++b)a+=this.params[b]+", ";return a.substring(0,a.length-2)+")"};tb.prototype.toString=
function(){return"new ("+this.body+")"};pc.prototype.toString=function(){var a=U,b=g({"this":null},this.params.getNames());U=function(c){return b.hasOwnProperty(c.name)?c.name:a(c)};var c="function";this.name&&(c+=" "+this.name);var e=this.params.prependMethodArgs(this.body.toString()),c=c+(this.params+" "+e);U=a;return c};X.prototype.toString=function(){var a=U;U=function(b){return"this"===b.name?"this":a(b)};for(var b="",c=0,e=this.members.length;c<e;++c)this.members[c].label&&(b+=this.members[c].label+
": "),b+=this.members[c].value.toString()+", ";U=a;return b.substring(0,b.length-2)};ka.prototype.toString=function(){var a=this.transforms;return da(this.expr).replace(/"!(\d+)"/g,function(b,c){return a[c].toString()})};ia=function(a){var b=[];a=S(a);a=a.replace(/"H(\d+)"/g,function(a,c){b.push(Ka(N[c]));return'"!'+(b.length-1)+'"'});a=a.replace(/"F(\d+)"/g,function(a,c){b.push(v(N[c]));return'"!'+(b.length-1)+'"'});a=a.replace(/"I(\d+)"/g,function(a,c){b.push(Z(N[c]));return'"!'+(b.length-1)+'"'});
return new ka(a,b)};pa.prototype.toString=function(){return this.name+" = "+this.value};ya.prototype.getNames=function(){for(var a=[],b=0,c=this.definitions.length;b<c;++b)a.push(this.definitions[b].name);return a};ya.prototype.toString=function(){return"var "+this.definitions.join(",")};Gb.prototype.toString=function(){return this.expression.toString()};Hb.prototype.toString=function(){return"("+this.initStatement+"; "+this.condition+"; "+this.step+")"};Ib.prototype.toString=function(){var a=this.initStatement.toString();
0<=a.indexOf("=")&&(a=a.substring(0,a.indexOf("=")));return"("+a+" in "+this.container+")"};kb.iteratorId=0;kb.prototype.toString=function(){var a=this.initStatement.toString(),b="$it"+kb.iteratorId++,a=a.replace(/^\s*var\s*/,"").split("=")[0];return"("+("var "+b+" = new $p.ObjectIterator("+this.container+"), "+a+" = void(0)")+"; "+(b+".hasNext() && (("+a+" = "+b+".next()) || true)")+";)"};Va.prototype.toString=function(){return""+this.body};Ma.prototype.toString=function(){return""+this.body};Jb.prototype.toString=
function(){var a=g({},this.params.getNames()),b=U;U=function(c){return a.hasOwnProperty(c.name)?c.name:b(c)};var c=this.params.prependMethodArgs(this.body.toString()),c="function "+this.methodId+this.params+" "+c+"\n";U=b;return c};Wa.prototype.getNames=function(){for(var a=[],b=0,c=this.definitions.length;b<c;++b)a.push(this.definitions[b].name);return a};Wa.prototype.toString=function(){var a=U({name:"[this]"});if(this.isStatic){for(var b=this.owner.name,c=[],e=0,d=this.definitions.length;e<d;++e){var f=
this.definitions[e],g=f.name,h=b+"."+g;c.push("if("+h+" === void(0)) {\n "+h+" = "+f.value+"; }\n$p.defineProperty("+a+", '"+g+"', { get: function(){return "+h+";}, set: function(val){"+h+" = val;} });\n")}return c.join("")}return a+"."+this.definitions.join("; "+a+".")};Xa.prototype.toString=function(){var a=g({},this.params.getNames()),b=U;U=function(c){return a.hasOwnProperty(c.name)?c.name:b(c)};var c="function $constr_"+this.params.params.length+this.params.toString(),e=this.params.prependMethodArgs(this.body.toString());
/\$(superCstr|constr)\b/.test(e)||(e="{\n$superCstr();\n"+e.substring(1));U=b;return c+e+"\n"};wb.prototype.getMembers=function(a,b,c){this.owner.base&&this.owner.base.body.getMembers(a,b,c);var e,d,f,g;e=0;for(f=this.fields.length;e<f;++e){var h=this.fields[e].getNames();d=0;for(g=h.length;d<g;++d)a[h[d]]=this.fields[e]}e=0;for(f=this.methodsNames.length;e<f;++e)b[this.methodsNames[e]]=!0;e=0;for(f=this.innerClasses.length;e<f;++e)a=this.innerClasses[e],c[a.name]=a};wb.prototype.toString=function(){for(var a=
this.owner,b=0;a;)++b,a=a.scope;var a=this.name,c=b="";this.getMembers({},{},{});var e,d;if(this.owner.interfaces){var f=[],g;e=0;for(d=this.interfacesNames.length;e<d;++e)this.owner.interfaces[e]&&(g=U({name:this.interfacesNames[e]}),f.push(g),b+="$p.extendInterfaceMembers("+a+", "+g+");\n");c+=a+".$interfaces = ["+f.join(", ")+"];\n"}c=c+(a+".$isInterface = true;\n")+(a+".$methods = ['"+this.methodsNames.join("', '")+"'];\n");ua(this.innerClasses);e=0;for(d=this.innerClasses.length;e<d;++e)f=this.innerClasses[e],
f.isStatic&&(b+=a+"."+f.name+" = "+f+";\n");e=0;for(d=this.fields.length;e<d;++e)f=this.fields[e],f.isStatic&&(b+=a+"."+f.definitions.join(";\n"+a+".")+";\n");return"(function() {\nfunction "+a+"() { throw 'Unable to create the interface'; }\n"+b+c+"return "+a+";\n})()"};fa=function(a,b,c){a=a.substring(1,a.length-1);a=y(a);a=w(a,b);var e=[],f=[];a=a.replace(/"([DE])(\d+)"/g,function(a,b,c){"D"===b?e.push(c):"E"===b&&f.push(c);return""});a=a.split(/;(?:\s*;)*/g);var g,h;c!==m&&(g=c.replace(/^\s*extends\s+(.+?)\s*$/g,
"$1").split(/\s*,\s*/g));c=0;for(h=e.length;c<h;++c){var k=Kb(N[e[c]]);e[c]=k.name}c=0;for(h=a.length-1;c<h;++c)k=d(a[c]),a[c]=Zb(k.middle);k=a.pop();c=0;for(h=f.length;c<h;++c)f[c]=Yb(N[f[c]]);return new wb(b,g,e,a,f,{tail:k})};Na.prototype.getMembers=function(a,b,c){this.owner.base&&this.owner.base.body.getMembers(a,b,c);var e,d,f,g;e=0;for(f=this.fields.length;e<f;++e){var h=this.fields[e].getNames();d=0;for(g=h.length;d<g;++d)a[h[d]]=this.fields[e]}e=0;for(f=this.methods.length;e<f;++e)a=this.methods[e],
b[a.name]=a;e=0;for(f=this.innerClasses.length;e<f;++e)b=this.innerClasses[e],c[b.name]=b};Na.prototype.toString=function(){var a="$this_"+function(a){for(var b=0;a;)++b,a=a.scope;return b}(this.owner),b=this.name,e="var "+a+" = this;\n",d="",f="",g={},h={},k={};this.getMembers(g,h,k);var m=U;U=function(c){var e=c.name;return"this"===e?c.callSign||!c.member?a+".$self":a:g.hasOwnProperty(e)?g[e].isStatic?b+"."+e:a+"."+e:k.hasOwnProperty(e)?a+"."+e:h.hasOwnProperty(e)?h[e].isStatic?b+"."+e:a+".$self."+
e:m(c)};var n;this.baseClassName?(n=m({name:this.baseClassName}),e=e+("var $super = { $upcast: "+a+" };\n")+("function $superCstr(){"+n+".apply($super,arguments);if(!('$self' in $super)) $p.extendClassChain($super)}\n"),f+=b+".$base = "+n+";\n"):e+="function $superCstr(){$p.extendClassChain("+a+")}\n";this.owner.base&&(d+="$p.extendStaticMembers("+b+", "+n+");\n");var l,p,r;if(this.owner.interfaces){p=[];n=0;for(l=this.interfacesNames.length;n<l;++n)this.owner.interfaces[n]&&(r=m({name:this.interfacesNames[n]}),
p.push(r),d+="$p.extendInterfaceMembers("+b+", "+r+");\n");f+=b+".$interfaces = ["+p.join(", ")+"];\n"}0<this.functions.length&&(e+=this.functions.join("\n")+"\n");ua(this.innerClasses);n=0;for(l=this.innerClasses.length;n<l;++n)p=this.innerClasses[n],p.isStatic?(d+=b+"."+p.name+" = "+p+";\n",e+=a+"."+p.name+" = "+b+"."+p.name+";\n"):e+=a+"."+p.name+" = "+p+";\n";n=0;for(l=this.fields.length;n<l;++n){var w=this.fields[n];if(w.isStatic)for(d+=b+"."+w.definitions.join(";\n"+b+".")+";\n",p=0,r=w.definitions.length;p<
r;++p)var v=w.definitions[p].name,q=b+"."+v,e=e+("$p.defineProperty("+a+", '"+v+"', {get: function(){return "+q+"}, set: function(val){"+q+" = val}});\n");else e+=a+"."+w.definitions.join(";\n"+a+".")+";\n"}p={};n=0;for(l=this.methods.length;n<l;++n)r=this.methods[n],w=p[r.name],v=r.name+"$"+r.params.params.length,q=!!r.params.methodArgsParam,w?(++w,v+="_"+w):w=1,r.methodId=v,p[r.name]=w,r.isStatic?(d+=r,d+="$p.addMethod("+b+", '"+r.name+"', "+v+", "+q+");\n"):e+=r,e+="$p.addMethod("+a+", '"+r.name+
"', "+v+", "+q+");\n";e+=c(this.misc.tail);0<this.cstrs.length&&(e+=this.cstrs.join("\n")+"\n");e+="function $constr() {\n";p=[];n=0;for(l=this.cstrs.length;n<l;++n)r=this.cstrs[n].params.params.length,p.push("if(arguments.length "+(this.cstrs[n].params.methodArgsParam?">=":"===")+" "+r+") { $constr_"+r+".apply("+a+", arguments); }");0<p.length&&(e+=p.join(" else ")+" else ");e+="$superCstr();\n}\n";e+="$constr.apply(null, arguments);\n";U=m;return"(function() {\nfunction "+b+"() {\n"+e+"}\n"+d+f+
"return "+b+";\n})()"};Ua=function(a,b,c,e){a=a.substring(1,a.length-1);a=y(a);a=w(a,b);var f=[],g=[],h=[],k=[];a=a.replace(/"([DEGH])(\d+)"/g,function(a,b,c){"D"===b?f.push(c):"E"===b?g.push(c):"H"===b?k.push(c):h.push(c);return""});a=a.replace(/^(?:\s*;)+/,"").split(/;(?:\s*;)*/g);var n,p;c!==m&&(n=c.replace(/^\s*extends\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)\s*$/g,"$1"));e!==m&&(p=e.replace(/^\s*implements\s+(.+?)\s*$/g,"$1").split(/\s*,\s*/g));for(c=0;c<k.length;++c)k[c]=Ka(N[k[c]]);
for(c=0;c<f.length;++c)f[c]=Kb(N[f[c]]);for(c=0;c<a.length-1;++c)e=d(a[c]),a[c]=Zb(e.middle);e=a.pop();for(c=0;c<h.length;++c)h[c]=$b(N[h[c]]);for(c=0;c<g.length;++c)g[c]=Yb(N[g[c]]);return new Na(b,n,p,k,f,a,h,g,{tail:e})};H.prototype.toString=function(){return"var "+this.name+" = "+this.body+";\n$p."+this.name+" = "+this.name+";\n"};lb.prototype.toString=function(){return"var "+this.name+" = "+this.body+";\n$p."+this.name+" = "+this.name+";\n"};mb.prototype.toString=function(){var a=g({},this.params.getNames()),
b=U;U=function(c){return a.hasOwnProperty(c.name)?c.name:b(c)};var c=this.params.prependMethodArgs(this.body.toString()),c="function "+this.name+this.params+" "+c+"\n$p."+this.name+" = "+this.name+";";U=b;return c};Lb.prototype.toString=function(){return this.misc.prefix+this.argument.toString()};cc.prototype.toString=function(){return this.misc.prefix+this.argument.toString()};Mb.prototype.toString=function(){var a=this.misc.prefix;this.argument!==m&&(a+=this.argument.toString());return a};V.prototype.toString=
function(){return"case "+this.expr+":"};Nb.prototype.toString=function(){return this.label};Aa=function(a,b,e){var f=RegExp(/\b(catch|for|if|switch|while|with)\s*"B(\d+)"|\b(do|else|finally|return|throw|try|break|continue)\b|("[ADEH](\d+)")|\b(case)\s+([^:]+):|\b([A-Za-z_$][\w$]*\s*:)|(;)/g),g=[];a=a.replace(/\b(catch\s*"B\d+"\s*"A\d+")(\s*catch\s*"B\d+"\s*"A\d+")+/g,"$1");for(var h=0,k,n;null!==(k=f.exec(a));){if(k[1]!==m)n=a.lastIndexOf('"B',f.lastIndex),h=a.substring(h,n),"for"===k[1]?g.push(new Lb(Fa(N[k[2]]),
{prefix:h})):"catch"===k[1]?g.push(new cc(O(N[k[2]]),{prefix:h})):g.push(new Mb(k[1],ia(N[k[2]]),{prefix:h}));else if(k[3]!==m)g.push(new Mb(k[3],m,{prefix:a.substring(h,f.lastIndex)}));else if(k[4]!==m){n=a.substring(h,f.lastIndex-k[4].length);if(0!==c(n).length)continue;g.push(n);h=k[4].charAt(1);k=k[5];"D"===h?g.push(b(N[k])):"E"===h?g.push(e(N[k])):"H"===h?g.push(Ka(N[k])):g.push(Ea(N[k]))}else if(k[6]!==m)g.push(new V(ia(c(k[7]))));else if(k[8]!==m){n=a.substring(h,f.lastIndex-k[8].length);if(0!==
c(n).length)continue;g.push(new Nb(a.substring(h,f.lastIndex)))}else k=d(a.substring(h,f.lastIndex-1)),g.push(k.left),g.push(eb(k.middle)),g.push(k.right+";");h=f.lastIndex}b=d(a.substring(h));g.push(b.left);""!==b.middle&&(g.push(eb(b.middle)),g.push(";"+b.right));return g};e.prototype.toString=function(){var a=xb(this.statements),b=U;k(a)||(U=function(c){return a.hasOwnProperty(c.name)?c.name:b(c)});var c="{\n"+this.statements.join("")+"\n}";U=b;return c};Ea=function(a){a=d(a.substring(1,a.length-
1));return new e(Aa(a.middle))};h.prototype.toString=function(){for(var a=[],c=[],e,d=0,g=this.statements.length;d<g;++d)e=this.statements[d],e instanceof lb||e instanceof H?a.push(e):c.push(e);ua(a);var h=xb(this.statements);U=function(a){a=a.name;return h.hasOwnProperty(a)?a:ea.hasOwnProperty(a)||f.hasOwnProperty(a)||b.hasOwnProperty(a)?"$p."+a:a};a="// this code was autogenerated from PJS\n(function($p) {\n"+a.join("")+"\n"+c.join("")+"\n})";U=null;return a};a=function(){var a=y(N[0]),a=a.replace(/\bimport\s+[^;]+;/g,
"");return new h(Aa(a,bc,ac))}();(function(a){function b(a,e){for(var d=e.split("."),f=a.scope,g;f;){if(f.hasOwnProperty(d[0])){g=f[d[0]];break}f=f.scope}g===m&&(g=c[d[0]]);for(var f=1,h=d.length;f<h&&g;++f)g=g.inScope[d[f]];return g}var c={},e;for(e in E)if(E.hasOwnProperty(e)){a=E[e];var d=a.scopeId,f=a.name;d?(d=E[d],a.scope=d,d.inScope===m&&(d.inScope={}),d.inScope[f]=a):c[f]=a}for(e in E)if(E.hasOwnProperty(e)){a=E[e];if(f=a.body.baseClassName)if(f=b(a,f))a.base=f,f.derived||(f.derived=[]),f.derived.push(a);
var f=a.body.interfacesNames,d=[],g,h;if(f&&0<f.length){g=0;for(h=f.length;g<h;++g){var k=b(a,f[g]);d.push(k);k&&(k.derived||(k.derived=[]),k.derived.push(a))}0<d.length&&(a.interfaces=d)}}})(a);(function(a){function b(a,e){var d=c[a];if(!d)return!1;var f=d.indexOf(e);if(0>f)return!1;d.splice(f,1);if(0<d.length)return!1;delete c[a];return!0}a=[];var c={},e,d,f;for(e in E)if(E.hasOwnProperty(e))if(f=E[e],f.inScope||f.derived){var g=[];if(f.inScope)for(d in f.inScope)f.inScope.hasOwnProperty(d)&&g.push(f.inScope[d]);
f.derived&&(g=g.concat(f.derived));c[e]=g}else a.push(e),f.weight=0;for(;0<a.length;)if(e=a.shift(),f=E[e],f.scopeId&&b(f.scopeId,f)&&(a.push(f.scopeId),E[f.scopeId].weight=f.weight+1),f.base&&b(f.base.classId,f)&&(a.push(f.base.classId),f.base.weight=f.weight+1),f.interfaces)for(e=0,d=f.interfaces.length;e<d;++e)f.interfaces[e]&&b(f.interfaces[e].classId,f)&&(a.push(f.interfaces[e].classId),f.interfaces[e].weight=f.weight+1)})(a);a=a.toString();a=a.replace(/\s*\n(?:[\t ]*\n)+/g,"\n\n");a=a.replace(/__x([0-9A-F]{4})/g,
function(a,b){return String.fromCharCode(parseInt(b,16))});return function(a,b){return a.replace(/'(\d+)'/g,function(a,c){var e=b[c];return"/"===e.charAt(0)?e:/^'((?:[^'\\\n])|(?:\\.[0-9A-Fa-f]*))'$/.test(e)?"(new $p.Character("+e+"))":e})}(a,ca)}function a(a,b){var c=RegExp(/\/\*\s*@pjs\s+((?:[^\*]|\*+[^\*\/])*)\*\//g).exec(a);if(c&&2===c.length)for(var d=[],c=c.splice(1,2)[0].replace(/\{([\s\S]*?)\}/g,function(){return function(a,b){d.push(b);return"{"+(d.length-1)+"}"}}()).replace("\n","").replace("\r",
"").split(";"),f=function(a){return a.replace(/^\s*["']?/,"").replace(/["']?\s*$/,"")},g=0,k=c.length;g<k;g++){var m=c[g].split("=");if(m&&2===m.length){var p=f(m[0]),l=f(m[1]),m=[];if("preload"===p)for(m=l.split(","),p=0,l=m.length;p<l;p++){var q=f(m[p]);b.imageCache.add(q)}else if("font"===p)for(m=l.split(","),p=0,l=m.length;p<l;p++){var q=f(m[p]),y=/^\{(\d*?)\}$/.exec(q);PFont.preloading.add(y?JSON.parse("{"+d[y[1]]+"}"):q)}else"pauseOnBlur"===p?b.options.pauseOnBlur="true"===l:"globalKeyEvents"===
p?b.options.globalKeyEvents="true"===l:"param-"===p.substring(0,6)?b.params[p.substring(6)]=l:b.options[p]=l}}return a}var b=g.defaultScope,f=b.PConstants,d=g.aFunctions,m;k.compile=function(b){var d=new k.Sketch;b=a(b,d);b=p(b);d.sourceCode=b;return d};return k}},{}],26:[function(C,y,O){y.exports=function(k,g){function l(a,b){return a in m?m[a]:"function"===typeof m[b]?m[b]:function(a){if(a instanceof Array)return a;if("number"===typeof a){var b=[];b.length=a;return b}}}var p=k.defaultScope,a=k.extend,
b=k.Browser,f=b.ajax,d=b.navigator,m=b.window,n=b.document,r=k.noop,c=p.PConstants;PFont=p.PFont;PShapeSVG=p.PShapeSVG;PVector=p.PVector;Char=Character=p.Char;ObjectIterator=p.ObjectIterator;XMLElement=p.XMLElement;XML=p.XML;var y=m.HTMLCanvasElement,C=m.HTMLImageElement,F=m.localStorage;n.head||(n.head=n.getElementsByTagName("head")[0]);var A=l("Float32Array","WebGLFloatArray"),O=l("Int32Array","WebGLIntArray"),w=l("Uint16Array","WebGLUnsignedShortArray"),ga=l("Uint8Array","WebGLUnsignedByteArray");
if(9<=n.documentMode&&!n.doctype)throw"The doctype directive is missing. The recommended doctype in Internet Explorer is the HTML5 doctype: <!DOCTYPE html>";var q=[],Wb={},P=this.Processing=function(b,k,l){function Ka(a,b,s){a.addEventListener?a.addEventListener(b,s,!1):a.attachEvent("on"+b,s);xb.push({elem:a,type:b,fn:s})}function X(a,b,s,G){var c=Ha.locations[a];c===g&&(c=h.getUniformLocation(b,s),Ha.locations[a]=c);null!==c&&(4===G.length?h.uniform4fv(c,G):3===G.length?h.uniform3fv(c,G):2===G.length?
h.uniform2fv(c,G):h.uniform1f(c,G))}function Z(a,b,s,G){var c=Ha.locations[a];c===g&&(c=h.getUniformLocation(b,s),Ha.locations[a]=c);null!==c&&(4===G.length?h.uniform4iv(c,G):3===G.length?h.uniform3iv(c,G):2===G.length?h.uniform2iv(c,G):h.uniform1i(c,G))}function S(a,b,s,G,c){var e=Ha.locations[a];e===g&&(e=h.getUniformLocation(b,s),Ha.locations[a]=e);-1!==e&&(16===c.length?h.uniformMatrix4fv(e,G,c):9===c.length?h.uniformMatrix3fv(e,G,c):h.uniformMatrix2fv(e,G,c))}function da(a,b,s,G,c){var e=Ha.attributes[a];
e===g&&(e=h.getAttribLocation(b,s),Ha.attributes[a]=e);-1!==e&&(h.bindBuffer(h.ARRAY_BUFFER,c),h.vertexAttribPointer(e,G,h.FLOAT,!1,0,0),h.enableVertexAttribArray(e))}function ka(a,b,s){var G=Ha.attributes[a];G===g&&(G=h.getAttribLocation(b,s),Ha.attributes[a]=G);-1!==G&&h.disableVertexAttribArray(G)}function pa(a,b,s,G){Ya===c.HSB?(s=e.color.toRGB(a,b,s),a=s[0],b=s[1],s=s[2]):(a=Math.round(255*(a/va)),b=Math.round(255*(b/Ga)),s=Math.round(255*(s/wa)));G=Math.round(255*(G/ja));a=0>a?0:a;b=0>b?0:b;
s=0>s?0:s;G=0>G?0:G;return(255<G?255:G)<<24&c.ALPHA_MASK|(255<a?255:a)<<16&c.RED_MASK|(255<b?255:b)<<8&c.GREEN_MASK|(255<s?255:s)&c.BLUE_MASK}function Xb(a){if(a<=va&&0<=a){if(Ya===c.RGB)return pa(a,a,a,ja);if(Ya===c.HSB)return pa(0,0,a/va*wa,ja)}if(a)return 2147483647<a&&(a-=4294967296),a}function db(a){var b,s,G;b=((a&c.RED_MASK)>>>16)/255;s=((a&c.GREEN_MASK)>>>8)/255;G=(a&c.BLUE_MASK)/255;a=e.max(e.max(b,s),G);var d=e.min(e.min(b,s),G);if(d===a)return[0,0,a*wa];b=(b===a?(s-G)/(a-d):s===a?2+(G-
b)/(a-d):4+(b-s)/(a-d))/6;0>b?b+=1:1<b&&(b-=1);return[b*va,(a-d)/a*Ga,a*wa]}function ya(){h.restore();U=Ua=!0}function Gb(){var a=(Date.now()-uc)/1E3;fc++;var b=fc/a;0.5<a&&(uc=Date.now(),fc=0,e.__frameRate=b);e.frameCount++}function eb(a){a=parseInt("0x"+a,16);2147483647<a&&(a-=4294967296);return a}function Hb(a){if("number"===typeof a)return 0!==a;if("boolean"===typeof a)return a;if("string"===typeof a)return"true"===a.toLowerCase();if(a instanceof Char)return 49===a.code||84===a.code||116===a.code}
function Ib(a){if("number"===typeof a)return a;if("boolean"===typeof a)return a?1:0;if("string"===typeof a)return parseFloat(a);if(a instanceof Char)return a.code}function kb(a,b){if("number"===typeof a)return a&4294967295;if("boolean"===typeof a)return a?1:0;if("string"===typeof a)return parseInt(a,b||10)&4294967295;if(a instanceof Char)return a.code}function Fa(){T&&(U&&(h.fillStyle=e.color.toString(N),U=!1),h.fill())}function ua(){E&&(Ua&&(h.strokeStyle=e.color.toString(xa),Ua=!1),h.stroke())}
function Va(){Fa();ua();h.closePath()}function Ma(a,b,s){var G=Oc.shift();G===g&&(G={},G.canvas=n.createElement("canvas"),G.context=G.canvas.getContext("2d"));Oc.push(G);var c=G.canvas,e=G.context;b=b||a.width;s=s||a.height;c.width=b;c.height=s;a?"data"in a?e.putImageData(a,0,0):(e.clearRect(0,0,b,s),e.drawImage(a,0,0,b,s)):e.clearRect(0,0,b,s);return G}function Yb(a){return{getLength:function(a){return function(){if(a.isRemote)throw"Image is loaded remotely. Cannot get length.";return a.imageData.data.length?
a.imageData.data.length/4:0}}(a),getPixel:function(a){return function(M){M*=4;var b=a.imageData.data;if(a.isRemote)throw"Image is loaded remotely. Cannot get pixels.";return b[M+3]<<24&c.ALPHA_MASK|b[M]<<16&c.RED_MASK|b[M+1]<<8&c.GREEN_MASK|b[M+2]&c.BLUE_MASK}}(a),setPixel:function(a){return function(M,b){var e=4*M,d=a.imageData.data;if(a.isRemote)throw"Image is loaded remotely. Cannot set pixel.";d[e+0]=(b&c.RED_MASK)>>>16;d[e+1]=(b&c.GREEN_MASK)>>>8;d[e+2]=b&c.BLUE_MASK;d[e+3]=(b&c.ALPHA_MASK)>>>
24;a.__isDirty=!0}}(a),toArray:function(a){return function(){var M=[],b=a.imageData.data,e=a.width*a.height;if(a.isRemote)throw"Image is loaded remotely. Cannot get pixels.";for(var d=0,f=0;d<e;d++,f+=4)M.push(b[f+3]<<24&c.ALPHA_MASK|b[f]<<16&c.RED_MASK|b[f+1]<<8&c.GREEN_MASK|b[f+2]&c.BLUE_MASK);return M}}(a),set:function(a){return function(M){var b,e,d;if(this.isRemote)throw"Image is loaded remotely. Cannot set pixels.";e=a.imageData.data;for(var f=0,g=M.length;f<g;f++)d=M[f],b=4*f,e[b+0]=(d&c.RED_MASK)>>>
16,e[b+1]=(d&c.GREEN_MASK)>>>8,e[b+2]=d&c.BLUE_MASK,e[b+3]=(d&c.ALPHA_MASK)>>>24;a.__isDirty=!0}}(a)}}function Jb(a,b,s,G){var d=new Ia(s,G,c.ARGB);d.fromImageData(e.toImageData(a,b,s,G));return d}function Kb(a,b,s,G,e){if(e.isRemote)throw"Image is loaded remotely. Cannot get x,y,w,h.";var d=new Ia(s,G,c.ARGB),f=d.imageData.data,g=e.width,h=e.height;e=e.imageData.data;var k=Math.max(0,-b),m=Math.max(0,-a);G=Math.min(G,h-b);for(h=Math.min(s,g-a);k<G;++k)for(var n=4*((b+k)*g+(a+m)),p=4*(k*s+m),l=m;l<
h;++l)f[p++]=e[n++],f[p++]=e[n++],f[p++]=e[n++],f[p++]=e[n++];d.__isDirty=!0;return d}function Wa(){Ob&&(h=Pc,Ob=!1,e.updatePixels())}function Zb(){function a(M,b){M[b]=function(){Wa();h[b].apply(h,arguments)}}function b(a,M){e.defineProperty(a,M,{get:function(){Wa();return h[M]},set:function(a){Wa();h[M]=a}})}for(var s in h)"function"===typeof h[s]?a(this,s):b(this,s)}function Xa(a){return a instanceof String?a:"number"===typeof a?a===(0|a)?a.toString():e.nf(a,0,3):null===a||a===g?"":a.toString()}
function $b(a,b,s,e){var d;0>a.indexOf("\n")?(a=[a],d=1):(a=a.split(/\r?\n/g),d=a.length);var f=0;Za===c.TOP?f=$a+Oa:Za===c.CENTER?f=$a/2-(d-1)*Ba/2:Za===c.BOTTOM&&(f=-(Oa+(d-1)*Ba));for(var g=0;g<d;++g)ca.text$line(a[g],b,s+f,e,nb),f+=Ba}function wb(a,b,s,e,d,f){if(0!==a.length&&(0!==e&&0!==d)&&!(Pa>d)){for(var g=-1,h=0,t=0,k=[],m=0,n=a.length;m<n;m++){var p=a[m],l=" "===p,r=ba.measureTextWidth(p);if("\n"!==p&&t+r<=e)l&&(g=m),t+=r;else{if(g+1===h)if(0<m)g=m;else return;"\n"===p?(k.push({text:a.substring(h,
m),width:t}),h=m+1):(k.push({text:a.substring(h,g+1),width:t}),h=g+1);t=0;m=h-1}}h<n&&k.push({text:a.substring(h),width:t});a=1;g=$a;nb===c.CENTER?a=e/2:nb===c.RIGHT&&(a=e);e=k.length;h=Math.min(e,Math.floor(d/Ba));Za===c.TOP?g=$a+Oa:Za===c.CENTER?g=d/2-Ba*(h/2-1):Za===c.BOTTOM&&(g=Oa+Ba);for(h=0;h<e;h++){m=h*Ba;if(g+m>d-Oa)break;t=k[h];ca.text$line(t.text,b+a,s+g+m,f,nb)}}}function Na(a){ca="3D"===a?new B:"2D"===a?new I:new D;for(var b in D.prototype)D.prototype.hasOwnProperty(b)&&0>b.indexOf("$")&&
(e[b]=ca[b]);ca.$init()}function H(a){return function(){Na("2D");return ca[a].apply(this,arguments)}}function lb(a){a=a.which||a.keyCode;switch(a){case 13:return 10;case 91:case 93:case 224:return 157;case 57392:return 17;case 46:return 127;case 45:return 155}return a}function ac(a){"function"===typeof a.preventDefault?a.preventDefault():"function"===typeof a.stopPropagation&&a.stopPropagation();return!1}function mb(){for(var a in gb)if(gb.hasOwnProperty(a)){e.__keyPressed=!0;return}e.__keyPressed=
!1}function bc(a,b){gb[a]=b;ob=null;e.key=b;e.keyCode=a;e.keyPressed();e.keyCode=0;e.keyTyped();mb()}function Lb(a){var b=lb(a);if(b===c.DELETE)bc(b,new Char(127));else if(0>rd.indexOf(b))ob=b;else{var s=new Char(c.CODED);e.key=s;e.keyCode=b;gb[b]=s;e.keyPressed();ob=null;mb();return ac(a)}}function cc(a){if(null!==ob){var b=ob,s;s=a.which||a.keyCode;var e=a.shiftKey||a.ctrlKey||a.altKey||a.metaKey;switch(s){case 13:s=e?13:10;break;case 8:s=e?127:8}s=new Char(s);bc(b,s);return ac(a)}}function Mb(a){a=
lb(a);var b=gb[a];b!==g&&(e.key=b,e.keyCode=a,e.keyReleased(),delete gb[a],mb())}if(!(this instanceof P))throw"called Processing constructor as if it were a function: missing 'new'.";var V={},Nb=b===g&&k===g,V=Nb?n.createElement("canvas"):"string"===typeof b?n.getElementById(b):b;if(!("getContext"in V))throw"called Processing constructor without passing canvas element reference or id.";var xb=[],e=this;e.Char=e.Character=Char;a.withCommonFunctions(e);a.withMath(e);a.withProxyFunctions(e,function(a){return Array.prototype.slice.call(a,
1)});a.withTouch(e,V,Ka,n,c);l&&Object.keys(l).forEach(function(a){e[a]=l[a]});e.externals={canvas:V,context:g,sketch:g,window:m};e.name="Processing.js Instance";e.use3DContext=!1;e.focused=!1;e.breakShape=!1;e.glyphTable={};e.pmouseX=0;e.pmouseY=0;e.mouseX=0;e.mouseY=0;e.mouseButton=0;e.mouseScroll=0;e.mouseClicked=g;e.mouseDragged=g;e.mouseMoved=g;e.mousePressed=g;e.mouseReleased=g;e.mouseScrolled=g;e.mouseOver=g;e.mouseOut=g;e.touchStart=g;e.touchEnd=g;e.touchMove=g;e.touchCancel=g;e.key=g;e.keyCode=
g;e.keyPressed=r;e.keyReleased=r;e.keyTyped=r;e.draw=g;e.setup=g;e.__mousePressed=!1;e.__keyPressed=!1;e.__frameRate=60;e.frameCount=0;e.width=100;e.height=100;var h,ea,ca,T=!0,qa=[1,1,1,1],N=4294967295,U=!0,E=!0,aa=[0,0,0,1],xa=4278190080,Ua=!0,fa=1,Ea=!1,Aa=!1,ia=!0,La=0,oa=c.CORNER,za=c.CENTER,Fb=0,vb=0,ub=0,ib=c.NORMAL_MODE_AUTO,qc=60,Mc=1E3/qc,pd=V.style.cursor,$=c.POLYGON,rc=0,sc=20,Nc=!1,jb=-3355444,tc=20,ja=255,va=255,Ga=255,wa=255,dc=0,ec=0,Ya=c.RGB,fb=null,vc=null,Qc=Date.now(),uc=Qc,fc=
0,Ca,Pb,gc,yb,zb,wc,xc,Ha={attributes:{},locations:{}},z,K,la,yc,zc,Ac,hc,Bc,Qb,Cc,Rc,Dc,Sc,ic,Tc,Uc,Vc,Wc=0,Xc=0,Yc=c.IMAGE,ra=!1,Ec,Fc,Gc,nb=c.LEFT,Za=c.BASELINE,jc=c.MODEL,Ab="Arial",Pa=12,$a=9,Oa=2,Ba=14,ba=PFont.get(Ab,Pa),Pc,Hc=null,Ob=!1,Zc,$c=1E3,gb=[],ob=null,rd=[c.SHIFT,c.CONTROL,c.ALT,c.CAPSLK,c.PGUP,c.PGDN,c.END,c.HOME,c.LEFT,c.UP,c.RIGHT,c.DOWN,c.NUMLK,c.INSERT,c.F1,c.F2,c.F3,c.F4,c.F5,c.F6,c.F7,c.F8,c.F9,c.F10,c.F11,c.F12,c.META],Q=0,kc=0,pb=0,Qa=[],Ra=[],Sa=[],Rb=new A(c.SINCOS_LENGTH),
Sb=new A(c.SINCOS_LENGTH),R,qb,Ta,L,ha,Bb,Cb,Tb,Ja,lc=!1,mc=60*(Math.PI/180),Ic=e.width/2,rb=e.height/2,sb=rb/Math.tan(mc/2),ad=sb/10,bd=10*sb,cd=e.width/e.height,u=[],sa=[],ma=0,Db=!1,Eb=!1,hb=!0,Ub=c.CORNER,dd=[],ed=new A([0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.5,
0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5]),fd=new A([0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,
-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5]),sd=new A([0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0]),Jc=new A([0,0,0,0,1,0,1,1,0,1,0,0]),td=new A([0,0,1,0,0,1,0,0,1,0,0,1]),ud="varying vec4 vFrontColor;attribute vec3 aVertex;attribute vec3 aNormal;attribute vec4 aColor;attribute vec2 aTexture;varying vec2 vTexture;uniform vec4 uColor;uniform bool uUsingMat;uniform vec3 uSpecular;uniform vec3 uMaterialEmissive;uniform vec3 uMaterialAmbient;uniform vec3 uMaterialSpecular;uniform float uShininess;uniform mat4 uModel;uniform mat4 uView;uniform mat4 uProjection;uniform mat4 uNormalTransform;uniform int uLightCount;uniform vec3 uFalloff;struct Light { int type; vec3 color; vec3 position; vec3 direction; float angle; vec3 halfVector; float concentration;};uniform Light uLights0;uniform Light uLights1;uniform Light uLights2;uniform Light uLights3;uniform Light uLights4;uniform Light uLights5;uniform Light uLights6;uniform Light uLights7;Light getLight(int index){ if(index == 0) return uLights0; if(index == 1) return uLights1; if(index == 2) return uLights2; if(index == 3) return uLights3; if(index == 4) return uLights4; if(index == 5) return uLights5; if(index == 6) return uLights6; return uLights7;}void AmbientLight( inout vec3 totalAmbient, in vec3 ecPos, in Light light ) { float d = length( light.position - ecPos ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d )); totalAmbient += light.color * attenuation;}void DirectionalLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerFactor = 0.0; float nDotVP = max(0.0, dot( vertNormal, normalize(-light.position) )); float nDotVH = max(0.0, dot( vertNormal, normalize(-light.position-normalize(ecPos) ))); if( nDotVP != 0.0 ){ powerFactor = pow( nDotVH, uShininess ); } col += light.color * nDotVP; spec += uSpecular * powerFactor;}void PointLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerFactor; vec3 VP = light.position - ecPos; float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d )); float nDotVP = max( 0.0, dot( vertNormal, VP )); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector )); if( nDotVP == 0.0 ) { powerFactor = 0.0; } else { powerFactor = pow( nDotHV, uShininess ); } spec += uSpecular * powerFactor * attenuation; col += light.color * nDotVP * attenuation;}void SpotLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float spotAttenuation; float powerFactor = 0.0; vec3 VP = light.position - ecPos; vec3 ldir = normalize( -light.direction ); float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d ) ); float spotDot = dot( VP, ldir );"+
(/Windows/.test(d.userAgent)?" spotAttenuation = 1.0; ":" if( spotDot > cos( light.angle ) ) { spotAttenuation = pow( spotDot, light.concentration ); } else{ spotAttenuation = 0.0; } attenuation *= spotAttenuation;")+" float nDotVP = max( 0.0, dot( vertNormal, VP ) ); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector ) ); if( nDotVP != 0.0 ) { powerFactor = pow( nDotHV, uShininess ); } spec += uSpecular * powerFactor * attenuation; col += light.color * nDotVP * attenuation;}void main(void) { vec3 finalAmbient = vec3( 0.0 ); vec3 finalDiffuse = vec3( 0.0 ); vec3 finalSpecular = vec3( 0.0 ); vec4 col = uColor; if ( uColor[0] == -1.0 ){ col = aColor; } vec3 norm = normalize(vec3( uNormalTransform * vec4( aNormal, 0.0 ) )); vec4 ecPos4 = uView * uModel * vec4(aVertex, 1.0); vec3 ecPos = (vec3(ecPos4))/ecPos4.w; if( uLightCount == 0 ) { vFrontColor = col + vec4(uMaterialSpecular, 1.0); } else { for( int i = 0; i < 8; i++ ) { Light l = getLight(i); if( i >= uLightCount ){ break; } if( l.type == 0 ) { AmbientLight( finalAmbient, ecPos, l ); } else if( l.type == 1 ) { DirectionalLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else if( l.type == 2 ) { PointLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else { SpotLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } } if( uUsingMat == false ) { vFrontColor = vec4( vec3( col ) * finalAmbient + vec3( col ) * finalDiffuse + vec3( col ) * finalSpecular, col[3] ); } else{ vFrontColor = vec4( uMaterialEmissive + (vec3(col) * uMaterialAmbient * finalAmbient ) + (vec3(col) * finalDiffuse) + (uMaterialSpecular * finalSpecular), col[3] ); } } vTexture.xy = aTexture.xy; gl_Position = uProjection * uView * uModel * vec4( aVertex, 1.0 );}",
Kc=function(a,b,s){var e=a.createShader(a.VERTEX_SHADER);a.shaderSource(e,b);a.compileShader(e);if(!a.getShaderParameter(e,a.COMPILE_STATUS))throw a.getShaderInfoLog(e);b=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(b,s);a.compileShader(b);if(!a.getShaderParameter(b,a.COMPILE_STATUS))throw a.getShaderInfoLog(b);s=a.createProgram();a.attachShader(s,e);a.attachShader(s,b);a.linkProgram(s);if(!a.getProgramParameter(s,a.LINK_STATUS))throw"Error linking shaders.";return s},gd=function(a,b,s,e,c){return{x:a,
y:b,w:s,h:e}},nc=gd,vd=function(a,b,s,e,c){return{x:a,y:b,w:c?s:s-a,h:c?e:e-b}},wd=function(a,b,s,e,c){return{x:a-s/2,y:b-e/2,w:s,h:e}},Y=function(){},I=function(){},B=function(){},D=function(){};I.prototype=new Y;I.prototype.constructor=I;B.prototype=new Y;B.prototype.constructor=B;D.prototype=new Y;D.prototype.constructor=D;Y.prototype.a3DOnlyFunction=r;e.shape=function(a,b,s,G,d){1<=arguments.length&&null!==arguments[0]&&a.isVisible()&&(e.pushMatrix(),Ub===c.CENTER?5===arguments.length?(e.translate(b-
G/2,s-d/2),e.scale(G/a.getWidth(),d/a.getHeight())):3===arguments.length?e.translate(b-a.getWidth()/2,-a.getHeight()/2):e.translate(-a.getWidth()/2,-a.getHeight()/2):Ub===c.CORNER?5===arguments.length?(e.translate(b,s),e.scale(G/a.getWidth(),d/a.getHeight())):3===arguments.length&&e.translate(b,s):Ub===c.CORNERS&&(5===arguments.length?(G-=b,d-=s,e.translate(b,s),e.scale(G/a.getWidth(),d/a.getHeight())):3===arguments.length&&e.translate(b,s)),a.draw(e),(1===arguments.length&&Ub===c.CENTER||1<arguments.length)&&
e.popMatrix())};e.shapeMode=function(a){Ub=a};e.loadShape=function(a){return 1===arguments.length&&-1<a.indexOf(".svg")?new PShapeSVG(null,a):null};e.loadXML=function(a){return new XML(e,a)};var hd=function(a){for(var b=0,s=0;s<a.length;s++)b=0!==s?Math.max(b,Math.abs(a[s])):Math.abs(a[s]);a=(b+"").indexOf(".");0===a?a=1:-1===a&&(a=(b+"").length);return a},ab=e.PMatrix2D=function(){0===arguments.length?this.reset():1===arguments.length&&arguments[0]instanceof ab?this.set(arguments[0].array()):6===
arguments.length&&this.set(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])};ab.prototype={set:function(){if(6===arguments.length){var a=arguments;this.set([a[0],a[1],a[2],a[3],a[4],a[5]])}else 1===arguments.length&&arguments[0]instanceof ab?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},get:function(){var a=new ab;a.set(this.elements);return a},reset:function(){this.set([1,0,0,0,1,0])},array:function(){return this.elements.slice()},
translate:function(a,b){this.elements[2]=a*this.elements[0]+b*this.elements[1]+this.elements[2];this.elements[5]=a*this.elements[3]+b*this.elements[4]+this.elements[5]},invTranslate:function(a,b){this.translate(-a,-b)},transpose:function(){},mult:function(a,b){var s,e;a instanceof PVector?(s=a.x,e=a.y,b||(b=new PVector)):a instanceof Array&&(s=a[0],e=a[1],b||(b=[]));b instanceof Array?(b[0]=this.elements[0]*s+this.elements[1]*e+this.elements[2],b[1]=this.elements[3]*s+this.elements[4]*e+this.elements[5]):
b instanceof PVector&&(b.x=this.elements[0]*s+this.elements[1]*e+this.elements[2],b.y=this.elements[3]*s+this.elements[4]*e+this.elements[5],b.z=0);return b},multX:function(a,b){return a*this.elements[0]+b*this.elements[1]+this.elements[2]},multY:function(a,b){return a*this.elements[3]+b*this.elements[4]+this.elements[5]},skewX:function(a){this.apply(1,0,1,a,0,0)},skewY:function(a){this.apply(1,0,1,0,a,0)},shearX:function(a){this.apply(1,0,1,Math.tan(a),0,0)},shearY:function(a){this.apply(1,0,1,0,
Math.tan(a),0)},determinant:function(){return this.elements[0]*this.elements[4]-this.elements[1]*this.elements[3]},invert:function(){var a=this.determinant();if(Math.abs(a)>c.MIN_INT){var b=this.elements[0],s=this.elements[1],e=this.elements[2],d=this.elements[3],f=this.elements[4],g=this.elements[5];this.elements[0]=f/a;this.elements[3]=-d/a;this.elements[1]=-s/a;this.elements[4]=b/a;this.elements[2]=(s*g-f*e)/a;this.elements[5]=(d*e-b*g)/a;return!0}return!1},scale:function(a,b){a&&!b&&(b=a);a&&
b&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[3]*=a,this.elements[4]*=b)},invScale:function(a,b){a&&!b&&(b=a);this.scale(1/a,1/b)},apply:function(){var a;1===arguments.length&&arguments[0]instanceof ab?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,this.elements[2],0,0,this.elements[5]],s=0,e=0;2>e;e++)for(var c=0;3>c;c++,s++)b[s]+=this.elements[3*e+0]*a[c+0]+this.elements[3*
e+1]*a[c+3];this.elements=b.slice()},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof ab?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);var b=[0,0,a[2],0,0,a[5]];b[2]=a[2]+this.elements[2]*a[0]+this.elements[5]*a[1];b[5]=a[5]+this.elements[2]*a[3]+this.elements[5]*a[4];b[0]=this.elements[0]*a[0]+this.elements[3]*a[1];b[3]=this.elements[0]*a[3]+this.elements[3]*a[4];b[1]=
this.elements[1]*a[0]+this.elements[4]*a[1];b[4]=this.elements[1]*a[3]+this.elements[4]*a[4];this.elements=b.slice()},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var s=this.elements[0],e=this.elements[1];this.elements[0]=b*s+a*e;this.elements[1]=-a*s+b*e;s=this.elements[3];e=this.elements[4];this.elements[3]=b*s+a*e;this.elements[4]=-a*s+b*e},rotateZ:function(a){this.rotate(a)},invRotateZ:function(a){this.rotateZ(a-Math.PI)},print:function(){var a=hd(this.elements),a=""+e.nfs(this.elements[0],
a,4)+" "+e.nfs(this.elements[1],a,4)+" "+e.nfs(this.elements[2],a,4)+"\n"+e.nfs(this.elements[3],a,4)+" "+e.nfs(this.elements[4],a,4)+" "+e.nfs(this.elements[5],a,4)+"\n\n";e.println(a)}};var J=e.PMatrix3D=function(){this.reset()};J.prototype={set:function(){16===arguments.length?this.elements=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof J?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},
get:function(){var a=new J;a.set(this.elements);return a},reset:function(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},array:function(){return this.elements.slice()},translate:function(a,b,s){s===g&&(s=0);this.elements[3]+=a*this.elements[0]+b*this.elements[1]+s*this.elements[2];this.elements[7]+=a*this.elements[4]+b*this.elements[5]+s*this.elements[6];this.elements[11]+=a*this.elements[8]+b*this.elements[9]+s*this.elements[10];this.elements[15]+=a*this.elements[12]+b*this.elements[13]+s*this.elements[14]},
transpose:function(){var a=this.elements[4];this.elements[4]=this.elements[1];this.elements[1]=a;a=this.elements[8];this.elements[8]=this.elements[2];this.elements[2]=a;a=this.elements[6];this.elements[6]=this.elements[9];this.elements[9]=a;a=this.elements[3];this.elements[3]=this.elements[12];this.elements[12]=a;a=this.elements[7];this.elements[7]=this.elements[13];this.elements[13]=a;a=this.elements[11];this.elements[11]=this.elements[14];this.elements[14]=a},mult:function(a,b){var s,e,c,d;a instanceof
PVector?(s=a.x,e=a.y,c=a.z,d=1,b||(b=new PVector)):a instanceof Array&&(s=a[0],e=a[1],c=a[2],d=a[3]||1,!b||3!==b.length&&4!==b.length)&&(b=[0,0,0]);b instanceof Array&&(3===b.length?(b[0]=this.elements[0]*s+this.elements[1]*e+this.elements[2]*c+this.elements[3],b[1]=this.elements[4]*s+this.elements[5]*e+this.elements[6]*c+this.elements[7],b[2]=this.elements[8]*s+this.elements[9]*e+this.elements[10]*c+this.elements[11]):4===b.length&&(b[0]=this.elements[0]*s+this.elements[1]*e+this.elements[2]*c+this.elements[3]*
d,b[1]=this.elements[4]*s+this.elements[5]*e+this.elements[6]*c+this.elements[7]*d,b[2]=this.elements[8]*s+this.elements[9]*e+this.elements[10]*c+this.elements[11]*d,b[3]=this.elements[12]*s+this.elements[13]*e+this.elements[14]*c+this.elements[15]*d));b instanceof PVector&&(b.x=this.elements[0]*s+this.elements[1]*e+this.elements[2]*c+this.elements[3],b.y=this.elements[4]*s+this.elements[5]*e+this.elements[6]*c+this.elements[7],b.z=this.elements[8]*s+this.elements[9]*e+this.elements[10]*c+this.elements[11]);
return b},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof J?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],s=0,e=0;4>e;e++)for(var c=0;4>c;c++,s++)b[s]+=this.elements[c+0]*a[4*e+0]+this.elements[c+4]*a[4*e+1]+this.elements[c+8]*a[4*e+2]+this.elements[c+12]*a[4*e+3];this.elements=b.slice()},apply:function(){var a;1===arguments.length&&
arguments[0]instanceof J?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],s=0,e=0;4>e;e++)for(var c=0;4>c;c++,s++)b[s]+=this.elements[4*e+0]*a[c+0]+this.elements[4*e+1]*a[c+4]+this.elements[4*e+2]*a[c+8]+this.elements[4*e+3]*a[c+12];this.elements=b.slice()},rotate:function(a,b,s,c){if(s){var d=e.cos(a);a=e.sin(a);var f=1-d;this.apply(f*b*b+d,f*b*s-a*
c,f*b*c+a*s,0,f*b*s+a*c,f*s*s+d,f*s*c-a*b,0,f*b*c-a*s,f*s*c+a*b,f*c*c+d,0,0,0,0,1)}else this.rotateZ(a)},invApply:function(){Tb===g&&(Tb=new J);var a=arguments;Tb.set(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]);if(!Tb.invert())return!1;this.preApply(Tb);return!0},rotateX:function(a){var b=e.cos(a);a=e.sin(a);this.apply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},rotateY:function(a){var b=e.cos(a);a=e.sin(a);this.apply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},rotateZ:function(a){var b=
Math.cos(a);a=Math.sin(a);this.apply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},scale:function(a,b,s){!a||b||s?a&&(b&&!s)&&(s=1):b=s=a;a&&(b&&s)&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[2]*=s,this.elements[4]*=a,this.elements[5]*=b,this.elements[6]*=s,this.elements[8]*=a,this.elements[9]*=b,this.elements[10]*=s,this.elements[12]*=a,this.elements[13]*=b,this.elements[14]*=s)},skewX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},skewY:function(a){a=Math.tan(a);this.apply(1,
0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},shearX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},shearY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},multX:function(a,b,s,e){return s?e?this.elements[0]*a+this.elements[1]*b+this.elements[2]*s+this.elements[3]*e:this.elements[0]*a+this.elements[1]*b+this.elements[2]*s+this.elements[3]:this.elements[0]*a+this.elements[1]*b+this.elements[3]},multY:function(a,b,s,e){return s?e?this.elements[4]*a+this.elements[5]*b+
this.elements[6]*s+this.elements[7]*e:this.elements[4]*a+this.elements[5]*b+this.elements[6]*s+this.elements[7]:this.elements[4]*a+this.elements[5]*b+this.elements[7]},multZ:function(a,b,s,e){return e?this.elements[8]*a+this.elements[9]*b+this.elements[10]*s+this.elements[11]*e:this.elements[8]*a+this.elements[9]*b+this.elements[10]*s+this.elements[11]},multW:function(a,b,s,e){return e?this.elements[12]*a+this.elements[13]*b+this.elements[14]*s+this.elements[15]*e:this.elements[12]*a+this.elements[13]*
b+this.elements[14]*s+this.elements[15]},invert:function(){var a=this.elements[0]*this.elements[5]-this.elements[1]*this.elements[4],b=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4],s=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4],e=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5],c=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5],d=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6],f=this.elements[8]*
this.elements[13]-this.elements[9]*this.elements[12],g=this.elements[8]*this.elements[14]-this.elements[10]*this.elements[12],h=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12],k=this.elements[9]*this.elements[14]-this.elements[10]*this.elements[13],m=this.elements[9]*this.elements[15]-this.elements[11]*this.elements[13],n=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14],p=a*n-b*m+s*k+e*h-c*g+d*f;if(1E-9>=Math.abs(p))return!1;var l=[];l[0]=+this.elements[5]*
n-this.elements[6]*m+this.elements[7]*k;l[4]=-this.elements[4]*n+this.elements[6]*h-this.elements[7]*g;l[8]=+this.elements[4]*m-this.elements[5]*h+this.elements[7]*f;l[12]=-this.elements[4]*k+this.elements[5]*g-this.elements[6]*f;l[1]=-this.elements[1]*n+this.elements[2]*m-this.elements[3]*k;l[5]=+this.elements[0]*n-this.elements[2]*h+this.elements[3]*g;l[9]=-this.elements[0]*m+this.elements[1]*h-this.elements[3]*f;l[13]=+this.elements[0]*k-this.elements[1]*g+this.elements[2]*f;l[2]=+this.elements[13]*
d-this.elements[14]*c+this.elements[15]*e;l[6]=-this.elements[12]*d+this.elements[14]*s-this.elements[15]*b;l[10]=+this.elements[12]*c-this.elements[13]*s+this.elements[15]*a;l[14]=-this.elements[12]*e+this.elements[13]*b-this.elements[14]*a;l[3]=-this.elements[9]*d+this.elements[10]*c-this.elements[11]*e;l[7]=+this.elements[8]*d-this.elements[10]*s+this.elements[11]*b;l[11]=-this.elements[8]*c+this.elements[9]*s-this.elements[11]*a;l[15]=+this.elements[8]*e-this.elements[9]*b+this.elements[10]*a;
a=1/p;l[0]*=a;l[1]*=a;l[2]*=a;l[3]*=a;l[4]*=a;l[5]*=a;l[6]*=a;l[7]*=a;l[8]*=a;l[9]*=a;l[10]*=a;l[11]*=a;l[12]*=a;l[13]*=a;l[14]*=a;l[15]*=a;this.elements=l.slice();return!0},toString:function(){for(var a="",b=0;15>b;b++)a+=this.elements[b]+", ";return a+=this.elements[15]},print:function(){var a=hd(this.elements),a=""+e.nfs(this.elements[0],a,4)+" "+e.nfs(this.elements[1],a,4)+" "+e.nfs(this.elements[2],a,4)+" "+e.nfs(this.elements[3],a,4)+"\n"+e.nfs(this.elements[4],a,4)+" "+e.nfs(this.elements[5],
a,4)+" "+e.nfs(this.elements[6],a,4)+" "+e.nfs(this.elements[7],a,4)+"\n"+e.nfs(this.elements[8],a,4)+" "+e.nfs(this.elements[9],a,4)+" "+e.nfs(this.elements[10],a,4)+" "+e.nfs(this.elements[11],a,4)+"\n"+e.nfs(this.elements[12],a,4)+" "+e.nfs(this.elements[13],a,4)+" "+e.nfs(this.elements[14],a,4)+" "+e.nfs(this.elements[15],a,4)+"\n\n";e.println(a)},invTranslate:function(a,b,s){this.preApply(1,0,0,-a,0,1,0,-b,0,0,1,-s,0,0,0,1)},invRotateX:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([1,
0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},invRotateY:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},invRotateZ:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},invScale:function(a,b,s){this.preApply([1/a,0,0,0,0,1/b,0,0,0,0,1/s,0,0,0,0,1])}};var bb=e.PMatrixStack=function(){this.matrixStack=[]};bb.prototype.load=function(){var a=ca.$newPMatrix();1===arguments.length?a.set(arguments[0]):a.set(arguments);this.matrixStack.push(a)};
I.prototype.$newPMatrix=function(){return new ab};B.prototype.$newPMatrix=function(){return new J};bb.prototype.push=function(){this.matrixStack.push(this.peek())};bb.prototype.pop=function(){return this.matrixStack.pop()};bb.prototype.peek=function(){var a=ca.$newPMatrix();a.set(this.matrixStack[this.matrixStack.length-1]);return a};bb.prototype.mult=function(a){this.matrixStack[this.matrixStack.length-1].apply(a)};e.split=function(a,b){return a.split(b)};e.splitTokens=function(a,b){if(b===g)return a.split(/\s+/g);
var s=b.split(/()/g),e="",c=a.length,d,f,h=[];for(d=0;d<c;d++)f=a[d],-1<s.indexOf(f)?(""!==e&&h.push(e),e=""):e+=f;""!==e&&h.push(e);return h};e.append=function(a,b){a[a.length]=b;return a};e.concat=function(a,b){return a.concat(b)};e.sort=function(a,b){var s=[];if(0<a.length){for(var e=0<b?b:a.length,c=0;c<e;c++)s.push(a[c]);"string"===typeof a[0]?s.sort():s.sort(function(a,b){return a-b});if(0<b)for(e=s.length;e<a.length;e++)s.push(a[e])}return s};e.splice=function(a,b,s){if(0===b.length)return a;
if(b instanceof Array)for(var e=0;e<b.length;s++,e++)a.splice(s,0,b[e]);else a.splice(s,0,b);return a};e.subset=function(a,b,s){return a.slice(b,s!==g?b+s:a.length)};e.join=function(a,b){return a.join(b)};e.shorten=function(a){for(var b=[],s=a.length,e=0;e<s;e++)b[e]=a[e];b.pop();return b};e.expand=function(a,b){var e=a.slice(0);e.length=b||2*a.length;return e};e.arrayCopy=function(){var a,b=0,e,c=0,d;2===arguments.length?(a=arguments[0],e=arguments[1],d=a.length):3===arguments.length?(a=arguments[0],
e=arguments[1],d=arguments[2]):5===arguments.length&&(a=arguments[0],b=arguments[1],e=arguments[2],c=arguments[3],d=arguments[4]);for(var f=b;f<d+b;f++,c++)if(e[c]!==g)e[c]=a[f];else throw"array index out of bounds exception";};e.reverse=function(a){return a.reverse()};e.mix=function(a,b,e){return a+((b-a)*e>>8)};e.peg=function(a){return 0>a?0:255<a?255:a};e.modes=function(){function a(b,M,e,c,s,d,zd,f,G,h,qd){b=g(((b&4278190080)>>>24)+M,255)<<24;e+=(G-e)*M>>8;c+=(h-c)*M>>8;M=s+((qd-s)*M>>8);return b|
(0>e?0:255<e?255:e)<<16|(0>c?0:255<c?255:c)<<8|(0>M?0:255<M?255:M)}var b=c.ALPHA_MASK,e=c.RED_MASK,d=c.GREEN_MASK,f=c.BLUE_MASK,g=Math.min,h=Math.max;return{replace:function(a,b){return b},blend:function(a,M){var c=(M&b)>>>24,h=a&e,k=a&d,x=a&f,m=M&e,l=M&d,n=M&f;return g(((a&b)>>>24)+c,255)<<24|h+((m-h)*c>>8)&e|k+((l-k)*c>>8)&d|x+((n-x)*c>>8)&f},add:function(a,M){var c=(M&b)>>>24;return g(((a&b)>>>24)+c,255)<<24|g((a&e)+((M&e)>>8)*c,e)&e|g((a&d)+((M&d)>>8)*c,d)&d|g((a&f)+((M&f)*c>>8),f)},subtract:function(a,
M){var c=(M&b)>>>24;return g(((a&b)>>>24)+c,255)<<24|h((a&e)-((M&e)>>8)*c,d)&e|h((a&d)-((M&d)>>8)*c,f)&d|h((a&f)-((M&f)*c>>8),0)},lightest:function(a,M){var c=(M&b)>>>24;return g(((a&b)>>>24)+c,255)<<24|h(a&e,((M&e)>>8)*c)&e|h(a&d,((M&d)>>8)*c)&d|h(a&f,(M&f)*c>>8)},darkest:function(a,M){var c=(M&b)>>>24,h=a&e,k=a&d,x=a&f,m=g(a&e,((M&e)>>8)*c),l=g(a&d,((M&d)>>8)*c),n=g(a&f,(M&f)*c>>8);return g(((a&b)>>>24)+c,255)<<24|h+((m-h)*c>>8)&e|k+((l-k)*c>>8)&d|x+((n-x)*c>>8)&f},difference:function(c,g){var h=
(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,h>W?h-W:W-h,k>m?k-m:m-k,x>l?x-l:l-x)},exclusion:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,h+W-(h*W>>7),k+m-(k*m>>7),x+l-(x*l>>7))},multiply:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,h*W>>8,k*m>>8,x*l>>8)},screen:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&
d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,255-((255-h)*(255-W)>>8),255-((255-k)*(255-m)>>8),255-((255-x)*(255-l)>>8))},hard_light:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,128>W?h*W>>7:255-((255-h)*(255-W)>>7),128>m?k*m>>7:255-((255-k)*(255-m)>>7),128>l?x*l>>7:255-((255-x)*(255-l)>>7))},soft_light:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,(h*W>>7)+(h*h>>8)-(h*
h*W>>15),(k*m>>7)+(k*k>>8)-(k*k*m>>15),(x*l>>7)+(x*x>>8)-(x*x*l>>15))},overlay:function(c,g){var h=(c&e)>>16,k=(c&d)>>8,x=c&f,W=(g&e)>>16,m=(g&d)>>8,l=g&f;return a(c,(g&b)>>>24,h,k,x,W,m,l,128>h?h*W>>7:255-((255-h)*(255-W)>>7),128>k?k*m>>7:255-((255-k)*(255-m)>>7),128>x?x*l>>7:255-((255-x)*(255-l)>>7))},dodge:function(c,g){var h=(g&b)>>>24,k=(c&e)>>16,x=(c&d)>>8,W=c&f,m=(g&e)>>16,l=(g&d)>>8,n=g&f,p=255;255!==m&&(p=(k<<8)/(255-m),p=0>p?0:255<p?255:p);var r=255;255!==l&&(r=(x<<8)/(255-l),r=0>r?0:255<
r?255:r);var u=255;255!==n&&(u=(W<<8)/(255-n),u=0>u?0:255<u?255:u);return a(c,h,k,x,W,m,l,n,p,r,u)},burn:function(c,g){var h=(g&b)>>>24,k=(c&e)>>16,x=(c&d)>>8,W=c&f,m=(g&e)>>16,l=(g&d)>>8,n=g&f,p=0;0!==m&&(p=(255-k<<8)/m,p=255-(0>p?0:255<p?255:p));var r=0;0!==l&&(r=(255-x<<8)/l,r=255-(0>r?0:255<r?255:r));var u=0;0!==n&&(u=(255-W<<8)/n,u=255-(0>u?0:255<u?255:u));return a(c,h,k,x,W,m,l,n,p,r,u)}}}();e.color=function(a,b,e,d){return a!==g&&b!==g&&e!==g&&d!==g?pa(a,b,e,d):a!==g&&b!==g&&e!==g?pa(a,b,e,
ja):a!==g&&b!==g?(a&c.ALPHA_MASK?(b=Math.round(255*(b/ja)),b=255<b?255:b,a=a-(a&c.ALPHA_MASK)+((0>b?0:b)<<24&c.ALPHA_MASK)):a=Ya===c.RGB?pa(a,a,a,b):Ya===c.HSB?pa(0,0,a/va*wa,b):void 0,a):"number"===typeof a?Xb(a):pa(va,Ga,wa,ja)};e.color.toString=function(a){return"rgba("+((a&c.RED_MASK)>>>16)+","+((a&c.GREEN_MASK)>>>8)+","+(a&c.BLUE_MASK)+","+((a&c.ALPHA_MASK)>>>24)/255+")"};e.color.toInt=function(a,b,e,d){return d<<24&c.ALPHA_MASK|a<<16&c.RED_MASK|b<<8&c.GREEN_MASK|e&c.BLUE_MASK};e.color.toArray=
function(a){return[(a&c.RED_MASK)>>>16,(a&c.GREEN_MASK)>>>8,a&c.BLUE_MASK,(a&c.ALPHA_MASK)>>>24]};e.color.toGLArray=function(a){return[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255,((a&c.ALPHA_MASK)>>>24)/255]};e.color.toRGB=function(a,b,e){a=a>va?va:a;b=b>Ga?Ga:b;e=e>wa?wa:e;a=360*(a/va);b=100*(b/Ga);e=100*(e/wa);var c=Math.round(255*(e/100));if(0===b)return[c,c,c];a%=360;var d=a%60,f=Math.round(255*(e*(100-b)/1E4)),g=Math.round(255*(e*(6E3-b*d)/6E5));b=Math.round(255*
(e*(6E3-b*(60-d))/6E5));switch(Math.floor(a/60)){case 0:return[c,b,f];case 1:return[g,c,f];case 2:return[f,c,b];case 3:return[f,g,c];case 4:return[b,f,c];case 5:return[c,f,g]}};e.brightness=function(a){return db(a)[2]};e.saturation=function(a){return db(a)[1]};e.hue=function(a){return db(a)[0]};e.red=function(a){return((a&c.RED_MASK)>>>16)/255*va};e.green=function(a){return((a&c.GREEN_MASK)>>>8)/255*Ga};e.blue=function(a){return(a&c.BLUE_MASK)/255*wa};e.alpha=function(a){return((a&c.ALPHA_MASK)>>>
24)/255*ja};e.lerpColor=function(a,b,s){var d,f,g,h,k,t;a=e.color(a);b=e.color(b);if(Ya===c.HSB)return g=db(a),a=((a&c.ALPHA_MASK)>>>24)/ja,f=db(b),b=((b&c.ALPHA_MASK)>>>24)/ja,t=e.lerp(g[0],f[0],s),d=e.lerp(g[1],f[1],s),g=e.lerp(g[2],f[2],s),g=e.color.toRGB(t,d,g),s=e.lerp(a,b,s)*ja,s<<24&c.ALPHA_MASK|g[0]<<16&c.RED_MASK|g[1]<<8&c.GREEN_MASK|g[2]&c.BLUE_MASK;d=(a&c.RED_MASK)>>>16;f=(a&c.GREEN_MASK)>>>8;g=a&c.BLUE_MASK;a=((a&c.ALPHA_MASK)>>>24)/ja;h=(b&c.RED_MASK)>>>16;k=(b&c.GREEN_MASK)>>>8;t=b&
c.BLUE_MASK;b=((b&c.ALPHA_MASK)>>>24)/ja;d=e.lerp(d,h,s)|0;f=e.lerp(f,k,s)|0;g=e.lerp(g,t,s)|0;s=e.lerp(a,b,s)*ja;return s<<24&c.ALPHA_MASK|d<<16&c.RED_MASK|f<<8&c.GREEN_MASK|g&c.BLUE_MASK};e.colorMode=function(){Ya=arguments[0];1<arguments.length&&(va=arguments[1],Ga=arguments[2]||arguments[1],wa=arguments[3]||arguments[1],ja=arguments[4]||arguments[1])};e.blendColor=function(a,b,s){if(s===c.REPLACE)return e.modes.replace(a,b);if(s===c.BLEND)return e.modes.blend(a,b);if(s===c.ADD)return e.modes.add(a,
b);if(s===c.SUBTRACT)return e.modes.subtract(a,b);if(s===c.LIGHTEST)return e.modes.lightest(a,b);if(s===c.DARKEST)return e.modes.darkest(a,b);if(s===c.DIFFERENCE)return e.modes.difference(a,b);if(s===c.EXCLUSION)return e.modes.exclusion(a,b);if(s===c.MULTIPLY)return e.modes.multiply(a,b);if(s===c.SCREEN)return e.modes.screen(a,b);if(s===c.HARD_LIGHT)return e.modes.hard_light(a,b);if(s===c.SOFT_LIGHT)return e.modes.soft_light(a,b);if(s===c.OVERLAY)return e.modes.overlay(a,b);if(s===c.DODGE)return e.modes.dodge(a,
b);if(s===c.BURN)return e.modes.burn(a,b)};e.printMatrix=function(){L.print()};I.prototype.translate=function(a,b){L.translate(a,b);ha.invTranslate(a,b);h.translate(a,b)};B.prototype.translate=function(a,b,e){L.translate(a,b,e);ha.invTranslate(a,b,e)};I.prototype.scale=function(a,b){L.scale(a,b);ha.invScale(a,b);h.scale(a,b||a)};B.prototype.scale=function(a,b,e){L.scale(a,b,e);ha.invScale(a,b,e)};I.prototype.transform=function(a){a=a.array();h.transform(a[0],a[3],a[1],a[4],a[2],a[5])};B.prototype.transformm=
function(a){throw"p.transform is currently not supported in 3D mode";};I.prototype.pushMatrix=function(){Bb.load(L);Cb.load(ha);h.save()};B.prototype.pushMatrix=function(){Bb.load(L);Cb.load(ha)};I.prototype.popMatrix=function(){L.set(Bb.pop());ha.set(Cb.pop());ya()};B.prototype.popMatrix=function(){L.set(Bb.pop());ha.set(Cb.pop())};I.prototype.resetMatrix=function(){L.reset();ha.reset();h.setTransform(1,0,0,1,0,0)};B.prototype.resetMatrix=function(){L.reset();ha.reset()};Y.prototype.applyMatrix=
function(){var a=arguments;L.apply(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]);ha.invApply(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15])};I.prototype.applyMatrix=function(){for(var a=arguments,b=a.length;16>b;b++)a[b]=0;a[10]=a[15]=1;Y.prototype.applyMatrix.apply(this,a)};e.rotateX=function(a){L.rotateX(a);ha.invRotateX(a)};I.prototype.rotateZ=function(){throw"rotateZ() is not supported in 2D mode. Use rotate(float) instead.";
};B.prototype.rotateZ=function(a){L.rotateZ(a);ha.invRotateZ(a)};e.rotateY=function(a){L.rotateY(a);ha.invRotateY(a)};I.prototype.rotate=function(a){L.rotateZ(a);ha.invRotateZ(a);h.rotate(a)};B.prototype.rotate=function(a){e.rotateZ(a)};I.prototype.shearX=function(a){L.shearX(a);h.transform(1,0,a,1,0,0)};B.prototype.shearX=function(a){L.shearX(a)};I.prototype.shearY=function(a){L.shearY(a);h.transform(1,a,0,1,0,0)};B.prototype.shearY=function(a){L.shearY(a)};e.pushStyle=function(){h.save();e.pushMatrix();
dd.push({doFill:T,currentFillColor:N,doStroke:E,currentStrokeColor:xa,curTint:fb,curRectMode:oa,curColorMode:Ya,colorModeX:va,colorModeZ:wa,colorModeY:Ga,colorModeA:ja,curTextFont:ba,horizontalTextAlignment:nb,verticalTextAlignment:Za,textMode:jc,curFontName:Ab,curTextSize:Pa,curTextAscent:$a,curTextDescent:Oa,curTextLeading:Ba})};e.popStyle=function(){var a=dd.pop();if(a)ya(),e.popMatrix(),T=a.doFill,N=a.currentFillColor,E=a.doStroke,xa=a.currentStrokeColor,fb=a.curTint,oa=a.curRectMode,Ya=a.curColorMode,
va=a.colorModeX,wa=a.colorModeZ,Ga=a.colorModeY,ja=a.colorModeA,ba=a.curTextFont,Ab=a.curFontName,Pa=a.curTextSize,nb=a.horizontalTextAlignment,Za=a.verticalTextAlignment,jc=a.textMode,$a=a.curTextAscent,Oa=a.curTextDescent,Ba=a.curTextLeading;else throw"Too many popStyle() without enough pushStyle()";};e.year=function(){return(new Date).getFullYear()};e.month=function(){return(new Date).getMonth()+1};e.day=function(){return(new Date).getDate()};e.hour=function(){return(new Date).getHours()};e.minute=
function(){return(new Date).getMinutes()};e.second=function(){return(new Date).getSeconds()};e.millis=function(){return Date.now()-Qc};I.prototype.redraw=function(){Gb();h.lineWidth=fa;var a=e.pmouseX,b=e.pmouseY;e.pmouseX=dc;e.pmouseY=ec;h.save();e.draw();ya();dc=e.mouseX;ec=e.mouseY;e.pmouseX=a;e.pmouseY=b};B.prototype.redraw=function(){Gb();var a=e.pmouseX,b=e.pmouseY;e.pmouseX=dc;e.pmouseY=ec;h.clear(h.DEPTH_BUFFER_BIT);Ha={attributes:{},locations:{}};e.noLights();e.lightFalloff(1,0,0);e.shininess(1);
e.ambient(255,255,255);e.specular(0,0,0);e.emissive(0,0,0);e.camera();e.draw();dc=e.mouseX;ec=e.mouseY;e.pmouseX=a;e.pmouseY=b};e.noLoop=function(){Ea=ia=!1;clearInterval(La);ea.onPause()};e.loop=function(){Ea||(uc=Date.now(),fc=0,La=m.setInterval(function(){try{ea.onFrameStart(),e.redraw(),ea.onFrameEnd()}catch(a){throw m.clearInterval(La),a;}},Mc),Ea=ia=!0,ea.onLoop())};e.frameRate=function(a){qc=a;Mc=1E3/qc;ia&&(e.noLoop(),e.loop())};e.exit=function(){m.clearInterval(La);var a=e.externals.canvas.id;
q.splice(Wb[a],1);delete Wb[a];delete V.onmousedown;for(var b in P.lib)P.lib.hasOwnProperty(b)&&P.lib[b].hasOwnProperty("detach")&&P.lib[b].detach(e);for(a=xb.length;a--;){var c=xb[a];b=c.elem;var d=c.type,c=c.fn;b.removeEventListener?b.removeEventListener(d,c,!1):b.detachEvent&&b.detachEvent("on"+d,c)}ea.onExit()};e.cursor=function(){if(1<arguments.length||1===arguments.length&&arguments[0]instanceof e.PImage){var a=arguments[0],b,c;if(3<=arguments.length){if(b=arguments[1],c=arguments[2],0>b||0>
c||c>=a.height||b>=a.width)throw"x and y must be non-negative and less than the dimensions of the image";}else b=a.width>>>1,c=a.height>>>1;a='url("'+a.toDataURL()+'") '+b+" "+c+", default";V.style.cursor=a}else V.style.cursor=1===arguments.length?arguments[0]:pd};e.noCursor=function(){V.style.cursor=c.NOCURSOR};e.link=function(a,b){b!==g?m.open(a,b):m.location=a};e.beginDraw=r;e.endDraw=r;I.prototype.toImageData=function(a,b,c,d){a=a!==g?a:0;b=b!==g?b:0;c=c!==g?c:e.width;d=d!==g?d:e.height;return h.getImageData(a,
b,c,d)};B.prototype.toImageData=function(a,b,c,d){a=a!==g?a:0;b=b!==g?b:0;c=c!==g?c:e.width;d=d!==g?d:e.height;var f=n.createElement("canvas").getContext("2d").createImageData(c,d),k=new ga(4*c*d);h.readPixels(a,b,c,d,h.RGBA,h.UNSIGNED_BYTE,k);a=0;b=k.length;for(var x=f.data;a<b;a++)x[a]=k[4*(d-1-Math.floor(a/4/c))*c+a%(4*c)];return f};e.status=function(a){m.status=a};e.binary=function(a,b){var e;if(0<b)e=b;else if(a instanceof Char)e=16,a|=0;else for(e=32;1<e&&!(a>>>e-1&1);)e--;for(var c="";0<e;)c+=
a>>>--e&1?"1":"0";return c};e.unbinary=function(a){for(var b=a.length-1,e=1,c=0;0<=b;){var d=a[b--];if("0"!==d&&"1"!==d)throw"the value passed into unbinary was not an 8 bit binary number";"1"===d&&(c+=e);e<<=1}return c};e.hex=function(a,b){1===arguments.length&&(b=a instanceof Char?4:8);var e=a,c=b,c=c===g||null===c?c=8:c;0>e&&(e=4294967295+e+1);for(e=Number(e).toString(16).toUpperCase();e.length<c;)e="0"+e;e.length>=c&&(e=e.substring(e.length-c,e.length));return e};e.unhex=function(a){if(a instanceof
Array){for(var b=[],e=0;e<a.length;e++)b.push(eb(a[e]));return b}return eb(a)};e.loadStrings=function(a){if(F[a])return F[a].split("\n");a=f(a);if("string"!==typeof a||""===a)return[];a=a.replace(/(\r\n?)/g,"\n").replace(/\n$/,"");return a.split("\n")};e.saveStrings=function(a,b){F[a]=b.join("\n")};e.loadBytes=function(a){a=f(a);for(var b=[],e=0;e<a.length;e++)b.push(a.charCodeAt(e));return b};e.matchAll=function(a,b){for(var e=[],c,d=RegExp(b,"g");null!==(c=d.exec(a));)e.push(c),0===c[0].length&&
++d.lastIndex;return 0<e.length?e:null};e.match=function(a,b){return a.match(b)};var oc=[];e.println=function(a){var b=oc.length,e="";b&&(e=oc.join(""),oc.length=0);0===arguments.length&&0===b?P.logger.log(e+""):0!==arguments.length&&P.logger.log(e+a)};e.print=function(a){oc.push(a)};e.str=function(a){if(a instanceof Array){for(var b=[],e=0;e<a.length;e++)b.push(a[e].toString()+"");return b}return a.toString()+""};e.parseBoolean=function(a){if(a instanceof Array){for(var b=[],e=0;e<a.length;e++)b.push(Hb(a[e]));
return b}return Hb(a)};e.parseByte=function(a){if(a instanceof Array){for(var b=[],e=0;e<a.length;e++)b.push(0-(a[e]&128)|a[e]&127);return b}return 0-(a&128)|a&127};e.parseChar=function(a){if("number"===typeof a)return new Char(String.fromCharCode(a&65535));if(a instanceof Array){for(var b=[],e=0;e<a.length;e++)b.push(new Char(String.fromCharCode(a[e]&65535)));return b}throw"char() may receive only one argument of type int, byte, int[], or byte[].";};e.parseFloat=function(a){if(a instanceof Array){for(var b=
[],e=0;e<a.length;e++)b.push(Ib(a[e]));return b}return Ib(a)};e.parseInt=function(a,b){if(a instanceof Array){for(var e=[],c=0;c<a.length;c++)"string"!==typeof a[c]||/^\s*[+\-]?\d+\s*$/.test(a[c])?e.push(kb(a[c],b)):e.push(0);return e}return kb(a,b)};e.__int_cast=function(a){return 0|a};e.__instanceof=function(a,b){if("function"!==typeof b)throw"Function is expected as type argument for instanceof operator";if("string"===typeof a)return b===Object||b===String;if(a instanceof b)return!0;if("object"!==
typeof a||null===a)return!1;var e=a.constructor;if(b.$isInterface){for(var c=[];e;)e.$interfaces&&(c=c.concat(e.$interfaces)),e=e.$base;for(;0<c.length;){e=c.shift();if(e===b)return!0;e.$interfaces&&(c=c.concat(e.$interfaces))}return!1}for(;e.hasOwnProperty("$base");)if(e=e.$base,e===b)return!0;return!1};Y.prototype.size=function(a,b,d){E&&e.stroke(0);T&&e.fill(255);d={fillStyle:h.fillStyle,strokeStyle:h.strokeStyle,lineCap:h.lineCap,lineJoin:h.lineJoin};0<V.style.length&&(V.style.removeProperty("width"),
V.style.removeProperty("height"));V.width=e.width=a||100;V.height=e.height=b||100;for(var f in d)d.hasOwnProperty(f)&&(h[f]=d[f]);e.textFont(ba);e.background();$c=Math.max(1E3,0.05*a*b);e.externals.context=h;for(a=0;a<c.SINCOS_LENGTH;a++)Rb[a]=e.sin(0.5*a*(c.PI/180)),Sb[a]=e.cos(0.5*a*(c.PI/180))};I.prototype.size=function(a,b,e){h===g&&(h=V.getContext("2d"),Bb=new bb,Cb=new bb,L=new ab,ha=new ab);Y.prototype.size.apply(this,arguments)};B.prototype.size=function(){var a=!1;return function(b,c,d){if(a)throw"Multiple calls to size() for 3D renders are not allowed.";
a=!0;try{V.width=e.width=b||100;V.height=e.height=c||100;for(var f=V,g=["experimental-webgl","webgl","webkit-3d"],k,m=0,t=g.length;m<t&&!(k=f.getContext(g[m],{antialias:!1,preserveDrawingBuffer:!0}));m++);h=k;Uc=h.createTexture();Vc=h.createTexture()}catch(l){P.debug(l)}if(!h)throw"WebGL context is not supported on this browser.";h.viewport(0,0,V.width,V.height);h.enable(h.DEPTH_TEST);h.enable(h.BLEND);h.blendFunc(h.SRC_ALPHA,h.ONE_MINUS_SRC_ALPHA);K=Kc(h,"varying vec4 vFrontColor;attribute vec3 aVertex;attribute vec2 aTextureCoord;uniform vec4 uColor;uniform mat4 uModel;uniform mat4 uView;uniform mat4 uProjection;uniform float uPointSize;varying vec2 vTextureCoord;void main(void) { gl_PointSize = uPointSize; vFrontColor = uColor; gl_Position = uProjection * uView * uModel * vec4(aVertex, 1.0); vTextureCoord = aTextureCoord;}",
"#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 vFrontColor;varying vec2 vTextureCoord;uniform sampler2D uSampler;uniform int uIsDrawingText;uniform bool uSmooth;void main(void){ if(uSmooth == true){ float dist = distance(gl_PointCoord, vec2(0.5)); if(dist > 0.5){ discard; } } if(uIsDrawingText == 1){ float alpha = texture2D(uSampler, vTextureCoord).a; gl_FragColor = vec4(vFrontColor.rgb * alpha, alpha); } else{ gl_FragColor = vFrontColor; }}");la=Kc(h,"varying vec4 vFrontColor;attribute vec3 aVertex;attribute vec4 aColor;uniform mat4 uView;uniform mat4 uProjection;uniform float uPointSize;void main(void) { vFrontColor = aColor; gl_PointSize = uPointSize; gl_Position = uProjection * uView * vec4(aVertex, 1.0);}",
"#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 vFrontColor;uniform bool uSmooth;void main(void){ if(uSmooth == true){ float dist = distance(gl_PointCoord, vec2(0.5)); if(dist > 0.5){ discard; } } gl_FragColor = vFrontColor;}");e.strokeWeight(1);z=Kc(h,ud,"#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 vFrontColor;uniform sampler2D uSampler;uniform bool uUsingTexture;varying vec2 vTexture;void main(void){ if( uUsingTexture ){ gl_FragColor = vec4(texture2D(uSampler, vTexture.xy)) * vFrontColor; } else{ gl_FragColor = vFrontColor; }}");
h.useProgram(z);Z("usingTexture3d",z,"usingTexture",ra);e.lightFalloff(1,0,0);e.shininess(1);e.ambient(255,255,255);e.specular(0,0,0);e.emissive(0,0,0);yc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,yc);h.bufferData(h.ARRAY_BUFFER,ed,h.STATIC_DRAW);zc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,zc);h.bufferData(h.ARRAY_BUFFER,sd,h.STATIC_DRAW);Ac=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,Ac);h.bufferData(h.ARRAY_BUFFER,fd,h.STATIC_DRAW);hc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,hc);h.bufferData(h.ARRAY_BUFFER,
Jc,h.STATIC_DRAW);Bc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,Bc);h.bufferData(h.ARRAY_BUFFER,td,h.STATIC_DRAW);Qb=h.createBuffer();Cc=h.createBuffer();Rc=h.createBuffer();Dc=h.createBuffer();Sc=h.createBuffer();Tc=h.createBuffer();ic=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,ic);h.bufferData(h.ARRAY_BUFFER,new A([0,0,0]),h.STATIC_DRAW);Ec=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,Ec);h.bufferData(h.ARRAY_BUFFER,new A([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),h.STATIC_DRAW);Fc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,
Fc);h.bufferData(h.ARRAY_BUFFER,new A([0,0,1,0,1,1,0,1]),h.STATIC_DRAW);Gc=h.createBuffer();h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,Gc);h.bufferData(h.ELEMENT_ARRAY_BUFFER,new w([0,1,2,2,3,0]),h.STATIC_DRAW);qb=new J;Ta=new J;L=new J;ha=new J;Ja=new J;e.camera();e.perspective();Bb=new bb;Cb=new bb;Pb=new J;gc=new J;yb=new J;zb=new J;wc=new J;xc=new J;xc.set(-1,3,-3,1,3,-6,3,0,-3,3,0,0,1,0,0,0);Y.prototype.size.apply(this,arguments)}}();I.prototype.ambientLight=Y.prototype.a3DOnlyFunction;B.prototype.ambientLight=
function(a,b,e,d,f,g){if(Q===c.MAX_LIGHTS)throw"can only create "+c.MAX_LIGHTS+" lights";d=new PVector(d,f,g);f=new J;f.scale(1,-1,1);f.apply(L.array());f.mult(d,d);a=pa(a,b,e,0);a=[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255];h.useProgram(z);X("uLights.color.3d."+Q,z,"uLights"+Q+".color",a);X("uLights.position.3d."+Q,z,"uLights"+Q+".position",d.array());Z("uLights.type.3d."+Q,z,"uLights"+Q+".type",0);Z("uLightCount3d",z,"uLightCount",++Q)};I.prototype.directionalLight=
Y.prototype.a3DOnlyFunction;B.prototype.directionalLight=function(a,b,e,d,f,g){if(Q===c.MAX_LIGHTS)throw"can only create "+c.MAX_LIGHTS+" lights";h.useProgram(z);var k=new J;k.scale(1,-1,1);k.apply(L.array());k=k.array();d=[k[0]*d+k[4]*f+k[8]*g,k[1]*d+k[5]*f+k[9]*g,k[2]*d+k[6]*f+k[10]*g];a=pa(a,b,e,0);X("uLights.color.3d."+Q,z,"uLights"+Q+".color",[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255]);X("uLights.position.3d."+Q,z,"uLights"+Q+".position",d);Z("uLights.type.3d."+
Q,z,"uLights"+Q+".type",1);Z("uLightCount3d",z,"uLightCount",++Q)};I.prototype.lightFalloff=Y.prototype.a3DOnlyFunction;B.prototype.lightFalloff=function(a,b,e){h.useProgram(z);X("uFalloff3d",z,"uFalloff",[a,b,e])};I.prototype.lightSpecular=Y.prototype.a3DOnlyFunction;B.prototype.lightSpecular=function(a,b,e){a=pa(a,b,e,0);a=[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255];h.useProgram(z);X("uSpecular3d",z,"uSpecular",a)};e.lights=function(){e.ambientLight(128,128,128);e.directionalLight(128,
128,128,0,0,-1);e.lightFalloff(1,0,0);e.lightSpecular(0,0,0)};I.prototype.pointLight=Y.prototype.a3DOnlyFunction;B.prototype.pointLight=function(a,b,e,d,f,g){if(Q===c.MAX_LIGHTS)throw"can only create "+c.MAX_LIGHTS+" lights";d=new PVector(d,f,g);f=new J;f.scale(1,-1,1);f.apply(L.array());f.mult(d,d);a=pa(a,b,e,0);a=[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255];h.useProgram(z);X("uLights.color.3d."+Q,z,"uLights"+Q+".color",a);X("uLights.position.3d."+Q,z,"uLights"+Q+".position",
d.array());Z("uLights.type.3d."+Q,z,"uLights"+Q+".type",2);Z("uLightCount3d",z,"uLightCount",++Q)};I.prototype.noLights=Y.prototype.a3DOnlyFunction;B.prototype.noLights=function(){Q=0;h.useProgram(z);Z("uLightCount3d",z,"uLightCount",Q)};I.prototype.spotLight=Y.prototype.a3DOnlyFunction;B.prototype.spotLight=function(a,b,e,d,f,g,k,m,t,l,n){if(Q===c.MAX_LIGHTS)throw"can only create "+c.MAX_LIGHTS+" lights";h.useProgram(z);d=new PVector(d,f,g);f=new J;f.scale(1,-1,1);f.apply(L.array());f.mult(d,d);
f=f.array();k=[f[0]*k+f[4]*m+f[8]*t,f[1]*k+f[5]*m+f[9]*t,f[2]*k+f[6]*m+f[10]*t];a=pa(a,b,e,0);X("uLights.color.3d."+Q,z,"uLights"+Q+".color",[((a&c.RED_MASK)>>>16)/255,((a&c.GREEN_MASK)>>>8)/255,(a&c.BLUE_MASK)/255]);X("uLights.position.3d."+Q,z,"uLights"+Q+".position",d.array());X("uLights.direction.3d."+Q,z,"uLights"+Q+".direction",k);X("uLights.concentration.3d."+Q,z,"uLights"+Q+".concentration",n);X("uLights.angle.3d."+Q,z,"uLights"+Q+".angle",l);Z("uLights.type.3d."+Q,z,"uLights"+Q+".type",3);
Z("uLightCount3d",z,"uLightCount",++Q)};I.prototype.beginCamera=function(){throw"beginCamera() is not available in 2D mode";};B.prototype.beginCamera=function(){if(lc)throw"You cannot call beginCamera() again before calling endCamera()";lc=!0;L=Ta;ha=qb};I.prototype.endCamera=function(){throw"endCamera() is not available in 2D mode";};B.prototype.endCamera=function(){if(!lc)throw"You cannot call endCamera() before calling beginCamera()";L.set(qb);ha.set(Ta);lc=!1};e.camera=function(a,b,c,d,f,h,k,
m,t){a===g&&(Ic=e.width/2,rb=e.height/2,sb=rb/Math.tan(mc/2),a=Ic,b=rb,c=sb,d=Ic,f=rb,k=h=0,m=1,t=0);d=new PVector(a-d,b-f,c-h);var l=new PVector(k,m,t);d.normalize();t=PVector.cross(l,d);l=PVector.cross(d,t);t.normalize();l.normalize();k=t.x;m=t.y;t=t.z;f=l.x;h=l.y;var l=l.z,n=d.x,p=d.y;d=d.z;qb.set(k,m,t,0,f,h,l,0,n,p,d,0,0,0,0,1);qb.translate(-a,-b,-c);Ta.reset();Ta.invApply(k,m,t,0,f,h,l,0,n,p,d,0,0,0,0,1);Ta.translate(a,b,c);L.set(qb);ha.set(Ta)};e.perspective=function(a,b,c,d){0===arguments.length&&
(rb=V.height/2,sb=rb/Math.tan(mc/2),ad=sb/10,bd=10*sb,cd=e.width/e.height,a=mc,b=cd,c=ad,d=bd);var f,g;f=c*Math.tan(a/2);g=-f;e.frustum(g*b,f*b,g,f,c,d)};I.prototype.frustum=function(){throw"Processing.js: frustum() is not supported in 2D mode";};B.prototype.frustum=function(a,b,e,c,d,f){Ja=new J;Ja.set(2*d/(b-a),0,(b+a)/(b-a),0,0,2*d/(c-e),(c+e)/(c-e),0,0,0,-(f+d)/(f-d),-(2*f*d)/(f-d),0,0,-1,0);a=new J;a.set(Ja);a.transpose();h.useProgram(K);S("projection2d",K,"uProjection",!1,a.array());h.useProgram(z);
S("projection3d",z,"uProjection",!1,a.array());h.useProgram(la);S("uProjectionUS",la,"uProjection",!1,a.array())};e.ortho=function(a,b,c,d,f,g){0===arguments.length&&(a=0,b=e.width,c=0,d=e.height,f=-10,g=10);var k=2/(b-a),m=2/(d-c),t=-2/(g-f),l=-(b+a)/(b-a),n=-(d+c)/(d-c),p=-(g+f)/(g-f);Ja=new J;Ja.set(k,0,0,l,0,m,0,n,0,0,t,p,0,0,0,1);k=new J;k.set(Ja);k.transpose();h.useProgram(K);S("projection2d",K,"uProjection",!1,k.array());h.useProgram(z);S("projection3d",z,"uProjection",!1,k.array());h.useProgram(la);
S("uProjectionUS",la,"uProjection",!1,k.array())};e.printProjection=function(){Ja.print()};e.printCamera=function(){qb.print()};I.prototype.box=Y.prototype.a3DOnlyFunction;B.prototype.box=function(a,b,e){b&&e||(b=e=a);var c=new J;c.scale(a,b,e);a=new J;a.scale(1,-1,1);a.apply(L.array());a.transpose();T&&(h.useProgram(z),S("model3d",z,"uModel",!1,c.array()),S("view3d",z,"uView",!1,a.array()),h.enable(h.POLYGON_OFFSET_FILL),h.polygonOffset(1,1),X("color3d",z,"uColor",qa),0<Q?(b=new J,b.set(a),e=new J,
e.set(c),b.mult(e),e=new J,e.set(b),e.invert(),e.transpose(),S("uNormalTransform3d",z,"uNormalTransform",!1,e.array()),da("aNormal3d",z,"aNormal",3,zc)):ka("aNormal3d",z,"aNormal"),da("aVertex3d",z,"aVertex",3,yc),ka("aColor3d",z,"aColor"),ka("aTexture3d",z,"aTexture"),h.drawArrays(h.TRIANGLES,0,ed.length/3),h.disable(h.POLYGON_OFFSET_FILL));0<fa&&E&&(h.useProgram(K),S("uModel2d",K,"uModel",!1,c.array()),S("uView2d",K,"uView",!1,a.array()),X("uColor2d",K,"uColor",aa),Z("uIsDrawingText2d",K,"uIsDrawingText",
!1),da("vertex2d",K,"aVertex",3,Ac),ka("aTextureCoord2d",K,"aTextureCoord"),h.drawArrays(h.LINES,0,fd.length/3))};e.sphereDetail=function(a,b){var e;1===arguments.length&&(a=b=arguments[0]);3>a&&(a=3);2>b&&(b=2);if(a!==pb||b!==kc){var d=c.SINCOS_LENGTH/a,f=new A(a),g=new A(a);for(e=0;e<a;e++)f[e]=Sb[e*d%c.SINCOS_LENGTH|0],g[e]=Rb[e*d%c.SINCOS_LENGTH|0];e=a*(b-1)+2;d=0;Qa=new A(e);Ra=new A(e);Sa=new A(e);var k=0.5*c.SINCOS_LENGTH/b,m=k;for(e=1;e<b;e++){for(var t=Rb[m%c.SINCOS_LENGTH|0],l=-Sb[m%c.SINCOS_LENGTH|
0],n=0;n<a;n++)Qa[d]=f[n]*t,Ra[d]=l,Sa[d++]=g[n]*t;m+=k}pb=a;kc=b;R=[];for(f=0;f<pb;f++)R.push(0),R.push(-1),R.push(0),R.push(Qa[f]),R.push(Ra[f]),R.push(Sa[f]);R.push(0);R.push(-1);R.push(0);R.push(Qa[0]);R.push(Ra[0]);R.push(Sa[0]);k=0;for(f=2;f<kc;f++){g=e=k;d=k+=pb;for(m=0;m<pb;m++)R.push(Qa[g]),R.push(Ra[g]),R.push(Sa[g++]),R.push(Qa[d]),R.push(Ra[d]),R.push(Sa[d++]);g=e;d=k;R.push(Qa[g]);R.push(Ra[g]);R.push(Sa[g]);R.push(Qa[d]);R.push(Ra[d]);R.push(Sa[d])}for(f=0;f<pb;f++)d=k+f,R.push(Qa[d]),
R.push(Ra[d]),R.push(Sa[d]),R.push(0),R.push(1),R.push(0);R.push(Qa[k]);R.push(Ra[k]);R.push(Sa[k]);R.push(0);R.push(1);R.push(0);h.bindBuffer(h.ARRAY_BUFFER,Qb);h.bufferData(h.ARRAY_BUFFER,new A(R),h.STATIC_DRAW)}};I.prototype.sphere=Y.prototype.a3DOnlyFunction;B.prototype.sphere=function(a){(3>pb||2>kc)&&e.sphereDetail(30);var b=new J;b.scale(a,a,a);a=new J;a.scale(1,-1,1);a.apply(L.array());a.transpose();if(T){if(0<Q){var c=new J;c.set(a);var d=new J;d.set(b);c.mult(d);d=new J;d.set(c);d.invert();
d.transpose();S("uNormalTransform3d",z,"uNormalTransform",!1,d.array());da("aNormal3d",z,"aNormal",3,Qb)}else ka("aNormal3d",z,"aNormal");h.useProgram(z);ka("aTexture3d",z,"aTexture");S("uModel3d",z,"uModel",!1,b.array());S("uView3d",z,"uView",!1,a.array());da("aVertex3d",z,"aVertex",3,Qb);ka("aColor3d",z,"aColor");h.enable(h.POLYGON_OFFSET_FILL);h.polygonOffset(1,1);X("uColor3d",z,"uColor",qa);h.drawArrays(h.TRIANGLE_STRIP,0,R.length/3);h.disable(h.POLYGON_OFFSET_FILL)}0<fa&&E&&(h.useProgram(K),
S("uModel2d",K,"uModel",!1,b.array()),S("uView2d",K,"uView",!1,a.array()),da("aVertex2d",K,"aVertex",3,Qb),ka("aTextureCoord2d",K,"aTextureCoord"),X("uColor2d",K,"uColor",aa),Z("uIsDrawingText",K,"uIsDrawingText",!1),h.drawArrays(h.LINE_STRIP,0,R.length/3))};e.modelX=function(a,b,e){var c=L.array(),d=Ta.array(),f=c[0]*a+c[1]*b+c[2]*e+c[3],g=c[4]*a+c[5]*b+c[6]*e+c[7],h=c[8]*a+c[9]*b+c[10]*e+c[11];b=c[12]*a+c[13]*b+c[14]*e+c[15];a=d[0]*f+d[1]*g+d[2]*h+d[3]*b;d=d[12]*f+d[13]*g+d[14]*h+d[15]*b;return 0!==
d?a/d:a};e.modelY=function(a,b,e){var c=L.array(),d=Ta.array(),f=c[0]*a+c[1]*b+c[2]*e+c[3],g=c[4]*a+c[5]*b+c[6]*e+c[7],h=c[8]*a+c[9]*b+c[10]*e+c[11];b=c[12]*a+c[13]*b+c[14]*e+c[15];a=d[4]*f+d[5]*g+d[6]*h+d[7]*b;d=d[12]*f+d[13]*g+d[14]*h+d[15]*b;return 0!==d?a/d:a};e.modelZ=function(a,b,e){var c=L.array(),d=Ta.array(),f=c[0]*a+c[1]*b+c[2]*e+c[3],g=c[4]*a+c[5]*b+c[6]*e+c[7],h=c[8]*a+c[9]*b+c[10]*e+c[11];b=c[12]*a+c[13]*b+c[14]*e+c[15];a=d[8]*f+d[9]*g+d[10]*h+d[11]*b;d=d[12]*f+d[13]*g+d[14]*h+d[15]*
b;return 0!==d?a/d:a};I.prototype.ambient=Y.prototype.a3DOnlyFunction;B.prototype.ambient=function(a,b,c){h.useProgram(z);Z("uUsingMat3d",z,"uUsingMat",!0);a=e.color(a,b,c);X("uMaterialAmbient3d",z,"uMaterialAmbient",e.color.toGLArray(a).slice(0,3))};I.prototype.emissive=Y.prototype.a3DOnlyFunction;B.prototype.emissive=function(a,b,c){h.useProgram(z);Z("uUsingMat3d",z,"uUsingMat",!0);a=e.color(a,b,c);X("uMaterialEmissive3d",z,"uMaterialEmissive",e.color.toGLArray(a).slice(0,3))};I.prototype.shininess=
Y.prototype.a3DOnlyFunction;B.prototype.shininess=function(a){h.useProgram(z);Z("uUsingMat3d",z,"uUsingMat",!0);X("uShininess3d",z,"uShininess",a)};I.prototype.specular=Y.prototype.a3DOnlyFunction;B.prototype.specular=function(a,b,c){h.useProgram(z);Z("uUsingMat3d",z,"uUsingMat",!0);a=e.color(a,b,c);X("uMaterialSpecular3d",z,"uMaterialSpecular",e.color.toGLArray(a).slice(0,3))};e.screenX=function(a,b,c){var d=L.array();if(16===d.length){var f=d[0]*a+d[1]*b+d[2]*c+d[3],g=d[4]*a+d[5]*b+d[6]*c+d[7],
h=d[8]*a+d[9]*b+d[10]*c+d[11];b=d[12]*a+d[13]*b+d[14]*c+d[15];c=Ja.array();a=c[0]*f+c[1]*g+c[2]*h+c[3]*b;f=c[12]*f+c[13]*g+c[14]*h+c[15]*b;0!==f&&(a/=f);return e.width*(1+a)/2}return L.multX(a,b)};e.screenY=function(a,b,c){var d=L.array();if(16===d.length){var f=d[0]*a+d[1]*b+d[2]*c+d[3],g=d[4]*a+d[5]*b+d[6]*c+d[7],h=d[8]*a+d[9]*b+d[10]*c+d[11];b=d[12]*a+d[13]*b+d[14]*c+d[15];c=Ja.array();a=c[4]*f+c[5]*g+c[6]*h+c[7]*b;f=c[12]*f+c[13]*g+c[14]*h+c[15]*b;0!==f&&(a/=f);return e.height*(1+a)/2}return L.multY(a,
b)};e.screenZ=function(a,b,e){var c=L.array();if(16!==c.length)return 0;var d=Ja.array(),f=c[0]*a+c[1]*b+c[2]*e+c[3],g=c[4]*a+c[5]*b+c[6]*e+c[7],h=c[8]*a+c[9]*b+c[10]*e+c[11];b=c[12]*a+c[13]*b+c[14]*e+c[15];a=d[8]*f+d[9]*g+d[10]*h+d[11]*b;d=d[12]*f+d[13]*g+d[14]*h+d[15]*b;0!==d&&(a/=d);return(a+1)/2};Y.prototype.fill=function(a,b,c,d){a=e.color(a,b,c,d);a===N&&T||(T=!0,N=a)};I.prototype.fill=function(){Y.prototype.fill.apply(this,arguments);U=!0};B.prototype.fill=function(){Y.prototype.fill.apply(this,
arguments);qa=e.color.toGLArray(N)};e.noFill=function(){T=!1};Y.prototype.stroke=function(a,b,c,d){a=e.color(a,b,c,d);a===xa&&E||(E=!0,xa=a)};I.prototype.stroke=function(){Y.prototype.stroke.apply(this,arguments);Ua=!0};B.prototype.stroke=function(){Y.prototype.stroke.apply(this,arguments);aa=e.color.toGLArray(xa)};e.noStroke=function(){E=!1};Y.prototype.strokeWeight=function(a){fa=a};I.prototype.strokeWeight=function(a){Y.prototype.strokeWeight.apply(this,arguments);h.lineWidth=a};B.prototype.strokeWeight=
function(a){Y.prototype.strokeWeight.apply(this,arguments);h.useProgram(K);X("pointSize2d",K,"uPointSize",a);h.useProgram(la);X("pointSizeUnlitShape",la,"uPointSize",a);h.lineWidth(a)};e.strokeCap=function(a){ca.$ensureContext().lineCap=a};e.strokeJoin=function(a){ca.$ensureContext().lineJoin=a};I.prototype.smooth=function(){Aa=!0;var a=V.style;a.setProperty("image-rendering","optimizeQuality","important");a.setProperty("-ms-interpolation-mode","bicubic","important");h.hasOwnProperty("mozImageSmoothingEnabled")&&
(h.mozImageSmoothingEnabled=!0)};B.prototype.smooth=function(){Aa=!0};I.prototype.noSmooth=function(){Aa=!1;var a=V.style;a.setProperty("image-rendering","optimizeSpeed","important");a.setProperty("image-rendering","-moz-crisp-edges","important");a.setProperty("image-rendering","-webkit-optimize-contrast","important");a.setProperty("image-rendering","optimize-contrast","important");a.setProperty("-ms-interpolation-mode","nearest-neighbor","important");h.hasOwnProperty("mozImageSmoothingEnabled")&&
(h.mozImageSmoothingEnabled=!1)};B.prototype.noSmooth=function(){Aa=!1};I.prototype.point=function(a,b){E&&(a=Math.round(a),b=Math.round(b),h.fillStyle=e.color.toString(xa),U=!0,1<fa?(h.beginPath(),h.arc(a,b,fa/2,0,c.TWO_PI,!1),h.fill()):h.fillRect(a,b,1,1))};B.prototype.point=function(a,b,c){var e=new J;e.translate(a,b,c||0);e.transpose();a=new J;a.scale(1,-1,1);a.apply(L.array());a.transpose();h.useProgram(K);S("uModel2d",K,"uModel",!1,e.array());S("uView2d",K,"uView",!1,a.array());0<fa&&E&&(X("uColor2d",
K,"uColor",aa),Z("uIsDrawingText2d",K,"uIsDrawingText",!1),Z("uSmooth2d",K,"uSmooth",Aa),da("aVertex2d",K,"aVertex",3,ic),ka("aTextureCoord2d",K,"aTextureCoord"),h.drawArrays(h.POINTS,0,1))};e.beginShape=function(a){$=a;u=[]};I.prototype.vertex=function(a,b,c){var e=[];hb&&(hb=!1);e.isVert=!0;e[0]=a;e[1]=b;e[2]=0;e[3]=0;e[4]=0;e[5]=N;e[6]=xa;u.push(e);c&&(u[u.length-1].moveTo=c)};B.prototype.vertex=function(a,b,e,d,f){var h=[];hb&&(hb=!1);h.isVert=!0;f===g&&ra&&(f=d,d=e,e=0);d!==g&&f!==g&&(Yc===c.IMAGE&&
(d/=Wc,f/=Xc),d=1<d?1:d,d=0>d?0:d,f=1<f?1:f,f=0>f?0:f);h[0]=a;h[1]=b;h[2]=e||0;h[3]=d||0;h[4]=f||0;h[5]=qa[0];h[6]=qa[1];h[7]=qa[2];h[8]=qa[3];h[9]=aa[0];h[10]=aa[1];h[11]=aa[2];h[12]=aa[3];h[13]=Fb;h[14]=vb;h[15]=ub;u.push(h)};var id=function(a,b){var c=new J;c.scale(1,-1,1);c.apply(L.array());c.transpose();h.useProgram(la);S("uViewUS",la,"uView",!1,c.array());Z("uSmoothUS",la,"uSmooth",Aa);da("aVertexUS",la,"aVertex",3,ic);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);da("aColorUS",la,"aColor",
4,Dc);h.bufferData(h.ARRAY_BUFFER,new A(b),h.STREAM_DRAW);h.drawArrays(h.POINTS,0,a.length/3)},Da=function(a,b,c){b="LINES"===b?h.LINES:"LINE_LOOP"===b?h.LINE_LOOP:h.LINE_STRIP;var e=new J;e.scale(1,-1,1);e.apply(L.array());e.transpose();h.useProgram(la);S("uViewUS",la,"uView",!1,e.array());da("aVertexUS",la,"aVertex",3,Cc);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);da("aColorUS",la,"aColor",4,Sc);h.bufferData(h.ARRAY_BUFFER,new A(c),h.STREAM_DRAW);h.drawArrays(b,0,a.length/3)},cb=function(a,
b,c,e){b="TRIANGLES"===b?h.TRIANGLES:"TRIANGLE_FAN"===b?h.TRIANGLE_FAN:h.TRIANGLE_STRIP;var d=new J;d.scale(1,-1,1);d.apply(L.array());d.transpose();h.useProgram(z);S("model3d",z,"uModel",!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);S("view3d",z,"uView",!1,d.array());h.enable(h.POLYGON_OFFSET_FILL);h.polygonOffset(1,1);X("color3d",z,"uColor",[-1,0,0,0]);da("vertex3d",z,"aVertex",3,Rc);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);ra&&null!==fb&&vc(c);da("aColor3d",z,"aColor",4,Dc);h.bufferData(h.ARRAY_BUFFER,
new A(c),h.STREAM_DRAW);ka("aNormal3d",z,"aNormal");ra&&(Z("uUsingTexture3d",z,"uUsingTexture",ra),da("aTexture3d",z,"aTexture",2,Tc),h.bufferData(h.ARRAY_BUFFER,new A(e),h.STREAM_DRAW));h.drawArrays(b,0,a.length/3);h.disable(h.POLYGON_OFFSET_FILL)};I.prototype.endShape=function(a){if(0!==u.length){(a=a===c.CLOSE)&&u.push(u[0]);var b=[],d=[],f=[],k=[],m;hb=!0;var x,l,t=u.length;for(x=0;x<t;x++)for(m=u[x],l=0;3>l;l++)b.push(m[l]);for(x=0;x<t;x++)for(m=u[x],l=5;9>l;l++)d.push(m[l]);for(x=0;x<t;x++)for(m=
u[x],l=9;13>l;l++)f.push(m[l]);for(x=0;x<t;x++)m=u[x],k.push(m[3]),k.push(m[4]);if(!Db||$!==c.POLYGON&&$!==g)if(!Eb||$!==c.POLYGON&&$!==g)if($===c.POINTS)for(x=0;x<t;x++)m=u[x],E&&e.stroke(m[6]),e.point(m[0],m[1]);else if($===c.LINES)for(x=0;x+1<t;x+=2)m=u[x],E&&e.stroke(u[x+1][6]),e.line(m[0],m[1],u[x+1][0],u[x+1][1]);else if($===c.TRIANGLES)for(x=0;x+2<t;x+=3)m=u[x],h.beginPath(),h.moveTo(m[0],m[1]),h.lineTo(u[x+1][0],u[x+1][1]),h.lineTo(u[x+2][0],u[x+2][1]),h.lineTo(m[0],m[1]),T&&(e.fill(u[x+2][5]),
Fa()),E&&(e.stroke(u[x+2][6]),ua()),h.closePath();else if($===c.TRIANGLE_STRIP)for(x=0;x+1<t;x++)m=u[x],h.beginPath(),h.moveTo(u[x+1][0],u[x+1][1]),h.lineTo(m[0],m[1]),E&&e.stroke(u[x+1][6]),T&&e.fill(u[x+1][5]),x+2<t&&(h.lineTo(u[x+2][0],u[x+2][1]),E&&e.stroke(u[x+2][6]),T&&e.fill(u[x+2][5])),Va();else if($===c.TRIANGLE_FAN){if(2<t)for(h.beginPath(),h.moveTo(u[0][0],u[0][1]),h.lineTo(u[1][0],u[1][1]),h.lineTo(u[2][0],u[2][1]),T&&(e.fill(u[2][5]),Fa()),E&&(e.stroke(u[2][6]),ua()),h.closePath(),x=
3;x<t;x++)m=u[x],h.beginPath(),h.moveTo(u[0][0],u[0][1]),h.lineTo(u[x-1][0],u[x-1][1]),h.lineTo(m[0],m[1]),T&&(e.fill(m[5]),Fa()),E&&(e.stroke(m[6]),ua()),h.closePath()}else if($===c.QUADS)for(x=0;x+3<t;x+=4){m=u[x];h.beginPath();h.moveTo(m[0],m[1]);for(l=1;4>l;l++)h.lineTo(u[x+l][0],u[x+l][1]);h.lineTo(m[0],m[1]);T&&(e.fill(u[x+3][5]),Fa());E&&(e.stroke(u[x+3][6]),ua());h.closePath()}else if($===c.QUAD_STRIP){if(3<t)for(x=0;x+1<t;x+=2)m=u[x],h.beginPath(),x+3<t?(h.moveTo(u[x+2][0],u[x+2][1]),h.lineTo(m[0],
m[1]),h.lineTo(u[x+1][0],u[x+1][1]),h.lineTo(u[x+3][0],u[x+3][1]),T&&e.fill(u[x+3][5]),E&&e.stroke(u[x+3][6])):(h.moveTo(m[0],m[1]),h.lineTo(u[x+1][0],u[x+1][1])),Va()}else{h.beginPath();h.moveTo(u[0][0],u[0][1]);for(x=1;x<t;x++)m=u[x],m.isVert&&(m.moveTo?h.moveTo(m[0],m[1]):h.lineTo(m[0],m[1]));Va()}else{h.beginPath();for(x=0;x<t;x++)m=u[x],u[x].isVert?u[x].moveTo?h.moveTo(m[0],m[1]):h.lineTo(m[0],m[1]):h.bezierCurveTo(u[x][0],u[x][1],u[x][2],u[x][3],u[x][4],u[x][5]);Va()}else if(3<t){b=[];d=1-rc;
h.beginPath();h.moveTo(u[1][0],u[1][1]);for(x=1;x+2<t;x++)m=u[x],b[0]=[m[0],m[1]],b[1]=[m[0]+(d*u[x+1][0]-d*u[x-1][0])/6,m[1]+(d*u[x+1][1]-d*u[x-1][1])/6],b[2]=[u[x+1][0]+(d*u[x][0]-d*u[x+2][0])/6,u[x+1][1]+(d*u[x][1]-d*u[x+2][1])/6],b[3]=[u[x+1][0],u[x+1][1]],h.bezierCurveTo(b[1][0],b[1][1],b[2][0],b[2][1],b[3][0],b[3][1]);Va()}Eb=Db=!1;sa=[];ma=0;a&&u.pop()}};B.prototype.endShape=function(a){if(0!==u.length){var b=a===c.CLOSE;a=[];var e=[],d=[],f=[],k=[],m;hb=!0;var l,t,n=u.length;for(l=0;l<n;l++)for(m=
u[l],t=0;3>t;t++)e.push(m[t]);for(l=0;l<n;l++)for(m=u[l],t=5;9>t;t++)d.push(m[t]);for(l=0;l<n;l++)for(m=u[l],t=9;13>t;t++)f.push(m[t]);for(l=0;l<n;l++)m=u[l],k.push(m[3]),k.push(m[4]);if(b){e.push(u[0][0]);e.push(u[0][1]);e.push(u[0][2]);for(l=5;9>l;l++)d.push(u[0][l]);for(l=9;13>l;l++)f.push(u[0][l]);k.push(u[0][3]);k.push(u[0][4])}if(!Db||$!==c.POLYGON&&$!==g)if(!Eb||$!==c.POLYGON&&$!==g){if($===c.POINTS){for(l=0;l<n;l++)for(m=u[l],t=0;3>t;t++)a.push(m[t]);id(a,f)}else if($===c.LINES){for(l=0;l<
n;l++)for(m=u[l],t=0;3>t;t++)a.push(m[t]);for(l=0;l<n;l++)for(m=u[l],t=5;9>t;t++)d.push(m[t]);Da(a,"LINES",f)}else if($===c.TRIANGLES){if(2<n)for(l=0;l+2<n;l+=3){e=[];k=[];a=[];d=[];f=[];for(t=0;3>t;t++)for(b=0;3>b;b++)a.push(u[l+t][b]),e.push(u[l+t][b]);for(t=0;3>t;t++)for(b=3;5>b;b++)k.push(u[l+t][b]);for(t=0;3>t;t++)for(b=5;9>b;b++)d.push(u[l+t][b]),f.push(u[l+t][b+4]);E&&Da(a,"LINE_LOOP",f);(T||ra)&&cb(e,"TRIANGLES",d,k)}}else if($===c.TRIANGLE_STRIP){if(2<n)for(l=0;l+2<n;l++){a=[];e=[];f=[];
d=[];k=[];for(t=0;3>t;t++)for(b=0;3>b;b++)a.push(u[l+t][b]),e.push(u[l+t][b]);for(t=0;3>t;t++)for(b=3;5>b;b++)k.push(u[l+t][b]);for(t=0;3>t;t++)for(b=5;9>b;b++)f.push(u[l+t][b+4]),d.push(u[l+t][b]);(T||ra)&&cb(e,"TRIANGLE_STRIP",d,k);E&&Da(a,"LINE_LOOP",f)}}else if($===c.TRIANGLE_FAN){if(2<n){for(l=0;3>l;l++)for(m=u[l],t=0;3>t;t++)a.push(m[t]);for(l=0;3>l;l++)for(m=u[l],t=9;13>t;t++)f.push(m[t]);E&&Da(a,"LINE_LOOP",f);for(l=2;l+1<n;l++){a=[];f=[];a.push(u[0][0]);a.push(u[0][1]);a.push(u[0][2]);f.push(u[0][9]);
f.push(u[0][10]);f.push(u[0][11]);f.push(u[0][12]);for(t=0;2>t;t++)for(b=0;3>b;b++)a.push(u[l+t][b]);for(t=0;2>t;t++)for(b=9;13>b;b++)f.push(u[l+t][b]);E&&Da(a,"LINE_STRIP",f)}(T||ra)&&cb(e,"TRIANGLE_FAN",d,k)}}else if($===c.QUADS)for(l=0;l+3<n;l+=4){a=[];for(t=0;4>t;t++)for(m=u[l+t],b=0;3>b;b++)a.push(m[b]);E&&Da(a,"LINE_LOOP",f);if(T){e=[];d=[];k=[];for(t=0;3>t;t++)e.push(u[l][t]);for(t=5;9>t;t++)d.push(u[l][t]);for(t=0;3>t;t++)e.push(u[l+1][t]);for(t=5;9>t;t++)d.push(u[l+1][t]);for(t=0;3>t;t++)e.push(u[l+
3][t]);for(t=5;9>t;t++)d.push(u[l+3][t]);for(t=0;3>t;t++)e.push(u[l+2][t]);for(t=5;9>t;t++)d.push(u[l+2][t]);ra&&(k.push(u[l+0][3]),k.push(u[l+0][4]),k.push(u[l+1][3]),k.push(u[l+1][4]),k.push(u[l+3][3]),k.push(u[l+3][4]),k.push(u[l+2][3]),k.push(u[l+2][4]));cb(e,"TRIANGLE_STRIP",d,k)}}else if($===c.QUAD_STRIP){if(3<n){for(l=0;2>l;l++)for(m=u[l],t=0;3>t;t++)a.push(m[t]);for(l=0;2>l;l++)for(m=u[l],t=9;13>t;t++)f.push(m[t]);Da(a,"LINE_STRIP",f);4<n&&0<n%2&&(e.splice(e.length-3),u.pop());for(l=0;l+3<
n;l+=2){a=[];f=[];for(t=0;3>t;t++)a.push(u[l+1][t]);for(t=0;3>t;t++)a.push(u[l+3][t]);for(t=0;3>t;t++)a.push(u[l+2][t]);for(t=0;3>t;t++)a.push(u[l+0][t]);for(t=9;13>t;t++)f.push(u[l+1][t]);for(t=9;13>t;t++)f.push(u[l+3][t]);for(t=9;13>t;t++)f.push(u[l+2][t]);for(t=9;13>t;t++)f.push(u[l+0][t]);E&&Da(a,"LINE_STRIP",f)}(T||ra)&&cb(e,"TRIANGLE_LIST",d,k)}}else if(1===n){for(t=0;3>t;t++)a.push(u[0][t]);for(t=9;13>t;t++)f.push(u[0][t]);id(a,f)}else{for(l=0;l<n;l++){m=u[l];for(t=0;3>t;t++)a.push(m[t]);for(t=
5;9>t;t++)f.push(m[t])}E&&b?Da(a,"LINE_LOOP",f):E&&!b&&Da(a,"LINE_STRIP",f);(T||ra)&&cb(e,"TRIANGLE_FAN",d,k)}ra=!1;h.useProgram(z);Z("usingTexture3d",z,"uUsingTexture",ra)}else a=e,a.splice(a.length-3),f.splice(f.length-4),E&&Da(a,null,f),T&&cb(e,"TRIANGLES",d);else E&&Da(e,null,f),T&&cb(e,null,d);Eb=Db=!1;sa=[];ma=0}};var jd=function(a,b){var e=1/a,c=e*e,d=c*e;b.set(0,0,0,1,d,c,e,0,6*d,2*c,0,0,6*d,0,0,0)},kd=function(){yb||(Pb=new J,yb=new J,Nc=!0);var a=rc;Pb.set((a-1)/2,(a+3)/2,(-3-a)/2,(1-a)/
2,1-a,(-5-a)/2,a+2,(a-1)/2,(a-1)/2,0,(1-a)/2,0,0,1,0,0);jd(sc,yb);wc||(gc=new J);gc.set(Pb);gc.preApply(wc);yb.apply(Pb)};I.prototype.bezierVertex=function(){Eb=!0;var a=[];if(hb)throw"vertex() must be used at least once before calling bezierVertex()";for(var b=0;b<arguments.length;b++)a[b]=arguments[b];u.push(a);u[u.length-1].isVert=!1};B.prototype.bezierVertex=function(){Eb=!0;if(hb)throw"vertex() must be used at least once before calling bezierVertex()";if(9===arguments.length){zb===g&&(zb=new J);
var a=u.length-1;jd(tc,zb);zb.apply(xc);for(var b=zb.array(),c=u[a][0],d=u[a][1],a=u[a][2],f=b[4]*c+b[5]*arguments[0]+b[6]*arguments[3]+b[7]*arguments[6],h=b[8]*c+b[9]*arguments[0]+b[10]*arguments[3]+b[11]*arguments[6],k=b[12]*c+b[13]*arguments[0]+b[14]*arguments[3]+b[15]*arguments[6],l=b[4]*d+b[5]*arguments[1]+b[6]*arguments[4]+b[7]*arguments[7],m=b[8]*d+b[9]*arguments[1]+b[10]*arguments[4]+b[11]*arguments[7],n=b[12]*d+b[13]*arguments[1]+b[14]*arguments[4]+b[15]*arguments[7],p=b[4]*a+b[5]*arguments[2]+
b[6]*arguments[5]+b[7]*arguments[8],r=b[8]*a+b[9]*arguments[2]+b[10]*arguments[5]+b[11]*arguments[8],b=b[12]*a+b[13]*arguments[2]+b[14]*arguments[5]+b[15]*arguments[8],w=0;w<tc;w++)c+=f,f+=h,h+=k,d+=l,l+=m,m+=n,a+=p,p+=r,r+=b,e.vertex(c,d,a);e.vertex(arguments[6],arguments[7],arguments[8])}};e.texture=function(a){var b=ca.$ensureContext();if(a.__texture)b.bindTexture(b.TEXTURE_2D,a.__texture);else{if("canvas"===a.localName)b.bindTexture(b.TEXTURE_2D,Uc),b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,
a),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR),b.generateMipmap(b.TEXTURE_2D);else{var e=b.createTexture(),c=n.createElement("canvas"),d=c.getContext("2d"),f;if(a.width&0===a.width-1)c.width=a.width;else{for(f=1;f<a.width;)f*=2;c.width=f}if(a.height&0===a.height-1)c.height=a.height;else{for(f=1;f<a.height;)f*=2;c.height=f}d.drawImage(a.sourceImg,0,0,a.width,a.height,0,0,c.width,c.height);b.bindTexture(b.TEXTURE_2D,e);b.texParameteri(b.TEXTURE_2D,
b.TEXTURE_MIN_FILTER,b.LINEAR_MIPMAP_LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,c);b.generateMipmap(b.TEXTURE_2D);a.__texture=e}Wc=a.width;Xc=a.height}ra=!0;b.useProgram(z);Z("usingTexture3d",z,"uUsingTexture",ra)};e.textureMode=function(a){Yc=a};I.prototype.curveVertex=function(a,b){Db=!0;e.vertex(a,
b)};B.prototype.curveVertex=function(a,b,c){Db=!0;Nc||kd();var d=[];d[0]=a;d[1]=b;d[2]=c;sa.push(d);ma++;if(3<ma){var f=sa[ma-4][0],g=sa[ma-4][1],h=sa[ma-4][2],k=sa[ma-3][0],l=sa[ma-3][1],m=sa[ma-3][2],n=sa[ma-2][0],p=sa[ma-2][1],r=sa[ma-2][2],u=sa[ma-1][0],w=sa[ma-1][1],v=sa[ma-1][2];a=k;b=l;c=m;var q=yb.array(),d=q[4]*f+q[5]*k+q[6]*n+q[7]*u,y=q[8]*f+q[9]*k+q[10]*n+q[11]*u,f=q[12]*f+q[13]*k+q[14]*n+q[15]*u,k=q[4]*g+q[5]*l+q[6]*p+q[7]*w,n=q[8]*g+q[9]*l+q[10]*p+q[11]*w,g=q[12]*g+q[13]*l+q[14]*p+q[15]*
w,l=q[4]*h+q[5]*m+q[6]*r+q[7]*v,p=q[8]*h+q[9]*m+q[10]*r+q[11]*v,h=q[12]*h+q[13]*m+q[14]*r+q[15]*v;e.vertex(a,b,c);for(m=0;m<sc;m++)a+=d,d+=y,y+=f,b+=k,k+=n,n+=g,c+=l,l+=p,p+=h,e.vertex(a,b,c)}};I.prototype.curve=function(a,b,c,d,f,g,h,k){e.beginShape();e.curveVertex(a,b);e.curveVertex(c,d);e.curveVertex(f,g);e.curveVertex(h,k);e.endShape()};B.prototype.curve=function(a,b,c,d,f,h,k,l,m,n,p,r){r!==g?(e.beginShape(),e.curveVertex(a,b,c),e.curveVertex(d,f,h),e.curveVertex(k,l,m),e.curveVertex(n,p,r)):
(e.beginShape(),e.curveVertex(a,b),e.curveVertex(c,d),e.curveVertex(f,h),e.curveVertex(k,l));e.endShape()};e.curveTightness=function(a){rc=a};e.curveDetail=function(a){sc=a;kd()};e.rectMode=function(a){oa=a};e.imageMode=function(a){switch(a){case c.CORNER:nc=gd;break;case c.CORNERS:nc=vd;break;case c.CENTER:nc=wd;break;default:throw"Invalid imageMode";}};e.ellipseMode=function(a){za=a};e.arc=function(a,b,d,f,g,h){if(!(0>=d||h<g)){za===c.CORNERS?(d-=a,f-=b):za===c.RADIUS?(a-=d,b-=f,d*=2,f*=2):za===
c.CENTER&&(a-=d/2,b-=f/2);for(;0>g;)g+=c.TWO_PI,h+=c.TWO_PI;h-g>c.TWO_PI&&(g=0,h=c.TWO_PI);d/=2;f/=2;a+=d;b+=f;g=0|0.5+2*g*e.RAD_TO_DEG;h=0|0.5+2*h*e.RAD_TO_DEG;var k,l;if(T){var m=E;E=!1;e.beginShape();e.vertex(a,b);for(k=g;k<=h;k++)l=k%c.SINCOS_LENGTH,e.vertex(a+Sb[l]*d,b+Rb[l]*f);e.endShape(c.CLOSE);E=m}if(E){m=T;T=!1;e.beginShape();for(k=g;k<=h;k++)l=k%c.SINCOS_LENGTH,e.vertex(a+Sb[l]*d,b+Rb[l]*f);e.endShape();T=m}}};I.prototype.line=function(a,b,c,d){if(E)if(a=Math.round(a),c=Math.round(c),b=
Math.round(b),d=Math.round(d),a===c&&b===d)e.point(a,b);else{for(var f=g,k=g,l=!0,f=L.array(),m=[1,0,0,0,1,0],t=0;6>t&&l;t++)l=f[t]===m[t];l&&(a===c?(b>d&&(f=b,b=d,d=f),d++,1===fa%2&&h.translate(0.5,0)):b===d&&(a>c&&(f=a,a=c,c=f),c++,1===fa%2&&h.translate(0,0.5)),1===fa&&(k=h.lineCap,h.lineCap="butt"));h.beginPath();h.moveTo(a||0,b||0);h.lineTo(c||0,d||0);ua();l&&(a===c&&1===fa%2?h.translate(-0.5,0):b===d&&1===fa%2&&h.translate(0,-0.5),1===fa&&(h.lineCap=k))}};B.prototype.line=function(a,b,c,d,f,
k){if(f===g||k===g)k=0,f=d,d=c,c=0;a===d&&b===f&&c===k?e.point(a,b,c):(a=[a,b,c,d,f,k],b=new J,b.scale(1,-1,1),b.apply(L.array()),b.transpose(),0<fa&&E&&(h.useProgram(K),S("uModel2d",K,"uModel",!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),S("uView2d",K,"uView",!1,b.array()),X("uColor2d",K,"uColor",aa),Z("uIsDrawingText",K,"uIsDrawingText",!1),da("aVertex2d",K,"aVertex",3,Cc),ka("aTextureCoord2d",K,"aTextureCoord"),h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW),h.drawArrays(h.LINES,0,2)))};I.prototype.bezier=
function(){if(8!==arguments.length)throw"You must use 8 parameters for bezier() in 2D mode";e.beginShape();e.vertex(arguments[0],arguments[1]);e.bezierVertex(arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);e.endShape()};B.prototype.bezier=function(){if(12!==arguments.length)throw"You must use 12 parameters for bezier() in 3D mode";e.beginShape();e.vertex(arguments[0],arguments[1],arguments[2]);e.bezierVertex(arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],
arguments[8],arguments[9],arguments[10],arguments[11]);e.endShape()};e.bezierDetail=function(a){tc=a};e.bezierPoint=function(a,b,c,e,d){return(1-d)*(1-d)*(1-d)*a+3*(1-d)*(1-d)*d*b+3*(1-d)*d*d*c+d*d*d*e};e.bezierTangent=function(a,b,c,e,d){return 3*d*d*(-a+3*b-3*c+e)+6*d*(a-2*b+c)+3*(-a+b)};e.curvePoint=function(a,b,c,e,d){return 0.5*(2*b+(-a+c)*d+(2*a-5*b+4*c-e)*d*d+(-a+3*b-3*c+e)*d*d*d)};e.curveTangent=function(a,b,c,e,d){return 0.5*(-a+c+2*(2*a-5*b+4*c-e)*d+3*(-a+3*b-3*c+e)*d*d)};e.triangle=function(a,
b,d,f,g,h){e.beginShape(c.TRIANGLES);e.vertex(a,b,0);e.vertex(d,f,0);e.vertex(g,h,0);e.endShape()};e.quad=function(a,b,d,f,g,h,k,l){e.beginShape(c.QUADS);e.vertex(a,b,0);e.vertex(d,f,0);e.vertex(g,h,0);e.vertex(k,l,0);e.endShape()};I.prototype.rect=function(a,b,e,d,f,k,l,m){if(e||d)if(oa===c.CORNERS?(e-=a,d-=b):oa===c.RADIUS?(e*=2,d*=2,a-=e/2,b-=d/2):oa===c.CENTER&&(a-=e/2,b-=d/2),a=Math.round(a),b=Math.round(b),e=Math.round(e),d=Math.round(d),f!==g){m===g&&(m=l=k=f);var t=e/2,n=d/2;if(f>t||f>n)f=
Math.min(t,n);if(k>t||k>n)k=Math.min(t,n);if(l>t||l>n)l=Math.min(t,n);if(m>t||m>n)m=Math.min(t,n);T&&!E||h.translate(0.5,0.5);h.beginPath();h.moveTo(a+f,b);h.lineTo(a+e-k,b);h.quadraticCurveTo(a+e,b,a+e,b+k);h.lineTo(a+e,b+d-l);h.quadraticCurveTo(a+e,b+d,a+e-l,b+d);h.lineTo(a+m,b+d);h.quadraticCurveTo(a,b+d,a,b+d-m);h.lineTo(a,b+f);h.quadraticCurveTo(a,b,a+f,b);T&&!E||h.translate(-0.5,-0.5);Fa();ua()}else E&&1===fa%2&&h.translate(0.5,0.5),h.beginPath(),h.rect(a,b,e,d),Fa(),ua(),E&&1===fa%2&&h.translate(-0.5,
-0.5)};B.prototype.rect=function(a,b,e,d,f,k,l,m){if(f!==g)throw"rect() with rounded corners is not supported in 3D mode";oa===c.CORNERS?(e-=a,d-=b):oa===c.RADIUS?(e*=2,d*=2,a-=e/2,b-=d/2):oa===c.CENTER&&(a-=e/2,b-=d/2);f=new J;f.translate(a,b,0);f.scale(e,d,1);f.transpose();b=new J;b.scale(1,-1,1);b.apply(L.array());b.transpose();0<fa&&E&&(h.useProgram(K),S("uModel2d",K,"uModel",!1,f.array()),S("uView2d",K,"uView",!1,b.array()),X("uColor2d",K,"uColor",aa),Z("uIsDrawingText2d",K,"uIsDrawingText",
!1),da("aVertex2d",K,"aVertex",3,hc),ka("aTextureCoord2d",K,"aTextureCoord"),h.drawArrays(h.LINE_LOOP,0,Jc.length/3));T&&(h.useProgram(z),S("uModel3d",z,"uModel",!1,f.array()),S("uView3d",z,"uView",!1,b.array()),h.enable(h.POLYGON_OFFSET_FILL),h.polygonOffset(1,1),X("color3d",z,"uColor",qa),0<Q?(a=new J,a.set(b),b=new J,b.set(f),a.mult(b),b=new J,b.set(a),b.invert(),b.transpose(),S("uNormalTransform3d",z,"uNormalTransform",!1,b.array()),da("aNormal3d",z,"aNormal",3,Bc)):ka("normal3d",z,"aNormal"),
da("vertex3d",z,"aVertex",3,hc),h.drawArrays(h.TRIANGLE_FAN,0,Jc.length/3),h.disable(h.POLYGON_OFFSET_FILL))};I.prototype.ellipse=function(a,b,d,f){a=a||0;b=b||0;if(!(0>=d&&0>=f))if(za===c.RADIUS?(d*=2,f*=2):za===c.CORNERS?(d-=a,f-=b,a+=d/2,b+=f/2):za===c.CORNER&&(a+=d/2,b+=f/2),d===f)h.beginPath(),h.arc(a,b,d/2,0,c.TWO_PI,!1),Fa(),ua();else{d/=2;f/=2;var g=0.5522847498307933*d,k=0.5522847498307933*f;e.beginShape();e.vertex(a+d,b);e.bezierVertex(a+d,b-k,a+g,b-f,a,b-f);e.bezierVertex(a-g,b-f,a-d,b-
k,a-d,b);e.bezierVertex(a-d,b+k,a-g,b+f,a,b+f);e.bezierVertex(a+g,b+f,a+d,b+k,a+d,b);e.endShape()}};B.prototype.ellipse=function(a,b,d,f){a=a||0;b=b||0;if(!(0>=d&&0>=f)){za===c.RADIUS?(d*=2,f*=2):za===c.CORNERS?(d-=a,f-=b,a+=d/2,b+=f/2):za===c.CORNER&&(a+=d/2,b+=f/2);d/=2;f/=2;var g=0.5522847498307933*d,h=0.5522847498307933*f;e.beginShape();e.vertex(a+d,b);e.bezierVertex(a+d,b-h,0,a+g,b-f,0,a,b-f,0);e.bezierVertex(a-g,b-f,0,a-d,b-h,0,a-d,b,0);e.bezierVertex(a-d,b+h,0,a-g,b+f,0,a,b+f,0);e.bezierVertex(a+
g,b+f,0,a+d,b+h,0,a+d,b,0);e.endShape();if(T){for(g=f=d=0;g<u.length;g++)d+=u[g][0],f+=u[g][1];d/=u.length;f/=u.length;g=[];a=[];b=[];g[0]=d;g[1]=f;g[2]=0;g[3]=0;g[4]=0;g[5]=qa[0];g[6]=qa[1];g[7]=qa[2];g[8]=qa[3];g[9]=aa[0];g[10]=aa[1];g[11]=aa[2];g[12]=aa[3];g[13]=Fb;g[14]=vb;g[15]=ub;u.unshift(g);for(g=0;g<u.length;g++){for(d=0;3>d;d++)a.push(u[g][d]);for(d=5;9>d;d++)b.push(u[g][d])}cb(a,"TRIANGLE_FAN",b)}}};e.normal=function(a,b,e){if(3!==arguments.length||"number"!==typeof a||"number"!==typeof b||
"number"!==typeof e)throw"normal() requires three numeric arguments.";Fb=a;vb=b;ub=e;0!==$&&(ib===c.NORMAL_MODE_AUTO?ib=c.NORMAL_MODE_SHAPE:ib===c.NORMAL_MODE_SHAPE&&(ib=c.NORMAL_MODE_VERTEX))};e.save=function(a,b){return b!==g?m.open(b.toDataURL(),"_blank"):m.open(e.externals.canvas.toDataURL(),"_blank")};var xd=0;e.saveFrame=function(a){a===g&&(a="screen-####.png");a=a.replace(/#+/,function(a){for(var b=""+xd++;b.length<a.length;)b="0"+b;return b});e.save(a)};var yd=n.createElement("canvas").getContext("2d"),
Oc=[g,g,g],Ia=function(a,b,e){this.__isDirty=!1;if(a instanceof C)this.fromHTMLImageData(a);else if(b||e){this.width=a||1;this.height=b||1;a=this.sourceImg=n.createElement("canvas");a.width=this.width;a.height=this.height;this.imageData=a.getContext("2d").createImageData(this.width,this.height);this.format=e===c.ARGB||e===c.ALPHA?e:c.RGB;if(this.format===c.RGB)for(e=3,a=this.imageData.data,b=a.length;e<b;e+=4)a[e]=255;this.__isDirty=!0;this.updatePixels()}else this.height=this.width=0,this.imageData=
yd.createImageData(1,1),this.format=c.ARGB;this.pixels=Yb(this)};Ia.prototype={__isPImage:!0,updatePixels:function(){var a=this.sourceImg;a&&(a instanceof y&&this.__isDirty)&&a.getContext("2d").putImageData(this.imageData,0,0);this.__isDirty=!1},fromHTMLImageData:function(a){var b=Ma(a);try{var e=b.context.getImageData(0,0,a.width,a.height);this.fromImageData(e)}catch(c){a.width&&a.height&&(this.isRemote=!0,this.width=a.width,this.height=a.height)}this.sourceImg=a},get:function(a,b,c,d){if(!arguments.length)return e.get(this);
if(2===arguments.length)return e.get(a,b,this);if(4===arguments.length)return e.get(a,b,c,d,this)},set:function(a,b,c){e.set(a,b,c,this);this.__isDirty=!0},blend:function(a,b,c,d,f,g,h,k,l,m){9===arguments.length?e.blend(this,a,b,c,d,f,g,h,k,l,this):10===arguments.length&&e.blend(a,b,c,d,f,g,h,k,l,m,this);delete this.sourceImg},copy:function(a,b,d,f,g,h,k,l,m){8===arguments.length?e.blend(this,a,b,d,f,g,h,k,l,c.REPLACE,this):9===arguments.length&&e.blend(a,b,d,f,g,h,k,l,m,c.REPLACE,this);delete this.sourceImg},
filter:function(a,b){2===arguments.length?e.filter(a,b,this):1===arguments.length&&e.filter(a,null,this);delete this.sourceImg},save:function(a){e.save(a,this)},resize:function(a,b){if(this.isRemote)throw"Image is loaded remotely. Cannot resize.";if(0!==this.width||0!==this.height){0===a&&0!==b?a=Math.floor(this.width/this.height*b):0===b&&0!==a&&(b=Math.floor(this.height/this.width*a));var e=Ma(this.imageData).canvas,e=Ma(e,a,b).context.getImageData(0,0,a,b);this.fromImageData(e)}},mask:function(a){var b=
this.toImageData(),e,c;if(a instanceof Ia||a.__isPImage)if(a.width===this.width&&a.height===this.height)for(a=a.toImageData(),e=2,c=4*this.width*this.height;e<c;e+=4)b.data[e+1]=a.data[e];else throw"mask must have the same dimensions as PImage.";else if(a instanceof Array)if(this.width*this.height===a.length)for(e=0,c=a.length;e<c;++e)b.data[4*e+3]=a[e];else throw"mask array must be the same length as PImage pixels array.";this.fromImageData(b)},loadPixels:r,toImageData:function(){return this.isRemote?
this.sourceImg:this.__isDirty?Ma(this.sourceImg).context.getImageData(0,0,this.width,this.height):this.imageData},toDataURL:function(){if(this.isRemote)throw"Image is loaded remotely. Cannot create dataURI.";return Ma(this.imageData).canvas.toDataURL()},fromImageData:function(a){var b=a.width,e=a.height,d=n.createElement("canvas"),f=d.getContext("2d");this.width=d.width=b;this.height=d.height=e;f.putImageData(a,0,0);this.format=c.ARGB;this.imageData=a;this.sourceImg=d}};e.PImage=Ia;e.createImage=
function(a,b,e){return new Ia(a,b,e)};e.loadImage=function(a,b,e){if(ea.imageCache.images[a])return b=new Ia(ea.imageCache.images[a]),b.loaded=!0,b;b=new Ia;var c=n.createElement("img");b.sourceImg=c;c.onload=function(a,b,e){return function(){b.fromHTMLImageData(a);b.loaded=!0;e&&e()}}(c,b,e);c.src=a;return b};e.requestImage=e.loadImage;e.get=function(a,b,d,f,g){if(void 0!==g)return Kb(a,b,d,f,g);if(void 0!==f)return Jb(a,b,d,f);if(void 0!==d){if(d.isRemote)throw"Image is loaded remotely. Cannot get x,y.";
a=4*b*d.width+4*a;d=d.imageData.data;return d[a+3]<<24&c.ALPHA_MASK|d[a]<<16&c.RED_MASK|d[a+1]<<8&c.GREEN_MASK|d[a+2]&c.BLUE_MASK}return void 0!==b?(a>=e.width||0>a||0>b||b>=e.height?d=0:Ob?(a=4*((0|a)+e.width*(0|b)),d=e.imageData.data,d=d[a+3]<<24&c.ALPHA_MASK|d[a]<<16&c.RED_MASK|d[a+1]<<8&c.GREEN_MASK|d[a+2]&c.BLUE_MASK):(d=e.toImageData(0|a,0|b,1,1).data,d=d[3]<<24&c.ALPHA_MASK|d[0]<<16&c.RED_MASK|d[1]<<8&c.GREEN_MASK|d[2]&c.BLUE_MASK),d):void 0!==a?Kb(0,0,a.width,a.height,a):Jb(0,0,e.width,e.height)};
e.createGraphics=function(a,b,e){var c=new P;c.size(a,b,e);c.background(0,0);return c};e.set=function(a,b,c,d){if(3===arguments.length)"number"===typeof c?a<e.width&&(0<=a&&0<=b&&b<e.height)&&(Ob||(e.loadPixels(),null===Hc&&(Pc=h,Hc=new Zb),Ob=!0,h=Hc,Zc=0),e.pixels.setPixel((0|a)+e.width*(0|b),c),++Zc>$c&&Wa()):(c instanceof Ia||c.__isPImage)&&e.image(c,a,b);else if(4===arguments.length){if(d.isRemote)throw"Image is loaded remotely. Cannot set x,y.";var f=e.color.toArray(c),g=4*b*d.width+4*a,k=d.imageData.data;
k[g]=f[0];k[g+1]=f[1];k[g+2]=f[2];k[g+3]=f[3]}};e.imageData={};e.pixels={getLength:function(){return e.imageData.data.length?e.imageData.data.length/4:0},getPixel:function(a){a*=4;var b=e.imageData.data;return b[a+3]<<24&4278190080|b[a+0]<<16&16711680|b[a+1]<<8&65280|b[a+2]&255},setPixel:function(a,b){var c=4*a,d=e.imageData.data;d[c+0]=(b&16711680)>>>16;d[c+1]=(b&65280)>>>8;d[c+2]=b&255;d[c+3]=(b&4278190080)>>>24},toArray:function(){for(var a=[],b=e.imageData.width*e.imageData.height,c=e.imageData.data,
d=0,f=0;d<b;d++,f+=4)a.push(c[f+3]<<24&4278190080|c[f+0]<<16&16711680|c[f+1]<<8&65280|c[f+2]&255);return a},set:function(a){for(var b=0,e=a.length;b<e;b++)this.setPixel(b,a[b])}};e.loadPixels=function(){e.imageData=ca.$ensureContext().getImageData(0,0,e.width,e.height)};e.updatePixels=function(){e.imageData&&ca.$ensureContext().putImageData(e.imageData,0,0)};e.hint=function(a){var b=ca.$ensureContext();a===c.DISABLE_DEPTH_TEST?(b.disable(b.DEPTH_TEST),b.depthMask(!1),b.clear(b.DEPTH_BUFFER_BIT)):
a===c.ENABLE_DEPTH_TEST?(b.enable(b.DEPTH_TEST),b.depthMask(!0)):a===c.ENABLE_OPENGL_2X_SMOOTH||a===c.ENABLE_OPENGL_4X_SMOOTH?Aa=!0:a===c.DISABLE_OPENGL_2X_SMOOTH&&(Aa=!1)};var ld=function(a,b,c,d){if(a instanceof Ia||a.__isPImage){if(!a.loaded)throw"Error using image in background(): PImage not loaded.";if(a.width!==e.width||a.height!==e.height)throw"Background image must be the same dimensions as the canvas.";}else a=e.color(a,b,c,d);jb=a};I.prototype.background=function(a,b,c,d){a!==g&&ld(a,b,
c,d);jb instanceof Ia||jb.__isPImage?(h.save(),h.setTransform(1,0,0,1,0,0),e.image(jb,0,0)):(h.save(),h.setTransform(1,0,0,1,0,0),e.alpha(jb)!==ja&&h.clearRect(0,0,e.width,e.height),h.fillStyle=e.color.toString(jb),h.fillRect(0,0,e.width,e.height),U=!0);ya()};B.prototype.background=function(a,b,c,d){0<arguments.length&&ld(a,b,c,d);var f=e.color.toGLArray(jb);h.clearColor(f[0],f[1],f[2],f[3]);h.clear(h.COLOR_BUFFER_BIT|h.DEPTH_BUFFER_BIT)};I.prototype.image=function(a,b,e,c,d){b=Math.round(b);e=Math.round(e);
if(0<a.width){var f=nc(b||0,e||0,c||a.width,d||a.height,4>arguments.length);if(a.sourceImg&&null===fb){var g=a.sourceImg;a.__isDirty&&a.updatePixels();h.drawImage(g,0,0,g.width,g.height,f.x,f.y,f.w,f.h)}else g=a.toImageData(),null!==fb&&(fb(g),a.__isDirty=!0),h.drawImage(Ma(g).canvas,0,0,a.width,a.height,f.x,f.y,f.w,f.h)}};B.prototype.image=function(a,b,c,d,f){0<a.width&&(b=Math.round(b),c=Math.round(c),d=d||a.width,f=f||a.height,e.beginShape(e.QUADS),e.texture(a),e.vertex(b,c,0,0,0),e.vertex(b,c+
f,0,0,f),e.vertex(b+d,c+f,0,d,f),e.vertex(b+d,c,0,d,0),e.endShape())};e.tint=function(a,b,c,d){a=e.color(a,b,c,d);var f=e.red(a)/va,g=e.green(a)/Ga,h=e.blue(a)/wa,k=e.alpha(a)/ja;fb=function(a){var b=a.data;a=4*a.width*a.height;for(var c=0;c<a;)b[c++]*=f,b[c++]*=g,b[c++]*=h,b[c++]*=k};vc=function(a){for(var b=0;b<a.length;)a[b++]=f,a[b++]=g,a[b++]=h,a[b++]=k}};e.noTint=function(){vc=fb=null};e.copy=function(a,b,d,f,h,k,l,m,n){n===g&&(n=m,m=l,l=k,k=h,h=f,f=d,d=b,b=a,a=e);e.blend(a,b,d,f,h,k,l,m,n,
c.REPLACE)};e.blend=function(a,b,c,d,f,h,k,l,m,n,p){if(a.isRemote)throw"Image is loaded remotely. Cannot blend image.";n===g&&(n=m,m=l,l=k,k=h,h=f,f=d,d=c,c=b,b=a,a=e);d=b+d;f=c+f;l=h+l;m=k+m;var r=p||e;p!==g&&n!==g||e.loadPixels();a.loadPixels();a===e&&e.intersect(b,c,d,f,h,k,l,m)?e.blit_resize(e.get(b,c,d-b,f-c),0,0,d-b-1,f-c-1,r.imageData.data,r.width,r.height,h,k,l,m,n):e.blit_resize(a,b,c,d,f,r.imageData.data,r.width,r.height,h,k,l,m,n);p===g&&e.updatePixels()};var md=function(a,b){var c=0,d=
b.pixels.getLength(),e=new O(d),f,g,h,k,l,m,n,p,r,u,q,w;if(a)for(;c<d;)for(f=c,g=c+b.width;c<g;)h=k=b.pixels.getPixel(c),m=c-1,l=c+1,n=c-b.width,p=c+b.width,m<f&&(m=c),l>=g&&(l=c),0>n&&(n=0),p>=d&&(p=c),n=b.pixels.getPixel(n),m=b.pixels.getPixel(m),p=b.pixels.getPixel(p),l=b.pixels.getPixel(l),h=77*(h>>16&255)+151*(h>>8&255)+28*(h&255),u=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),r=77*(l>>16&255)+151*(l>>8&255)+28*(l&255),q=77*(n>>16&255)+151*(n>>8&255)+28*(n&255),w=77*(p>>16&255)+151*(p>>8&255)+28*
(p&255),u<h&&(k=m,h=u),r<h&&(k=l,h=r),q<h&&(k=n,h=q),w<h&&(k=p),e[c++]=k;else for(;c<d;)for(f=c,g=c+b.width;c<g;)h=k=b.pixels.getPixel(c),m=c-1,l=c+1,n=c-b.width,p=c+b.width,m<f&&(m=c),l>=g&&(l=c),0>n&&(n=0),p>=d&&(p=c),n=b.pixels.getPixel(n),m=b.pixels.getPixel(m),p=b.pixels.getPixel(p),l=b.pixels.getPixel(l),h=77*(h>>16&255)+151*(h>>8&255)+28*(h&255),u=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),r=77*(l>>16&255)+151*(l>>8&255)+28*(l&255),q=77*(n>>16&255)+151*(n>>8&255)+28*(n&255),w=77*(p>>16&255)+
151*(p>>8&255)+28*(p&255),u>h&&(k=m,h=u),r>h&&(k=l,h=r),q>h&&(k=n,h=q),w>h&&(k=p),e[c++]=k;b.pixels.set(e)};e.filter=function(a,b,d){var f,h,k,l;3===arguments.length?(d.loadPixels(),f=d):(e.loadPixels(),f=e);b===g&&(b=null);if(f.isRemote)throw"Image is loaded remotely. Cannot filter image.";var m=f.pixels.getLength();switch(a){case c.BLUR:var n=b||1,p=f,r,u,q,w,v,y,z,C,D;k=p.pixels.getLength();l=new A(k);m=new A(k);h=new A(k);k=new A(k);var F=0,E,I,H,n=e.floor(3.5*n),B,n=1>n?1:248>n?n:248;if(e.shared.blurRadius!==
n){e.shared.blurRadius=n;e.shared.blurKernelSize=1+(e.shared.blurRadius<<1);e.shared.blurKernel=new A(e.shared.blurKernelSize);var J=e.shared.blurKernel,K=e.shared.blurKernelSize;for(B=0;B<K;B++)J[B]=0;K=(n-1)*(n-1);for(B=1;B<n;B++)J[n+B]=J[void 0]=K;J[n]=n*n}n=p.height;B=p.width;J=e.shared.blurKernelSize;C=e.shared.blurRadius;var K=e.shared.blurKernel,L=p.imageData.data;for(I=0;I<n;I++){for(E=0;E<B;E++){q=u=r=w=p=0;y=E-C;if(0>y)v=-y,y=0;else{if(y>=B)break;v=0}for(H=v;H<J&&!(y>=B);H++)z=4*(y+F),v=
K[H],w+=v*L[z+3],r+=v*L[z],u+=v*L[z+1],q+=v*L[z+2],p+=v,y++;z=F+E;k[z]=w/p;l[z]=r/p;m[z]=u/p;h[z]=q/p}F+=B}F=0;C=-C;D=C*B;for(I=0;I<n;I++){for(E=0;E<B;E++){q=u=r=w=p=0;if(0>C)v=z=-C,y=E;else{if(C>=n)break;v=0;z=C;y=E+D}for(H=v;H<J&&!(z>=n);H++)v=K[H],w+=v*k[y],r+=v*l[y],u+=v*m[y],q+=v*h[y],p+=v,z++,y+=B;z=4*(E+F);L[z]=r/p;L[z+1]=u/p;L[z+2]=q/p;L[z+3]=w/p}F+=B;D+=B;C++}break;case c.GRAY:if(f.format===c.ALPHA){for(l=0;l<m;l++)h=255-f.pixels.getPixel(l),f.pixels.setPixel(l,4278190080|h<<16|h<<8|h);f.format=
c.RGB}else for(l=0;l<m;l++)h=f.pixels.getPixel(l),k=77*(h>>16&255)+151*(h>>8&255)+28*(h&255)>>8,f.pixels.setPixel(l,h&c.ALPHA_MASK|k<<16|k<<8|k);break;case c.INVERT:for(l=0;l<m;l++)f.pixels.setPixel(l,f.pixels.getPixel(l)^16777215);break;case c.POSTERIZE:if(null===b)throw"Use filter(POSTERIZE, int levels) instead of filter(POSTERIZE)";h=e.floor(b);if(2>h||255<h)throw"Levels must be between 2 and 255 for filter(POSTERIZE, levels)";k=h-1;for(l=0;l<m;l++)F=f.pixels.getPixel(l)>>16&255,n=f.pixels.getPixel(l)>>
8&255,B=f.pixels.getPixel(l)&255,F=255*(F*h>>8)/k,n=255*(n*h>>8)/k,B=255*(B*h>>8)/k,f.pixels.setPixel(l,4278190080&f.pixels.getPixel(l)|F<<16|n<<8|B);break;case c.OPAQUE:for(l=0;l<m;l++)f.pixels.setPixel(l,f.pixels.getPixel(l)|4278190080);f.format=c.RGB;break;case c.THRESHOLD:null===b&&(b=0.5);if(0>b||1<b)throw"Level must be between 0 and 1 for filter(THRESHOLD, level)";h=e.floor(255*b);for(l=0;l<m;l++)k=e.max((f.pixels.getPixel(l)&c.RED_MASK)>>16,e.max((f.pixels.getPixel(l)&c.GREEN_MASK)>>8,f.pixels.getPixel(l)&
c.BLUE_MASK)),f.pixels.setPixel(l,f.pixels.getPixel(l)&c.ALPHA_MASK|(k<h?0:16777215));break;case c.ERODE:md(!0,f);break;case c.DILATE:md(!1,f)}f.updatePixels()};e.shared={fracU:0,ifU:0,fracV:0,ifV:0,u1:0,u2:0,v1:0,v2:0,sX:0,sY:0,iw:0,iw1:0,ih1:0,ul:0,ll:0,ur:0,lr:0,cUL:0,cLL:0,cUR:0,cLR:0,srcXOffset:0,srcYOffset:0,r:0,g:0,b:0,a:0,srcBuffer:null,blurRadius:0,blurKernelSize:0,blurKernel:null};e.intersect=function(a,b,c,d,e,f,g,h){c=c-a+1;d=d-b+1;g=g-e+1;h=h-f+1;e<a?(g+=e-a,g>c&&(g=c)):(a=c+a-e,g>a&&
(g=a));f<b?(h+=f-b,h>d&&(h=d)):(b=d+b-f,h>b&&(h=b));return!(0>=g||0>=h)};var na={};na[c.BLEND]=e.modes.blend;na[c.ADD]=e.modes.add;na[c.SUBTRACT]=e.modes.subtract;na[c.LIGHTEST]=e.modes.lightest;na[c.DARKEST]=e.modes.darkest;na[c.REPLACE]=e.modes.replace;na[c.DIFFERENCE]=e.modes.difference;na[c.EXCLUSION]=e.modes.exclusion;na[c.MULTIPLY]=e.modes.multiply;na[c.SCREEN]=e.modes.screen;na[c.OVERLAY]=e.modes.overlay;na[c.HARD_LIGHT]=e.modes.hard_light;na[c.SOFT_LIGHT]=e.modes.soft_light;na[c.DODGE]=e.modes.dodge;
na[c.BURN]=e.modes.burn;e.blit_resize=function(a,b,d,f,g,h,k,l,m,n,p,r,u){0>b&&(b=0);0>d&&(d=0);f>=a.width&&(f=a.width-1);g>=a.height&&(g=a.height-1);f-=b;g-=d;p-=m;r-=n;if(!(0>=p||0>=r||0>=f||0>=g||m>=k||n>=l||b>=a.width||d>=a.height)){f=Math.floor(f/p*c.PRECISIONF);g=Math.floor(g/r*c.PRECISIONF);var q=e.shared;q.srcXOffset=Math.floor(0>m?-m*f:b*c.PRECISIONF);q.srcYOffset=Math.floor(0>n?-n*g:d*c.PRECISIONF);0>m&&(p+=m,m=0);0>n&&(r+=n,n=0);p=Math.min(p,k-m);r=Math.min(r,l-n);b=n*k+m;var w;q.srcBuffer=
a.imageData.data;q.iw=a.width;q.iw1=a.width-1;q.ih1=a.height-1;d=na[u];var v,y,z,A;m=c.ALPHA_MASK;n=c.RED_MASK;var B=c.GREEN_MASK,C=c.BLUE_MASK,F=c.PREC_MAXVAL,E=c.PRECISIONB,H=c.PREC_RED_SHIFT,I=c.PREC_ALPHA_SHIFT,D=q.srcBuffer,J=Math.min;for(u=0;u<r;u++){q.sX=q.srcXOffset;q.fracV=q.srcYOffset&F;q.ifV=F-q.fracV;q.v1=(q.srcYOffset>>E)*q.iw;q.v2=J((q.srcYOffset>>E)+1,q.ih1)*q.iw;for(a=0;a<p;a++)l=4*(b+a),w=h[l+3]<<24&m|h[l]<<16&n|h[l+1]<<8&B|h[l+2]&C,q.fracU=q.sX&F,q.ifU=F-q.fracU,q.ul=q.ifU*q.ifV>>
E,q.ll=q.ifU*q.fracV>>E,q.ur=q.fracU*q.ifV>>E,q.lr=q.fracU*q.fracV>>E,q.u1=q.sX>>E,q.u2=J(q.u1+1,q.iw1),v=4*(q.v1+q.u1),y=4*(q.v1+q.u2),z=4*(q.v2+q.u1),A=4*(q.v2+q.u2),q.cUL=D[v+3]<<24&m|D[v]<<16&n|D[v+1]<<8&B|D[v+2]&C,q.cUR=D[y+3]<<24&m|D[y]<<16&n|D[y+1]<<8&B|D[y+2]&C,q.cLL=D[z+3]<<24&m|D[z]<<16&n|D[z+1]<<8&B|D[z+2]&C,q.cLR=D[A+3]<<24&m|D[A]<<16&n|D[A+1]<<8&B|D[A+2]&C,q.r=q.ul*((q.cUL&n)>>16)+q.ll*((q.cLL&n)>>16)+q.ur*((q.cUR&n)>>16)+q.lr*((q.cLR&n)>>16)<<H&n,q.g=q.ul*(q.cUL&B)+q.ll*(q.cLL&B)+q.ur*
(q.cUR&B)+q.lr*(q.cLR&B)>>>E&B,q.b=q.ul*(q.cUL&C)+q.ll*(q.cLL&C)+q.ur*(q.cUR&C)+q.lr*(q.cLR&C)>>>E,q.a=q.ul*((q.cUL&m)>>>24)+q.ll*((q.cLL&m)>>>24)+q.ur*((q.cUR&m)>>>24)+q.lr*((q.cLR&m)>>>24)<<I&m,w=d(w,q.a|q.r|q.g|q.b),h[l]=(w&n)>>>16,h[l+1]=(w&B)>>>8,h[l+2]=w&C,h[l+3]=(w&m)>>>24,q.sX+=f;b+=k;q.srcYOffset+=g}}};e.loadFont=function(a,b){if(a===g)throw"font name required in loadFont.";if(-1===a.indexOf(".svg"))return b===g&&(b=ba.size),PFont.get(a,b);var c=e.loadGlyphs(a);return{name:a,css:"12px sans-serif",
glyph:!0,units_per_em:c.units_per_em,horiz_adv_x:1/c.units_per_em*c.horiz_adv_x,ascent:c.ascent,descent:c.descent,width:function(b){for(var c=0,d=b.length,f=0;f<d;f++)try{c+=parseFloat(e.glyphLook(e.glyphTable[a],b[f]).horiz_adv_x)}catch(g){P.debug(g)}return c/e.glyphTable[a].units_per_em}}};e.createFont=function(a,b){return e.loadFont(a,b)};e.textFont=function(a,b){b!==g&&(a.glyph||(a=PFont.get(a.name,b)),Pa=b);ba=a;Ab=ba.name;$a=ba.ascent;Oa=ba.descent;Ba=ba.leading;ca.$ensureContext().font=ba.css};
e.textSize=function(a){ba=PFont.get(Ab,a);Pa=a;$a=ba.ascent;Oa=ba.descent;Ba=ba.leading;ca.$ensureContext().font=ba.css};e.textAscent=function(){return $a};e.textDescent=function(){return Oa};e.textLeading=function(a){Ba=a};e.textAlign=function(a,b){nb=a;Za=b||c.BASELINE};I.prototype.textWidth=function(a){a=Xa(a).split(/\r?\n/g);var b=0,c,d=a.length;h.font=ba.css;for(c=0;c<d;++c)b=Math.max(b,ba.measureTextWidth(a[c]));return b|0};B.prototype.textWidth=function(a){a=Xa(a).split(/\r?\n/g);var b=0,c,
d=a.length;Ca===g&&(Ca=n.createElement("canvas"));var e=Ca.getContext("2d");e.font=ba.css;for(c=0;c<d;++c)b=Math.max(b,e.measureText(a[c]).width);return b|0};e.glyphLook=function(a,b){try{switch(b){case "1":return a.one;case "2":return a.two;case "3":return a.three;case "4":return a.four;case "5":return a.five;case "6":return a.six;case "7":return a.seven;case "8":return a.eight;case "9":return a.nine;case "0":return a.zero;case " ":return a.space;case "$":return a.dollar;case "!":return a.exclam;
case '"':return a.quotedbl;case "#":return a.numbersign;case "%":return a.percent;case "&":return a.ampersand;case "'":return a.quotesingle;case "(":return a.parenleft;case ")":return a.parenright;case "*":return a.asterisk;case "+":return a.plus;case ",":return a.comma;case "-":return a.hyphen;case ".":return a.period;case "/":return a.slash;case "_":return a.underscore;case ":":return a.colon;case ";":return a.semicolon;case "<":return a.less;case "=":return a.equal;case ">":return a.greater;case "?":return a.question;
case "@":return a.at;case "[":return a.bracketleft;case "\\":return a.backslash;case "]":return a.bracketright;case "^":return a.asciicircum;case "`":return a.grave;case "{":return a.braceleft;case "|":return a.bar;case "}":return a.braceright;case "~":return a.asciitilde;default:return a[b]}}catch(c){P.debug(c)}};I.prototype.text$line=function(a,b,d,f,g){f=f=0;if(ba.glyph){f=e.glyphTable[Ab];h.save();h.translate(b,d+Pa);g!==c.RIGHT&&g!==c.CENTER||f.width(a);b=1/f.units_per_em*Pa;h.scale(b,b);b=0;
for(d=a.length;b<d;b++)try{e.glyphLook(f,a[b]).draw()}catch(k){P.debug(k)}ya()}else if(a&&"fillText"in h){U&&(h.fillStyle=e.color.toString(N),U=!1);if(g===c.RIGHT||g===c.CENTER)f=ba.measureTextWidth(a),f=g===c.RIGHT?-f:-f/2;h.fillText(a,b+f,d)}};B.prototype.text$line=function(a,b,d,e,f){Ca===g&&(Ca=n.createElement("canvas"));var k=h;h=Ca.getContext("2d");h.font=ba.css;var l=ba.measureTextWidth(a);Ca.width=l;Ca.height=Pa;h=Ca.getContext("2d");h.font=ba.css;h.textBaseline="top";I.prototype.text$line(a,
0,0,0,c.LEFT);a=Ca.width/Ca.height;h=k;h.bindTexture(h.TEXTURE_2D,Vc);h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,Ca);h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,h.LINEAR);h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.LINEAR);h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE);h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE);k=0;f===c.RIGHT?k=-l:f===c.CENTER&&(k=-l/2);f=new J;l=0.5*Pa;f.translate(b+k-l/2,d-l,e);f.scale(-a*l,-l,l);f.translate(-1,-1,
-1);f.transpose();b=new J;b.scale(1,-1,1);b.apply(L.array());b.transpose();h.useProgram(K);da("aVertex2d",K,"aVertex",3,Ec);da("aTextureCoord2d",K,"aTextureCoord",2,Fc);Z("uSampler2d",K,"uSampler",[0]);Z("uIsDrawingText2d",K,"uIsDrawingText",!0);S("uModel2d",K,"uModel",!1,f.array());S("uView2d",K,"uView",!1,b.array());X("uColor2d",K,"uColor",qa);h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,Gc);h.drawElements(h.TRIANGLES,6,h.UNSIGNED_SHORT,0)};e.text=function(){jc!==c.SHAPE&&(3===arguments.length?$b(Xa(arguments[0]),
arguments[1],arguments[2],0):4===arguments.length?$b(Xa(arguments[0]),arguments[1],arguments[2],arguments[3]):5===arguments.length?wb(Xa(arguments[0]),arguments[1],arguments[2],arguments[3],arguments[4],0):6===arguments.length&&wb(Xa(arguments[0]),arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]))};e.textMode=function(a){jc=a};e.loadGlyphs=function(a){var b,c,d,f,k,l,p,q,r,u,w,v,y=function(a,b){var c=0,d=[],e,f=RegExp(a,"g");for(e=d[c]=f.exec(b);e;)c++,e=d[c]=f.exec(b);return d},z=
function(a){var e=y("[A-Za-z][0-9\\- ]+|Z",a);v="return {draw:function(){var curContext=beforePathDraw();curContext.beginPath();";q=a=l=k=f=d=c=b=0;r="";u=e.length-1;for(var g=0;g<u;g++){var m=e[g][0];a=y("[0-9\\-]+",m);switch(m[0]){case "M":b=parseFloat(a[0][0]);c=parseFloat(a[1][0]);v+="curContext.moveTo("+b+","+-c+");";break;case "L":b=parseFloat(a[0][0]);c=parseFloat(a[1][0]);v+="curContext.lineTo("+b+","+-c+");";break;case "H":b=parseFloat(a[0][0]);v+="curContext.lineTo("+b+","+-c+");";break;
case "V":c=parseFloat(a[0][0]);v+="curContext.lineTo("+b+","+-c+");";break;case "T":k=parseFloat(a[0][0]);l=parseFloat(a[1][0]);"Q"===r||"T"===r?(a=Math.sqrt(Math.pow(b-d,2)+Math.pow(f-c,2)),q=Math.PI+Math.atan2(d-b,f-c),d=b+Math.sin(q)*a,f=c+Math.cos(q)*a):(d=b,f=c);v+="curContext.quadraticCurveTo("+d+","+-f+","+k+","+-l+");";b=k;c=l;break;case "Q":d=parseFloat(a[0][0]);f=parseFloat(a[1][0]);k=parseFloat(a[2][0]);l=parseFloat(a[3][0]);v+="curContext.quadraticCurveTo("+d+","+-f+","+k+","+-l+");";
b=k;c=l;break;case "Z":v+="curContext.closePath();"}r=m[0]}v+="afterPathDraw();";v+="curContext.translate("+w+",0);";v+="}}";return(new Function("beforePathDraw","afterPathDraw",v))(function(){h.save();return ca.$ensureContext()},function(){Fa();ua();ya()})},A=function(b){var c=b.getElementsByTagName("font");e.glyphTable[a].horiz_adv_x=c[0].getAttribute("horiz-adv-x");c=b.getElementsByTagName("font-face")[0];e.glyphTable[a].units_per_em=parseFloat(c.getAttribute("units-per-em"));e.glyphTable[a].ascent=
parseFloat(c.getAttribute("ascent"));e.glyphTable[a].descent=parseFloat(c.getAttribute("descent"));b=b.getElementsByTagName("glyph");for(var c=b.length,d=0;d<c;d++){var f=b[d].getAttribute("unicode"),h=b[d].getAttribute("glyph-name");w=b[d].getAttribute("horiz-adv-x");null===w&&(w=e.glyphTable[a].horiz_adv_x);p=b[d].getAttribute("d");p!==g&&(v=z(p),e.glyphTable[a][h]={name:h,unicode:f,horiz_adv_x:w,draw:v.draw})}};e.glyphTable[a]={};(function(){var b;try{b=n.implementation.createDocument("","",null)}catch(c){P.debug(c.message);
return}try{b.async=!1,b.load(a),A(b.getElementsByTagName("svg")[0])}catch(d){P.debug(d);try{var e=new m.XMLHttpRequest;e.open("GET",a,!1);e.send(null);A(e.responseXML.documentElement)}catch(f){P.debug(d)}}})(a);return e.glyphTable[a]};e.param=function(a){var b="data-processing-"+a;if(V.hasAttribute(b))return V.getAttribute(b);for(var b=0,c=V.childNodes.length;b<c;++b){var d=V.childNodes.item(b);if(1===d.nodeType&&"param"===d.tagName.toLowerCase()&&d.getAttribute("name")===a)return d.getAttribute("value")}return ea.params.hasOwnProperty(a)?
ea.params[a]:null};D.prototype.translate=H("translate");D.prototype.transform=H("transform");D.prototype.scale=H("scale");D.prototype.pushMatrix=H("pushMatrix");D.prototype.popMatrix=H("popMatrix");D.prototype.resetMatrix=H("resetMatrix");D.prototype.applyMatrix=H("applyMatrix");D.prototype.rotate=H("rotate");D.prototype.rotateZ=H("rotateZ");D.prototype.shearX=H("shearX");D.prototype.shearY=H("shearY");D.prototype.redraw=H("redraw");D.prototype.toImageData=H("toImageData");D.prototype.ambientLight=
H("ambientLight");D.prototype.directionalLight=H("directionalLight");D.prototype.lightFalloff=H("lightFalloff");D.prototype.lightSpecular=H("lightSpecular");D.prototype.pointLight=H("pointLight");D.prototype.noLights=H("noLights");D.prototype.spotLight=H("spotLight");D.prototype.beginCamera=H("beginCamera");D.prototype.endCamera=H("endCamera");D.prototype.frustum=H("frustum");D.prototype.box=H("box");D.prototype.sphere=H("sphere");D.prototype.ambient=H("ambient");D.prototype.emissive=H("emissive");
D.prototype.shininess=H("shininess");D.prototype.specular=H("specular");D.prototype.fill=H("fill");D.prototype.stroke=H("stroke");D.prototype.strokeWeight=H("strokeWeight");D.prototype.smooth=H("smooth");D.prototype.noSmooth=H("noSmooth");D.prototype.point=H("point");D.prototype.vertex=H("vertex");D.prototype.endShape=H("endShape");D.prototype.bezierVertex=H("bezierVertex");D.prototype.curveVertex=H("curveVertex");D.prototype.curve=H("curve");D.prototype.line=H("line");D.prototype.bezier=H("bezier");
D.prototype.rect=H("rect");D.prototype.ellipse=H("ellipse");D.prototype.background=H("background");D.prototype.image=H("image");D.prototype.textWidth=H("textWidth");D.prototype.text$line=H("text$line");D.prototype.$ensureContext=H("$ensureContext");D.prototype.$newPMatrix=H("$newPMatrix");D.prototype.size=function(a,b,d){Na(d===c.WEBGL?"3D":"2D");e.size(a,b,d)};D.prototype.$init=r;I.prototype.$init=function(){e.size(e.width,e.height);h.lineCap="round";e.noSmooth();e.disableContextMenu()};B.prototype.$init=
function(){e.use3DContext=!0;e.disableContextMenu()};Y.prototype.$ensureContext=function(){return h};V.getAttribute("tabindex")||V.setAttribute("tabindex",0);if(Nb)ea=new P.Sketch,Na(),e.size=function(a,b,d){d&&d===c.WEBGL?Na("3D"):Na("2D");e.size(a,b,d)};else{ea=k instanceof P.Sketch?k:"function"===typeof k?new P.Sketch(k):k?P.compile(k):new P.Sketch(function(){});e.externals.sketch=ea;Na();V.onfocus=function(){e.focused=!0};V.onblur=function(){e.focused=!1;ea.options.globalKeyEvents||(e.__keyPressed=
!1,gb=[],ob=null)};ea.options.pauseOnBlur&&(Ka(m,"focus",function(){ia&&e.loop()}),Ka(m,"blur",function(){ia&&Ea&&(e.noLoop(),ia=!0);e.__keyPressed=!1;gb=[];ob=null}));var Lc=ea.options.globalKeyEvents?m:V;Ka(Lc,"keydown",Lb);Ka(Lc,"keypress",cc);Ka(Lc,"keyup",Mb);for(var Vb in P.lib)P.lib.hasOwnProperty(Vb)&&(P.lib[Vb].hasOwnProperty("attach")?P.lib[Vb].attach(e):P.lib[Vb]instanceof Function&&P.lib[Vb].call(this));var nd=function(a){if(ea.imageCache.pending||PFont.preloading.pending(100))m.setTimeout(function(){nd(a)},
100);else{if(m.opera){var b,c,d=ea.imageCache.operaCache;for(b in d)d.hasOwnProperty(b)&&(c=d[b],null!==c&&n.body.removeChild(c),delete d[b])}ea.attach(a,p);ea.onLoad(a);a.setup&&(a.setup(),a.resetMatrix(),ea.onSetup());Wa();a.draw&&(ia?a.loop():a.redraw())}};this.externals.canvas.id!==g&&this.externals.canvas.id.length||(this.externals.canvas.id="__processing"+q.length);Wb[this.externals.canvas.id]=q.length;q.push(this);nd(e)}};P.debug=function(){return"console"in m?function(a){m.console.log("Processing.js: "+
a)}:r}();P.prototype=p;P.instances=q;P.getInstanceById=function(a){return q[Wb[a]]};(function(a){function b(a){return function(){throw"Processing.js does not support "+a+".";}}for(var c="open() createOutput() createInput() BufferedReader selectFolder() dataPath() createWriter() selectOutput() beginRecord() saveStream() endRecord() selectInput() saveBytes() createReader() beginRaw() endRaw() PrintWriter delay()".split(" "),d=c.length,f,g;d--;)f=c[d],g=f.replace("()",""),a[g]=b(f)})(p);return P}},{}],
27:[function(C,y,O){var k={virtEquals:C("./Helpers/virtEquals"),virtHashCode:C("./Helpers/virtHashCode"),ObjectIterator:C("./Helpers/ObjectIterator"),PConstants:C("./Helpers/PConstants"),ArrayList:C("./Objects/ArrayList"),HashMap:C("./Objects/HashMap"),PVector:C("./Objects/PVector"),PFont:C("./Objects/PFont"),Char:C("./Objects/Char"),XMLAttribute:C("./Objects/XMLAttribute"),XMLElement:C("./Objects/XMLElement"),PMatrix2D:C("./Objects/PMatrix2D"),PMatrix3D:C("./Objects/PMatrix3D"),PShape:C("./Objects/PShape"),
colors:C("./Objects/webcolors"),PShapeSVG:C("./Objects/PShapeSVG"),CommonFunctions:C("./P5Functions/commonFunctions"),defaultScope:C("./Helpers/defaultScope"),Processing:C("./Processing"),setupParser:C("./Parser/Parser"),finalize:C("./Helpers/finalizeProcessing")};k.extend={withMath:C("./P5Functions/Math.js"),withProxyFunctions:C("./P5Functions/JavaProxyFunctions")(k.virtHashCode,k.virtEquals),withTouch:C("./P5Functions/touchmouse"),withCommonFunctions:k.CommonFunctions.withCommonFunctions};y.exports=
function(g,l){var p=function(){},a=k.virtEquals,b=k.virtHashCode,f=k.PConstants,d=k.CommonFunctions,m=k.ObjectIterator,n=k.Char,r=k.XMLAttribute(),c=k.ArrayList({virtHashCode:b,virtEquals:a}),a=k.HashMap({virtHashCode:b,virtEquals:a}),b=k.PVector({PConstants:f}),y=k.PFont({Browser:g,noop:p}),r=k.XMLElement({Browser:g,XMLAttribute:r}),O=k.PMatrix2D({p:d}),F=k.PMatrix3D({p:d}),O=k.PShape({PConstants:f,PMatrix2D:O,PMatrix3D:F}),d=k.PShapeSVG({CommonFunctions:d,PConstants:f,PShape:O,XMLElement:r,colors:k.colors}),
f=k.defaultScope({ArrayList:c,HashMap:a,PVector:b,PFont:y,PShapeSVG:d,ObjectIterator:m,PConstants:f,Char:n,XMLElement:r,XML:r}),m=k.Processing({defaultScope:f,Browser:g,extend:k.extend,noop:p}),m=k.setupParser(m,{aFunctions:l,defaultScope:f});return m=k.finalize(m,{version:C("../package.json").version,isDomPresent:g.isDomPresent,window:g.window,document:g.document,noop:p})}},{"../package.json":2,"./Helpers/ObjectIterator":3,"./Helpers/PConstants":4,"./Helpers/defaultScope":5,"./Helpers/finalizeProcessing":6,
"./Helpers/virtEquals":7,"./Helpers/virtHashCode":8,"./Objects/ArrayList":9,"./Objects/Char":10,"./Objects/HashMap":11,"./Objects/PFont":12,"./Objects/PMatrix2D":13,"./Objects/PMatrix3D":14,"./Objects/PShape":15,"./Objects/PShapeSVG":16,"./Objects/PVector":17,"./Objects/XMLAttribute":18,"./Objects/XMLElement":19,"./Objects/webcolors":20,"./P5Functions/JavaProxyFunctions":21,"./P5Functions/Math.js":22,"./P5Functions/commonFunctions":23,"./P5Functions/touchmouse":24,"./Parser/Parser":25,"./Processing":26}]},
{},[1]);