-
Notifications
You must be signed in to change notification settings - Fork 191
/
3Dmol-min.js
548 lines (548 loc) · 285 KB
/
3Dmol-min.js
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
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
(function(r,n){function wa(a){var b=a.length,d=c.type(a);return c.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===d||"function"!==d&&(0===b||"number"===typeof b&&0<b&&b-1 in a)}function Qb(a){var b=Sa[a]={};c.each(a.match(O)||[],function(a,c){b[c]=!0});return b}function Ta(a,b,d,e){if(c.acceptData(a)){var f=c.expando,g="string"===typeof b,h=a.nodeType,k=h?c.cache:a,l=h?a[f]:a[f]&&f;if(l&&k[l]&&(e||k[l].data)||!g||d!==n){l||(h?a[f]=l=G.pop()||c.guid++:l=f);k[l]||(k[l]={},h||(k[l].toJSON=c.noop));if("object"===
typeof b||"function"===typeof b)e?k[l]=c.extend(k[l],b):k[l].data=c.extend(k[l].data,b);a=k[l];e||(a.data||(a.data={}),a=a.data);d!==n&&(a[c.camelCase(b)]=d);g?(d=a[b],null==d&&(d=a[c.camelCase(b)])):d=a;return d}}}function Ua(a,b,d){if(c.acceptData(a)){var e,f,g,h=a.nodeType,k=h?c.cache:a,l=h?a[c.expando]:c.expando;if(k[l]){if(b&&(g=d?k[l]:k[l].data)){c.isArray(b)?b=b.concat(c.map(b,c.camelCase)):b in g?b=[b]:(b=c.camelCase(b),b=b in g?[b]:b.split(" "));e=0;for(f=b.length;e<f;e++)delete g[b[e]];
if(!(d?xa:c.isEmptyObject)(g))return}if(!d&&(delete k[l].data,!xa(k[l])))return;h?c.cleanData([a],!0):c.support.deleteExpando||k!=k.window?delete k[l]:k[l]=null}}}function Va(a,b,d){if(d===n&&1===a.nodeType)if(d="data-"+b.replace(Rb,"-$1").toLowerCase(),d=a.getAttribute(d),"string"===typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:Sb.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=n;return d}function xa(a){for(var b in a)if(("data"!==b||!c.isEmptyObject(a[b]))&&"toJSON"!==
b)return!1;return!0}function aa(){return!0}function Q(){return!1}function Wa(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function Xa(a,b,d){b=b||0;if(c.isFunction(b))return c.grep(a,function(a,c){return!!b.call(a,c,a)===d});if(b.nodeType)return c.grep(a,function(a){return a===b===d});if("string"===typeof b){var e=c.grep(a,function(a){return 1===a.nodeType});if(Tb.test(b))return c.filter(b,e,!d);b=c.filter(b,e)}return c.grep(a,function(a){return 0<=c.inArray(a,b)===d})}function Ya(a){var b=Za.split("|");
a=a.createDocumentFragment();if(a.createElement)for(;b.length;)a.createElement(b.pop());return a}function Ub(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function $a(a){var b=a.getAttributeNode("type");a.type=(b&&b.specified)+"/"+a.type;return a}function ab(a){var b=Vb.exec(a.type);b?a.type=b[1]:a.removeAttribute("type");return a}function ya(a,b){for(var d,e=0;null!=(d=a[e]);e++)c._data(d,"globalEval",!b||c._data(b[e],"globalEval"))}function bb(a,b){if(1===
b.nodeType&&c.hasData(a)){var d,e,f;e=c._data(a);var g=c._data(b,e),h=e.events;if(h)for(d in delete g.handle,g.events={},h)for(e=0,f=h[d].length;e<f;e++)c.event.add(b,d,h[d][e]);g.data&&(g.data=c.extend({},g.data))}}function A(a,b){var d,e,f=0,g=typeof a.getElementsByTagName!==y?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==y?a.querySelectorAll(b||"*"):n;if(!g)for(g=[],d=a.childNodes||a;null!=(e=d[f]);f++)!b||c.nodeName(e,b)?g.push(e):c.merge(g,A(e,b));return b===n||b&&c.nodeName(a,b)?
c.merge([a],g):g}function Wb(a){za.test(a.type)&&(a.defaultChecked=a.checked)}function cb(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),e=b,f=db.length;f--;)if(b=db[f]+c,b in a)return b;return e}function da(a,b){a=b||a;return"none"===c.css(a,"display")||!c.contains(a.ownerDocument,a)}function eb(a,b){for(var d,e,f,g=[],h=0,k=a.length;h<k;h++)e=a[h],e.style&&(g[h]=c._data(e,"olddisplay"),d=e.style.display,b?(g[h]||"none"!==d||(e.style.display=""),""===e.style.display&&da(e)&&
(g[h]=c._data(e,"olddisplay",fb(e.nodeName)))):g[h]||(f=da(e),(d&&"none"!==d||!f)&&c._data(e,"olddisplay",f?d:c.css(e,"display"))));for(h=0;h<k;h++)e=a[h],!e.style||b&&"none"!==e.style.display&&""!==e.style.display||(e.style.display=b?g[h]||"":"none");return a}function gb(a,b,c){return(a=Xb.exec(b))?Math.max(0,a[1]-(c||0))+(a[2]||"px"):b}function hb(a,b,d,e,f){b=d===(e?"border":"content")?4:"width"===b?1:0;for(var g=0;4>b;b+=2)"margin"===d&&(g+=c.css(a,d+R[b],!0,f)),e?("content"===d&&(g-=c.css(a,
"padding"+R[b],!0,f)),"margin"!==d&&(g-=c.css(a,"border"+R[b]+"Width",!0,f))):(g+=c.css(a,"padding"+R[b],!0,f),"padding"!==d&&(g+=c.css(a,"border"+R[b]+"Width",!0,f)));return g}function ib(a,b,d){var e=!0,f="width"===b?a.offsetWidth:a.offsetHeight,g=S(a),h=c.support.boxSizing&&"border-box"===c.css(a,"boxSizing",!1,g);if(0>=f||null==f){f=T(a,b,g);if(0>f||null==f)f=a.style[b];if(ia.test(f))return f;e=h&&(c.support.boxSizingReliable||f===a.style[b]);f=parseFloat(f)||0}return f+hb(a,b,d||(h?"border":
"content"),e,g)+"px"}function fb(a){var b=p,d=jb[a];d||(d=kb(a,b),"none"!==d&&d||(ea=(ea||c("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(b.documentElement),b=(ea[0].contentWindow||ea[0].contentDocument).document,b.write("<!doctype html><html><body>"),b.close(),d=kb(a,b),ea.detach()),jb[a]=d);return d}function kb(a,b){var d=c(b.createElement(a)).appendTo(b.body),e=c.css(d[0],"display");d.remove();return e}function Aa(a,b,d,e){var f;if(c.isArray(b))c.each(b,
function(b,c){d||Yb.test(a)?e(a,c):Aa(a+"["+("object"===typeof c?b:"")+"]",c,d,e)});else if(d||"object"!==c.type(b))e(a,b);else for(f in b)Aa(a+"["+f+"]",b[f],d,e)}function lb(a){return function(b,d){"string"!==typeof b&&(d=b,b="*");var e,f=0,g=b.toLowerCase().match(O)||[];if(c.isFunction(d))for(;e=g[f++];)"+"===e[0]?(e=e.slice(1)||"*",(a[e]=a[e]||[]).unshift(d)):(a[e]=a[e]||[]).push(d)}}function mb(a,b,d,e){function f(k){var l;g[k]=!0;c.each(a[k]||[],function(a,c){var k=c(b,d,e);if("string"===typeof k&&
!h&&!g[k])return b.dataTypes.unshift(k),f(k),!1;if(h)return!(l=k)});return l}var g={},h=a===Ba;return f(b.dataTypes[0])||!g["*"]&&f("*")}function Ca(a,b){var d,e,f=c.ajaxSettings.flatOptions||{};for(e in b)b[e]!==n&&((f[e]?a:d||(d={}))[e]=b[e]);d&&c.extend(!0,a,d);return a}function nb(){try{return new r.XMLHttpRequest}catch(a){}}function ob(){setTimeout(function(){Y=n});return Y=c.now()}function Zb(a,b){c.each(b,function(b,c){for(var f=(fa[b]||[]).concat(fa["*"]),g=0,h=f.length;g<h&&!f[g].call(a,
b,c);g++);})}function pb(a,b,d){var e,f=0,g=ja.length,h=c.Deferred().always(function(){delete k.elem}),k=function(){if(e)return!1;for(var b=Y||ob(),b=Math.max(0,l.startTime+l.duration-b),c=1-(b/l.duration||0),d=0,f=l.tweens.length;d<f;d++)l.tweens[d].run(c);h.notifyWith(a,[l,c,b]);if(1>c&&f)return b;h.resolveWith(a,[l]);return!1},l=h.promise({elem:a,props:c.extend({},b),opts:c.extend(!0,{specialEasing:{}},d),originalProperties:b,originalOptions:d,startTime:Y||ob(),duration:d.duration,tweens:[],createTween:function(b,
d){var e=c.Tween(a,l.opts,b,d,l.opts.specialEasing[b]||l.opts.easing);l.tweens.push(e);return e},stop:function(b){var c=0,d=b?l.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)l.tweens[c].run(1);b?h.resolveWith(a,[l,b]):h.rejectWith(a,[l,b]);return this}});d=l.props;for($b(d,l.opts.specialEasing);f<g;f++)if(b=ja[f].call(l,a,d,l.opts))return b;Zb(l,d);c.isFunction(l.opts.start)&&l.opts.start.call(a,l);c.fx.timer(c.extend(k,{elem:a,anim:l,queue:l.opts.queue}));return l.progress(l.opts.progress).done(l.opts.done,
l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function $b(a,b){var d,e,f,g,h;for(f in a)if(e=c.camelCase(f),g=b[e],d=a[f],c.isArray(d)&&(g=d[1],d=a[f]=d[0]),f!==e&&(a[e]=d,delete a[f]),(h=c.cssHooks[e])&&"expand"in h)for(f in d=h.expand(d),delete a[e],d)f in a||(a[f]=d[f],b[f]=g);else b[e]=g}function z(a,b,c,e,f){return new z.prototype.init(a,b,c,e,f)}function ka(a,b){var c,e={height:a},f=0;for(b=b?1:0;4>f;f+=2-b)c=R[f],e["margin"+c]=e["padding"+c]=a;b&&(e.opacity=e.width=a);return e}function qb(a){return c.isWindow(a)?
a:9===a.nodeType?a.defaultView||a.parentWindow:!1}var la,rb,y=typeof n,p=r.document,ac=r.location,bc=r.jQuery,cc=r.$,ma={},G=[],sb=G.concat,Da=G.push,B=G.slice,tb=G.indexOf,dc=ma.toString,ga=ma.hasOwnProperty,Ea="1.9.1".trim,c=function(a,b){return new c.fn.init(a,b,rb)},na=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,O=/\S+/g,ec=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,fc=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,ub=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,gc=/^[\],:{}\s]*$/,hc=/(?:^|:|,)(?:\s*\[)+/g,ic=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
jc=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,kc=/^-ms-/,lc=/-([\da-z])/gi,mc=function(a,b){return b.toUpperCase()},L=function(a){if(p.addEventListener||"load"===a.type||"complete"===p.readyState)vb(),c.ready()},vb=function(){p.addEventListener?(p.removeEventListener("DOMContentLoaded",L,!1),r.removeEventListener("load",L,!1)):(p.detachEvent("onreadystatechange",L),r.detachEvent("onload",L))};c.fn=c.prototype={jquery:"1.9.1",constructor:c,init:function(a,b,d){var e;if(!a)return this;
if("string"===typeof a){e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:fc.exec(a);if(!e||!e[1]&&b)return!b||b.jquery?(b||d).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof c?b[0]:b,c.merge(this,c.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:p,!0)),ub.test(e[1])&&c.isPlainObject(b))for(e in b)if(c.isFunction(this[e]))this[e](b[e]);else this.attr(e,b[e])}else{if((b=p.getElementById(e[2]))&&b.parentNode){if(b.id!==e[2])return d.find(a);this.length=1;this[0]=
b}this.context=p;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(c.isFunction(a))return d.ready(a);a.selector!==n&&(this.selector=a.selector,this.context=a.context);return c.makeArray(a,this)},selector:"",length:0,size:function(){return this.length},toArray:function(){return B.call(this)},get:function(a){return null==a?this.toArray():0>a?this[this.length+a]:this[a]},pushStack:function(a){a=c.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;
return a},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.ready.promise().done(a);return this},slice:function(){return this.pushStack(B.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&a<b?[this[a]]:[])},map:function(a){return this.pushStack(c.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:Da,
sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a,b,d,e,f,g=arguments[0]||{},h=1,k=arguments.length,l=!1;"boolean"===typeof g&&(l=g,g=arguments[1]||{},h=2);"object"===typeof g||c.isFunction(g)||(g={});k===h&&(g=this,--h);for(;h<k;h++)if(null!=(f=arguments[h]))for(e in f)a=g[e],d=f[e],g!==d&&(l&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,a=a&&c.isArray(a)?a:[]):a=a&&c.isPlainObject(a)?a:{},g[e]=c.extend(l,a,d)):d!==n&&(g[e]=d));return g};c.extend({noConflict:function(a){r.$===
c&&(r.$=cc);a&&r.jQuery===c&&(r.jQuery=bc);return c},isReady:!1,readyWait:1,holdReady:function(a){a?c.readyWait++:c.ready(!0)},ready:function(a){if(!0===a?!--c.readyWait:!c.isReady){if(!p.body)return setTimeout(c.ready);c.isReady=!0;!0!==a&&0<--c.readyWait||(la.resolveWith(p,[c]),c.fn.trigger&&c(p).trigger("ready").off("ready"))}},isFunction:function(a){return"function"===c.type(a)},isArray:Array.isArray||function(a){return"array"===c.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&
isFinite(a)},type:function(a){return null==a?String(a):"object"===typeof a||"function"===typeof a?ma[dc.call(a)]||"object":typeof a},isPlainObject:function(a){if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!ga.call(a,"constructor")&&!ga.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}for(var d in a);return d===n||ga.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw Error(a);},parseHTML:function(a,
b,d){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(d=b,b=!1);b=b||p;var e=ub.exec(a);d=!d&&[];if(e)return[b.createElement(e[1])];e=c.buildFragment([a],b,d);d&&c(d).remove();return c.merge([],e.childNodes)},parseJSON:function(a){if(r.JSON&&r.JSON.parse)return r.JSON.parse(a);if(null===a)return a;if("string"===typeof a&&(a=c.trim(a))&&gc.test(a.replace(ic,"@").replace(jc,"]").replace(hc,"")))return(new Function("return "+a))();c.error("Invalid JSON: "+a)},parseXML:function(a){var b,
d;if(!a||"string"!==typeof a)return null;try{r.DOMParser?(d=new DOMParser,b=d.parseFromString(a,"text/xml")):(b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a))}catch(e){b=n}b&&b.documentElement&&!b.getElementsByTagName("parsererror").length||c.error("Invalid XML: "+a);return b},noop:function(){},globalEval:function(a){a&&c.trim(a)&&(r.execScript||function(a){r.eval.call(r,a)})(a)},camelCase:function(a){return a.replace(kc,"ms-").replace(lc,mc)},nodeName:function(a,b){return a.nodeName&&
a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var e,f=0,g=a.length;e=wa(a);if(c)if(e)for(;f<g&&(e=b.apply(a[f],c),!1!==e);f++);else for(f in a){if(e=b.apply(a[f],c),!1===e)break}else if(e)for(;f<g&&(e=b.call(a[f],f,a[f]),!1!==e);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),!1===e)break;return a},trim:Ea&&!Ea.call("\ufeff\u00a0")?function(a){return null==a?"":Ea.call(a)}:function(a){return null==a?"":(a+"").replace(ec,"")},makeArray:function(a,b){var d=b||[];null!=a&&(wa(Object(a))?
c.merge(d,"string"===typeof a?[a]:a):Da.call(d,a));return d},inArray:function(a,b,c){var e;if(b){if(tb)return tb.call(b,a,c);e=b.length;for(c=c?0>c?Math.max(0,e+c):c:0;c<e;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=b.length,e=a.length,f=0;if("number"===typeof c)for(;f<c;f++)a[e++]=b[f];else for(;b[f]!==n;)a[e++]=b[f++];a.length=e;return a},grep:function(a,b,c){var e,f=[],g=0,h=a.length;for(c=!!c;g<h;g++)e=!!b(a[g],g),c!==e&&f.push(a[g]);return f},map:function(a,b,c){var e,
f=0,g=a.length,h=[];if(wa(a))for(;f<g;f++)e=b(a[f],f,c),null!=e&&(h[h.length]=e);else for(f in a)e=b(a[f],f,c),null!=e&&(h[h.length]=e);return sb.apply([],h)},guid:1,proxy:function(a,b){var d,e;"string"===typeof b&&(e=a[b],b=a,a=e);if(!c.isFunction(a))return n;d=B.call(arguments,2);e=function(){return a.apply(b||this,d.concat(B.call(arguments)))};e.guid=a.guid=a.guid||c.guid++;return e},access:function(a,b,d,e,f,g,h){var k=0,l=a.length,q=null==d;if("object"===c.type(d))for(k in f=!0,d)c.access(a,
b,k,d[k],!0,g,h);else if(e!==n&&(f=!0,c.isFunction(e)||(h=!0),q&&(h?(b.call(a,e),b=null):(q=b,b=function(a,b,d){return q.call(c(a),d)})),b))for(;k<l;k++)b(a[k],d,h?e:e.call(a[k],k,b(a[k],d)));return f?a:q?b.call(a):l?b(a[0],d):g},now:function(){return(new Date).getTime()}});c.ready.promise=function(a){if(!la)if(la=c.Deferred(),"complete"===p.readyState)setTimeout(c.ready);else if(p.addEventListener)p.addEventListener("DOMContentLoaded",L,!1),r.addEventListener("load",L,!1);else{p.attachEvent("onreadystatechange",
L);r.attachEvent("onload",L);var b=!1;try{b=null==r.frameElement&&p.documentElement}catch(d){}b&&b.doScroll&&function f(){if(!c.isReady){try{b.doScroll("left")}catch(a){return setTimeout(f,50)}vb();c.ready()}}()}return la.promise(a)};c.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){ma["[object "+b+"]"]=b.toLowerCase()});rb=c(p);var Sa={};c.Callbacks=function(a){a="string"===typeof a?Sa[a]||Qb(a):c.extend({},a);var b,d,e,f,g,h,k=[],l=!a.once&&[],q=function(c){d=
a.memory&&c;e=!0;g=h||0;h=0;f=k.length;for(b=!0;k&&g<f;g++)if(!1===k[g].apply(c[0],c[1])&&a.stopOnFalse){d=!1;break}b=!1;k&&(l?l.length&&q(l.shift()):d?k=[]:s.disable())},s={add:function(){if(k){var e=k.length;(function E(b){c.each(b,function(b,d){var e=c.type(d);"function"===e?a.unique&&s.has(d)||k.push(d):d&&d.length&&"string"!==e&&E(d)})})(arguments);b?f=k.length:d&&(h=e,q(d))}return this},remove:function(){k&&c.each(arguments,function(a,d){for(var e;-1<(e=c.inArray(d,k,e));)k.splice(e,1),b&&(e<=
f&&f--,e<=g&&g--)});return this},has:function(a){return a?-1<c.inArray(a,k):!(!k||!k.length)},empty:function(){k=[];return this},disable:function(){k=l=d=n;return this},disabled:function(){return!k},lock:function(){l=n;d||s.disable();return this},locked:function(){return!l},fireWith:function(a,c){c=c||[];c=[a,c.slice?c.slice():c];!k||e&&!l||(b?l.push(c):q(c));return this},fire:function(){s.fireWith(this,arguments);return this},fired:function(){return!!e}};return s};c.extend({Deferred:function(a){var b=
[["resolve","done",c.Callbacks("once memory"),"resolved"],["reject","fail",c.Callbacks("once memory"),"rejected"],["notify","progress",c.Callbacks("memory")]],d="pending",e={state:function(){return d},always:function(){f.done(arguments).fail(arguments);return this},then:function(){var a=arguments;return c.Deferred(function(d){c.each(b,function(b,l){var q=l[0],s=c.isFunction(a[b])&&a[b];f[l[1]](function(){var a=s&&s.apply(this,arguments);if(a&&c.isFunction(a.promise))a.promise().done(d.resolve).fail(d.reject).progress(d.notify);
else d[q+"With"](this===e?d.promise():this,s?[a]:arguments)})});a=null}).promise()},promise:function(a){return null!=a?c.extend(a,e):e}},f={};e.pipe=e.then;c.each(b,function(a,c){var k=c[2],l=c[3];e[c[1]]=k.add;l&&k.add(function(){d=l},b[a^1][2].disable,b[2][2].lock);f[c[0]]=function(){f[c[0]+"With"](this===f?e:this,arguments);return this};f[c[0]+"With"]=k.fireWith});e.promise(f);a&&a.call(f,f);return f},when:function(a){var b=0,d=B.call(arguments),e=d.length,f=1!==e||a&&c.isFunction(a.promise)?e:
0,g=1===f?a:c.Deferred(),h=function(a,b,c){return function(d){b[a]=this;c[a]=1<arguments.length?B.call(arguments):d;c===k?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},k,l,q;if(1<e)for(k=Array(e),l=Array(e),q=Array(e);b<e;b++)d[b]&&c.isFunction(d[b].promise)?d[b].promise().done(h(b,q,d)).fail(g.reject).progress(h(b,l,k)):--f;f||g.resolveWith(q,d);return g.promise()}});c.support=function(){var a,b,d,e,f,g,h,k=p.createElement("div");k.setAttribute("className","t");k.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
b=k.getElementsByTagName("*");d=k.getElementsByTagName("a")[0];if(!b||!d||!b.length)return{};e=p.createElement("select");f=e.appendChild(p.createElement("option"));b=k.getElementsByTagName("input")[0];d.style.cssText="top:1px;float:left;opacity:.5";a={getSetAttribute:"t"!==k.className,leadingWhitespace:3===k.firstChild.nodeType,tbody:!k.getElementsByTagName("tbody").length,htmlSerialize:!!k.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:"/a"===d.getAttribute("href"),
opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:!!b.value,optSelected:f.selected,enctype:!!p.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==p.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===p.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1};b.checked=!0;a.noCloneChecked=b.cloneNode(!0).checked;e.disabled=!0;a.optDisabled=!f.disabled;try{delete k.test}catch(l){a.deleteExpando=
!1}b=p.createElement("input");b.setAttribute("value","");a.input=""===b.getAttribute("value");b.value="t";b.setAttribute("type","radio");a.radioValue="t"===b.value;b.setAttribute("checked","t");b.setAttribute("name","t");d=p.createDocumentFragment();d.appendChild(b);a.appendChecked=b.checked;a.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked;k.attachEvent&&(k.attachEvent("onclick",function(){a.noCloneEvent=!1}),k.cloneNode(!0).click());for(h in{submit:!0,change:!0,focusin:!0})k.setAttribute(d=
"on"+h,"t"),a[h+"Bubbles"]=d in r||!1===k.attributes[d].expando;k.style.backgroundClip="content-box";k.cloneNode(!0).style.backgroundClip="";a.clearCloneStyle="content-box"===k.style.backgroundClip;c(function(){var b,c,d=p.getElementsByTagName("body")[0];d&&(b=p.createElement("div"),b.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",d.appendChild(b).appendChild(k),k.innerHTML="<table><tr><td></td><td>t</td></tr></table>",c=k.getElementsByTagName("td"),
c[0].style.cssText="padding:0;margin:0;border:0;display:none",g=0===c[0].offsetHeight,c[0].style.display="",c[1].style.display="none",a.reliableHiddenOffsets=g&&0===c[0].offsetHeight,k.innerHTML="",k.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",a.boxSizing=4===k.offsetWidth,a.doesNotIncludeMarginInBodyOffset=1!==d.offsetTop,r.getComputedStyle&&(a.pixelPosition="1%"!==
(r.getComputedStyle(k,null)||{}).top,a.boxSizingReliable="4px"===(r.getComputedStyle(k,null)||{width:"4px"}).width,c=k.appendChild(p.createElement("div")),c.style.cssText=k.style.cssText="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",c.style.marginRight=c.style.width="0",k.style.width="1px",a.reliableMarginRight=!parseFloat((r.getComputedStyle(c,null)||{}).marginRight)),typeof k.style.zoom!==y&&(k.innerHTML="",k.style.cssText=
"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;width:1px;padding:1px;display:inline;zoom:1",a.inlineBlockNeedsLayout=3===k.offsetWidth,k.style.display="block",k.innerHTML="<div></div>",k.firstChild.style.width="5px",a.shrinkWrapBlocks=3!==k.offsetWidth,a.inlineBlockNeedsLayout&&(d.style.zoom=1)),d.removeChild(b),k=null)});b=e=d=f=d=b=null;return a}();var Sb=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Rb=/([A-Z])/g;c.extend({cache:{},
expando:"jQuery"+("1.9.1"+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?c.cache[a[c.expando]]:a[c.expando];return!!a&&!xa(a)},data:function(a,b,c){return Ta(a,b,c)},removeData:function(a,b){return Ua(a,b)},_data:function(a,b,c){return Ta(a,b,c,!0)},_removeData:function(a,b){return Ua(a,b,!0)},acceptData:function(a){if(a.nodeType&&1!==a.nodeType&&9!==a.nodeType)return!1;var b=a.nodeName&&c.noData[a.nodeName.toLowerCase()];
return!b||!0!==b&&a.getAttribute("classid")===b}});c.fn.extend({data:function(a,b){var d,e,f=this[0],g=0,h=null;if(a===n){if(this.length&&(h=c.data(f),1===f.nodeType&&!c._data(f,"parsedAttrs"))){for(d=f.attributes;g<d.length;g++)e=d[g].name,e.indexOf("data-")||(e=c.camelCase(e.slice(5)),Va(f,e,h[e]));c._data(f,"parsedAttrs",!0)}return h}return"object"===typeof a?this.each(function(){c.data(this,a)}):c.access(this,function(b){if(b===n)return f?Va(f,a,c.data(f,a)):null;this.each(function(){c.data(this,
a,b)})},null,b,1<arguments.length,null,!0)},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){var e;if(a)return b=(b||"fx")+"queue",e=c._data(a,b),d&&(!e||c.isArray(d)?e=c._data(a,b,c.makeArray(d)):e.push(d)),e||[]},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.length,f=d.shift(),g=c._queueHooks(a,b),h=function(){c.dequeue(a,b)};"inprogress"===f&&(f=d.shift(),e--);if(g.cur=f)"fx"===b&&d.unshift("inprogress"),delete g.stop,f.call(a,
h,g);!e&&g&&g.empty.fire()},_queueHooks:function(a,b){var d=b+"queueHooks";return c._data(a,d)||c._data(a,d,{empty:c.Callbacks("once memory").add(function(){c._removeData(a,b+"queue");c._removeData(a,d)})})}});c.fn.extend({queue:function(a,b){var d=2;"string"!==typeof a&&(b=a,a="fx",d--);return arguments.length<d?c.queue(this[0],a):b===n?this:this.each(function(){var d=c.queue(this,a,b);c._queueHooks(this,a);"fx"===a&&"inprogress"!==d[0]&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;return this.queue(b||"fx",function(b,c){var f=setTimeout(b,a);c.stop=function(){clearTimeout(f)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var d,e=1,f=c.Deferred(),g=this,h=this.length,k=function(){--e||f.resolveWith(g,[g])};"string"!==typeof a&&(b=a,a=n);for(a=a||"fx";h--;)(d=c._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(k));k();return f.promise(b)}});var U,wb,Fa=/[\t\r\n]/g,nc=/\r/g,oc=/^(?:input|select|textarea|button|object)$/i,
pc=/^(?:a|area)$/i,xb=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,Ga=/^(?:checked|selected)$/i,Z=c.support.getSetAttribute,Ha=c.support.input;c.fn.extend({attr:function(a,b){return c.access(this,c.attr,a,b,1<arguments.length)},removeAttr:function(a){return this.each(function(){c.removeAttr(this,a)})},prop:function(a,b){return c.access(this,c.prop,a,b,1<arguments.length)},removeProp:function(a){a=c.propFix[a]||a;return this.each(function(){try{this[a]=
n,delete this[a]}catch(b){}})},addClass:function(a){var b,d,e,f,g,h=0,k=this.length;b="string"===typeof a&&a;if(c.isFunction(a))return this.each(function(b){c(this).addClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(O)||[];h<k;h++)if(d=this[h],e=1===d.nodeType&&(d.className?(" "+d.className+" ").replace(Fa," "):" ")){for(g=0;f=b[g++];)0>e.indexOf(" "+f+" ")&&(e+=f+" ");d.className=c.trim(e)}return this},removeClass:function(a){var b,d,e,f,g,h=0,k=this.length;b=0===arguments.length||
"string"===typeof a&&a;if(c.isFunction(a))return this.each(function(b){c(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(O)||[];h<k;h++)if(d=this[h],e=1===d.nodeType&&(d.className?(" "+d.className+" ").replace(Fa," "):"")){for(g=0;f=b[g++];)for(;0<=e.indexOf(" "+f+" ");)e=e.replace(" "+f+" "," ");d.className=a?c.trim(e):""}return this},toggleClass:function(a,b){var d=typeof a,e="boolean"===typeof b;return c.isFunction(a)?this.each(function(d){c(this).toggleClass(a.call(this,
d,this.className,b),b)}):this.each(function(){if("string"===d)for(var f,g=0,h=c(this),k=b,l=a.match(O)||[];f=l[g++];)k=e?k:!h.hasClass(f),h[k?"addClass":"removeClass"](f);else if(d===y||"boolean"===d)this.className&&c._data(this,"__className__",this.className),this.className=this.className||!1===a?"":c._data(this,"__className__")||""})},hasClass:function(a){a=" "+a+" ";for(var b=0,c=this.length;b<c;b++)if(1===this[b].nodeType&&0<=(" "+this[b].className+" ").replace(Fa," ").indexOf(a))return!0;return!1},
val:function(a){var b,d,e,f=this[0];if(arguments.length)return e=c.isFunction(a),this.each(function(b){var f=c(this);1===this.nodeType&&(b=e?a.call(this,b,f.val()):a,null==b?b="":"number"===typeof b?b+="":c.isArray(b)&&(b=c.map(b,function(a){return null==a?"":a+""})),d=c.valHooks[this.type]||c.valHooks[this.nodeName.toLowerCase()],d&&"set"in d&&d.set(this,b,"value")!==n||(this.value=b))});if(f){if((d=c.valHooks[f.type]||c.valHooks[f.nodeName.toLowerCase()])&&"get"in d&&(b=d.get(f,"value"))!==n)return b;
b=f.value;return"string"===typeof b?b.replace(nc,""):null==b?"":b}}});c.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){for(var b,d=a.options,e=a.selectedIndex,f=(a="select-one"===a.type||0>e)?null:[],g=a?e+1:d.length,h=0>e?g:a?e:0;h<g;h++)if(b=d[h],!(!b.selected&&h!==e||(c.support.optDisabled?b.disabled:null!==b.getAttribute("disabled"))||b.parentNode.disabled&&c.nodeName(b.parentNode,"optgroup"))){b=c(b).val();if(a)return b;
f.push(b)}return f},set:function(a,b){var d=c.makeArray(b);c(a).find("option").each(function(){this.selected=0<=c.inArray(c(this).val(),d)});d.length||(a.selectedIndex=-1);return d}}},attr:function(a,b,d){var e,f,g;f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f){if(typeof a.getAttribute===y)return c.prop(a,b,d);if(f=1!==f||!c.isXMLDoc(a))b=b.toLowerCase(),e=c.attrHooks[b]||(xb.test(b)?wb:U);if(d!==n)if(null===d)c.removeAttr(a,b);else{if(e&&f&&"set"in e&&(g=e.set(a,d,b))!==n)return g;a.setAttribute(b,d+"");
return d}else{if(e&&f&&"get"in e&&null!==(g=e.get(a,b)))return g;typeof a.getAttribute!==y&&(g=a.getAttribute(b));return null==g?n:g}}},removeAttr:function(a,b){var d,e,f=0,g=b&&b.match(O);if(g&&1===a.nodeType)for(;d=g[f++];)e=c.propFix[d]||d,xb.test(d)?!Z&&Ga.test(d)?a[c.camelCase("default-"+d)]=a[e]=!1:a[e]=!1:c.attr(a,d,""),a.removeAttribute(Z?d:e)},attrHooks:{type:{set:function(a,b){if(!c.support.radioValue&&"radio"===b&&c.nodeName(a,"input")){var d=a.value;a.setAttribute("type",b);d&&(a.value=
d);return b}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,b,d){var e,f,g;g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g){if(g=1!==g||!c.isXMLDoc(a))b=c.propFix[b]||b,f=c.propHooks[b];return d!==n?f&&"set"in f&&(e=f.set(a,d,b))!==n?e:a[b]=d:f&&"get"in f&&null!==(e=
f.get(a,b))?e:a[b]}},propHooks:{tabIndex:{get:function(a){var b=a.getAttributeNode("tabindex");return b&&b.specified?parseInt(b.value,10):oc.test(a.nodeName)||pc.test(a.nodeName)&&a.href?0:n}}}});wb={get:function(a,b){var d=c.prop(a,b),e="boolean"===typeof d&&a.getAttribute(b);return(d="boolean"===typeof d?Ha&&Z?null!=e:Ga.test(b)?a[c.camelCase("default-"+b)]:!!e:a.getAttributeNode(b))&&!1!==d.value?b.toLowerCase():n},set:function(a,b,d){!1===b?c.removeAttr(a,d):Ha&&Z||!Ga.test(d)?a.setAttribute(!Z&&
c.propFix[d]||d,d):a[c.camelCase("default-"+d)]=a[d]=!0;return d}};Ha&&Z||(c.attrHooks.value={get:function(a,b){var d=a.getAttributeNode(b);return c.nodeName(a,"input")?a.defaultValue:d&&d.specified?d.value:n},set:function(a,b,d){if(c.nodeName(a,"input"))a.defaultValue=b;else return U&&U.set(a,b,d)}});Z||(U=c.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&("id"===b||"name"===b||"coords"===b?""!==c.value:c.specified)?c.value:n},set:function(a,b,c){var e=a.getAttributeNode(c);
e||a.setAttributeNode(e=a.ownerDocument.createAttribute(c));e.value=b+="";return"value"===c||b===a.getAttribute(c)?b:n}},c.attrHooks.contenteditable={get:U.get,set:function(a,b,c){U.set(a,""===b?!1:b,c)}},c.each(["width","height"],function(a,b){c.attrHooks[b]=c.extend(c.attrHooks[b],{set:function(a,c){if(""===c)return a.setAttribute(b,"auto"),c}})}));c.support.hrefNormalized||(c.each(["href","src","width","height"],function(a,b){c.attrHooks[b]=c.extend(c.attrHooks[b],{get:function(a){a=a.getAttribute(b,
2);return null==a?n:a}})}),c.each(["href","src"],function(a,b){c.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}));c.support.style||(c.attrHooks.style={get:function(a){return a.style.cssText||n},set:function(a,b){return a.style.cssText=b+""}});c.support.optSelected||(c.propHooks.selected=c.extend(c.propHooks.selected,{get:function(a){if(a=a.parentNode)a.selectedIndex,a.parentNode&&a.parentNode.selectedIndex;return null}}));c.support.enctype||(c.propFix.enctype="encoding");c.support.checkOn||
c.each(["radio","checkbox"],function(){c.valHooks[this]={get:function(a){return null===a.getAttribute("value")?"on":a.value}}});c.each(["radio","checkbox"],function(){c.valHooks[this]=c.extend(c.valHooks[this],{set:function(a,b){if(c.isArray(b))return a.checked=0<=c.inArray(c(a).val(),b)}})});var Ia=/^(?:input|select|textarea)$/i,qc=/^key/,rc=/^(?:mouse|contextmenu)|click/,yb=/^(?:focusinfocus|focusoutblur)$/,zb=/^([^.]*)(?:\.(.+)|)$/;c.event={global:{},add:function(a,b,d,e,f){var g,h,k,l,q,s,m,u,
p;if(k=c._data(a)){d.handler&&(l=d,d=l.handler,f=l.selector);d.guid||(d.guid=c.guid++);(h=k.events)||(h=k.events={});(q=k.handle)||(q=k.handle=function(a){return typeof c===y||a&&c.event.triggered===a.type?n:c.event.dispatch.apply(q.elem,arguments)},q.elem=a);b=(b||"").match(O)||[""];for(k=b.length;k--;)g=zb.exec(b[k])||[],u=s=g[1],p=(g[2]||"").split(".").sort(),g=c.event.special[u]||{},u=(f?g.delegateType:g.bindType)||u,g=c.event.special[u]||{},s=c.extend({type:u,origType:s,data:e,handler:d,guid:d.guid,
selector:f,needsContext:f&&c.expr.match.needsContext.test(f),namespace:p.join(".")},l),(m=h[u])||(m=h[u]=[],m.delegateCount=0,g.setup&&!1!==g.setup.call(a,e,p,q)||(a.addEventListener?a.addEventListener(u,q,!1):a.attachEvent&&a.attachEvent("on"+u,q))),g.add&&(g.add.call(a,s),s.handler.guid||(s.handler.guid=d.guid)),f?m.splice(m.delegateCount++,0,s):m.push(s),c.event.global[u]=!0;a=null}},remove:function(a,b,d,e,f){var g,h,k,l,q,n,m,p,E,r,A,z=c.hasData(a)&&c._data(a);if(z&&(n=z.events)){b=(b||"").match(O)||
[""];for(q=b.length;q--;)if(k=zb.exec(b[q])||[],E=A=k[1],r=(k[2]||"").split(".").sort(),E){m=c.event.special[E]||{};E=(e?m.delegateType:m.bindType)||E;p=n[E]||[];k=k[2]&&new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)");for(l=g=p.length;g--;)h=p[g],!f&&A!==h.origType||d&&d.guid!==h.guid||k&&!k.test(h.namespace)||e&&e!==h.selector&&("**"!==e||!h.selector)||(p.splice(g,1),h.selector&&p.delegateCount--,m.remove&&m.remove.call(a,h));l&&!p.length&&(m.teardown&&!1!==m.teardown.call(a,r,z.handle)||
c.removeEvent(a,E,z.handle),delete n[E])}else for(E in n)c.event.remove(a,E+b[q],d,e,!0);c.isEmptyObject(n)&&(delete z.handle,c._removeData(a,"events"))}},trigger:function(a,b,d,e){var f,g,h,k,l,q,s=[d||p],m=ga.call(a,"type")?a.type:a;l=ga.call(a,"namespace")?a.namespace.split("."):[];h=f=d=d||p;if(3!==d.nodeType&&8!==d.nodeType&&!yb.test(m+c.event.triggered)&&(0<=m.indexOf(".")&&(l=m.split("."),m=l.shift(),l.sort()),g=0>m.indexOf(":")&&"on"+m,a=a[c.expando]?a:new c.Event(m,"object"===typeof a&&a),
a.isTrigger=!0,a.namespace=l.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+l.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=n,a.target||(a.target=d),b=null==b?[a]:c.makeArray(b,[a]),l=c.event.special[m]||{},e||!l.trigger||!1!==l.trigger.apply(d,b))){if(!e&&!l.noBubble&&!c.isWindow(d)){k=l.delegateType||m;yb.test(k+m)||(h=h.parentNode);for(;h;h=h.parentNode)s.push(h),f=h;f===(d.ownerDocument||p)&&s.push(f.defaultView||f.parentWindow||r)}for(q=0;(h=s[q++])&&!a.isPropagationStopped();)a.type=
1<q?k:l.bindType||m,(f=(c._data(h,"events")||{})[a.type]&&c._data(h,"handle"))&&f.apply(h,b),(f=g&&h[g])&&c.acceptData(h)&&f.apply&&!1===f.apply(h,b)&&a.preventDefault();a.type=m;if(!(e||a.isDefaultPrevented()||l._default&&!1!==l._default.apply(d.ownerDocument,b)||"click"===m&&c.nodeName(d,"a"))&&c.acceptData(d)&&g&&d[m]&&!c.isWindow(d)){(f=d[g])&&(d[g]=null);c.event.triggered=m;try{d[m]()}catch(u){}c.event.triggered=n;f&&(d[g]=f)}return a.result}},dispatch:function(a){a=c.event.fix(a);var b,d,e,
f,g=[],h=B.call(arguments);b=(c._data(this,"events")||{})[a.type]||[];var k=c.event.special[a.type]||{};h[0]=a;a.delegateTarget=this;if(!k.preDispatch||!1!==k.preDispatch.call(this,a)){g=c.event.handlers.call(this,a,b);for(b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,f=0;(d=e.handlers[f++])&&!a.isImmediatePropagationStopped();)if(!a.namespace_re||a.namespace_re.test(d.namespace))a.handleObj=d,a.data=d.data,d=((c.event.special[d.origType]||{}).handle||d.handler).apply(e.elem,
h),d!==n&&!1===(a.result=d)&&(a.preventDefault(),a.stopPropagation());k.postDispatch&&k.postDispatch.call(this,a);return a.result}},handlers:function(a,b){var d,e,f,g,h=[],k=b.delegateCount,l=a.target;if(k&&l.nodeType&&(!a.button||"click"!==a.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(!0!==l.disabled||"click"!==a.type)){f=[];for(g=0;g<k;g++)e=b[g],d=e.selector+" ",f[d]===n&&(f[d]=e.needsContext?0<=c(d,this).index(l):c.find(d,this,null,[l]).length),f[d]&&f.push(e);f.length&&h.push({elem:l,
handlers:f})}k<b.length&&h.push({elem:this,handlers:b.slice(k)});return h},fix:function(a){if(a[c.expando])return a;var b,d,e;b=a.type;var f=a,g=this.fixHooks[b];g||(this.fixHooks[b]=g=rc.test(b)?this.mouseHooks:qc.test(b)?this.keyHooks:{});e=g.props?this.props.concat(g.props):this.props;a=new c.Event(f);for(b=e.length;b--;)d=e[b],a[d]=f[d];a.target||(a.target=f.srcElement||p);3===a.target.nodeType&&(a.target=a.target.parentNode);a.metaKey=!!a.metaKey;return g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks:{},keyHooks:{props:["char","charCode","key","keyCode"],filter:function(a,b){null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f=b.button,g=b.fromElement;null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||p,e=c.documentElement,c=c.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||
c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0));!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g);a.which||f===n||(a.which=f&1?1:f&2?3:f&4?2:0);return a}},special:{load:{noBubble:!0},click:{trigger:function(){if(c.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1}},focus:{trigger:function(){if(this!==p.activeElement&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},
blur:{trigger:function(){if(this===p.activeElement&&this.blur)return this.blur(),!1},delegateType:"focusout"},beforeunload:{postDispatch:function(a){a.result!==n&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,d,e){a=c.extend(new c.Event,d,{type:a,isSimulated:!0,originalEvent:{}});e?c.event.trigger(a,null,b):c.event.dispatch.call(b,a);a.isDefaultPrevented()&&d.preventDefault()}};c.removeEvent=p.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:
function(a,b,c){b="on"+b;a.detachEvent&&(typeof a[b]===y&&(a[b]=null),a.detachEvent(b,c))};c.Event=function(a,b){if(!(this instanceof c.Event))return new c.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||!1===a.returnValue||a.getPreventDefault&&a.getPreventDefault()?aa:Q):this.type=a;b&&c.extend(this,b);this.timeStamp=a&&a.timeStamp||c.now();this[c.expando]=!0};c.Event.prototype={isDefaultPrevented:Q,isPropagationStopped:Q,isImmediatePropagationStopped:Q,
preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=aa;this.stopPropagation()}};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={delegateType:b,bindType:b,handle:function(a){var e,
f=a.relatedTarget,g=a.handleObj;if(!f||f!==this&&!c.contains(this,f))a.type=g.origType,e=g.handler.apply(this,arguments),a.type=b;return e}}});c.support.submitBubbles||(c.event.special.submit={setup:function(){if(c.nodeName(this,"form"))return!1;c.event.add(this,"click._submit keypress._submit",function(a){a=a.target;(a=c.nodeName(a,"input")||c.nodeName(a,"button")?a.form:n)&&!c._data(a,"submitBubbles")&&(c.event.add(a,"submit._submit",function(a){a._submit_bubble=!0}),c._data(a,"submitBubbles",!0))})},
postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&c.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(c.nodeName(this,"form"))return!1;c.event.remove(this,"._submit")}});c.support.changeBubbles||(c.event.special.change={setup:function(){if(Ia.test(this.nodeName)){if("checkbox"===this.type||"radio"===this.type)c.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),
c.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1);c.event.simulate("change",this,a,!0)});return!1}c.event.add(this,"beforeactivate._change",function(a){a=a.target;Ia.test(a.nodeName)&&!c._data(a,"changeBubbles")&&(c.event.add(a,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||c.event.simulate("change",this.parentNode,a,!0)}),c._data(a,"changeBubbles",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||
a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type)return a.handleObj.handler.apply(this,arguments)},teardown:function(){c.event.remove(this,"._change");return!Ia.test(this.nodeName)}});c.support.focusinBubbles||c.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){c.event.simulate(b,a.target,c.event.fix(a),!0)};c.event.special[b]={setup:function(){0===d++&&p.addEventListener(a,e,!0)},teardown:function(){0===--d&&p.removeEventListener(a,e,!0)}}});c.fn.extend({on:function(a,
b,d,e,f){var g,h;if("object"===typeof a){"string"!==typeof b&&(d=d||b,b=n);for(g in a)this.on(g,b,d,a[g],f);return this}null==d&&null==e?(e=b,d=b=n):null==e&&("string"===typeof b?(e=d,d=n):(e=d,d=b,b=n));if(!1===e)e=Q;else if(!e)return this;1===f&&(h=e,e=function(a){c().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=c.guid++));return this.each(function(){c.event.add(this,a,e,d,b)})},one:function(a,b,c,e){return this.on(a,b,c,e,1)},off:function(a,b,d){var e;if(a&&a.preventDefault&&a.handleObj)return e=
a.handleObj,c(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if("object"===typeof a){for(e in a)this.off(e,b,a[e]);return this}if(!1===b||"function"===typeof b)d=b,b=n;!1===d&&(d=Q);return this.each(function(){c.event.remove(this,a,d,b)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,e){return this.on(b,a,c,e)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,
"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){var d=this[0];if(d)return c.event.trigger(a,b,d,!0)}});(function(a,b){function d(a){return ia.test(a+"")}function e(){var a,b=[];return a=function(c,d){b.push(c+=" ")>t.cacheLength&&delete a[b.shift()];return a[c]=d}}function f(a){a[w]=!0;return a}function g(a){var b=K.createElement("div");try{return a(b)}catch(c){return!1}finally{}}function h(a,b,c,d){var e,f,g,
h,k;(b?b.ownerDocument||b:ha)!==K&&oa(b);b=b||K;c=c||[];if(!a||"string"!==typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(!x&&!d){if(e=ja.exec(a))if(g=e[1])if(9===h)if((f=b.getElementById(g))&&f.parentNode){if(f.id===g)return c.push(f),c}else return c;else{if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&I(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return J.apply(c,G.call(b.getElementsByTagName(a),0)),c;if((g=e[3])&&C.getByClassName&&b.getElementsByClassName)return J.apply(c,
G.call(b.getElementsByClassName(g),0)),c}if(C.qsa&&!V.test(a)){e=!0;f=w;g=b;k=9===h&&a;if(1===h&&"object"!==b.nodeName.toLowerCase()){h=m(a);(e=b.getAttribute("id"))?f=e.replace(ma,"\\$&"):b.setAttribute("id",f);f="[id='"+f+"'] ";for(g=h.length;g--;)h[g]=f+p(h[g]);g=aa.test(a)&&b.parentNode||b;k=h.join(",")}if(k)try{return J.apply(c,G.call(g.querySelectorAll(k),0)),c}catch(l){}finally{e||b.removeAttribute("id")}}}var q;a:{a=a.replace(P,"$1");f=m(a);if(!d&&1===f.length){e=f[0]=f[0].slice(0);if(2<e.length&&
"ID"===(q=e[0]).type&&9===b.nodeType&&!x&&t.relative[e[1].type]){b=t.find.ID(q.matches[0].replace(ba,ca),b)[0];if(!b){q=c;break a}a=a.slice(e.shift().value.length)}for(h=X.needsContext.test(a)?0:e.length;h--;){q=e[h];if(t.relative[g=q.type])break;if(g=t.find[g])if(d=g(q.matches[0].replace(ba,ca),aa.test(e[0].type)&&b.parentNode||b)){e.splice(h,1);a=d.length&&p(e);if(!a){J.apply(c,G.call(d,0));q=c;break a}break}}}Ka(a,f)(d,b,x,c,aa.test(a));q=c}return q}function k(a,b){var c=b&&a,d=c&&(~b.sourceIndex||
-2147483648)-(~a.sourceIndex||-2147483648);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function l(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function q(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function n(a){return f(function(b){b=+b;return f(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function m(a,b){var c,d,e,f,g,k,l;if(g=S[a+" "])return b?
0:g.slice(0);g=a;k=[];for(l=t.preFilter;g;){if(!c||(d=da.exec(g)))d&&(g=g.slice(d[0].length)||g),k.push(e=[]);c=!1;if(d=ea.exec(g))c=d.shift(),e.push({value:c,type:d[0].replace(P," ")}),g=g.slice(c.length);for(f in t.filter)!(d=X[f].exec(g))||l[f]&&!(d=l[f](d))||(c=d.shift(),e.push({value:c,type:f,matches:d}),g=g.slice(c.length));if(!c)break}return b?g.length:g?h.error(a):S(a,k).slice(0)}function p(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function r(a,b,c){var d=b.dir,e=c&&"parentNode"===
d,f=W++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,k,Ja,l=D+" "+f;if(g)for(;b=b[d];){if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e)if(Ja=b[w]||(b[w]={}),(k=Ja[d])&&k[0]===l){if(!0===(h=k[1])||h===v)return!0===h}else if(k=Ja[d]=[l],k[1]=a(b,c,g)||v,!0===k[1])return!0}}function z(a){return 1<a.length?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function A(a,b,c,d,e){for(var f,
g=[],h=0,k=a.length,l=null!=b;h<k;h++)if(f=a[h])if(!c||c(f,d,e))g.push(f),l&&b.push(h);return g}function F(a,b,c,d,e,g){d&&!d[w]&&(d=F(d));e&&!e[w]&&(e=F(e,g));return f(function(f,g,k,l){var m,q,n=[],p=[],s=g.length,r;if(!(r=f)){r=b||"*";for(var u=k.nodeType?[k]:k,ta=[],v=0,E=u.length;v<E;v++)h(r,u[v],ta);r=ta}r=!a||!f&&b?r:A(r,n,a,k,l);u=c?e||(f?a:s||d)?[]:g:r;c&&c(r,u,k,l);if(d)for(m=A(u,p),d(m,[],k,l),k=m.length;k--;)if(q=m[k])u[p[k]]=!(r[p[k]]=q);if(f){if(e||a){if(e){m=[];for(k=u.length;k--;)(q=
u[k])&&m.push(r[k]=q);e(null,u=[],m,l)}for(k=u.length;k--;)(q=u[k])&&-1<(m=e?Q.call(f,q):n[k])&&(f[m]=!(g[m]=q))}}else u=A(u===g?u.splice(s,u.length):u),e?e(null,g,u,l):J.apply(g,u)})}function y(a){var b,c,d,e=a.length,f=t.relative[a[0].type];c=f||t.relative[" "];for(var g=f?1:0,h=r(function(a){return a===b},c,!0),k=r(function(a){return-1<Q.call(b,a)},c,!0),l=[function(a,c,d){return!f&&(d||c!==va)||((b=c).nodeType?h(a,c,d):k(a,c,d))}];g<e;g++)if(c=t.relative[a[g].type])l=[r(z(l),c)];else{c=t.filter[a[g].type].apply(null,
a[g].matches);if(c[w]){for(d=++g;d<e&&!t.relative[a[d].type];d++);return F(1<g&&z(l),1<g&&p(a.slice(0,g-1)).replace(P,"$1"),c,g<d&&y(a.slice(g,d)),d<e&&y(a=a.slice(d)),d<e&&p(a))}l.push(c)}return z(l)}function O(a,b){var c=0,d=0<b.length,e=0<a.length,g=function(f,g,k,l,m){var q,n,p=[],s=0,u="0",r=f&&[],E=null!=m,ta=va,qa=f||e&&t.find.TAG("*",m&&g.parentNode||g),w=D+=null==ta?1:Math.random()||.1;E&&(va=g!==K&&g,v=c);for(;null!=(m=qa[u]);u++){if(e&&m){for(q=0;n=a[q++];)if(n(m,g,k)){l.push(m);break}E&&
(D=w,v=++c)}d&&((m=!n&&m)&&s--,f&&r.push(m))}s+=u;if(d&&u!==s){for(q=0;n=b[q++];)n(r,p,g,k);if(f){if(0<s)for(;u--;)r[u]||p[u]||(p[u]=Z.call(l));p=A(p)}J.apply(l,p);E&&!f&&0<p.length&&1<s+b.length&&h.uniqueSort(l)}E&&(D=w,va=ta);return r};return d?f(g):g}function M(){}var pa,v,t,qa,Ab,Ka,ra,va,oa,K,N,x,V,sa,H,I,L,w="sizzle"+-new Date,ha=a.document,C={},D=0,W=0,R=e(),S=e(),T=e(),$=typeof b,B=[],Z=B.pop,J=B.push,G=B.slice,Q=B.indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(this[b]===a)return b;
return-1},B="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w#"),Y="\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)[\\x20\\t\\r\\n\\f]*(?:([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+B+")|)|)[\\x20\\t\\r\\n\\f]*\\]",U=":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+Y.replace(3,8)+")*)|.*)\\)|)",P=/^[\x20\t\r\n\f]+|((?:^|[^\\])(?:\\.)*)[\x20\t\r\n\f]+$/g,da=/^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,ea=/^[\x20\t\r\n\f]*([\x20\t\r\n\f>+~])[\x20\t\r\n\f]*/,
fa=new RegExp(U),ga=new RegExp("^"+B+"$"),X={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,NAME:/^\[name=['"]?((?:\\.|[\w-]|[^\x00-\xa0])+)['"]?\]/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+Y),PSEUDO:new RegExp("^"+U),CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},
aa=/[\x20\t\r\n\f]*[+~]/,ia=/^[^{]+\{\s*\[native code/,ja=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ka=/^(?:input|select|textarea|button)$/i,la=/^h\d$/i,ma=/'|\\/g,na=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,ba=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,ca=function(a,b){var c="0x"+b-65536;return c!==c?b:0>c?String.fromCharCode(c+65536):String.fromCharCode(c>>10|55296,c&1023|56320)};try{G.call(ha.documentElement.childNodes,0)[0].nodeType}catch(ua){G=function(a){for(var b,c=[];b=this[a++];)c.push(b);return c}}Ab=
h.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};oa=h.setDocument=function(a){var c=a?a.ownerDocument||a:ha;if(c===K||9!==c.nodeType||!c.documentElement)return K;K=c;N=c.documentElement;x=Ab(c);C.tagNameNoComments=g(function(a){a.appendChild(c.createComment(""));return!a.getElementsByTagName("*").length});C.attributes=g(function(a){a.innerHTML="<select></select>";a=typeof a.lastChild.getAttribute("multiple");return"boolean"!==a&&"string"!==a});C.getByClassName=
g(function(a){a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>";if(!a.getElementsByClassName||!a.getElementsByClassName("e").length)return!1;a.lastChild.className="e";return 2===a.getElementsByClassName("e").length});C.getByName=g(function(a){a.id=w+0;a.innerHTML="<a name='"+w+"'></a><div name='"+w+"'></div>";N.insertBefore(a,N.firstChild);var b=c.getElementsByName&&c.getElementsByName(w).length===2+c.getElementsByName(w+0).length;C.getIdNotName=!c.getElementById(w);N.removeChild(a);
return b});t.attrHandle=g(function(a){a.innerHTML="<a href='#'></a>";return a.firstChild&&typeof a.firstChild.getAttribute!==$&&"#"===a.firstChild.getAttribute("href")})?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}};C.getIdNotName?(t.find.ID=function(a,b){if(typeof b.getElementById!==$&&!x){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},t.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===
b}}):(t.find.ID=function(a,c){if(typeof c.getElementById!==$&&!x){var d=c.getElementById(a);return d?d.id===a||typeof d.getAttributeNode!==$&&d.getAttributeNode("id").value===a?[d]:b:[]}},t.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return(a=typeof a.getAttributeNode!==$&&a.getAttributeNode("id"))&&a.value===b}});t.find.TAG=C.tagNameNoComments?function(a,b){if(typeof b.getElementsByTagName!==$)return b.getElementsByTagName(a)}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);
if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f};t.find.NAME=C.getByName&&function(a,b){if(typeof b.getElementsByName!==$)return b.getElementsByName(name)};t.find.CLASS=C.getByClassName&&function(a,b){if(typeof b.getElementsByClassName!==$&&!x)return b.getElementsByClassName(a)};sa=[];V=[":focus"];if(C.qsa=d(c.querySelectorAll))g(function(a){a.innerHTML="<select><option selected=''></option></select>";a.querySelectorAll("[selected]").length||V.push("\\[[\\x20\\t\\r\\n\\f]*(?:checked|disabled|ismap|multiple|readonly|selected|value)");
a.querySelectorAll(":checked").length||V.push(":checked")}),g(function(a){a.innerHTML="<input type='hidden' i=''/>";a.querySelectorAll("[i^='']").length&&V.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:\"\"|'')");a.querySelectorAll(":enabled").length||V.push(":enabled",":disabled");a.querySelectorAll("*,:x");V.push(",.*:")});(C.matchesSelector=d(H=N.matchesSelector||N.mozMatchesSelector||N.webkitMatchesSelector||N.oMatchesSelector||N.msMatchesSelector))&&g(function(a){C.disconnectedMatch=H.call(a,"div");H.call(a,
"[s!='']:x");sa.push("!=",U)});V=new RegExp(V.join("|"));sa=new RegExp(sa.join("|"));I=d(N.contains)||N.compareDocumentPosition?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&1===d.nodeType&&(c.contains?c.contains(d):a.compareDocumentPosition&&a.compareDocumentPosition(d)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};L=N.compareDocumentPosition?function(a,b){var d;return a===b?(ra=!0,0):(d=b.compareDocumentPosition&&a.compareDocumentPosition&&
a.compareDocumentPosition(b))?d&1||a.parentNode&&11===a.parentNode.nodeType?a===c||I(ha,a)?-1:b===c||I(ha,b)?1:0:d&4?-1:1:a.compareDocumentPosition?-1:1}:function(a,b){var d,e=0;d=a.parentNode;var f=b.parentNode,g=[a],h=[b];if(a===b)return ra=!0,0;if(!d||!f)return a===c?-1:b===c?1:d?-1:f?1:0;if(d===f)return k(a,b);for(d=a;d=d.parentNode;)g.unshift(d);for(d=b;d=d.parentNode;)h.unshift(d);for(;g[e]===h[e];)e++;return e?k(g[e],h[e]):g[e]===ha?-1:h[e]===ha?1:0};ra=!1;[0,0].sort(L);C.detectDuplicates=
ra;return K};h.matches=function(a,b){return h(a,null,null,b)};h.matchesSelector=function(a,b){(a.ownerDocument||a)!==K&&oa(a);b=b.replace(na,"='$1']");if(!(!C.matchesSelector||x||sa&&sa.test(b)||V.test(b)))try{var c=H.call(a,b);if(c||C.disconnectedMatch||a.document&&11!==a.document.nodeType)return c}catch(d){}return 0<h(b,K,null,[a]).length};h.contains=function(a,b){(a.ownerDocument||a)!==K&&oa(a);return I(a,b)};h.attr=function(a,b){var c;(a.ownerDocument||a)!==K&&oa(a);x||(b=b.toLowerCase());return(c=
t.attrHandle[b])?c(a):x||C.attributes?a.getAttribute(b):((c=a.getAttributeNode(b))||a.getAttribute(b))&&!0===a[b]?b:c&&c.specified?c.value:null};h.error=function(a){throw Error("Syntax error, unrecognized expression: "+a);};h.uniqueSort=function(a){var b,c=[],d=1,e=0;ra=!C.detectDuplicates;a.sort(L);if(ra){for(;b=a[d];d++)b===a[d-1]&&(e=c.push(d));for(;e--;)a.splice(c[e],1)}return a};qa=h.getText=function(a){var b,c="",d=0;b=a.nodeType;if(!b)for(;b=a[d];d++)c+=qa(b);else if(1===b||9===b||11===b){if("string"===
typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=qa(a)}else if(3===b||4===b)return a.nodeValue;return c};t=h.selectors={cacheLength:50,createPseudo:f,match:X,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){a[1]=a[1].replace(ba,ca);a[3]=(a[4]||a[5]||"").replace(ba,ca);"~="===a[2]&&(a[3]=" "+a[3]+" ");return a.slice(0,4)},CHILD:function(a){a[1]=a[1].toLowerCase();
"nth"===a[1].slice(0,3)?(a[3]||h.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&h.error(a[0]);return a},PSEUDO:function(a){var b,c=!a[5]&&a[2];if(X.CHILD.test(a[0]))return null;a[4]?a[2]=a[4]:c&&fa.test(c)&&(b=m(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b));return a.slice(0,3)}},filter:{TAG:function(a){if("*"===a)return function(){return!0};a=a.replace(ba,ca).toLowerCase();return function(b){return b.nodeName&&
b.nodeName.toLowerCase()===a}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"))&&R(a,function(a){return b.test(a.className||typeof a.getAttribute!==$&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){d=h.attr(d,a);if(null==d)return"!="===b;if(!b)return!0;d+="";return"="===b?d===c:"!="===b?d!==c:"^="===b?c&&0===d.indexOf(c):"*="===b?c&&-1<d.indexOf(c):"$="===b?c&&d.slice(-c.length)===c:"~="===b?-1<(" "+d+" ").indexOf(c):
"|="===b?d===c||d.slice(0,c.length+1)===c+"-":!1}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,k){var l,m,q,n,p;c=f!==g?"nextSibling":"previousSibling";var s=b.parentNode,u=h&&b.nodeName.toLowerCase();k=!k&&!h;if(s){if(f){for(;c;){for(m=b;m=m[c];)if(h?m.nodeName.toLowerCase()===u:1===m.nodeType)return!1;p=c="only"===a&&!p&&"nextSibling"}return!0}p=[g?s.firstChild:s.lastChild];if(g&&k)for(k=
s[w]||(s[w]={}),l=k[a]||[],n=l[0]===D&&l[1],q=l[0]===D&&l[2],m=n&&s.childNodes[n];m=++n&&m&&m[c]||(q=n=0)||p.pop();){if(1===m.nodeType&&++q&&m===b){k[a]=[D,n,q];break}}else if(k&&(l=(b[w]||(b[w]={}))[a])&&l[0]===D)q=l[1];else for(;(m=++n&&m&&m[c]||(q=n=0)||p.pop())&&((h?m.nodeName.toLowerCase()!==u:1!==m.nodeType)||!++q||(k&&((m[w]||(m[w]={}))[a]=[D,q]),m!==b)););q-=e;return q===d||0===q%d&&0<=q/d}}},PSEUDO:function(a,b){var c,d=t.pseudos[a]||t.setFilters[a.toLowerCase()]||h.error("unsupported pseudo: "+
a);return d[w]?d(b):1<d.length?(c=[a,a,"",b],t.setFilters.hasOwnProperty(a.toLowerCase())?f(function(a,c){for(var e,f=d(a,b),g=f.length;g--;)e=Q.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:f(function(a){var b=[],c=[],d=Ka(a.replace(P,"$1"));return d[w]?f(function(a,b,c,e){e=d(a,null,e,[]);for(var f=a.length;f--;)if(c=e[f])a[f]=!(b[f]=c)}):function(a,e,f){b[0]=a;d(b,null,f,c);return!c.pop()}}),has:f(function(a){return function(b){return 0<h(a,b).length}}),contains:f(function(a){return function(b){return-1<
(b.textContent||b.innerText||qa(b)).indexOf(a)}}),lang:f(function(a){ga.test(a||"")||h.error("unsupported lang: "+a);a=a.replace(ba,ca).toLowerCase();return function(b){var c;do if(c=x?b.getAttribute("xml:lang")||b.getAttribute("lang"):b.lang)return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===N},focus:function(a){return a===K.activeElement&&
(!K.hasFocus||K.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return!1===a.disabled},disabled:function(a){return!0===a.disabled},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return!0===a.selected},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if("@"<a.nodeName||3===a.nodeType||4===a.nodeType)return!1;return!0},parent:function(a){return!t.pseudos.empty(a)},
header:function(a){return la.test(a.nodeName)},input:function(a){return ka.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||b.toLowerCase()===a.type)},first:n(function(){return[0]}),last:n(function(a,b){return[b-1]}),eq:n(function(a,b,c){return[0>c?c+b:c]}),even:n(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),
odd:n(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:n(function(a,b,c){for(b=0>c?c+b:c;0<=--b;)a.push(b);return a}),gt:n(function(a,b,c){for(c=0>c?c+b:c;++c<b;)a.push(c);return a})}};for(pa in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})t.pseudos[pa]=l(pa);for(pa in{submit:!0,reset:!0})t.pseudos[pa]=q(pa);Ka=h.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){b||(b=m(a));for(c=b.length;c--;)f=y(b[c]),f[w]?d.push(f):e.push(f);f=T(a,O(e,d))}return f};t.pseudos.nth=t.pseudos.eq;
t.filters=M.prototype=t.pseudos;t.setFilters=new M;oa();h.attr=c.attr;c.find=h;c.expr=h.selectors;c.expr[":"]=c.expr.pseudos;c.unique=h.uniqueSort;c.text=h.getText;c.isXMLDoc=h.isXML;c.contains=h.contains})(r);var sc=/Until$/,tc=/^(?:parents|prev(?:Until|All))/,Tb=/^.[^:#\[\.,]*$/,Bb=c.expr.match.needsContext,uc={children:!0,contents:!0,next:!0,prev:!0};c.fn.extend({find:function(a){var b,d,e,f=this.length;if("string"!==typeof a)return e=this,this.pushStack(c(a).filter(function(){for(b=0;b<f;b++)if(c.contains(e[b],
this))return!0}));d=[];for(b=0;b<f;b++)c.find(a,this[b],d);d=this.pushStack(1<f?c.unique(d):d);d.selector=(this.selector?this.selector+" ":"")+a;return d},has:function(a){var b,d=c(a,this),e=d.length;return this.filter(function(){for(b=0;b<e;b++)if(c.contains(this,d[b]))return!0})},not:function(a){return this.pushStack(Xa(this,a,!1))},filter:function(a){return this.pushStack(Xa(this,a,!0))},is:function(a){return!!a&&("string"===typeof a?Bb.test(a)?0<=c(a,this.context).index(this[0]):0<c.filter(a,
this).length:0<this.filter(a).length)},closest:function(a,b){for(var d,e=0,f=this.length,g=[],h=Bb.test(a)||"string"!==typeof a?c(a,b||this.context):0;e<f;e++)for(d=this[e];d&&d.ownerDocument&&d!==b&&11!==d.nodeType;){if(h?-1<h.index(d):c.find.matchesSelector(d,a)){g.push(d);break}d=d.parentNode}return this.pushStack(1<g.length?c.unique(g):g)},index:function(a){return a?"string"===typeof a?c.inArray(this[0],c(a)):c.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:
-1},add:function(a,b){var d="string"===typeof a?c(a,b):c.makeArray(a&&a.nodeType?[a]:a),d=c.merge(this.get(),d);return this.pushStack(c.unique(d))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});c.fn.andSelf=c.fn.addBack;c.each({parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return Wa(a,"nextSibling")},prev:function(a){return Wa(a,
"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.merge([],a.childNodes)}},function(a,
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);sc.test(a)||(e=d);e&&"string"===typeof e&&(f=c.filter(e,f));f=1<this.length&&!uc[a]?c.unique(f):f;1<this.length&&tc.test(a)&&(f=f.reverse());return this.pushStack(f)}});c.extend({filter:function(a,b,d){d&&(a=":not("+a+")");return 1===b.length?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&9!==a.nodeType&&(d===n||1!==a.nodeType||!c(a).is(d));)1===a.nodeType&&e.push(a),a=a[b];return e},sibling:function(a,
b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}});var Za="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",vc=/ jQuery\d+="(?:null|\d+)"/g,Cb=new RegExp("<(?:"+Za+")[\\s/>]","i"),La=/^\s+/,Db=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Eb=/<([\w:]+)/,Fb=/<tbody/i,wc=/<|&#?\w+;/,xc=/<(?:script|style|link)/i,za=/^(?:checkbox|radio)$/i,
yc=/checked\s*(?:[^=]|=\s*.checked.)/i,Gb=/^$|\/(?:java|ecma)script/i,Vb=/^true\/(.*)/,zc=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:c.support.htmlSerialize?
[0,"",""]:[1,"X<div>","</div>"]},Ma=Ya(p).appendChild(p.createElement("div"));F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;c.fn.extend({text:function(a){return c.access(this,function(a){return a===n?c.text(this):this.empty().append((this[0]&&this[0].ownerDocument||p).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapAll(a.call(this,b))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return c.isFunction(a)?this.each(function(b){c(this).wrapInner(a.call(this,b))}):this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){var b=c.isFunction(a);return this.each(function(d){c(this).wrapAll(b?a.call(this,d):a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,
"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||this.insertBefore(a,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,
!1,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var d,e=0;null!=(d=this[e]);e++)if(!a||0<c.filter(a,[d]).length)b||1!==d.nodeType||c.cleanData(A(d)),d.parentNode&&(b&&c.contains(d.ownerDocument,d)&&ya(A(d,"script")),d.parentNode.removeChild(d));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){for(1===a.nodeType&&c.cleanData(A(a,!1));a.firstChild;)a.removeChild(a.firstChild);a.options&&c.nodeName(a,"select")&&(a.options.length=
0)}return this},clone:function(a,b){a=null==a?!1:a;b=null==b?a:b;return this.map(function(){return c.clone(this,a,b)})},html:function(a){return c.access(this,function(a){var d=this[0]||{},e=0,f=this.length;if(a===n)return 1===d.nodeType?d.innerHTML.replace(vc,""):n;if(!("string"!==typeof a||xc.test(a)||!c.support.htmlSerialize&&Cb.test(a)||!c.support.leadingWhitespace&&La.test(a)||F[(Eb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(Db,"<$1></$2>");try{for(;e<f;e++)d=this[e]||{},1===d.nodeType&&
(c.cleanData(A(d,!1)),d.innerHTML=a);d=0}catch(g){}}d&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){c.isFunction(a)||"string"===typeof a||(a=c(a).not(this).detach());return this.domManip([a],!0,function(a){var d=this.nextSibling,e=this.parentNode;e&&(c(this).remove(),e.insertBefore(a,d))})},detach:function(a){return this.remove(a,!0)},domManip:function(a,b,d){a=sb.apply([],a);var e,f,g,h,k=0,l=this.length,q=this,p=l-1,m=a[0],u=c.isFunction(m);if(u||!(1>=l||"string"!==
typeof m||c.support.checkClone)&&yc.test(m))return this.each(function(c){var e=q.eq(c);u&&(a[0]=m.call(this,c,b?e.html():n));e.domManip(a,b,d)});if(l&&(h=c.buildFragment(a,this[0].ownerDocument,!1,this),e=h.firstChild,1===h.childNodes.length&&(h=e),e)){b=b&&c.nodeName(e,"tr");g=c.map(A(h,"script"),$a);for(f=g.length;k<l;k++)e=h,k!==p&&(e=c.clone(e,!0,!0),f&&c.merge(g,A(e,"script"))),d.call(b&&c.nodeName(this[k],"table")?Ub(this[k],"tbody"):this[k],e,k);if(f)for(h=g[g.length-1].ownerDocument,c.map(g,
ab),k=0;k<f;k++)e=g[k],Gb.test(e.type||"")&&!c._data(e,"globalEval")&&c.contains(h,e)&&(e.src?c.ajax({url:e.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):c.globalEval((e.text||e.textContent||e.innerHTML||"").replace(zc,"")));h=e=null}return this}});c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(a){for(var e=0,f=[],g=c(a),h=g.length-1;e<=h;e++)a=e===h?this:this.clone(!0),c(g[e])[b](a),
Da.apply(f,a.get());return this.pushStack(f)}});c.extend({clone:function(a,b,d){var e,f,g,h,k,l=c.contains(a.ownerDocument,a);c.support.html5Clone||c.isXMLDoc(a)||!Cb.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(Ma.innerHTML=a.outerHTML,Ma.removeChild(g=Ma.firstChild));if(!(c.support.noCloneEvent&&c.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||c.isXMLDoc(a)))for(e=A(g),k=A(a),h=0;null!=(f=k[h]);++h)if(e[h]){var q=e[h],n=void 0,m=void 0,p=void 0;if(1===q.nodeType){n=q.nodeName.toLowerCase();
if(!c.support.noCloneEvent&&q[c.expando]){p=c._data(q);for(m in p.events)c.removeEvent(q,m,p.handle);q.removeAttribute(c.expando)}if("script"===n&&q.text!==f.text)$a(q).text=f.text,ab(q);else if("object"===n)q.parentNode&&(q.outerHTML=f.outerHTML),c.support.html5Clone&&f.innerHTML&&!c.trim(q.innerHTML)&&(q.innerHTML=f.innerHTML);else if("input"===n&&za.test(f.type))q.defaultChecked=q.checked=f.checked,q.value!==f.value&&(q.value=f.value);else if("option"===n)q.defaultSelected=q.selected=f.defaultSelected;
else if("input"===n||"textarea"===n)q.defaultValue=f.defaultValue}}if(b)if(d)for(k=k||A(a),e=e||A(g),h=0;null!=(f=k[h]);h++)bb(f,e[h]);else bb(a,g);e=A(g,"script");0<e.length&&ya(e,!l&&A(a,"script"));return g},buildFragment:function(a,b,d,e){for(var f,g,h,k,l,q,n=a.length,m=Ya(b),p=[],r=0;r<n;r++)if((g=a[r])||0===g)if("object"===c.type(g))c.merge(p,g.nodeType?[g]:g);else if(wc.test(g)){h=h||m.appendChild(b.createElement("div"));k=(Eb.exec(g)||["",""])[1].toLowerCase();q=F[k]||F._default;h.innerHTML=
q[1]+g.replace(Db,"<$1></$2>")+q[2];for(f=q[0];f--;)h=h.lastChild;!c.support.leadingWhitespace&&La.test(g)&&p.push(b.createTextNode(La.exec(g)[0]));if(!c.support.tbody)for(f=(g="table"!==k||Fb.test(g)?"<table>"!==q[1]||Fb.test(g)?0:h:h.firstChild)&&g.childNodes.length;f--;)c.nodeName(l=g.childNodes[f],"tbody")&&!l.childNodes.length&&g.removeChild(l);c.merge(p,h.childNodes);for(h.textContent="";h.firstChild;)h.removeChild(h.firstChild);h=m.lastChild}else p.push(b.createTextNode(g));h&&m.removeChild(h);
c.support.appendChecked||c.grep(A(p,"input"),Wb);for(r=0;g=p[r++];)if(!e||-1===c.inArray(g,e))if(a=c.contains(g.ownerDocument,g),h=A(m.appendChild(g),"script"),a&&ya(h),d)for(f=0;g=h[f++];)Gb.test(g.type||"")&&d.push(g);return m},cleanData:function(a,b){for(var d,e,f,g,h=0,k=c.expando,l=c.cache,q=c.support.deleteExpando,n=c.event.special;null!=(d=a[h]);h++)if(b||c.acceptData(d))if(g=(f=d[k])&&l[f]){if(g.events)for(e in g.events)n[e]?c.event.remove(d,e):c.removeEvent(d,e,g.handle);l[f]&&(delete l[f],
q?delete d[k]:typeof d.removeAttribute!==y?d.removeAttribute(k):d[k]=null,G.push(f))}}});var ea,S,T,Na=/alpha\([^)]*\)/i,Ac=/opacity\s*=\s*([^)]*)/,Bc=/^(top|right|bottom|left)$/,Cc=/^(none|table(?!-c[ea]).+)/,Hb=/^margin/,Xb=new RegExp("^("+na+")(.*)$","i"),ia=new RegExp("^("+na+")(?!px)[a-z%]+$","i"),Dc=new RegExp("^([+-])=("+na+")","i"),jb={BODY:"block"},Ec={position:"absolute",visibility:"hidden",display:"block"},Ib={letterSpacing:0,fontWeight:400},R=["Top","Right","Bottom","Left"],db=["Webkit",
"O","Moz","ms"];c.fn.extend({css:function(a,b){return c.access(this,function(a,b,f){var g,h={},k=0;if(c.isArray(b)){g=S(a);for(f=b.length;k<f;k++)h[b[k]]=c.css(a,b[k],!1,g);return h}return f!==n?c.style(a,b,f):c.css(a,b)},a,b,1<arguments.length)},show:function(){return eb(this,!0)},hide:function(){return eb(this)},toggle:function(a){var b="boolean"===typeof a;return this.each(function(){(b?a:da(this))?c(this).show():c(this).hide()})}});c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=T(a,
"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,k=c.camelCase(b),l=a.style;b=c.cssProps[k]||(c.cssProps[k]=cb(l,k));h=c.cssHooks[b]||c.cssHooks[k];if(d!==n){if(g=typeof d,"string"===g&&(f=Dc.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(c.css(a,b)),g="number"),
!(null==d||"number"===g&&isNaN(d)||("number"!==g||c.cssNumber[k]||(d+="px"),c.support.clearCloneStyle||""!==d||0!==b.indexOf("background")||(l[b]="inherit"),h&&"set"in h&&(d=h.set(a,d,e))===n)))try{l[b]=d}catch(q){}}else return h&&"get"in h&&(f=h.get(a,!1,e))!==n?f:l[b]}},css:function(a,b,d,e){var f,g;g=c.camelCase(b);b=c.cssProps[g]||(c.cssProps[g]=cb(a.style,g));(g=c.cssHooks[b]||c.cssHooks[g])&&"get"in g&&(f=g.get(a,!0,d));f===n&&(f=T(a,b,e));"normal"===f&&b in Ib&&(f=Ib[b]);return""===d||d?(a=
parseFloat(f),!0===d||c.isNumeric(a)?a||0:f):f},swap:function(a,b,c,e){var f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];c=c.apply(a,e||[]);for(f in b)a.style[f]=g[f];return c}});r.getComputedStyle?(S=function(a){return r.getComputedStyle(a,null)},T=function(a,b,d){var e,f=(d=d||S(a))?d.getPropertyValue(b)||d[b]:n,g=a.style;d&&(""!==f||c.contains(a.ownerDocument,a)||(f=c.style(a,b)),ia.test(f)&&Hb.test(b)&&(a=g.width,b=g.minWidth,e=g.maxWidth,g.minWidth=g.maxWidth=g.width=f,f=d.width,g.width=
a,g.minWidth=b,g.maxWidth=e));return f}):p.documentElement.currentStyle&&(S=function(a){return a.currentStyle},T=function(a,b,c){var e,f,g=(c=c||S(a))?c[b]:n,h=a.style;null==g&&h&&h[b]&&(g=h[b]);if(ia.test(g)&&!Bc.test(b)){c=h.left;if(f=(e=a.runtimeStyle)&&e.left)e.left=a.currentStyle.left;h.left="fontSize"===b?"1em":g;g=h.pixelLeft+"px";h.left=c;f&&(e.left=f)}return""===g?"auto":g});c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(a,e,f){if(e)return 0===a.offsetWidth&&Cc.test(c.css(a,
"display"))?c.swap(a,Ec,function(){return ib(a,b,f)}):ib(a,b,f)},set:function(a,e,f){var g=f&&S(a);return gb(a,e,f?hb(a,b,f,c.support.boxSizing&&"border-box"===c.css(a,"boxSizing",!1,g),g):0)}}});c.support.opacity||(c.cssHooks.opacity={get:function(a,b){return Ac.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var d=a.style,e=a.currentStyle,f=c.isNumeric(b)?"alpha(opacity="+100*b+")":"",g=e&&e.filter||d.filter||"";d.zoom=
1;if((1<=b||""===b)&&""===c.trim(g.replace(Na,""))&&d.removeAttribute&&(d.removeAttribute("filter"),""===b||e&&!e.filter))return;d.filter=Na.test(g)?g.replace(Na,f):g+" "+f}});c(function(){c.support.reliableMarginRight||(c.cssHooks.marginRight={get:function(a,b){if(b)return c.swap(a,{display:"inline-block"},T,[a,"marginRight"])}});!c.support.pixelPosition&&c.fn.position&&c.each(["top","left"],function(a,b){c.cssHooks[b]={get:function(a,e){if(e)return e=T(a,b),ia.test(e)?c(a).position()[b]+"px":e}}})});
c.expr&&c.expr.filters&&(c.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!c.support.reliableHiddenOffsets&&"none"===(a.style&&a.style.display||c.css(a,"display"))},c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)});c.each({margin:"",padding:"",border:"Width"},function(a,b){c.cssHooks[a+b]={expand:function(c){var e=0,f={};for(c="string"===typeof c?c.split(" "):[c];4>e;e++)f[a+R[e]+b]=c[e]||c[e-2]||c[0];return f}};Hb.test(a)||(c.cssHooks[a+b].set=gb)});
var Fc=/%20/g,Yb=/\[\]$/,Jb=/\r?\n/g,Gc=/^(?:submit|button|image|reset|file)$/i,Hc=/^(?:input|select|textarea|keygen)/i;c.fn.extend({serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=c.prop(this,"elements");return a?c.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!c(this).is(":disabled")&&Hc.test(this.nodeName)&&!Gc.test(a)&&(this.checked||!za.test(a))}).map(function(a,b){var d=c(this).val();return null==
d?null:c.isArray(d)?c.map(d,function(a){return{name:b.name,value:a.replace(Jb,"\r\n")}}):{name:b.name,value:d.replace(Jb,"\r\n")}}).get()}});c.param=function(a,b){var d,e=[],f=function(a,b){b=c.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};b===n&&(b=c.ajaxSettings&&c.ajaxSettings.traditional);if(c.isArray(a)||a.jquery&&!c.isPlainObject(a))c.each(a,function(){f(this.name,this.value)});else for(d in a)Aa(d,a[d],b,f);return e.join("&").replace(Fc,"+")};c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),
function(a,b){c.fn[b]=function(a,c){return 0<arguments.length?this.on(b,null,a,c):this.trigger(b)}});c.fn.hover=function(a,b){return this.mouseenter(a).mouseleave(b||a)};var J,W,Oa=c.now(),Pa=/\?/,Ic=/#.*$/,Kb=/([?&])_=[^&]*/,Jc=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Kc=/^(?:GET|HEAD)$/,Lc=/^\/\//,Lb=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Mb=c.fn.load,Nb={},Ba={},Ob="*/".concat("*");try{W=ac.href}catch(Qc){W=p.createElement("a"),W.href="",W=W.href}J=Lb.exec(W.toLowerCase())||[];c.fn.load=function(a,
b,d){if("string"!==typeof a&&Mb)return Mb.apply(this,arguments);var e,f,g,h=this,k=a.indexOf(" ");0<=k&&(e=a.slice(k,a.length),a=a.slice(0,k));c.isFunction(b)?(d=b,b=n):b&&"object"===typeof b&&(g="POST");0<h.length&&c.ajax({url:a,type:g,dataType:"html",data:b}).done(function(a){f=arguments;h.html(e?c("<div>").append(c.parseHTML(a)).find(e):a)}).complete(d&&function(a,b){h.each(d,f||[a.responseText,b,a])});return this};c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(a){return this.on(b,a)}});c.each(["get","post"],function(a,b){c[b]=function(a,e,f,g){c.isFunction(e)&&(g=g||f,f=e,e=n);return c.ajax({url:a,type:b,dataType:g,data:e,success:f})}});c.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:W,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(J[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ob,text:"text/plain",html:"text/html",
xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":r.String,"text html":!0,"text json":c.parseJSON,"text xml":c.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ca(Ca(a,c.ajaxSettings),b):Ca(c.ajaxSettings,a)},ajaxPrefilter:lb(Nb),ajaxTransport:lb(Ba),ajax:function(a,b){function d(a,b,d,e){var f,p,s,t,x=b;if(2!==M){M=2;k&&clearTimeout(k);
q=n;h=e||"";v.readyState=0<a?4:0;if(d){t=m;e=v;var B,y,H,I,G=t.contents,w=t.dataTypes,J=t.responseFields;for(I in J)I in d&&(e[J[I]]=d[I]);for(;"*"===w[0];)w.shift(),y===n&&(y=t.mimeType||e.getResponseHeader("Content-Type"));if(y)for(I in G)if(G[I]&&G[I].test(y)){w.unshift(I);break}if(w[0]in d)H=w[0];else{for(I in d){if(!w[0]||t.converters[I+" "+w[0]]){H=I;break}B||(B=I)}H=H||B}H?(H!==w[0]&&w.unshift(H),t=d[H]):t=void 0}if(200<=a&&300>a||304===a)if(m.ifModified&&((d=v.getResponseHeader("Last-Modified"))&&
(c.lastModified[g]=d),(d=v.getResponseHeader("etag"))&&(c.etag[g]=d)),204===a)f=!0,x="nocontent";else if(304===a)f=!0,x="notmodified";else{a:{p=m;s=t;var C,D,x={};B=0;y=p.dataTypes.slice();H=y[0];p.dataFilter&&(s=p.dataFilter(s,p.dataType));if(y[1])for(D in p.converters)x[D.toLowerCase()]=p.converters[D];for(;d=y[++B];)if("*"!==d){if("*"!==H&&H!==d){D=x[H+" "+d]||x["* "+d];if(!D)for(C in x)if(f=C.split(" "),f[1]===d&&(D=x[H+" "+f[0]]||x["* "+f[0]])){!0===D?D=x[C]:!0!==x[C]&&(d=f[0],y.splice(B--,0,
d));break}if(!0!==D)if(D&&p["throws"])s=D(s);else try{s=D(s)}catch(L){f={state:"parsererror",error:D?L:"No conversion from "+H+" to "+d};break a}}H=d}f={state:"success",data:s}}x=f.state;p=f.data;s=f.error;f=!s}else if(s=x,a||!x)x="error",0>a&&(a=0);v.status=a;v.statusText=(b||x)+"";f?z.resolveWith(r,[p,x,v]):z.rejectWith(r,[v,x,s]);v.statusCode(F);F=n;l&&E.trigger(f?"ajaxSuccess":"ajaxError",[v,m,f?p:s]);A.fireWith(r,[v,x]);l&&(E.trigger("ajaxComplete",[v,m]),--c.active||c.event.trigger("ajaxStop"))}}
"object"===typeof a&&(b=a,a=n);b=b||{};var e,f,g,h,k,l,q,p,m=c.ajaxSetup({},b),r=m.context||m,E=m.context&&(r.nodeType||r.jquery)?c(r):c.event,z=c.Deferred(),A=c.Callbacks("once memory"),F=m.statusCode||{},B={},y={},M=0,G="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===M){if(!p)for(p={};b=Jc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===M?h:null},setRequestHeader:function(a,b){var c=a.toLowerCase();
M||(a=y[c]=y[c]||a,B[a]=b);return this},overrideMimeType:function(a){M||(m.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>M)for(b in a)F[b]=[F[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){a=a||G;q&&q.abort(a);d(0,a);return this}};z.promise(v).complete=A.add;v.success=v.done;v.error=v.fail;m.url=((a||m.url||W)+"").replace(Ic,"").replace(Lc,J[1]+"//");m.type=b.method||b.type||m.method||m.type;m.dataTypes=c.trim(m.dataType||"*").toLowerCase().match(O)||[""];null==
m.crossDomain&&(e=Lb.exec(m.url.toLowerCase()),m.crossDomain=!(!e||e[1]===J[1]&&e[2]===J[2]&&(e[3]||("http:"===e[1]?80:443))==(J[3]||("http:"===J[1]?80:443))));m.data&&m.processData&&"string"!==typeof m.data&&(m.data=c.param(m.data,m.traditional));mb(Nb,m,b,v);if(2===M)return v;(l=m.global)&&0===c.active++&&c.event.trigger("ajaxStart");m.type=m.type.toUpperCase();m.hasContent=!Kc.test(m.type);g=m.url;m.hasContent||(m.data&&(g=m.url+=(Pa.test(g)?"&":"?")+m.data,delete m.data),!1===m.cache&&(m.url=
Kb.test(g)?g.replace(Kb,"$1_="+Oa++):g+(Pa.test(g)?"&":"?")+"_="+Oa++));m.ifModified&&(c.lastModified[g]&&v.setRequestHeader("If-Modified-Since",c.lastModified[g]),c.etag[g]&&v.setRequestHeader("If-None-Match",c.etag[g]));(m.data&&m.hasContent&&!1!==m.contentType||b.contentType)&&v.setRequestHeader("Content-Type",m.contentType);v.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+Ob+"; q=0.01":""):m.accepts["*"]);for(f in m.headers)v.setRequestHeader(f,
m.headers[f]);if(m.beforeSend&&(!1===m.beforeSend.call(r,v,m)||2===M))return v.abort();G="abort";for(f in{success:1,error:1,complete:1})v[f](m[f]);if(q=mb(Ba,m,b,v)){v.readyState=1;l&&E.trigger("ajaxSend",[v,m]);m.async&&0<m.timeout&&(k=setTimeout(function(){v.abort("timeout")},m.timeout));try{M=1,q.send(B,d)}catch(t){if(2>M)d(-1,t);else throw t;}}else d(-1,"No Transport");return v},getScript:function(a,b){return c.get(a,n,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")}});c.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){c.globalEval(a);return a}}});c.ajaxPrefilter("script",function(a){a.cache===n&&(a.cache=!1);a.crossDomain&&(a.type="GET",a.global=!1)});c.ajaxTransport("script",function(a){if(a.crossDomain){var b,d=p.head||c("head")[0]||p.documentElement;return{send:function(c,f){b=p.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,c){if(c||!b.readyState||
/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success")};d.insertBefore(b,d.firstChild)},abort:function(){if(b)b.onload(n,!0)}}}});var Pb=[],Qa=/(=)\?(?=&|$)|\?\?/;c.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Pb.pop()||c.expando+"_"+Oa++;this[a]=!0;return a}});c.ajaxPrefilter("json jsonp",function(a,b,d){var e,f,g,h=!1!==a.jsonp&&(Qa.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&
Qa.test(a.data)&&"data");if(h||"jsonp"===a.dataTypes[0])return e=a.jsonpCallback=c.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,h?a[h]=a[h].replace(Qa,"$1"+e):!1!==a.jsonp&&(a.url+=(Pa.test(a.url)?"&":"?")+a.jsonp+"="+e),a.converters["script json"]=function(){g||c.error(e+" was not called");return g[0]},a.dataTypes[0]="json",f=r[e],r[e]=function(){g=arguments},d.always(function(){r[e]=f;a[e]&&(a.jsonpCallback=b.jsonpCallback,Pb.push(e));g&&c.isFunction(f)&&f(g[0]);g=f=n}),"script"});
var P,X,Mc=0,Ra=r.ActiveXObject&&function(){for(var a in P)P[a](n,!0)};c.ajaxSettings.xhr=r.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&nb()))a:{try{a=new r.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:nb;X=c.ajaxSettings.xhr();c.support.cors=!!X&&"withCredentials"in X;(X=c.support.ajax=!!X)&&c.ajaxTransport(function(a){if(!a.crossDomain||c.support.cors){var b;return{send:function(d,e){var f,g,h=a.xhr();a.username?h.open(a.type,a.url,a.async,a.username,a.password):
h.open(a.type,a.url,a.async);if(a.xhrFields)for(g in a.xhrFields)h[g]=a.xhrFields[g];a.mimeType&&h.overrideMimeType&&h.overrideMimeType(a.mimeType);a.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");try{for(g in d)h.setRequestHeader(g,d[g])}catch(k){}h.send(a.hasContent&&a.data||null);b=function(d,g){var k,m,p,r;try{if(b&&(g||4===h.readyState))if(b=n,f&&(h.onreadystatechange=c.noop,Ra&&delete P[f]),g)4!==h.readyState&&h.abort();else{r={};k=h.status;m=h.getAllResponseHeaders();
"string"===typeof h.responseText&&(r.text=h.responseText);try{p=h.statusText}catch(z){p=""}k||!a.isLocal||a.crossDomain?1223===k&&(k=204):k=r.text?200:404}}catch(y){g||e(-1,y)}r&&e(k,p,r,m)};a.async?4===h.readyState?setTimeout(b):(f=++Mc,Ra&&(P||(P={},c(r).unload(Ra)),P[f]=b),h.onreadystatechange=b):b()},abort:function(){b&&b(n,!0)}}}});var Y,ua,Nc=/^(?:toggle|show|hide)$/,Oc=new RegExp("^(?:([+-])=|)("+na+")([a-z%]*)$","i"),Pc=/queueHooks$/,ja=[function(a,b,d){var e,f,g,h,k,l,q=this,n=a.style,m=
{},p=[],r=a.nodeType&&da(a);d.queue||(k=c._queueHooks(a,"fx"),null==k.unqueued&&(k.unqueued=0,l=k.empty.fire,k.empty.fire=function(){k.unqueued||l()}),k.unqueued++,q.always(function(){q.always(function(){k.unqueued--;c.queue(a,"fx").length||k.empty.fire()})}));1===a.nodeType&&("height"in b||"width"in b)&&(d.overflow=[n.overflow,n.overflowX,n.overflowY],"inline"===c.css(a,"display")&&"none"===c.css(a,"float")&&(c.support.inlineBlockNeedsLayout&&"inline"!==fb(a.nodeName)?n.zoom=1:n.display="inline-block"));
d.overflow&&(n.overflow="hidden",c.support.shrinkWrapBlocks||q.always(function(){n.overflow=d.overflow[0];n.overflowX=d.overflow[1];n.overflowY=d.overflow[2]}));for(f in b)g=b[f],Nc.exec(g)&&(delete b[f],e=e||"toggle"===g,g!==(r?"hide":"show")&&p.push(f));if(b=p.length)for(g=c._data(a,"fxshow")||c._data(a,"fxshow",{}),("hidden"in g)&&(r=g.hidden),e&&(g.hidden=!r),r?c(a).show():q.done(function(){c(a).hide()}),q.done(function(){var b;c._removeData(a,"fxshow");for(b in m)c.style(a,b,m[b])}),f=0;f<b;f++)e=
p[f],h=q.createTween(e,r?g[e]:0),m[e]=g[e]||c.style(a,e),e in g||(g[e]=h.start,r&&(h.end=h.start,h.start="width"===e||"height"===e?1:0))}],fa={"*":[function(a,b){var d,e,f=this.createTween(a,b),g=Oc.exec(b),h=f.cur(),k=+h||0,l=1,n=20;if(g){d=+g[2];e=g[3]||(c.cssNumber[a]?"":"px");if("px"!==e&&k){k=c.css(f.elem,a,!0)||d||1;do l=l||".5",k/=l,c.style(f.elem,a,k+e);while(l!==(l=f.cur()/h)&&1!==l&&--n)}f.unit=e;f.start=k;f.end=g[1]?k+(g[1]+1)*d:d}return f}]};c.Animation=c.extend(pb,{tweener:function(a,
b){c.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var d,e=0,f=a.length;e<f;e++)d=a[e],fa[d]=fa[d]||[],fa[d].unshift(b)},prefilter:function(a,b){b?ja.unshift(a):ja.push(a)}});c.Tween=z;z.prototype={constructor:z,init:function(a,b,d,e,f,g){this.elem=a;this.prop=d;this.easing=f||"swing";this.options=b;this.start=this.now=this.cur();this.end=e;this.unit=g||(c.cssNumber[d]?"":"px")},cur:function(){var a=z.propHooks[this.prop];return a&&a.get?a.get(this):z.propHooks._default.get(this)},run:function(a){var b,
d=z.propHooks[this.prop];this.pos=this.options.duration?b=c.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):b=a;this.now=(this.end-this.start)*b+this.start;this.options.step&&this.options.step.call(this.elem,this.now,this);d&&d.set?d.set(this):z.propHooks._default.set(this);return this}};z.prototype.init.prototype=z.prototype;z.propHooks={_default:{get:function(a){return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(a=c.css(a.elem,a.prop,""))&&"auto"!==a?
a:0:a.elem[a.prop]},set:function(a){if(c.fx.step[a.prop])c.fx.step[a.prop](a);else a.elem.style&&(null!=a.elem.style[c.cssProps[a.prop]]||c.cssHooks[a.prop])?c.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}};z.propHooks.scrollTop=z.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}};c.each(["toggle","show","hide"],function(a,b){var d=c.fn[b];c.fn[b]=function(a,c,g){return null==a||"boolean"===typeof a?d.apply(this,arguments):this.animate(ka(b,
!0),a,c,g)}});c.fn.extend({fadeTo:function(a,b,c,e){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,e)},animate:function(a,b,d,e){var f=c.isEmptyObject(a),g=c.speed(b,d,e),h=function(){var b=pb(this,c.extend({},a),g);h.finish=function(){b.stop(!0)};(f||c._data(this,"finish"))&&b.stop(!0)};h.finish=h;return f||!1===g.queue?this.each(h):this.queue(g.queue,h)},stop:function(a,b,d){var e=function(a){var b=a.stop;delete a.stop;b(d)};"string"!==typeof a&&(d=b,b=a,a=n);b&&!1!==
a&&this.queue(a||"fx",[]);return this.each(function(){var b=!0,g=null!=a&&a+"queueHooks",h=c.timers,k=c._data(this);if(g)k[g]&&k[g].stop&&e(k[g]);else for(g in k)k[g]&&k[g].stop&&Pc.test(g)&&e(k[g]);for(g=h.length;g--;)h[g].elem!==this||null!=a&&h[g].queue!==a||(h[g].anim.stop(d),b=!1,h.splice(g,1));!b&&d||c.dequeue(this,a)})},finish:function(a){!1!==a&&(a=a||"fx");return this.each(function(){var b,d=c._data(this),e=d[a+"queue"];b=d[a+"queueHooks"];var f=c.timers,g=e?e.length:0;d.finish=!0;c.queue(this,
a,[]);b&&b.cur&&b.cur.finish&&b.cur.finish.call(this);for(b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)e[b]&&e[b].finish&&e[b].finish.call(this);delete d.finish})}});c.each({slideDown:ka("show"),slideUp:ka("hide"),slideToggle:ka("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(a,c,f){return this.animate(b,a,c,f)}});c.speed=function(a,b,d){var e=a&&"object"===typeof a?c.extend({},
a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:"number"===typeof e.duration?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;if(null==e.queue||!0===e.queue)e.queue="fx";e.old=e.complete;e.complete=function(){c.isFunction(e.old)&&e.old.call(this);e.queue&&c.dequeue(this,e.queue)};return e};c.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}};c.timers=[];c.fx=z.prototype.init;
c.fx.tick=function(){var a,b=c.timers,d=0;for(Y=c.now();d<b.length;d++)a=b[d],a()||b[d]!==a||b.splice(d--,1);b.length||c.fx.stop();Y=n};c.fx.timer=function(a){a()&&c.timers.push(a)&&c.fx.start()};c.fx.interval=13;c.fx.start=function(){ua||(ua=setInterval(c.fx.tick,c.fx.interval))};c.fx.stop=function(){clearInterval(ua);ua=null};c.fx.speeds={slow:600,fast:200,_default:400};c.fx.step={};c.expr&&c.expr.filters&&(c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length});
c.fn.offset=function(a){if(arguments.length)return a===n?this:this.each(function(b){c.offset.setOffset(this,a,b)});var b,d,e={top:0,left:0},f=(d=this[0])&&d.ownerDocument;if(f){b=f.documentElement;if(!c.contains(b,d))return e;typeof d.getBoundingClientRect!==y&&(e=d.getBoundingClientRect());d=qb(f);return{top:e.top+(d.pageYOffset||b.scrollTop)-(b.clientTop||0),left:e.left+(d.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}}};c.offset={setOffset:function(a,b,d){var e=c.css(a,"position");"static"===e&&
(a.style.position="relative");var f=c(a),g=f.offset(),h=c.css(a,"top"),k=c.css(a,"left"),l={},n={};("absolute"===e||"fixed"===e)&&-1<c.inArray("auto",[h,k])?(n=f.position(),e=n.top,k=n.left):(e=parseFloat(h)||0,k=parseFloat(k)||0);c.isFunction(b)&&(b=b.call(a,d,g));null!=b.top&&(l.top=b.top-g.top+e);null!=b.left&&(l.left=b.left-g.left+k);"using"in b?b.using.call(a,l):f.css(l)}};c.fn.extend({position:function(){if(this[0]){var a,b,d={top:0,left:0},e=this[0];"fixed"===c.css(e,"position")?b=e.getBoundingClientRect():
(a=this.offsetParent(),b=this.offset(),c.nodeName(a[0],"html")||(d=a.offset()),d.top+=c.css(a[0],"borderTopWidth",!0),d.left+=c.css(a[0],"borderLeftWidth",!0));return{top:b.top-d.top-c.css(e,"marginTop",!0),left:b.left-d.left-c.css(e,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||p.documentElement;a&&!c.nodeName(a,"html")&&"static"===c.css(a,"position");)a=a.offsetParent;return a||p.documentElement})}});c.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},
function(a,b){var d=/Y/.test(b);c.fn[a]=function(e){return c.access(this,function(a,e,h){var k=qb(a);if(h===n)return k?b in k?k[b]:k.document.documentElement[e]:a[e];k?k.scrollTo(d?c(k).scrollLeft():h,d?h:c(k).scrollTop()):a[e]=h},a,e,arguments.length,null)}});c.each({Height:"height",Width:"width"},function(a,b){c.each({padding:"inner"+a,content:b,"":"outer"+a},function(d,e){c.fn[e]=function(e,g){var h=arguments.length&&(d||"boolean"!==typeof e),k=d||(!0===e||!0===g?"margin":"border");return c.access(this,
function(b,d,e){return c.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(d=b.documentElement,Math.max(b.body["scroll"+a],d["scroll"+a],b.body["offset"+a],d["offset"+a],d["client"+a])):e===n?c.css(b,d,k):c.style(b,d,e,k)},b,h?e:n,h,null)}})});r.jQuery=r.$=c;"function"===typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return c})})(window);
var $3Dmol=$3Dmol||{};$3Dmol.Math={clamp:function(a,b,c){return Math.min(Math.max(a,b),c)},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}()};$3Dmol.Quaternion=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1};
$3Dmol.Quaternion.prototype={constructor:$3Dmol.Quaternion,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w;return this},conjugate:function(){this.x*=-1;this.y*=-1;this.z*=-1;return this},inverse:function(){return this.conjugate().normalize()},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},normalize:function(){var a=this.length();0===a?(this.z=this.y=this.x=0,this.w=1):
(a=1/a,this.x*=a,this.y*=a,this.z*=a,this.w*=a);return this},multiply:function(a){return this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){var c=a.x,d=a.y,e=a.z,k=a.w,f=b.x,l=b.y,h=b.z,m=b.w;this.x=c*m+k*f+d*h-e*l;this.y=d*m+k*l+e*f-c*h;this.z=e*m+k*h+c*l-d*f;this.w=k*m-c*f-d*l-e*h}};$3Dmol.Vector2=function(a,b){this.x=a||0;this.y=b||0};
$3Dmol.Vector2.prototype={constructor:$3Dmol.Vector2,set:function(a,b){this.x=a;this.y=b;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},clone:function(){return new $3Dmol.Vector2(this.x,this.y)}};$3Dmol.Vector3=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0};
$3Dmol.Vector3.prototype={constructor:$3Dmol.Vector3,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},sub:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiplyScalar:function(a){this.x*=
a;this.y*=a;this.z*=a;return this},divideScalar:function(a){0!==a?(this.x/=a,this.y/=a,this.z/=a):this.z=this.y=this.x=0;return this},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12];this.y=a[1]*b+a[5]*c+a[9]*d+a[13];this.z=a[2]*b+a[6]*c+a[10]*d+a[14];return this},applyProjection:function(a){var b=
this.x,c=this.y,d=this.z;a=a.elements;var e=a[3]*b+a[7]*c+a[11]*d+a[15];this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])/e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])/e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])/e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,k=a.y,f=a.z,l,h,m;l=2*(c*f-d*k);h=2*(d*e-b*f);m=2*(b*k-c*e);this.x=b+a.w*l+(h*f-m*k);this.y=c+a.w*h+(m*e-l*f);this.z=d+a.w*m+(l*k-h*e);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*
a.y+this.z*a.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},normalize:function(){return this.divideScalar(this.length())},cross:function(a){var b=this.x,c=this.y,d=this.z;this.x=c*a.z-d*a.y;this.y=d*a.x-b*a.z;this.z=b*a.y-c*a.x;return this},crossVectors:function(a,b){this.x=a.y*b.z-a.z*b.y;this.y=a.z*b.x-a.x*b.z;this.z=a.x*b.y-a.y*b.x;return this},getPositionFromMatrix:function(a){this.x=a.elements[12];
this.y=a.elements[13];this.z=a.elements[14];return this},setEulerFromRotationMatrix:function(a,b){var c=a.elements,d=c[0],e=c[4],k=c[8],f=c[5],l=c[9],h=c[6],c=c[10];void 0===b||"XYZ"===b?(this.y=Math.asin($3Dmol.Math.clamp(k,-1,1)),.99999>Math.abs(k)?(this.x=Math.atan2(-l,c),this.z=Math.atan2(-e,d)):(this.x=Math.atan2(h,f),this.z=0)):console.error("Error with vector's setEulerFromRotationMatrix: Unknown order: "+b);return this},clone:function(){return new $3Dmol.Vector3(this.x,this.y,this.z)}};
$3Dmol.Matrix3=function(a,b,c,d,e,k,f,l,h){this.elements=new Float32Array(9);this.set(void 0!==a?a:1,b||0,c||0,d||0,void 0!==e?e:1,k||0,f||0,l||0,void 0!==h?h:1)};
$3Dmol.Matrix3.prototype={constructor:$3Dmol.Matrix3,set:function(a,b,c,d,e,k,f,l,h){var m=this.elements;m[0]=a;m[3]=b;m[6]=c;m[1]=d;m[4]=e;m[7]=k;m[2]=f;m[5]=l;m[8]=h;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},copy:function(a){a=a.elements;this.set(a[0],a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8])},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},getInverse:function(a,b){var c=a.elements,
d=this.elements;d[0]=c[10]*c[5]-c[6]*c[9];d[1]=-c[10]*c[1]+c[2]*c[9];d[2]=c[6]*c[1]-c[2]*c[5];d[3]=-c[10]*c[4]+c[6]*c[8];d[4]=c[10]*c[0]-c[2]*c[8];d[5]=-c[6]*c[0]+c[2]*c[4];d[6]=c[9]*c[4]-c[5]*c[8];d[7]=-c[9]*c[0]+c[1]*c[8];d[8]=c[5]*c[0]-c[1]*c[4];c=c[0]*d[0]+c[1]*d[3]+c[2]*d[6];if(0===c){if(b)throw Error("Matrix3.getInverse(): can't invert matrix, determinant is 0");console.warn("Matrix3.getInverse(): can't invert matrix, determinant is 0");this.identity();return this}this.multiplyScalar(1/c);return this},
transpose:function(){var a,b=this.elements;a=b[1];b[1]=b[3];b[3]=a;a=b[2];b[2]=b[6];b[6]=a;a=b[5];b[5]=b[7];b[7]=a;return this},clone:function(){var a=this.elements;return new $3Dmol.Matrix3(a[0],a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8])}};
$3Dmol.Matrix4=function(a,b,c,d,e,k,f,l,h,m,q,z,w,v,x,r){var n=this.elements=new Float32Array(16);n[0]=void 0!==a?a:1;n[4]=b||0;n[8]=c||0;n[12]=d||0;n[1]=e||0;n[5]=void 0!==k?k:1;n[9]=f||0;n[13]=l||0;n[2]=h||0;n[6]=m||0;n[10]=void 0!==q?q:1;n[14]=z||0;n[3]=w||0;n[7]=v||0;n[11]=x||0;n[15]=void 0!==r?r:1};
$3Dmol.Matrix4.prototype={constructor:$3Dmol.Matrix4,set:function(a,b,c,d,e,k,f,l,h,m,q,z,w,v,x,r){var n=this.elements;n[0]=a;n[4]=b;n[8]=c;n[12]=d;n[1]=e;n[5]=k;n[9]=f;n[13]=l;n[2]=h;n[6]=m;n[10]=q;n[14]=z;n[3]=w;n[7]=v;n[11]=x;n[15]=r;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},copy:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[12],a[1],a[5],a[9],a[13],a[2],a[6],a[10],a[14],a[3],a[7],a[11],a[15]);return this},setRotationFromEuler:function(a,b){var c=
this.elements,d=a.x,e=a.y,k=a.z,f=Math.cos(d),d=Math.sin(d),l=Math.cos(e),e=Math.sin(e),h=Math.cos(k),k=Math.sin(k);if(void 0===b||"XYZ"===b){var m=f*h,q=f*k,z=d*h,w=d*k;c[0]=l*h;c[4]=-l*k;c[8]=e;c[1]=q+z*e;c[5]=m-w*e;c[9]=-d*l;c[2]=w-m*e;c[6]=z+q*e;c[10]=f*l}else console.error("Error with matrix4 setRotationFromEuler. Order: "+b);return this},setRotationFromQuaternion:function(a){var b=this.elements,c=a.x,d=a.y,e=a.z,k=a.w,f=c+c,l=d+d,h=e+e;a=c*f;var m=c*l,c=c*h,q=d*l,d=d*h,e=e*h,f=k*f,l=k*l,k=k*
h;b[0]=1-(q+e);b[4]=m-k;b[8]=c+l;b[1]=m+k;b[5]=1-(a+e);b[9]=d-f;b[2]=c-l;b[6]=d+f;b[10]=1-(a+q);return this},lookAt:function(){var a=new $3Dmol.Vector3,b=new $3Dmol.Vector3,c=new $3Dmol.Vector3;return function(d,e,k){var f=this.elements;c.subVectors(d,e).normalize();0===c.length()&&(c.z=1);a.crossVectors(k,c).normalize();0===a.length()&&(c.x+=1E-4,a.crossVectors(k,c).normalize());b.crossVectors(c,a);f[0]=a.x;f[4]=b.x;f[8]=c.x;f[1]=a.y;f[5]=b.y;f[9]=c.y;f[2]=a.z;f[6]=b.z;f[10]=c.z;return this}}(),
multiplyMatrices:function(a,b){var c=a.elements,d=b.elements,e=this.elements,k=c[0],f=c[4],l=c[8],h=c[12],m=c[1],q=c[5],z=c[9],w=c[13],v=c[2],x=c[6],r=c[10],n=c[14],t=c[3],u=c[7],y=c[11],c=c[15],F=d[0],B=d[4],C=d[8],s=d[12],p=d[1],A=d[5],E=d[9],H=d[13],G=d[2],D=d[6],I=d[10],L=d[14],M=d[3],N=d[7],J=d[11],d=d[15];e[0]=k*F+f*p+l*G+h*M;e[4]=k*B+f*A+l*D+h*N;e[8]=k*C+f*E+l*I+h*J;e[12]=k*s+f*H+l*L+h*d;e[1]=m*F+q*p+z*G+w*M;e[5]=m*B+q*A+z*D+w*N;e[9]=m*C+q*E+z*I+w*J;e[13]=m*s+q*H+z*L+w*d;e[2]=v*F+x*p+r*G+n*
M;e[6]=v*B+x*A+r*D+n*N;e[10]=v*C+x*E+r*I+n*J;e[14]=v*s+x*H+r*L+n*d;e[3]=t*F+u*p+y*G+c*M;e[7]=t*B+u*A+y*D+c*N;e[11]=t*C+u*E+y*I+c*J;e[15]=t*s+u*H+y*L+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},transpose:function(){var a=this.elements,b;b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;
b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},getPosition:function(){var a=new $3Dmol.Vector3;return function(){console.warn("DEPRECATED: Matrix4's .getPosition() has been removed. Use Vector3.getPositionFromMatrix( matrix ) instead.");var b=this.elements;return a.set(b[12],b[13],b[14])}}(),setPosition:function(a){var b=this.elements;b[12]=a.x;b[13]=a.y;b[14]=a.z;return this},getInverse:function(a,b){var c=this.elements,d=a.elements,e=d[0],k=d[4],f=d[8],l=d[12],h=d[1],m=d[5],
q=d[9],z=d[13],w=d[2],v=d[6],x=d[10],r=d[14],n=d[3],t=d[7],u=d[11],y=d[15];c[0]=q*r*t-z*x*t+z*v*u-m*r*u-q*v*y+m*x*y;c[4]=l*x*t-f*r*t-l*v*u+k*r*u+f*v*y-k*x*y;c[8]=f*z*t-l*q*t+l*m*u-k*z*u-f*m*y+k*q*y;c[12]=l*q*v-f*z*v-l*m*x+k*z*x+f*m*r-k*q*r;c[1]=z*x*n-q*r*n-z*w*u+h*r*u+q*w*y-h*x*y;c[5]=f*r*n-l*x*n+l*w*u-e*r*u-f*w*y+e*x*y;c[9]=l*q*n-f*z*n-l*h*u+e*z*u+f*h*y-e*q*y;c[13]=f*z*w-l*q*w+l*h*x-e*z*x-f*h*r+e*q*r;c[2]=m*r*n-z*v*n+z*w*t-h*r*t-m*w*y+h*v*y;c[6]=l*v*n-k*r*n-l*w*t+e*r*t+k*w*y-e*v*y;c[10]=k*z*n-l*
m*n+l*h*t-e*z*t-k*h*y+e*m*y;c[14]=l*m*w-k*z*w-l*h*v+e*z*v+k*h*r-e*m*r;c[3]=q*v*n-m*x*n-q*w*t+h*x*t+m*w*u-h*v*u;c[7]=k*x*n-f*v*n+f*w*t-e*x*t-k*w*u+e*v*u;c[11]=f*m*n-k*q*n-f*h*t+e*q*t+k*h*u-e*m*u;c[15]=k*q*w-f*m*w+f*h*v-e*q*v-k*h*x+e*m*x;c=d[0]*c[0]+d[1]*c[4]+d[2]*c[8]+d[3]*c[12];if(0===c){if(b)throw Error("Matrix4.getInverse(): can't invert matrix, determinant is 0");console.warn("Matrix4.getInverse(): can't invert matrix, determinant is 0");this.identity();return this}this.multiplyScalar(1/c);return this},
compose:function(){var a=new $3Dmol.Matrix4,b=new $3Dmol.Matrix4;return function(c,d,e){var k=this.elements;a.identity();a.setRotationFromQuaternion(d);b.makeScale(e.x,e.y,e.z);this.multiplyMatrices(a,b);k[12]=c.x;k[13]=c.y;k[14]=c.z;return this}}(),decompose:function(){var a=new $3Dmol.Vector3,b=new $3Dmol.Vector3,c=new $3Dmol.Vector3,d=new $3Dmol.Matrix4;return function(e,k,f){var l=this.elements;a.set(l[0],l[1],l[2]);b.set(l[4],l[5],l[6]);c.set(l[8],l[9],l[10]);e=e instanceof $3Dmol.Vector3?e:
new $3Dmol.Vector3;k=k instanceof $3Dmol.Quaternion?k:new $3Dmol.Quaternion;f=f instanceof $3Dmol.Vector3?f:new $3Dmol.Vector3;f.x=a.length();f.y=b.length();f.z=c.length();e.x=l[12];e.y=l[13];e.z=l[14];d.copy(this);d.elements[0]/=f.x;d.elements[1]/=f.x;d.elements[2]/=f.x;d.elements[4]/=f.y;d.elements[5]/=f.y;d.elements[6]/=f.y;d.elements[8]/=f.z;d.elements[9]/=f.z;d.elements[10]/=f.z;k.setFromRotationMatrix(d);return[e,k,f]}}(),scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=
d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],Math.max(a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10])))},makeFrustum:function(a,b,c,d,e,k){var f=this.elements;f[0]=2*e/(b-a);f[4]=0;f[8]=(b+a)/(b-a);f[12]=0;f[1]=0;f[5]=2*e/(d-c);f[9]=(d+c)/(d-c);f[13]=0;f[2]=0;f[6]=0;f[10]=-(k+e)/(k-e);f[14]=-2*k*e/(k-e);f[3]=0;f[7]=0;f[11]=-1;f[15]=
0;return this},makePerspective:function(a,b,c,d){a=c*Math.tan($3Dmol.Math.degToRad(.5*a));var e=-a;return this.makeFrustum(e*b,a*b,e,a,c,d)},isEqual:function(a){a=a.elements;var b=this.elements;return b[0]==a[0]&&b[4]==a[4]&&b[8]==a[8]&&b[12]==a[12]&&b[1]==a[1]&&b[5]==a[5]&&b[9]==a[9]&&b[13]==a[13]&&b[2]==a[2]&&b[6]==a[6]&&b[10]==a[10]&&b[14]==a[14]&&b[3]==a[3]&&b[7]==a[7]&&b[11]==a[11]&&b[15]==a[15]?!0:!1},clone:function(){var a=this.elements;return new $3Dmol.Matrix4(a[0],a[4],a[8],a[12],a[1],a[5],
a[9],a[13],a[2],a[6],a[10],a[14],a[3],a[7],a[11],a[15])},isIdentity:function(){var a=this.elements;return 1==a[0]&&0==a[4]&&0==a[8]&&0==a[12]&&0==a[1]&&1==a[5]&&0==a[9]&&0==a[13]&&0==a[2]&&0==a[6]&&1==a[10]&&0==a[14]&&0==a[3]&&0==a[7]&&0==a[11]&&1==a[15]?!0:!1}};$3Dmol.Ray=function(a,b){this.origin=void 0!==a?a:new $3Dmol.Vector3;this.direction=void 0!==b?b:new $3Dmol.Vector3};
$3Dmol.Ray.prototype={constructor:$3Dmol.Ray,set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){return(b||new $3Dmol.Vector3).copy(this.direction).multiplyScalar(a).add(this.origin)},recast:function(){var a=new $3Dmol.Vector3;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){var c=b||new $3Dmol.Vector3;c.subVectors(a,this.origin);
var d=c.dot(this.direction);return c.copy(this.direction).multiplyScalar(d).add(this.origin)},distanceToPoint:function(){var a=new $3Dmol.Vector3;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceTo(b)}}(),isIntersectionCylinder:function(){},isIntersectionSphere:function(a){return this.distanceToPoint(a.center)<=a.radius},isIntersectionPlane:function(a){return 0!==a.normal.dot(this.direction)||0===a.distanceToPoint(this.origin)?
!0:!1},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b){if(0===a.distanceToPoint(this.origin))return 0}else return-(this.origin.dot(a.normal)+a.constant)/b},intersectPlane:function(a,b){var c=this.distanceToPlane(a);return void 0===c?void 0:this.at(c,b)},applyMatrix4:function(a){this.direction.add(this.origin).applyMatrix4(a);this.origin.applyMatrix4(a);this.direction.sub(this.origin);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)},
clone:function(){return(new $3Dmol.Ray).copy(this)}};$3Dmol.Sphere=function(a,b){this.center=void 0!==a?a:new $3Dmol.Vector3;this.radius=void 0!==b?b:0};
$3Dmol.Sphere.prototype={constructor:$3Dmol.Sphere,set:function(a,b){this.center.copy(a);this.radius=b;return this},copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius},clone:function(){return(new $3Dmol.Sphere).copy(this)}};
$3Dmol.Cylinder=function(a,b,c){this.c1=void 0!==a?a:new $3Dmol.Vector3;this.c2=void 0!==b?b:new $3Dmol.Vector3;this.direction=(new $3Dmol.Vector3).subVectors(this.c2,this.c1).normalize();this.radius=void 0!==c?c:0};
$3Dmol.Cylinder.prototype={constructor:$3Dmol.Cylinder,copy:function(a){this.c1.copy(a.c1);this.c2.copy(a.c2);this.direction.copy(a.direction);this.radius=a.radius;return this},lengthSq:function(){var a=new $3Dmol.Vector3;return function(){return a.subVectors(this.c2,this.c1).lengthSq()}}(),applyMatrix4:function(a){this.direction.add(this.c1).applyMatrix4(a);this.c1.applyMatrix4(a);this.c2.applyMatrix4(a);this.direction.sub(this.c1).normalize();this.radius*=a.getMaxScaleOnAxis();return this}};
$3Dmol.Triangle=function(a,b,c){this.a=void 0!==a?a:new $3Dmol.Vector3;this.b=void 0!==b?b:new $3Dmol.Vector3;this.c=void 0!==c?c:new $3Dmol.Vector3};
$3Dmol.Triangle.prototype={constructor:$3Dmol.Triangle,copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},applyMatrix4:function(a){this.a.applyMatrix4(a);this.b.applyMatrix4(a);this.c.applyMatrix4(a);return this},getNormal:function(){var a=new $3Dmol.Vector3;return function(){var b=this.a.clone();b.sub(this.b);a.subVectors(this.c,this.b);b.cross(a);b.normalize();return b}}()};
$3Dmol.EventDispatcher=function(){var a={};this.addEventListener=function(b,c){void 0===a[b]&&(a[b]=[]);-1===a[b].indexOf(c)&&a[b].push(c)};this.removeEventListener=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)};this.dispatchEvent=function(b){var c=a[b.type];if(void 0!==c){b.target=this;for(var d=0,e=c.length;d<e;d++)c[d].call(this,b)}}};$3Dmol.Color=function(a){return 1<arguments.length?(this.r=arguments[0]||0,this.g=arguments[1]||0,this.b=arguments[2]||0,this):this.set(a)};
$3Dmol.Color.prototype={constructor:$3Dmol.Color,r:0,g:0,b:0,set:function(a){if(a instanceof $3Dmol.Color)return a.clone();"number"===typeof a&&this.setHex(a)},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},getHex:function(){var a=Math.round(255*this.r),b=Math.round(255*this.g),c=Math.round(255*this.b);return a<<16|b<<8|c},clone:function(){return new $3Dmol.Color(this.r,this.g,this.b)},copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;
return this},scaled:function(){var a={};a.r=Math.round(255*this.r);a.g=Math.round(255*this.g);a.b=Math.round(255*this.b);a.a=1;return a}};
$3Dmol.Object3D=function(){this.id=$3Dmol.Object3DIDCount++;this.name="";this.parent=void 0;this.children=[];this.position=new $3Dmol.Vector3;this.rotation=new $3Dmol.Vector3;this.matrix=new $3Dmol.Matrix4;this.matrixWorld=new $3Dmol.Matrix4;this.quaternion=new $3Dmol.Quaternion;this.eulerOrder="XYZ";this.up=new $3Dmol.Vector3(0,1,0);this.scale=new $3Dmol.Vector3(1,1,1);this.rotationAutoUpdate=this.matrixWorldNeedsUpdate=this.matrixAutoUpdate=!0;this.useQuaternion=!1;this.visible=!0};
$3Dmol.Object3D.prototype={constructor:$3Dmol.Object3D,lookAt:function(a){this.matrix.lookAt(a,this.position,this.up);this.rotationAutoUpdate&&(!0===this.useQuaternion?this.quaternion.copy(this.matrix.decompose()[1]):this.rotation.setEulerFromRotationMatrix(this.matrix,this.eulerOrder))},add:function(a){if(a===this)console.error("Can't add $3Dmol.Object3D to itself");else{a.parent=this;this.children.push(a);for(var b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof $3Dmol.Scene&&b.__addObject(a)}},
remove:function(a){var b=this.children.indexOf(a);if(-1!==b){a.parent=void 0;this.children.splice(b,1);for(b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof $3Dmol.Scene&&b.__removeObject(a)}},updateMatrix:function(){this.matrix.setPosition(this.position);!1===this.useQuaternion?this.matrix.setRotationFromEuler(this.rotation,this.eulerOrder):this.matrix.setRotationFromQuaternion(this.quaternion);1===this.scale.x&&1===this.scale.y&&1===this.scale.z||this.matrix.scale(this.scale);this.matrixWorldNeedsUpdate=
!0},updateMatrixWorld:function(a){!0===this.matrixAutoUpdate&&this.updateMatrix();if(!0===this.matrixWorldNeedsUpdate||!0===a)void 0===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);this.matrixWorldNeedsUpdate=!1;for(a=0;a<this.children.length;a++)this.children[a].updateMatrixWorld(!0)},clone:function(a){void 0===a&&(a=new $3Dmol.Object3D);a.name=this.name;a.up.copy(this.up);a.position.copy(this.position);a.rotation.copy(this.rotation);
a.eulerOrder=this.eulerOrder;a.scale.copy(this.scale);a.rotationAutoUpdate=this.rotationAutoUpdate;a.matrix.copy(this.matrix);a.matrixWorld.copy(this.matrixWorld);a.quaternion.copy(this.quaternion);a.matrixAutoUpdate=this.matrixAutoUpdate;a.matrixWorldNeedsUpdate=this.matrixWorldNeedsUpdate;a.useQuaternion=this.useQuaternion;a.visible=this.visible;for(var b=0;b<this.children.length;b++)a.add(this.children[b].clone());return a}};$3Dmol.Object3DIDCount=0;
$3Dmol.Geometry=function(){var a=function(a){this.id=a||0;this.lineArray=this.faceArray=this.normalArray=this.colorArray=this.vertexArray=null;this.lineidx=this.faceidx=this.vertices=0};a.prototype.getNumVertices=function(){return this.vertices};a.prototype.getVertices=function(){return this.vertexArray};a.prototype.getCentroid=function(){for(var a=new $3Dmol.Vector3,b,c,f,l=0;l<this.vertices;++l)b=3*l,c=this.vertexArray[b],f=this.vertexArray[b+1],b=this.vertexArray[b+2],a.x+=c,a.y+=f,a.z+=b;a.divideScalar(this.vertices);
return a};a.prototype.setNormals=function(){var a=this.faceArray,b=this.vertexArray,c=this.normalArray;if(this.vertices&&this.faceidx)for(var f,l,h,m,q,z,w=0;w<a.length/3;++w)f=3*a[3*w],l=3*a[3*w+1],h=3*a[3*w+2],m=new $3Dmol.Vector3(b[f],b[f+1],b[f+2]),q=new $3Dmol.Vector3(b[l],b[l+1],b[l+2]),z=new $3Dmol.Vector3(b[h],b[h+1],b[h+2]),m.subVectors(m,q),z.subVectors(z,q),z.cross(m),m=z,m.normalize(),c[f]+=m.x,c[l]+=m.x,c[h]+=m.x,c[f+1]+=m.y,c[l+1]+=m.y,c[h+1]+=m.y,c[f+2]+=m.z,c[l+2]+=m.z,c[h+2]+=m.z};
a.prototype.setLineIndices=function(){if(this.faceidx){var a=this.faceArray,b=this.lineArray=new Uint16Array(2*this.faceidx);this.lineidx=2*this.faceidx;for(var c,f=0;f<this.faceidx/3;++f){c=3*f;lineoffset=2*c;var l=a[c],h=a[c+1];c=a[c+2];b[lineoffset]=l;b[lineoffset+1]=h;b[lineoffset+2]=l;b[lineoffset+3]=c;b[lineoffset+4]=h;b[lineoffset+5]=c}}};a.prototype.truncateArrayBuffers=function(a,b){a=!0===a?!0:!1;var c=this.colorArray,f=this.normalArray,l=this.faceArray,h=this.lineArray;this.vertexArray=
this.vertexArray.subarray(0,3*this.vertices);this.colorArray=c.subarray(0,3*this.vertices);a?(this.normalArray=f.subarray(0,3*this.vertices),this.faceArray=l.subarray(0,this.faceidx),this.lineArray=0<this.lineidx?h.subarray(0,this.lineidx):new Uint16Array):(this.normalArray=new Float32Array,this.faceArray=new Uint16Array,this.lineArray=new Uint16Array);b&&(this.normalArray&&(this.normalArray=new Float32Array(this.normalArray)),this.faceArray&&(this.faceArray=new Uint16Array(this.faceArray)),this.lineArray&&
(this.lineArray=new Uint16Array(this.lineArray)),this.vertexArray&&(this.vertexArray=new Float32Array(this.vertexArray)),this.colorArray&&(this.colorArray=new Float32Array(this.colorArray)));this.__inittedArrays=!0};var b=function(b){var c=new a(b.geometryGroups.length);b.geometryGroups.push(c);b.groups=b.geometryGroups.length;c.vertexArray=new Float32Array(196605);c.colorArray=new Float32Array(196605);b.mesh&&(c.normalArray=new Float32Array(196605),c.faceArray=new Uint16Array(393210),c.lineArray=
new Uint16Array(393210));return c},c=function(a){$3Dmol.EventDispatcher.call(this);this.id=$3Dmol.GeometryIDCount++;this.name="";this.hasTangents=!1;this.dynamic=!0;this.mesh=!0===a?!0:!1;this.buffersNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.elementsNeedUpdate=this.verticesNeedUpdate=!1;this.geometryGroups=[];this.groups=0};c.prototype={constructor:c,updateGeoGroup:function(a){var c=0<this.groups?this.geometryGroups[this.groups-1]:null;if(!c||65535<c.vertices+(a||0))c=b(this);return c},
addGeoGroup:function(){return b(this)},setUpNormals:function(a){a=a||!1;for(var b=0;b<this.groups;b++)this.geometryGroups[b].setNormals(a)},setUpWireframe:function(){for(var a=0;a<this.groups;a++)this.geometryGroups[a].setLineIndices()},initTypedArrays:function(){for(var a=0;a<this.groups;a++){var b=this.geometryGroups[a];!0!==b.__inittedArrays&&b.truncateArrayBuffers(this.mesh,!1)}},dispose:function(){this.dispatchEvent({type:"dispose"})}};return c}();
Object.defineProperty($3Dmol.Geometry.prototype,"vertices",{get:function(){for(var a=0,b=0;b<this.groups;b++)a+=this.geometryGroups[b].vertices;return a}});$3Dmol.GeometryIDCount=0;
$3Dmol.Raycaster=function(){var a=function(a,b,c,d){this.ray=new $3Dmol.Ray(a,b);0<this.ray.direction.lengthSq()&&this.ray.direction.normalize();this.near=d||0;this.far=c||Infinity},b=new $3Dmol.Sphere,c=new $3Dmol.Cylinder,d=new $3Dmol.Triangle,e=new $3Dmol.Vector3,k=new $3Dmol.Vector3,f=new $3Dmol.Vector3,l=new $3Dmol.Vector3;new $3Dmol.Ray;new $3Dmol.Vector3;var h=new $3Dmol.Vector3;new $3Dmol.Matrix4;var m=function(a,b){return a.distance-b.distance},q=function(a){return Math.min(Math.max(a,-1),
1)};a.prototype.precision=1E-4;a.prototype.linePrecision=.2;a.prototype.set=function(a,b){this.ray.set(a,b)};a.prototype.intersectObjects=function(a,w){for(var v=[],x=0,r=w.length;x<r;x++)a:{var n=a,t=w[x],u=v;h.getPositionFromMatrix(n.matrixWorld);if(!0===t.clickable&&void 0!==t.intersectionShape){var y=t.intersectionShape,F=this.linePrecision,F=F*n.matrixWorld.getMaxScaleOnAxis(),F=F*F;if(void 0!==t.boundingSphere&&t.boundingSphere instanceof $3Dmol.Sphere&&(b.copy(t.boundingSphere),b.applyMatrix4(n.matrixWorld),
!this.ray.isIntersectionSphere(b)))break a;for(var B=void 0,C=void 0,s=void 0,p=void 0,A=s=void 0,E=void 0,H=void 0,G=void 0,D=void 0,I=D=A=p=void 0,B=0,C=y.triangle.length;B<C;B++)y.triangle[B]instanceof $3Dmol.Triangle&&(d.copy(y.triangle[B]),d.applyMatrix4(n.matrixWorld),s=d.getNormal(),p=this.ray.direction.dot(s),0<=p||(e.subVectors(d.a,this.ray.origin),E=s.dot(e)/p,0>E||(k.copy(this.ray.direction).multiplyScalar(E).add(this.ray.origin),k.sub(d.a),f.copy(d.b).sub(d.a),l.copy(d.c).sub(d.a),p=f.dot(l),
s=f.lengthSq(),A=l.lengthSq(),A=(s*k.dot(l)-p*k.dot(f))/(s*A-p*p),0>A||1<A||(p=(k.dot(f)-A*p)/s,0>p||1<p||1<p+A||u.push({clickable:t,distance:E})))));B=0;for(C=y.cylinder.length;B<C;B++)y.cylinder[B]instanceof $3Dmol.Cylinder&&(c.copy(y.cylinder[B]),c.applyMatrix4(n.matrixWorld),e.subVectors(c.c1,this.ray.origin),s=e.dot(c.direction),A=e.dot(this.ray.direction),p=q(this.ray.direction.dot(c.direction)),G=1-p*p,0!==G&&(D=(p*A-s)/G,I=(A-p*s)/G,k.copy(c.direction).multiplyScalar(D).add(c.c1),f.copy(this.ray.direction).multiplyScalar(I).add(this.ray.origin),
H=l.subVectors(k,f).lengthSq(),D=c.radius*c.radius,H<=D&&(D=(p*s-A)*(p*s-A)-G*(e.lengthSq()-s*s-D),A=0>=D?E=Math.sqrt(H):E=(A-p*s-Math.sqrt(D))/G,p=p*A-s,0>p||p*p>c.lengthSq()||0>A||u.push({clickable:t,distance:E}))));B=0;for(C=y.line.length;B<C;B+=2)k.copy(y.line[B]),k.applyMatrix4(n.matrixWorld),f.copy(y.line[B+1]),f.applyMatrix4(n.matrixWorld),l.subVectors(f,k),E=l.lengthSq(),l.normalize(),e.subVectors(k,this.ray.origin),lineProj=e.dot(l),A=e.dot(this.ray.direction),p=q(this.ray.direction.dot(l)),
G=1-p*p,0!==G&&(D=(p*A-lineProj)/G,I=(A-p*lineProj)/G,k.add(l.multiplyScalar(D)),f.copy(this.ray.direction).multiplyScalar(I).add(this.ray.origin),H=l.subVectors(f,k).lengthSq(),H<F&&D*D<E&&u.push({clickable:t,distance:I}));B=0;for(C=y.sphere.length;B<C;B++)if(y.sphere[B]instanceof $3Dmol.Sphere&&(b.copy(y.sphere[B]),b.applyMatrix4(n.matrixWorld),this.ray.isIntersectionSphere(b))){k.subVectors(b.center,this.ray.origin);n=k.dot(this.ray.direction);D=n*n-(k.lengthSq()-b.radius*b.radius);if(0>n)break a;
E=0>=D?n:n-Math.sqrt(D);u.push({clickable:t,distance:E});break a}}}v.sort(m);return v};return a}();$3Dmol.Projector=function(){new $3Dmol.Matrix4;var a=new $3Dmol.Matrix4;this.projectVector=function(b,c){c.matrixWorldInverse.getInverse(c.matrixWorld);a.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);return b.applyProjection(a)};this.unprojectVector=function(b,c){c.projectionMatrixInverse.getInverse(c.projectionMatrix);a.multiplyMatrices(c.matrixWorld,c.projectionMatrixInverse);return b.applyProjection(a)}};
$3Dmol.Camera=function(a,b,c,d){$3Dmol.Object3D.call(this);this.fov=void 0!==a?a:50;this.aspect=void 0!==b?b:1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.projectionMatrix=new $3Dmol.Matrix4;this.projectionMatrixInverse=new $3Dmol.Matrix4;this.matrixWorldInverse=new $3Dmol.Matrix4;this.updateProjectionMatrix()};$3Dmol.Camera.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Camera.prototype.lookAt=function(a){this.matrix.lookAt(this.position,a,this.up);this.rotationAutoUpdate&&(!1===this.useQuaternion?this.rotation.setEulerFromRotationMatrix(this.matrix,this.eulerOrder):this.quaternion.copy(this.matrix.decompose()[1]))};$3Dmol.Camera.prototype.updateProjectionMatrix=function(){this.projectionMatrix.makePerspective(this.fov,this.aspect,this.near,this.far)};
$3Dmol.SpritePlugin=function(){function a(a,b){return a.z!==b.z?b.z-a.z:b.id-a.id}var b,c,d,e,k,f,l,h,m,q;this.init=function(a){b=a.context;c=a;d=a.getPrecision();e=new Float32Array(16);k=new Uint16Array(6);a=0;e[a++]=-1;e[a++]=-1;e[a++]=0;e[a++]=0;e[a++]=1;e[a++]=-1;e[a++]=1;e[a++]=0;e[a++]=1;e[a++]=1;e[a++]=1;e[a++]=1;e[a++]=-1;e[a++]=1;e[a++]=0;e[a++]=1;a=0;k[a++]=0;k[a++]=1;k[a++]=2;k[a++]=0;k[a++]=2;k[a++]=3;f=b.createBuffer();l=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,f);b.bufferData(b.ARRAY_BUFFER,
e,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,l);b.bufferData(b.ELEMENT_ARRAY_BUFFER,k,b.STATIC_DRAW);a=$3Dmol.ShaderLib.sprite;var w=d,v=b.createProgram(),x=b.createShader(b.FRAGMENT_SHADER),r=b.createShader(b.VERTEX_SHADER),w="precision "+w+" float;\n";b.shaderSource(x,w+a.fragmentShader);b.shaderSource(r,w+a.vertexShader);b.compileShader(x);b.compileShader(r);b.getShaderParameter(x,b.COMPILE_STATUS)&&b.getShaderParameter(r,b.COMPILE_STATUS)?(b.attachShader(v,x),b.attachShader(v,r),b.linkProgram(v),
b.getProgramParameter(v,b.LINK_STATUS)||console.error("Could not initialize shader"),a=v):(console.error(b.getShaderInfoLog(x)),console.error("could not initialize shader"),a=null);h=a;m={};q={};m.position=b.getAttribLocation(h,"position");m.uv=b.getAttribLocation(h,"uv");q.uvOffset=b.getUniformLocation(h,"uvOffset");q.uvScale=b.getUniformLocation(h,"uvScale");q.rotation=b.getUniformLocation(h,"rotation");q.scale=b.getUniformLocation(h,"scale");q.alignment=b.getUniformLocation(h,"alignment");q.color=
b.getUniformLocation(h,"color");q.map=b.getUniformLocation(h,"map");q.opacity=b.getUniformLocation(h,"opacity");q.useScreenCoordinates=b.getUniformLocation(h,"useScreenCoordinates");q.screenPosition=b.getUniformLocation(h,"screenPosition");q.modelViewMatrix=b.getUniformLocation(h,"modelViewMatrix");q.projectionMatrix=b.getUniformLocation(h,"projectionMatrix");q.fogType=b.getUniformLocation(h,"fogType");q.fogDensity=b.getUniformLocation(h,"fogDensity");q.fogNear=b.getUniformLocation(h,"fogNear");q.fogFar=
b.getUniformLocation(h,"fogFar");q.fogColor=b.getUniformLocation(h,"fogColor");q.alphaTest=b.getUniformLocation(h,"alphaTest")};this.render=function(d,e,k,x){var r=d.__webglSprites,n=r.length;if(n){var t=m,u=q,y=.5*k,F=.5*x;b.useProgram(h);b.enableVertexAttribArray(t.position);b.enableVertexAttribArray(t.uv);b.disable(b.CULL_FACE);b.enable(b.BLEND);b.bindBuffer(b.ARRAY_BUFFER,f);b.vertexAttribPointer(t.position,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(t.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
l);b.uniformMatrix4fv(u.projectionMatrix,!1,e.projectionMatrix.elements);b.activeTexture(b.TEXTURE0);b.uniform1i(u.map,0);var B=t=0;(t=d.fog)?(b.uniform3f(u.fogColor,t.color.r,t.color.g,t.color.b),b.uniform1f(u.fogNear,t.near),b.uniform1f(u.fogFar,t.far),b.uniform1i(u.fogType,1),B=t=1):(b.uniform1i(u.fogType,0),B=t=0);var C,s,p,A=[];for(C=0;C<n;C++)s=r[C],p=s.material,s.visible&&0!==p.opacity&&(p.useScreenCoordinates?s.z=-s.position.z:(s._modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,s.matrixWorld),
s.z=-s._modelViewMatrix.elements[14]));r.sort(a);for(C=0;C<n;C++)s=r[C],p=s.material,s.visible&&0!==p.opacity&&p.map&&p.map.image&&p.map.image.width&&(b.uniform1f(u.alphaTest,p.alphaTest),e=p.map.image.height,A[0]=p.map.image.width*c.devicePixelRatio/k,A[1]=e*c.devicePixelRatio/x,!0===p.useScreenCoordinates?(b.uniform1i(u.useScreenCoordinates,1),b.uniform3f(u.screenPosition,(s.position.x*c.devicePixelRatio-y)/y,(F-s.position.y*c.devicePixelRatio)/F,Math.max(0,Math.min(1,s.position.z)))):(b.uniform1i(u.useScreenCoordinates,
0),b.uniformMatrix4fv(u.modelViewMatrix,!1,s._modelViewMatrix.elements)),e=d.fog&&p.fog?B:0,t!==e&&(b.uniform1i(u.fogType,e),t=e),e=1/(p.scaleByViewport?x:1),A[0]=A[0]*e*s.scale.x,A[1]=A[1]*e*s.scale.y,b.uniform2f(u.uvScale,p.uvScale.x,p.uvScale.y),b.uniform2f(u.uvOffset,p.uvOffset.x,p.uvOffset.y),b.uniform2f(u.alignment,p.alignment.x,p.alignment.y),b.uniform1f(u.opacity,p.opacity),b.uniform3f(u.color,p.color.r,p.color.g,p.color.b),b.uniform1f(u.rotation,s.rotation),b.uniform2fv(u.scale,A),c.setDepthTest(p.depthTest),
c.setDepthWrite(p.depthWrite),c.setTexture(p.map,0),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0));b.enable(b.CULL_FACE)}}};$3Dmol.Light=function(a,b){$3Dmol.Object3D.call(this);this.color=new $3Dmol.Color(a);this.position=new $3Dmol.Vector3(0,1,0);this.target=new $3Dmol.Object3D;this.intensity=void 0!==b?b:1;this.onlyShadow=this.castShadow=!1};$3Dmol.Light.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Material=function(){$3Dmol.EventDispatcher.call(this);this.id=$3Dmol.MaterialIdCount++;this.name="";this.side=$3Dmol.FrontSide;this.opacity=1;this.transparent=!1;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.needsUpdate=this.visible=!0};
$3Dmol.Material.prototype.setValues=function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("$3Dmol.Material: '"+b+"' parameter is undefined.");else if(b in this){var d=this[b];d instanceof $3Dmol.Color&&c instanceof $3Dmol.Color?d.copy(c):d instanceof $3Dmol.Color?d.set(c):d instanceof $3Dmol.Vector3&&c instanceof $3Dmol.Vector3?d.copy(c):this[b]=c}}};
$3Dmol.Material.prototype.clone=function(a){void 0===a&&(a=new $3Dmol.Material);a.name=this.name;a.side=this.side;a.opacity=this.opacity;a.transparent=this.transparent;a.depthTest=this.depthTest;a.depthWrite=this.depthWrite;a.polygonOffset=this.polygonOffset;a.polygonOffsetFactor=this.polygonOffsetFactor;a.polygonOffsetUnits=this.polygonOffsetUnits;a.alphaTest=this.alphaTest;a.overdraw=this.overdraw;a.visible=this.visible;return a};$3Dmol.Material.prototype.dispose=function(){this.dispatchEvent({type:"dispose"})};
$3Dmol.MaterialIdCount=0;$3Dmol.LineBasicMaterial=function(a){$3Dmol.Material.call(this);this.color=new $3Dmol.Color(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.vertexColors=!1;this.fog=!0;this.shaderID="basic";this.setValues(a)};$3Dmol.LineBasicMaterial.prototype=Object.create($3Dmol.Material.prototype);$3Dmol.LineBasicMaterial.prototype.clone=function(){var a=new $3Dmol.LineBasicMaterial;$3Dmol.Material.prototype.clone.call(this,a);a.color.copy();return a};
$3Dmol.MeshLambertMaterial=function(a){$3Dmol.Material.call(this);this.color=new $3Dmol.Color(16777215);this.ambient=new $3Dmol.Color(1048575);this.emissive=new $3Dmol.Color(0);this.wrapAround=!1;this.wrapRGB=new $3Dmol.Vector3(1,1,1);this.envMap=this.specularMap=this.lightMap=this.map=null;this.reflectivity=1;this.refractionRatio=.98;this.fog=!0;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.shading=$3Dmol.SmoothShading;this.shaderID="lambert";
this.vertexColors=$3Dmol.NoColors;this.skinning=!1;this.setValues(a)};$3Dmol.MeshLambertMaterial.prototype=Object.create($3Dmol.Material.prototype);
$3Dmol.MeshLambertMaterial.prototype.clone=function(a){"undefined"===typeof a&&(a=new $3Dmol.MeshLambertMaterial);$3Dmol.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.ambient.copy(this.ambient);a.emissive.copy(this.emissive);a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;
a.shading=this.shading;a.shaderID=this.shaderID;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a};$3Dmol.MeshDoubleLambertMaterial=function(a){$3Dmol.MeshLambertMaterial.call(this,a);this.shaderID="lambertdouble";this.side=$3Dmol.DoubleSide};$3Dmol.MeshDoubleLambertMaterial.prototype=Object.create($3Dmol.MeshLambertMaterial.prototype);
$3Dmol.MeshDoubleLambertMaterial.prototype.clone=function(){var a=new $3Dmol.MeshDoubleLambertMaterial;$3Dmol.MeshLambertMaterial.prototype.clone.call(this,a);return a};
$3Dmol.ImposterMaterial=function(a){$3Dmol.Material.call(this);this.color=new $3Dmol.Color(16777215);this.ambient=new $3Dmol.Color(1048575);this.emissive=new $3Dmol.Color(0);this.wrapAround=!1;this.wrapRGB=new $3Dmol.Vector3(1,1,1);this.envMap=this.specularMap=this.lightMap=this.map=null;this.reflectivity=1;this.refractionRatio=.98;this.fog=!0;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.shading=$3Dmol.SmoothShading;this.shaderID="sphereimposter";
this.vertexColors=$3Dmol.NoColors;this.skinning=!1;this.setValues(a)};$3Dmol.ImposterMaterial.prototype=Object.create($3Dmol.Material.prototype);
$3Dmol.ImposterMaterial.prototype.clone=function(){var a=new $3Dmol.ImposterMaterial;$3Dmol.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.ambient.copy(this.ambient);a.emissive.copy(this.emissive);a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.shaderID=
this.shaderID;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a};
$3Dmol.SpriteMaterial=function(a){$3Dmol.Material.call(this);this.color=new $3Dmol.Color(16777215);this.map=new $3Dmol.Texture;this.useScreenCoordinates=!0;this.depthTest=!this.useScreenCoordinates;this.sizeAttenuation=!this.useScreenCoordinates;this.scaleByViewPort=!this.sizeAttenuation;this.alignment=$3Dmol.SpriteAlignment.center.clone();this.fog=!1;this.uvOffset=new $3Dmol.Vector2(0,0);this.uvScale=new $3Dmol.Vector2(1,1);this.setValues(a);a=a||{};void 0===a.depthTest&&(this.depthTest=!this.useScreenCoordinates);
void 0===a.sizeAttenuation&&(this.sizeAttenuation=!this.useScreenCoordinates);void 0===a.scaleByViewPort&&(this.scaleByViewPort=!this.sizeAttenuation)};$3Dmol.SpriteMaterial.prototype=Object.create($3Dmol.Material.prototype);
$3Dmol.SpriteMaterial.prototype.clone=function(){var a=new $3Dmol.SpriteMaterial;$3Dmol.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.map=this.map;a.useScreenCoordinates=useScreenCoordinates;a.sizeAttenuation=this.sizeAttenuation;a.scaleByViewport=this.scaleByViewPort;a.alignment.copy(this.alignment);a.uvOffset.copy(this.uvOffset);return a};$3Dmol.SpriteAlignment={};$3Dmol.SpriteAlignment.topLeft=new $3Dmol.Vector2(1,-1);$3Dmol.SpriteAlignment.topCenter=new $3Dmol.Vector2(0,-1);
$3Dmol.SpriteAlignment.topRight=new $3Dmol.Vector2(-1,-1);$3Dmol.SpriteAlignment.centerLeft=new $3Dmol.Vector2(1,0);$3Dmol.SpriteAlignment.center=new $3Dmol.Vector2(0,0);$3Dmol.SpriteAlignment.centerRight=new $3Dmol.Vector2(-1,0);$3Dmol.SpriteAlignment.bottomLeft=new $3Dmol.Vector2(1,1);$3Dmol.SpriteAlignment.bottomCenter=new $3Dmol.Vector2(0,1);$3Dmol.SpriteAlignment.bottomRight=new $3Dmol.Vector2(-1,1);
$3Dmol.Texture=function(a){$3Dmol.EventDispatcher.call(this);this.id=$3Dmol.TextureIdCount++;this.name="";this.image=a;this.mipmaps=[];this.mapping=new $3Dmol.UVMapping;this.wrapT=this.wrapS=$3Dmol.ClampToEdgeWrapping;this.magFilter=$3Dmol.LinearFilter;this.minFilter=$3Dmol.LinearMipMapLinearFilter;this.anisotropy=1;this.format=$3Dmol.RGBAFormat;this.type=$3Dmol.UnsignedByteType;this.offset=new $3Dmol.Vector2(0,0);this.repeat=new $3Dmol.Vector2(1,1);this.generateMipmaps=!0;this.premultiplyAlpha=!1;
this.flipY=!0;this.unpackAlignment=4;this.needsUpdate=!1;this.onUpdate=null};
$3Dmol.Texture.prototype={constructor:$3Dmol.Texture,clone:function(a){void 0===a&&(a=new $3Dmol.Texture);a.image=this.image;a.mipmaps=this.mipmaps.slice(0);a.mapping=this.mapping;a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.format=this.format;a.type=this.type;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.generateMipmaps=this.generateMipmaps;a.premultiplyAlpha=this.premultiplyAlpha;a.flipY=this.flipY;a.unpackAlignment=
this.unpackAlignment;return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};$3Dmol.TextureIdCount=0;$3Dmol.FrontSide=0;$3Dmol.BackSide=1;$3Dmol.DoubleSide=2;$3Dmol.NoShading=0;$3Dmol.FlatShading=1;$3Dmol.SmoothShading=2;$3Dmol.NoColors=0;$3Dmol.FaceColors=1;$3Dmol.VertexColors=2;$3Dmol.MultiplyOperation=0;$3Dmol.MixOperation=1;$3Dmol.AddOperation=2;$3Dmol.UVMapping=function(){};$3Dmol.ClampToEdgeWrapping=1001;$3Dmol.LinearFilter=1006;$3Dmol.LinearMipMapLinearFilter=1008;
$3Dmol.UnsignedByteType=1009;$3Dmol.RGBAFormat=1021;$3Dmol.Line=function(a,b,c){$3Dmol.Object3D.call(this);this.geometry=a;this.material=void 0!==b?b:new $3Dmol.LineBasicMaterial({color:16777215*Math.random()});this.type=void 0!==c?c:$3Dmol.LineStrip};$3Dmol.LineStrip=0;$3Dmol.LinePieces=1;$3Dmol.Line.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Line.prototype.clone=function(a){void 0===a&&(a=new $3Dmol.Line(this.geometry,this.material,this.type));$3Dmol.Object3D.prototype.clone.call(this,a);return a};$3Dmol.Mesh=function(a,b){$3Dmol.Object3D.call(this);this.geometry=a;this.material=void 0!==b?b:new $3Dmol.MeshBasicMaterial({color:16777215*Math.random(),wireframe:!0})};$3Dmol.Mesh.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Mesh.prototype.clone=function(a){void 0===a&&(a=new $3Dmol.Mesh(this.geometry,this.material));$3Dmol.Object3D.prototype.clone.call(this,a);return a};$3Dmol.Sprite=function(a){$3Dmol.Object3D.call(this);this.material=void 0!==a?a:new $3Dmol.SpriteMaterial;this.rotation3d=this.rotation;this.rotation=0};$3Dmol.Sprite.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Sprite.prototype.updateMatrix=function(){this.matrix.setPosition(this.position);this.rotation3d.set(0,0,this.rotation);this.matrix.setRotationFromEuler(this.rotation3d);1===this.scale.x&&1===this.scale.y||this.matrix.scale(this.scale);this.matrixWorldNeedsUpdate=!0};$3Dmol.Sprite.prototype.clone=function(a){void 0===a&&(a=new $3Dmol.Sprite(this.material));$3Dmol.Object3D.prototype.clone.call(this,a);return a};
$3Dmol.Renderer=function(a){function b(a){J[a]||(g.enableVertexAttribArray(a),J[a]=!0)}function c(a,b){var c;"fragment"===a?c=g.createShader(g.FRAGMENT_SHADER):"vertex"===a&&(c=g.createShader(g.VERTEX_SHADER));g.shaderSource(c,b);g.compileShader(c);return g.getShaderParameter(c,g.COMPILE_STATUS)?c:(console.error(g.getShaderInfoLog(c)),console.error("could not initialize shader"),null)}function d(a,b,c,d,e,f,k,l){var h,n,m;b?(n=a.length-1,l=b=-1):(n=0,b=a.length,l=1);for(var p=n;p!==b;p+=l)if(h=a[p],
h.render&&(n=h.object,m=h.buffer,h=h[c])){k&&r.setBlending(!0);r.setDepthTest(h.depthTest);r.setDepthWrite(h.depthWrite);var q=h.polygonOffset;null!==q&&(q?g.enable(g.POLYGON_OFFSET_FILL):g.disable(g.POLYGON_OFFSET_FILL));r.setMaterialFaces(h);r.renderBuffer(d,e,f,h,m,n)}}function e(a){return 0===(a&a-1)}function k(a){return a===$3Dmol.UnsignedByteType?g.UNSIGNED_BYTE:a===$3Dmol.RGBAFormat?g.RGBA:0}a=a||{};var f=void 0!==a.canvas?a.canvas:document.createElement("canvas"),l=void 0!==a.precision?a.precision:
"highp",h=void 0!==a.alpha?a.alpha:!0,m=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,q=void 0!==a.antialias?a.antialias:!1,z=void 0!==a.stencil?a.stencil:!0,w=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,v=void 0!==a.clearColor?new $3Dmol.Color(a.clearColor):new $3Dmol.Color(0),x=void 0!==a.clearAlpha?a.clearAlpha:0;this.domElement=f;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;
this.autoUpdateScene=this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var r=this,n=[],t=0,u=null,y=-1,F=null,B=null,C=0,s=-1,p=-1,A=-1,E=-1,H=null,G=0,D=0,I=0,L=0,M=0,N=0,J={},X=new $3Dmol.Matrix4,S=new $3Dmol.Vector3,K=new $3Dmol.Vector3,O=!0,P=[0,0,0],Q=[],R=[],g;try{if(!(g=f.getContext("experimental-webgl",
{alpha:h,premultipliedAlpha:m,antialias:q,stencil:z,preserveDrawingBuffer:w}))&&!(g=f.getContext("webgl",{alpha:h,premultipliedAlpha:m,antialias:q,stencil:z,preserveDrawingBuffer:w})))throw"Error creating WebGL context.";}catch(Y){console.error(Y)}g.getExtension("EXT_frag_depth");g.clearColor(0,0,0,1);g.clearDepth(1);g.clearStencil(0);g.enable(g.DEPTH_TEST);g.depthFunc(g.LEQUAL);g.frontFace(g.CCW);g.cullFace(g.BACK);g.enable(g.CULL_FACE);g.enable(g.BLEND);g.blendEquation(g.FUNC_ADD);g.blendFunc(g.SRC_ALPHA,
g.ONE_MINUS_SRC_ALPHA);g.clearColor(v.r,v.g,v.b,x);g.getExtension("EXT_frag_depth");this.context=g;this.getContext=function(){return g};this.getPrecision=function(){return l};this.setClearColorHex=function(a,b){v.setHex(a);x=b;g.clearColor(v.r,v.g,v.b,x)};this.setSize=function(a,b){f.width=a*this.devicePixelRatio;f.height=b*this.devicePixelRatio;f.style.width=a+"px";f.style.height=b+"px";this.setViewport(0,0,f.width,f.height)};this.setViewport=function(a,b,c,d){G=void 0!==a?a:0;D=void 0!==b?b:0;I=
void 0!==c?c:f.width;L=void 0!==d?d:f.height;g.viewport(G,D,I,L)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=g.COLOR_BUFFER_BIT;if(void 0===b||b)d|=g.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=g.STENCIL_BUFFER_BIT;g.clear(d)};this.clearTarget=function(a,b,c){this.clear(a,b,c)};this.setMaterialFaces=function(a){var b=a.side===$3Dmol.DoubleSide;a=a.side===$3Dmol.BackSide;s!==b&&(b?g.disable(g.CULL_FACE):g.enable(g.CULL_FACE),s=b);p!==a&&(a?g.frontFace(g.CW):g.frontFace(g.CCW),p=a)};this.setDepthTest=
function(a){A!==a&&(a?g.enable(g.DEPTH_TEST):g.disable(g.DEPTH_TEST),A=a)};this.setDepthWrite=function(a){E!==a&&(g.depthMask(a),E=a)};this.setBlending=function(a){a?(g.enable(g.BLEND),g.blendEquationSeparate(g.FUNC_ADD,g.FUNC_ADD),g.blendFuncSeparate(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA,g.ONE,g.ONE_MINUS_SRC_ALPHA)):g.disable(g.BLEND)};this.addPostPlugin=function(a){a.init(this);this.renderPluginsPost.push(a)};var T=function(a){a=a.target;a.removeEventListener("dispose",T);a.__webglInit=void 0;void 0!==
a.__webglVertexBuffer&&g.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglColorBuffer&&g.deleteBuffer(a.__webglColorBuffer);if(void 0!==a.geometryGroups)for(var b=0,c=a.groups;b<c;b++){var d=a.geometryGroups[b];void 0!==d.__webglVertexBuffer&&g.deleteBuffer(d.__webglVertexBuffer);void 0!==d.__webglColorBuffer&&g.deleteBuffer(d.__webglColorBuffer);void 0!==d.__webglNormalBuffer&&g.deleteBuffer(d.__webglNormalBuffer);void 0!==d.__webglFaceBuffer&&g.deleteBuffer(d.__webglFaceBuffer);void 0!==d.__webglLineBuffer&&
g.deleteBuffer(d.__webglLineBuffer)}r.info.memory.geometries--},U=function(a){a=a.target;a.removeEventListener("dispose",U);a.image&&a.image.__webglTextureCube?g.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,g.deleteTexture(a.__webglTexture));r.info.memory.textures--},V=function(a){a=a.target;a.removeEventListener("dispose",V);W(a)},W=function(a){var b=a.program;if(void 0!==b){a.program=void 0;var c,d,e=!1;a=0;for(c=n.length;a<c;a++)if(d=n[a],d.program===b){d.usedTimes--;
0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=n.length;a<c;a++)d=n[a],d.program!==b&&e.push(d);n=e;g.deleteProgram(b);r.info.memory.programs--}}};this.initMaterial=function(a,b,d,e){a.addEventListener("dispose",V);if(b=a.shaderID)b=$3Dmol.ShaderLib[b],a.vertexShader=b.vertexShader,a.fragmentShader=b.fragmentShader,a.uniforms=$3Dmol.ShaderUtils.clone(b.uniforms);var f;a:{var k=a.fragmentShader;e=a.vertexShader;d=a.uniforms;var h={wireframe:a.wireframe},m,p;b=[];b.push(k);b.push(e);for(m in h)b.push(m),
b.push(h[m]);b=b.join();m=0;for(p=n.length;m<p;m++){var q=n[m];if(q.code===b){q.usedTimes++;f=q.program;break a}}m=g.createProgram();q="precision "+l+" float;";p=""+q;h=[h.wireframe?"#define WIREFRAME 1":"",q].join("\n");k=c("fragment",h+k);e=c("vertex",p+e);g.attachShader(m,e);g.attachShader(m,k);g.linkProgram(m);g.getProgramParameter(m,g.LINK_STATUS)||console.error("Could not initialize shader");m.uniforms={};m.attributes={};e="viewMatrix modelViewMatrix projectionMatrix normalMatrix modelMatrix cameraPosition".split(" ");
for(f in d)e.push(f);for(f=0;f<e.length;f++)d=e[f],m.uniforms[d]=g.getUniformLocation(m,d);e=["position","normal","color","lineDistance"];for(f=0;f<e.length;f++)d=e[f],m.attributes[d]=g.getAttribLocation(m,d);m.id=t++;n.push({program:m,code:b,usedTimes:1});r.info.memory.programs=n.length;f=m}a.program=f};this.renderBuffer=function(a,c,d,e,f,k){if(e.visible){var h;e.needsUpdate&&(e.program&&W(e),r.initMaterial(e,c,d,k),e.needsUpdate=!1);var l=!1,m=e.program,n=m.uniforms;h=e.uniforms;m!=u&&(g.useProgram(m),
u=m,l=!0);e.id!=y&&(y=e.id,l=!0);a!=B&&(B=a,l=!0);g.uniformMatrix4fv(n.projectionMatrix,!1,a.projectionMatrix.elements);g.uniformMatrix4fv(n.modelViewMatrix,!1,k._modelViewMatrix.elements);g.uniformMatrix3fv(n.normalMatrix,!1,k._normalMatrix.elements);if(l){h.fogColor.value=d.color;h.fogNear.value=d.near;h.fogFar.value=d.far;if(0===e.shaderID.lastIndexOf("lambert",0)){g.uniformMatrix4fv(n.viewMatrix,!1,a.matrixWorldInverse.elements);if(O){var p,q,t=0,w=0,s=0;a=0;for(d=c.length;a<d;a++)if(l=c[a],p=
l.color,q=l.intensity,l instanceof $3Dmol.Light&&(t++,K.getPositionFromMatrix(l.matrixWorld),S.getPositionFromMatrix(l.target.matrixWorld),K.sub(S),K.normalize(),0!==K.x||0!==K.y||0!==K.z))R[s]=K.x,R[s+1]=K.y,R[s+2]=K.z,Q[s]=p.r*q,Q[s+1]=p.g*q,Q[s+2]=p.b*q,s+=3,w++;P[0]=0;P[1]=0;P[2]=0;O=!1}h.ambientLightColor.value=P;h.directionalLightColor.value=Q;h.directionalLightDirection.value=R;h.ambient.value=e.ambient;h.emissive.value=e.emissive}else"sphereimposter"===e.shaderID&&(g.uniformMatrix4fv(n.viewMatrix,
!1,a.matrixWorldInverse.elements),g.uniformMatrix3fv(n.normalMatrix,!1,k._normalMatrix.elements));h.opacity.value=e.opacity;h.diffuse.value=e.color;for(var v in h)n[v]&&(c=h[v].type,a=h[v].value,d=n[v],"f"===c?g.uniform1f(d,a):"fv"===c?g.uniform3fv(d,a):"c"===c&&g.uniform3f(d,a.r,a.g,a.b))}h=m.attributes;n=!1;m=16777215*f.id+2*m.id+(e.wireframe?1:0);m!==F&&(F=m,n=!0);if(n){for(var x in J)J[x]&&(g.disableVertexAttribArray(x),J[x]=!1);0<=h.position&&(g.bindBuffer(g.ARRAY_BUFFER,f.__webglVertexBuffer),
b(h.position),g.vertexAttribPointer(h.position,3,g.FLOAT,!1,0,0));0<=h.color&&(g.bindBuffer(g.ARRAY_BUFFER,f.__webglColorBuffer),b(h.color),g.vertexAttribPointer(h.color,3,g.FLOAT,!1,0,0));0<=h.normal&&(g.bindBuffer(g.ARRAY_BUFFER,f.__webglNormalBuffer),b(h.normal),g.vertexAttribPointer(h.normal,3,g.FLOAT,!1,0,0))}var z;k instanceof $3Dmol.Mesh?(e.wireframe?(k=f.lineidx,e=e.wireframeLinewidth,e!==H&&(g.lineWidth(e),H=e),n&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,f.__webglLineBuffer),g.drawElements(g.LINES,
k,g.UNSIGNED_SHORT,0)):(z=f.faceidx,n&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,f.__webglFaceBuffer),g.drawElements(g.TRIANGLES,z,g.UNSIGNED_SHORT,0)),r.info.render.calls++,r.info.render.vertices+=z,r.info.render.faces+=z/3):k instanceof $3Dmol.Line&&(k=f.vertices,f=e.linewidth,f!==H&&(g.lineWidth(f),H=f),g.drawArrays(g.LINES,0,k),r.info.render.calls++)}};this.render=function(a,b,c){if(!1===b instanceof $3Dmol.Camera)console.error("$3Dmol.Renderer.render: camera is not an instance of $3Dmol.Camera.");
else{var g,e,f,h,k=a.__lights,l=a.fog;y=-1;O=!0;this.autoUpdateScene&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);X.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);this.autoUpdateObjects&&this.initWebGLObjects(a);r.info.render.calls=0;r.info.render.vertices=0;r.info.render.faces=0;r.info.render.points=0;M=I;N=L;(this.autoClear||c)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjects;
c=0;for(g=h.length;c<g;c++)if(e=h[c],f=e.object,e.render=!1,f.visible){f._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,f.matrixWorld);f._normalMatrix.getInverse(f._modelViewMatrix);f._normalMatrix.transpose();f=e;var m=f.object.material;m.transparent?(f.opaque=null,f.transparent=m,m=m.clone(),m.opacity=0,f.blank=m):(f.opaque=m,f.transparent=null);e.render=!0}this.setBlending(!1);d(a.__webglObjects,!0,"opaque",b,k,l,!1,null);d(a.__webglObjects,!0,"blank",b,k,l,!0,null);d(a.__webglObjects,
!1,"transparent",b,k,l,!0,null);k=this.renderPluginsPost;F=-1;B=u=null;p=y=s=A=E=-1;if(k.length)for(l=0,c=k.length;l<c;l++)O=!0,k[l].render(a,b,M,N),F=-1,B=u=null,p=y=s=A=E=-1;this.setDepthTest(!0);this.setDepthWrite(!0)}};this.initWebGLObjects=function(a){a.__webglObjects||(a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[]);if(a.__objectsAdded.length){for(;a.__objectsAdded.length;){var b=a.__objectsAdded[0],c=a,d=void 0,e=void 0,f=void 0,h=void 0;if(!b.__webglInit&&
(b.__webglInit=!0,b._modelViewMatrix=new $3Dmol.Matrix4,b._normalMatrix=new $3Dmol.Matrix3,void 0!==b.geometry&&void 0===b.geometry.__webglInit&&(b.geometry.__webglInit=!0,b.geometry.addEventListener("dispose",T)),b instanceof $3Dmol.Mesh||b instanceof $3Dmol.Line))for(f=b.geometry,d=0,e=f.geometryGroups.length;d<e;d++)h=f.geometryGroups[d],h.id=C++,h.__webglVertexBuffer||(b instanceof $3Dmol.Mesh?(h.__webglVertexBuffer=g.createBuffer(),h.__webglNormalBuffer=g.createBuffer(),h.__webglColorBuffer=
g.createBuffer(),h.__webglFaceBuffer=g.createBuffer(),h.__webglLineBuffer=g.createBuffer(),r.info.memory.geometries++,f.elementsNeedUpdate=!0,f.normalsNeedUpdate=!0):b instanceof $3Dmol.Line&&(h.__webglVertexBuffer=g.createBuffer(),h.__webglColorBuffer=g.createBuffer(),r.info.memory.geometries++),f.verticesNeedUpdate=!0,f.colorsNeedUpdate=!0);if(!b.__webglActive){if(b instanceof $3Dmol.Mesh||b instanceof $3Dmol.Line)for(f=b.geometry,d=0,e=f.geometryGroups.length;d<e;d++)h=f.geometryGroups[d],c.__webglObjects.push({buffer:h,
object:b,opaque:null,transparent:null});else b instanceof $3Dmol.Sprite&&c.__webglSprites.push(b);b.__webglActive=!0}a.__objectsAdded.splice(0,1)}F=-1}for(;a.__objectsRemoved.length;){b=a.__objectsRemoved[0];c=a;if(b instanceof $3Dmol.Mesh||b instanceof $3Dmol.Line)for(c=c.__webglObjects,d=b,e=c.length-1;0<=e;--e)c[e].object===d&&c.splice(e,1);else if(b instanceof $3Dmol.Sprite)for(c=c.__webglSprites,d=b,e=c.length-1;0<=e;--e)c[e]===d&&c.splice(e,1);b.__webglActive=!1;a.__objectsRemoved.splice(0,
1)}b=0;for(c=a.__webglObjects.length;b<c;b++)if(e=a.__webglObjects[b].object,d=e.geometry,h=void 0,e instanceof $3Dmol.Mesh||e instanceof $3Dmol.Line){e=0;for(f=d.geometryGroups.length;e<f;e++)if(h=d.geometryGroups[e],d.verticesNeedUpdate||d.elementsNeedUpdate||d.colorsNeedUpdate||d.normalsNeedUpdate){var k=g.STATIC_DRAW,l=h.vertexArray,m=h.colorArray;g.bindBuffer(g.ARRAY_BUFFER,h.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,l,k);g.bindBuffer(g.ARRAY_BUFFER,h.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,
m,k);void 0!==h.normalArray&&void 0!==h.__webglNormalBuffer&&(l=h.normalArray,g.bindBuffer(g.ARRAY_BUFFER,h.__webglNormalBuffer),g.bufferData(g.ARRAY_BUFFER,l,k));void 0!==h.faceArray&&void 0!==h.__webglFaceBuffer&&(l=h.faceArray,g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,h.__webglFaceBuffer),g.bufferData(g.ELEMENT_ARRAY_BUFFER,l,k));void 0!==h.lineArray&&void 0!==h.__webglLineBuffer&&(l=h.lineArray,g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,h.__webglLineBuffer),g.bufferData(g.ELEMENT_ARRAY_BUFFER,l,k))}d.verticesNeedUpdate=
!1;d.elementsNeedUpdate=!1;d.normalsNeedUpdate=!1;d.colorsNeedUpdate=!1;d.buffersNeedUpdate=!1}};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",U),a.__webglTexture=g.createTexture(),r.info.memory.textures++);g.activeTexture(g.TEXTURE0+b);g.bindTexture(g.TEXTURE_2D,a.__webglTexture);g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,a.flipY);g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);g.pixelStorei(g.UNPACK_ALIGNMENT,a.unpackAlignment);
var c=a.image,c=e(c.width)&&e(c.height),d=k(a.format),f=k(a.type),h=g.TEXTURE_2D;c?(g.texParameteri(h,g.TEXTURE_WRAP_S,k(a.wrapS)),g.texParameteri(h,g.TEXTURE_WRAP_T,k(a.wrapT)),g.texParameteri(h,g.TEXTURE_MAG_FILTER,k(a.magFilter)),g.texParameteri(h,g.TEXTURE_MIN_FILTER,k(a.minFilter))):(g.texParameteri(h,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(h,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.texParameteri(h,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(h,g.TEXTURE_MIN_FILTER,g.LINEAR));var l=a.mipmaps;
if(0<l.length&&c){for(var m=0,n=l.length;m<n;m++)h=l[m],g.texImage2D(g.TEXTURE_2D,m,d,d,f,h);a.generateMipmaps=!1}else g.texImage2D(g.TEXTURE_2D,0,d,d,f,a.image);a.generateMipmaps&&c&&g.generateMipmap(g.TEXTURE_2D);a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else g.activeTexture(g.TEXTURE0+b),g.bindTexture(g.TEXTURE_2D,a.__webglTexture)};this.addPostPlugin(new $3Dmol.SpritePlugin)};
$3Dmol.Scene=function(){$3Dmol.Object3D.call(this);this.overrideMaterial=this.fog=null;this.matrixAutoUpdate=!1;this.__objects=[];this.__lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};$3Dmol.Scene.prototype=Object.create($3Dmol.Object3D.prototype);
$3Dmol.Scene.prototype.__addObject=function(a){a instanceof $3Dmol.Light?(-1===this.__lights.indexOf(a)&&this.__lights.push(a),a.target&&void 0===a.target.parent&&this.add(a.target)):-1===this.__objects.indexOf(a)&&(this.__objects.push(a),this.__objectsAdded.push(a),-1!==this.__objectsRemoved.indexOf(a)&&this.__objectsRemoved.splice(b,1));for(var b=0;b<a.children.length;b++)this.__addObject(a.children[b])};
$3Dmol.Scene.prototype.__removeObject=function(a){var b;a instanceof $3Dmol.Light?(b=this.__lights.indexOf(a),-1!==b&&this.__lights.splice(b,1)):(b=this.__objects.indexOf(a),-1!==b&&(this.__objects.splice(b,1),this.__objectsRemoved.push(a),-1!==this.__objectsAdded.indexOf(a)&&this.__objectsAdded.splice(b,1)));for(b=0;b<a.children.length;b++)this.__removeObject(a.children[b])};$3Dmol.Fog=function(a,b,c){this.name="";this.color=new $3Dmol.Color(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3};
$3Dmol.Fog.prototype.clone=function(){return new $3Dmol.Fog(this.color.getHex(),this.near,this.far)};$3Dmol.ShaderUtils={clone:function(a){var b,c={};for(b in a){c[b]={};c[b].type=a[b].type;var d=a[b].value;d instanceof $3Dmol.Color?c[b].value=d.clone():"number"===typeof d?c[b].value=d:d instanceof Array?c[b].value=[]:console.error("Error copying shader uniforms from ShaderLib: unknown type for uniform")}return c}};
$3Dmol.ShaderLib={basic:{fragmentShader:"uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\nuniform vec3 diffuse;\nuniform float opacity;\nuniform vec3 fogColor;\nuniform float fogNear;\nuniform float fogFar;\nvarying vec3 vColor;\nvoid main() {\n gl_FragColor = vec4( diffuse, opacity );\n gl_FragColor = gl_FragColor * vec4( vColor, opacity );\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = smoothstep( fogNear, fogFar, depth );\n gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}",vertexShader:"uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 color;\nvarying vec3 vColor;\nvoid main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n}",
uniforms:{opacity:{type:"f",value:1},diffuse:{type:"c",value:new $3Dmol.Color(1,1,1)},fogColor:{type:"c",value:new $3Dmol.Color(1,1,1)},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3}}},sphereimposter:{fragmentShader:"uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\nuniform vec3 diffuse;\nuniform float opacity;\nuniform vec3 fogColor;\nuniform float fogNear;\nuniform float fogFar;\nvarying vec3 vColor;\nvarying vec2 mapping;\nvoid main() {\n float lensqr = dot(mapping,mapping);\n if(lensqr > 2.0)\n discard;\n float w = sqrt(2.0 - lensqr);\n float z = sqrt(sqrt(2.0)-lensqr);\n gl_FragDepthEXT = -.1*z;\n gl_FragColor = vec4( w*vColor, 1 );\n}",
vertexShader:"uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec3 color;\nvarying vec2 mapping;\nvarying vec3 vColor;\nvoid main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n vec4 projPosition = projectionMatrix * mvPosition;\n vec4 adjust = projectionMatrix*vec4(normal, 1.0); adjust.y *= -1.0; adjust.z = 0.0; adjust.w = 0.0;\n mapping = normal.xy;\n gl_Position = projPosition+adjust;\n}",
uniforms:{opacity:{type:"f",value:1},diffuse:{type:"c",value:new $3Dmol.Color(1,1,1)},fogColor:{type:"c",value:new $3Dmol.Color(1,1,1)},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3}}},lambert:{fragmentShader:"uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\nuniform float opacity;\nuniform vec3 fogColor;\nuniform float fogNear;\nuniform float fogFar;\nvarying vec3 vLightFront;\nvarying vec3 vColor;\nvoid main() {\n gl_FragColor = vec4( vec3 ( 1.0 ), opacity );\n #ifndef WIREFRAME\n gl_FragColor.xyz *= vLightFront;\n #endif\n gl_FragColor = gl_FragColor * vec4( vColor, opacity );\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = smoothstep( fogNear, fogFar, depth );\n gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}",
vertexShader:"uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nuniform vec3 ambient;\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 ambientLightColor;\nuniform vec3 directionalLightColor[ 1 ];\nuniform vec3 directionalLightDirection[ 1 ];\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec3 color;\nvarying vec3 vColor;\nvarying vec3 vLightFront;\nvoid main() {\n vColor = color;\n vec3 objectNormal = normal;\n vec3 transformedNormal = normalMatrix * objectNormal;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n vLightFront = vec3( 0.0 );\n transformedNormal = normalize( transformedNormal );\n vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ 0 ], 0.0 );\n vec3 dirVector = normalize( lDirection.xyz );\n float dotProduct = dot( transformedNormal, dirVector );\n vec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n vLightFront += directionalLightColor[ 0 ] * directionalLightWeighting;\n vLightFront = vLightFront * diffuse + ambient * ambientLightColor + emissive;\n gl_Position = projectionMatrix * mvPosition;\n}",
uniforms:{opacity:{type:"f",value:1},diffuse:{type:"c",value:new $3Dmol.Color(1,1,1)},fogColor:{type:"c",value:new $3Dmol.Color(1,1,1)},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},ambient:{type:"c",value:new $3Dmol.Color(1,1,1)},emissive:{type:"c",value:new $3Dmol.Color(1,1,1)},ambientLightColor:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},directionalLightDirection:{type:"fv",value:[]}}},lambertdouble:{fragmentShader:"uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\nuniform float opacity;\nuniform vec3 fogColor;\nuniform float fogNear;\nuniform float fogFar;\nvarying vec3 vLightFront;\nvarying vec3 vLightBack;\nvarying vec3 vColor;\nvoid main() {\n gl_FragColor = vec4( vec3 ( 1.0 ), opacity );\n #ifndef WIREFRAME\n if ( gl_FrontFacing )\n gl_FragColor.xyz *= vLightFront;\n else\n gl_FragColor.xyz *= vLightBack;\n #endif\n gl_FragColor = gl_FragColor * vec4( vColor, opacity );\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = smoothstep( fogNear, fogFar, depth );\n gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}",
vertexShader:"uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nuniform vec3 ambient;\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 ambientLightColor;\nuniform vec3 directionalLightColor[ 1 ];\nuniform vec3 directionalLightDirection[ 1 ];\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec3 color;\nvarying vec3 vColor;\nvarying vec3 vLightFront;\nvarying vec3 vLightBack;\nvoid main() {\n vColor = color;\n vec3 objectNormal = normal;\n vec3 transformedNormal = normalMatrix * objectNormal;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n vLightFront = vec3( 0.0 );\n vLightBack = vec3( 0.0 );\n transformedNormal = normalize( transformedNormal );\n vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ 0 ], 0.0 );\n vec3 dirVector = normalize( lDirection.xyz );\n float dotProduct = dot( transformedNormal, dirVector );\n vec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n vec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n vLightFront += directionalLightColor[ 0 ] * directionalLightWeighting;\n vLightBack += directionalLightColor[ 0 ] * directionalLightWeightingBack;\n vLightFront = vLightFront * diffuse + ambient * ambientLightColor + emissive;\n vLightBack = vLightBack * diffuse + ambient * ambientLightColor + emissive;\n gl_Position = projectionMatrix * mvPosition;\n}",
uniforms:{opacity:{type:"f",value:1},diffuse:{type:"c",value:new $3Dmol.Color(1,1,1)},fogColor:{type:"c",value:new $3Dmol.Color(1,1,1)},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},ambient:{type:"c",value:new $3Dmol.Color(1,1,1)},emissive:{type:"c",value:new $3Dmol.Color(1,1,1)},ambientLightColor:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},directionalLightDirection:{type:"fv",value:[]}}},sprite:{fragmentShader:"uniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvoid main() {\n vec4 texture = texture2D(map, vUV);\n if (texture.a < alphaTest) discard;\n gl_FragColor = vec4(color * texture.xyz, texture.a * opacity);\n if (fogType > 0) {\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = 0.0;\n if (fogType == 1) {\n fogFactor = smoothstep(fogNear, fogFar, depth);\n }\n else {\n const float LOG2 = 1.442695;\n float fogFactor = exp2(- fogDensity * fogDensity * depth * depth * LOG2);\n fogFactor = 1.0 - clamp(fogFactor, 0.0, 1.0);\n }\n gl_FragColor = mix(gl_FragColor, vec4(fogColor, gl_FragColor.w), fogFactor);\n }\n}",
vertexShader:"uniform int useScreenCoordinates;\nuniform vec3 screenPosition;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 alignment;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\n vUV = uvOffset + uv * uvScale;\n vec2 alignedPosition = position + alignment;\n vec2 rotatedPosition;\n rotatedPosition.x = ( cos(rotation) * alignedPosition.x - sin(rotation) * alignedPosition.y ) * scale.x;\n rotatedPosition.y = ( sin(rotation) * alignedPosition.x + cos(rotation) * alignedPosition.y ) * scale.y;\n vec4 finalPosition;\n if(useScreenCoordinates != 0) {\n finalPosition = vec4(screenPosition.xy + rotatedPosition, screenPosition.z, 1.0);\n }\n else {\n finalPosition = projectionMatrix * modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0); finalPosition /= finalPosition.w;\n finalPosition.xy += rotatedPosition; \n }\n gl_Position = finalPosition;\n}",
uniforms:{}}};$3Dmol=$3Dmol||{};
$3Dmol.partialCharges={"ALA:N":-.15,"ALA:CA":.1,"ALA:CB":0,"ALA:C":.6,"ALA:O":-.55,"ARG:N":-.15,"ARG:CA":.1,"ARG:CB":0,"ARG:CG":0,"ARG:CD":.1,"ARG:NE":-.1,"ARG:CZ":.5,"ARG:NH1":.25,"ARG:NH2":.25,"ARG:C":.6,"ARG:O":-.55,"ASN:N":-.15,"ASN:CA":.1,"ASN:CB":0,"ASN:CG":.55,"ASN:OD1":-.55,"ASN:ND2":0,"ASN:C":.6,"ASN:O":-.55,"ASP:N":-.15,"ASP:CA":.1,"ASP:CB":0,"ASP:CG":.14,"ASP:OD1":-.57,"ASP:OD2":-.57,"ASP:C":.6,"ASP:O":-.55,"CYS:N":-.15,"CYS:CA":.1,"CYS:CB":.19,"CYS:SG":-.19,"CYS:C":.6,"CYS:O":-.55,"GLN:N":-.15,
"GLN:CA":.1,"GLN:CB":0,"GLN:CG":0,"GLN:CD":.55,"GLN:OE1":-.55,"GLN:NE2":0,"GLN:C":.6,"GLN:O":-.55,"GLU:N":-.15,"GLU:CA":.1,"GLU:CB":0,"GLU:CG":0,"GLU:CD":.14,"GLU:OE1":-.57,"GLU:OE2":-.57,"GLU:C":.6,"GLU:O":-.55,"GLY:N":-.15,"GLY:CA":.1,"GLY:C":.6,"GLY:O":-.55,"HIS:N":-.15,"HIS:CA":.1,"HIS:CB":0,"HIS:CG":.1,"HIS:ND1":-.1,"HIS:CD2":.1,"HIS:NE2":-.4,"HIS:CE1":.3,"HIS:C":.6,"HIS:O":-.55,"ILE:N":-.15,"ILE:CA":.1,"ILE:CB":0,"ILE:CG2":0,"ILE:CG1":0,"ILE:CD":0,"ILE:C":.6,"ILE:O":-.55,"LEU:N":-.15,"LEU:CA":.1,
"LEU:CB":0,"LEU:CG":0,"LEU:CD1":0,"LEU:CD2":0,"LEU:C":.6,"LEU:O":-.55,"LYS:N":-.15,"LYS:CA":.1,"LYS:CB":0,"LYS:CG":0,"LYS:CD":0,"LYS:CE":.25,"LYS:NZ":.75,"LYS:C":.6,"LYS:O":-.55,"MET:N":-.15,"MET:CA":.1,"MET:CB":0,"MET:CG":.06,"MET:SD":-.12,"MET:CE":.06,"MET:C":.6,"MET:O":-.55,"PHE:N":-.15,"PHE:CA":.1,"PHE:CB":0,"PHE:CG":0,"PHE:CD1":0,"PHE:CD2":0,"PHE:CE1":0,"PHE:CE2":0,"PHE:CZ":0,"PHE:C":.6,"PHE:O":-.55,"PRO:N":-.25,"PRO:CD":.1,"PRO:CA":.1,"PRO:CB":0,"PRO:CG":0,"PRO:C":.6,"PRO:O":-.55,"SER:N":-.15,
"SER:CA":.1,"SER:CB":.25,"SER:OG":-.25,"SER:C":.6,"SER:O":-.55,"THR:N":-.15,"THR:CA":.1,"THR:CB":.25,"THR:OG1":-.25,"THR:CG2":0,"THR:C":.6,"THR:O":-.55,"TRP:N":-.15,"TRP:CA":.1,"TRP:CB":0,"TRP:CG":-.03,"TRP:CD2":.1,"TRP:CE2":-.04,"TRP:CE3":-.03,"TRP:CD1":.06,"TRP:NE1":-.06,"TRP:CZ2":0,"TRP:CZ3":0,"TRP:CH2":0,"TRP:C":.6,"TRP:O":-.55,"TYR:N":-.15,"TYR:CA":.1,"TYR:CB":0,"TYR:CG":0,"TYR:CD1":0,"TYR:CE1":0,"TYR:CD2":0,"TYR:CE2":0,"TYR:CZ":.25,"TYR:OH":-.25,"TYR:C":.6,"TYR:O":-.55,"VAL:N":-.15,"VAL:CA":.1,
"VAL:CB":0,"VAL:CG1":0,"VAL:CG2":0,"VAL:C":.6,"VAL:O":-.55};$3Dmol.applyPartialCharges=function(a,b){b&&"undefined"!==typeof a.partialCharge||a.resn&&a.atom&&(a.properties.partialCharge=$3Dmol.partialCharges[a.resn+":"+a.atom])};
$3Dmol=$3Dmol||{};
$3Dmol.MarchingCube=function(){var u={march:function(B,g,a,c){var h=!!c.fulltable,m=c.hasOwnProperty("origin")&&c.origin.hasOwnProperty("x")?c.origin:{x:0,y:0,z:0},b=!!c.voxel,f=c.nX||0,l=c.nY||0,d=c.nZ||0;c=c.scale||1;var e=(new $3Dmol.Vector3(1,1,1)).multiplyScalar(c),p=new Int32Array(f*l*d),z;c=0;for(z=p.length;c<z;++c)p[c]=-1;z=function(c,a,h,t,n,f){var s=new $3Dmol.Vector3;s.copy(m);var y=n;t&1<<n||!(t&1<<f)||(y=f);y&1&&h++;y&2&&a++;y&4&&c++;s.x+=e.x*c;s.y+=e.y*a;s.z+=e.z*h;c=(l*c+a)*d+h;if(b)return g.push(s),
g.length-1;0>p[c]&&(p[c]=g.length,g.push(s));return p[c]};var t=new Int32Array(12),n=h?A:q,h=h?w:C;for(c=0;c<f-1;++c)for(var s=0;s<l-1;++s)for(var x=0;x<d-1;++x){for(var E=0,y=0;8>y;++y)E|=!!(B[(l*(c+((y&4)>>2))+s+((y&2)>>1))*d+x+(y&1)]&2)<<y;if(0!==E&&255!==E){var H=n[E];if(0!==H)for(y=h[E],H&1&&(t[0]=z(c,s,x,E,0,1)),H&2&&(t[1]=z(c,s,x,E,1,3)),H&4&&(t[2]=z(c,s,x,E,3,2)),H&8&&(t[3]=z(c,s,x,E,2,0)),H&16&&(t[4]=z(c,s,x,E,4,5)),H&32&&(t[5]=z(c,s,x,E,5,7)),H&64&&(t[6]=z(c,s,x,E,7,6)),H&128&&(t[7]=z(c,
s,x,E,6,4)),H&256&&(t[8]=z(c,s,x,E,0,4)),H&512&&(t[9]=z(c,s,x,E,1,5)),H&1024&&(t[10]=z(c,s,x,E,3,7)),H&2048&&(t[11]=z(c,s,x,E,2,6)),E=0;E<y.length;E+=3){var H=t[y[E]],I=t[y[E+1]],F=t[y[E+2]];b&&3<=E&&(g.push(g[H]),H=g.length-1,g.push(g[I]),I=g.length-1,g.push(g[F]),F=g.length-1);a.push(H);a.push(I);a.push(F)}}}},laplacianSmooth:function(w,g,a){var c=Array(g.length),h,m,b,f;h=0;for(m=g.length;h<m;h++)c[h]={x:0,y:0,z:0};var l=Array(20),d;for(h=0;20>h;h++)l[h]=Array(g.length);h=0;for(m=g.length;h<m;h++)l[0][h]=
0;h=0;for(m=a.length/3;h<m;h++){var e=3*h,p=3*h+1,z=3*h+2;d=!0;b=0;for(f=l[0][a[e]];b<f;b++)if(a[p]==l[b+1][a[e]]){d=!1;break}d&&(l[0][a[e]]++,l[l[0][a[e]]][a[e]]=a[p]);d=!0;b=0;for(f=l[0][a[e]];b<f;b++)if(a[z]==l[b+1][a[e]]){d=!1;break}d&&(l[0][a[e]]++,l[l[0][a[e]]][a[e]]=a[z]);d=!0;b=0;for(f=l[0][a[p]];b<f;b++)if(a[e]==l[b+1][a[p]]){d=!1;break}d&&(l[0][a[p]]++,l[l[0][a[p]]][a[p]]=a[e]);d=!0;b=0;for(f=l[0][a[p]];b<f;b++)if(a[z]==l[b+1][a[p]]){d=!1;break}d&&(l[0][a[p]]++,l[l[0][a[p]]][a[p]]=a[z]);
d=!0;for(b=0;b<l[0][a[z]];b++)if(a[e]==l[b+1][a[z]]){d=!1;break}d&&(l[0][a[z]]++,l[l[0][a[z]]][a[z]]=a[e]);d=!0;b=0;for(f=l[0][a[z]];b<f;b++)if(a[p]==l[b+1][a[z]]){d=!1;break}d&&(l[0][a[z]]++,l[l[0][a[z]]][a[z]]=a[p])}for(a=0;a<w;a++){h=0;for(m=g.length;h<m;h++)if(3>l[0][h])c[h].x=g[h].x,c[h].y=g[h].y,c[h].z=g[h].z;else if(3==l[0][h]||4==l[0][h]){c[h].x=0;c[h].y=0;b=c[h].z=0;for(f=l[0][h];b<f;b++)c[h].x+=g[l[b+1][h]].x,c[h].y+=g[l[b+1][h]].y,c[h].z+=g[l[b+1][h]].z;c[h].x+=.5*g[h].x;c[h].y+=.5*g[h].y;
c[h].z+=.5*g[h].z;c[h].x/=.5+l[0][h];c[h].y/=.5+l[0][h];c[h].z/=.5+l[0][h]}else{c[h].x=0;c[h].y=0;b=c[h].z=0;for(f=l[0][h];b<f;b++)c[h].x+=g[l[b+1][h]].x,c[h].y+=g[l[b+1][h]].y,c[h].z+=g[l[b+1][h]].z;c[h].x+=1*g[h].x;c[h].y+=1*g[h].y;c[h].z+=1*g[h].z;c[h].x/=1+l[0][h];c[h].y/=1+l[0][h];c[h].z/=1+l[0][h]}h=0;for(m=g.length;h<m;h++)g[h].x=c[h].x,g[h].y=c[h].y,g[h].z=c[h].z}},edgeTable:[0,0,0,0,0,0,0,2816,0,0,0,1792,0,3328,3584,3840,0,0,0,138,0,21,0,134,0,0,0,652,0,2067,3865,3600,0,0,0,42,0,0,0,294,
0,0,21,28,0,3875,1049,3360,0,168,162,170,0,645,2475,2210,0,687,293,172,4010,3747,3497,3232,0,0,0,0,0,69,0,900,0,0,0,1792,138,131,1608,1920,0,81,0,2074,84,85,84,86,0,81,0,3676,330,1105,1881,1616,0,0,0,42,0,69,0,502,0,0,21,3580,138,2035,1273,1520,2816,104,2337,106,840,581,367,102,2816,3695,3429,3180,1898,1635,1385,1120,0,0,0,0,0,0,0,3910,0,0,69,588,42,2083,41,2880,0,0,0,1722,0,2293,4095,3830,0,255,757,764,2538,2291,3065,2800,0,0,81,338,0,3925,1119,3414,84,855,85,340,2130,2899,89,2384,1792,712,194,1162,
4036,3781,3535,3270,708,719,197,204,3018,2755,2505,2240,0,0,0,0,168,420,168,1958,162,162,676,2988,170,163,680,928,3328,3096,3328,3642,52,53,1855,1590,2340,2111,2869,2620,298,51,825,560,3584,3584,3090,3482,1668,1941,1183,1430,146,2975,2069,2460,154,915,153,400,3840,3592,3329,3082,1796,1541,1295,1030,2818,2575,2309,2060,778,515,265,0]},q=new Uint32Array(u.edgeTable),C=u.triTable=[[],[],[],[],[],[],[],[11,9,8],[],[],[],[8,10,9],[],[10,8,11],[9,11,10],[8,10,9,8,11,10],[],[],[],[1,7,3],[],[4,2,0],[],[2,
1,7],[],[],[],[2,7,3,2,9,7],[],[1,4,11,1,0,4],[3,8,0,11,9,4,11,10,9],[4,11,9,11,10,9],[],[],[],[5,3,1],[],[],[],[2,5,8,2,1,5],[],[],[2,4,0],[3,2,4],[],[0,9,1,8,10,5,8,11,10],[3,4,0,3,10,4],[5,8,10,8,11,10],[],[3,5,7],[7,1,5],[1,7,3,1,5,7],[],[9,2,0,9,7,2],[0,3,8,1,7,11,1,5,7],[11,1,7,1,5,7],[],[9,1,0,5,3,2,5,7,3],[8,2,5,8,0,2],[2,5,3,5,7,3],[3,9,1,3,8,9,7,11,10,7,10,5],[9,1,0,10,7,11,10,5,7],[3,8,0,7,10,5,7,11,10],[11,5,7,11,10,5],[],[],[],[],[],[0,6,2],[],[7,2,9,7,9,8],[],[],[],[8,10,9],[7,1,3],
[7,1,0],[6,9,3,6,10,9],[7,10,8,10,9,8],[],[6,0,4],[],[11,1,4,11,3,1],[2,4,6],[2,0,4,2,4,6],[2,4,6],[1,4,2,4,6,2],[],[6,0,4],[],[2,11,3,6,9,4,6,10,9],[8,6,1,8,1,3],[10,0,6,0,4,6],[8,0,3,9,6,10,9,4,6],[10,4,6,10,9,4],[],[],[],[5,3,1],[],[0,6,2],[],[7,4,8,5,2,1,5,6,2],[],[],[2,4,0],[7,4,8,2,11,3,10,5,6],[7,1,3],[5,6,10,0,9,1,8,7,4],[5,6,10,7,0,3,7,4,0],[10,5,6,4,8,7],[9,11,8],[3,5,6],[0,5,11,0,11,8],[6,3,5,3,1,5],[3,9,6,3,8,9],[9,6,0,6,2,0],[0,3,8,2,5,6,2,1,5],[1,6,2,1,5,6],[9,11,8],[1,0,9,6,10,5,11,
3,2],[6,10,5,2,8,0,2,11,8],[3,2,11,10,5,6],[10,5,6,9,3,8,9,1,3],[0,9,1,5,6,10],[8,0,3,10,5,6],[10,5,6],[],[],[],[],[],[],[],[1,10,2,9,11,6,9,8,11],[],[],[6,0,2],[3,6,9,3,2,6],[3,5,1],[0,5,1,0,11,5],[0,3,5],[6,9,11,9,8,11],[],[],[],[4,5,9,7,1,10,7,3,1],[],[11,6,7,2,4,5,2,0,4],[11,6,7,8,0,3,1,10,2,9,4,5],[6,7,11,1,10,2,9,4,5],[],[4,1,0,4,5,1,6,7,3,6,3,2],[9,4,5,0,6,7,0,2,6],[4,5,9,6,3,2,6,7,3],[6,7,11,5,3,8,5,1,3],[6,7,11,4,1,0,4,5,1],[4,5,9,3,8,0,11,6,7],[9,4,5,7,11,6],[],[],[0,6,4],[8,6,4,8,1,6],
[],[0,10,2,0,9,10,4,8,11,4,11,6],[10,2,1,6,0,3,6,4,0],[10,2,1,11,4,8,11,6,4],[4,2,6],[1,0,9,2,4,8,2,6,4],[2,4,0,2,6,4],[8,2,4,2,6,4],[11,4,1,11,6,4],[0,9,1,4,11,6,4,8,11],[3,6,0,6,4,0],[8,6,4,8,11,6],[10,8,9],[6,3,9,6,7,3],[6,7,1],[10,7,1,7,3,1],[7,11,6,8,10,2,8,9,10],[11,6,7,10,0,9,10,2,0],[2,1,10,7,11,6,8,0,3],[1,10,2,6,7,11],[7,2,6,7,9,2],[1,0,9,3,6,7,3,2,6],[7,0,6,0,2,6],[2,7,3,2,6,7],[7,11,6,3,9,1,3,8,9],[9,1,0,11,6,7],[0,3,8,11,6,7],[11,6,7],[],[],[],[],[5,3,7],[8,5,2,8,7,5],[5,3,7],[1,10,2,
5,8,7,5,9,8],[1,7,5],[1,7,5],[9,2,7,9,7,5],[11,3,2,8,5,9,8,7,5],[1,3,7,1,7,5],[0,7,1,7,5,1],[9,3,5,3,7,5],[9,7,5,9,8,7],[8,10,11],[3,4,10,3,10,11],[8,10,11],[5,9,4,1,11,3,1,10,11],[2,4,5],[5,2,4,2,0,4],[0,3,8,5,9,4,10,2,1],[2,1,10,9,4,5],[2,8,5,2,11,8],[3,2,11,1,4,5,1,0,4],[9,4,5,8,2,11,8,0,2],[11,3,2,9,4,5],[8,5,3,5,1,3],[5,0,4,5,1,0],[3,8,0,4,5,9],[9,4,5],[11,9,10],[11,9,10],[1,11,4,1,10,11],[8,7,4,11,1,10,11,3,1],[2,7,9,2,9,10],[4,8,7,0,10,2,0,9,10],[2,1,10,0,7,4,0,3,7],[10,2,1,8,7,4],[1,7,4],
[3,2,11,4,8,7,9,1,0],[11,4,2,4,0,2],[2,11,3,7,4,8],[4,1,7,1,3,7],[1,0,9,8,7,4],[3,4,0,3,7,4],[8,7,4],[8,9,10,8,10,11],[3,9,11,9,10,11],[0,10,8,10,11,8],[10,3,1,10,11,3],[2,8,10,8,9,10],[9,2,0,9,10,2],[8,0,3,1,10,2],[10,2,1],[1,11,9,11,8,9],[11,3,2,0,9,1],[11,0,2,11,8,0],[11,3,2],[8,1,3,8,9,1],[9,1,0],[8,0,3],[]],A=[0,265,515,778,2060,2309,2575,2822,1030,1295,1541,1804,3082,3331,3593,3840,400,153,915,666,2460,2197,2975,2710,1430,1183,1941,1692,3482,3219,3993,3728,560,825,51,314,2620,2869,2111,2358,
1590,1855,1077,1340,3642,3891,3129,3376,928,681,419,170,2988,2725,2479,2214,1958,1711,1445,1196,4010,3747,3497,3232,2240,2505,2755,3018,204,453,719,966,3270,3535,3781,4044,1226,1475,1737,1984,2384,2137,2899,2650,348,85,863,598,3414,3167,3925,3676,1370,1107,1881,1616,2800,3065,2291,2554,764,1013,255,502,3830,4095,3317,3580,1786,2035,1273,1520,2912,2665,2403,2154,876,613,367,102,3942,3695,3429,3180,1898,1635,1385,1120,1120,1385,1635,1898,3180,3429,3695,3942,102,367,613,876,2154,2403,2665,2912,1520,
1273,2035,1786,3580,3317,4095,3830,502,255,1013,764,2554,2291,3065,2800,1616,1881,1107,1370,3676,3925,3167,3414,598,863,85,348,2650,2899,2137,2384,1984,1737,1475,1226,4044,3781,3535,3270,966,719,453,204,3018,2755,2505,2240,3232,3497,3747,4010,1196,1445,1711,1958,2214,2479,2725,2988,170,419,681,928,3376,3129,3891,3642,1340,1077,1855,1590,2358,2111,2869,2620,314,51,825,560,3728,3993,3219,3482,1692,1941,1183,1430,2710,2975,2197,2460,666,915,153,400,3840,3593,3331,3082,1804,1541,1295,1030,2822,2575,2309,
2060,778,515,265,0],w=[[],[8,3,0],[9,0,1],[8,3,1,8,1,9],[11,2,3],[11,2,0,11,0,8],[11,2,3,0,1,9],[2,1,11,1,9,11,11,9,8],[10,1,2],[8,3,0,1,2,10],[9,0,2,9,2,10],[3,2,8,2,10,8,8,10,9],[10,1,3,10,3,11],[1,0,10,0,8,10,10,8,11],[0,3,9,3,11,9,9,11,10],[8,10,9,8,11,10],[8,4,7],[3,0,4,3,4,7],[1,9,0,8,4,7],[9,4,1,4,7,1,1,7,3],[2,3,11,7,8,4],[7,11,4,11,2,4,4,2,0],[3,11,2,4,7,8,9,0,1],[2,7,11,2,1,7,1,4,7,1,9,4],[10,1,2,8,4,7],[2,10,1,0,4,7,0,7,3],[4,7,8,0,2,10,0,10,9],[2,7,3,2,9,7,7,9,4,2,10,9],[8,4,7,11,10,1,
11,1,3],[11,4,7,1,4,11,1,11,10,1,0,4],[3,8,0,7,11,4,11,9,4,11,10,9],[7,11,4,4,11,9,11,10,9],[9,5,4],[3,0,8,4,9,5],[5,4,0,5,0,1],[4,8,5,8,3,5,5,3,1],[11,2,3,9,5,4],[9,5,4,8,11,2,8,2,0],[3,11,2,1,5,4,1,4,0],[8,5,4,2,5,8,2,8,11,2,1,5],[2,10,1,9,5,4],[0,8,3,5,4,9,10,1,2],[10,5,2,5,4,2,2,4,0],[3,4,8,3,2,4,2,5,4,2,10,5],[5,4,9,1,3,11,1,11,10],[0,9,1,4,8,5,8,10,5,8,11,10],[3,4,0,3,10,4,4,10,5,3,11,10],[4,8,5,5,8,10,8,11,10],[9,5,7,9,7,8],[0,9,3,9,5,3,3,5,7],[8,0,7,0,1,7,7,1,5],[1,7,3,1,5,7],[11,2,3,8,9,
5,8,5,7],[9,2,0,9,7,2,2,7,11,9,5,7],[0,3,8,2,1,11,1,7,11,1,5,7],[2,1,11,11,1,7,1,5,7],[1,2,10,5,7,8,5,8,9],[9,1,0,10,5,2,5,3,2,5,7,3],[5,2,10,8,2,5,8,5,7,8,0,2],[10,5,2,2,5,3,5,7,3],[3,9,1,3,8,9,7,11,10,7,10,5],[9,1,0,10,7,11,10,5,7],[3,8,0,7,10,5,7,11,10],[11,5,7,11,10,5],[11,7,6],[0,8,3,11,7,6],[9,0,1,11,7,6],[7,6,11,3,1,9,3,9,8],[2,3,7,2,7,6],[8,7,0,7,6,0,0,6,2],[1,9,0,3,7,6,3,6,2],[7,6,2,7,2,9,2,1,9,7,9,8],[1,2,10,6,11,7],[2,10,1,7,6,11,8,3,0],[11,7,6,10,9,0,10,0,2],[7,6,11,3,2,8,8,2,10,8,10,
9],[6,10,7,10,1,7,7,1,3],[6,10,1,6,1,7,7,1,0,7,0,8],[9,0,3,6,9,3,6,10,9,6,3,7],[6,10,7,7,10,8,10,9,8],[8,4,6,8,6,11],[11,3,6,3,0,6,6,0,4],[0,1,9,4,6,11,4,11,8],[1,9,4,11,1,4,11,3,1,11,4,6],[3,8,2,8,4,2,2,4,6],[2,0,4,2,4,6],[1,9,0,3,8,2,2,8,4,2,4,6],[9,4,1,1,4,2,4,6,2],[10,1,2,11,8,4,11,4,6],[10,1,2,11,3,6,6,3,0,6,0,4],[0,2,10,0,10,9,4,11,8,4,6,11],[2,11,3,6,9,4,6,10,9],[8,4,6,8,6,1,6,10,1,8,1,3],[1,0,10,10,0,6,0,4,6],[8,0,3,9,6,10,9,4,6],[10,4,6,10,9,4],[9,5,4,7,6,11],[4,9,5,3,0,8,11,7,6],[6,11,7,
4,0,1,4,1,5],[6,11,7,4,8,5,5,8,3,5,3,1],[4,9,5,6,2,3,6,3,7],[9,5,4,8,7,0,0,7,6,0,6,2],[4,0,1,4,1,5,6,3,7,6,2,3],[7,4,8,5,2,1,5,6,2],[6,11,7,1,2,10,9,5,4],[11,7,6,8,3,0,1,2,10,9,5,4],[11,7,6,10,5,2,2,5,4,2,4,0],[7,4,8,2,11,3,10,5,6],[4,9,5,6,10,7,7,10,1,7,1,3],[5,6,10,0,9,1,8,7,4],[5,6,10,7,0,3,7,4,0],[10,5,6,4,8,7],[5,6,9,6,11,9,9,11,8],[0,9,5,0,5,3,3,5,6,3,6,11],[0,1,5,0,5,11,5,6,11,0,11,8],[11,3,6,6,3,5,3,1,5],[9,5,6,3,9,6,3,8,9,3,6,2],[5,6,9,9,6,0,6,2,0],[0,3,8,2,5,6,2,1,5],[1,6,2,1,5,6],[1,2,
10,5,6,9,9,6,11,9,11,8],[1,0,9,6,10,5,11,3,2],[6,10,5,2,8,0,2,11,8],[3,2,11,10,5,6],[10,5,6,9,3,8,9,1,3],[0,9,1,5,6,10],[8,0,3,10,5,6],[10,5,6],[10,6,5],[8,3,0,10,6,5],[0,1,9,5,10,6],[10,6,5,9,8,3,9,3,1],[3,11,2,10,6,5],[6,5,10,2,0,8,2,8,11],[1,9,0,6,5,10,11,2,3],[1,10,2,5,9,6,9,11,6,9,8,11],[1,2,6,1,6,5],[0,8,3,2,6,5,2,5,1],[5,9,6,9,0,6,6,0,2],[9,6,5,3,6,9,3,9,8,3,2,6],[11,6,3,6,5,3,3,5,1],[0,5,1,0,11,5,5,11,6,0,8,11],[0,5,9,0,3,5,3,6,5,3,11,6],[5,9,6,6,9,11,9,8,11],[10,6,5,4,7,8],[5,10,6,7,3,0,
7,0,4],[5,10,6,0,1,9,8,4,7],[4,5,9,6,7,10,7,1,10,7,3,1],[7,8,4,2,3,11,10,6,5],[11,6,7,10,2,5,2,4,5,2,0,4],[11,6,7,8,0,3,1,10,2,9,4,5],[6,7,11,1,10,2,9,4,5],[7,8,4,5,1,2,5,2,6],[4,1,0,4,5,1,6,7,3,6,3,2],[9,4,5,8,0,7,0,6,7,0,2,6],[4,5,9,6,3,2,6,7,3],[6,7,11,4,5,8,5,3,8,5,1,3],[6,7,11,4,1,0,4,5,1],[4,5,9,3,8,0,11,6,7],[9,4,5,7,11,6],[10,6,4,10,4,9],[8,3,0,9,10,6,9,6,4],[1,10,0,10,6,0,0,6,4],[8,6,4,8,1,6,6,1,10,8,3,1],[2,3,11,6,4,9,6,9,10],[0,10,2,0,9,10,4,8,11,4,11,6],[10,2,1,11,6,3,6,0,3,6,4,0],[10,
2,1,11,4,8,11,6,4],[9,1,4,1,2,4,4,2,6],[1,0,9,3,2,8,2,4,8,2,6,4],[2,4,0,2,6,4],[3,2,8,8,2,4,2,6,4],[1,4,9,11,4,1,11,1,3,11,6,4],[0,9,1,4,11,6,4,8,11],[11,6,3,3,6,0,6,4,0],[8,6,4,8,11,6],[6,7,10,7,8,10,10,8,9],[9,3,0,6,3,9,6,9,10,6,7,3],[6,1,10,6,7,1,7,0,1,7,8,0],[6,7,10,10,7,1,7,3,1],[7,11,6,3,8,2,8,10,2,8,9,10],[11,6,7,10,0,9,10,2,0],[2,1,10,7,11,6,8,0,3],[1,10,2,6,7,11],[7,2,6,7,9,2,2,9,1,7,8,9],[1,0,9,3,6,7,3,2,6],[8,0,7,7,0,6,0,2,6],[2,7,3,2,6,7],[7,11,6,3,9,1,3,8,9],[9,1,0,11,6,7],[0,3,8,11,
6,7],[11,6,7],[11,7,5,11,5,10],[3,0,8,7,5,10,7,10,11],[9,0,1,10,11,7,10,7,5],[3,1,9,3,9,8,7,10,11,7,5,10],[10,2,5,2,3,5,5,3,7],[5,10,2,8,5,2,8,7,5,8,2,0],[9,0,1,10,2,5,5,2,3,5,3,7],[1,10,2,5,8,7,5,9,8],[2,11,1,11,7,1,1,7,5],[0,8,3,2,11,1,1,11,7,1,7,5],[9,0,2,9,2,7,2,11,7,9,7,5],[11,3,2,8,5,9,8,7,5],[1,3,7,1,7,5],[8,7,0,0,7,1,7,5,1],[0,3,9,9,3,5,3,7,5],[9,7,5,9,8,7],[4,5,8,5,10,8,8,10,11],[3,0,4,3,4,10,4,5,10,3,10,11],[0,1,9,4,5,8,8,5,10,8,10,11],[5,9,4,1,11,3,1,10,11],[3,8,4,3,4,2,2,4,5,2,5,10],[10,
2,5,5,2,4,2,0,4],[0,3,8,5,9,4,10,2,1],[2,1,10,9,4,5],[8,4,5,2,8,5,2,11,8,2,5,1],[3,2,11,1,4,5,1,0,4],[9,4,5,8,2,11,8,0,2],[11,3,2,9,4,5],[4,5,8,8,5,3,5,1,3],[5,0,4,5,1,0],[3,8,0,4,5,9],[9,4,5],[7,4,11,4,9,11,11,9,10],[3,0,8,7,4,11,11,4,9,11,9,10],[11,7,4,1,11,4,1,10,11,1,4,0],[8,7,4,11,1,10,11,3,1],[2,3,7,2,7,9,7,4,9,2,9,10],[4,8,7,0,10,2,0,9,10],[2,1,10,0,7,4,0,3,7],[10,2,1,8,7,4],[2,11,7,2,7,1,1,7,4,1,4,9],[3,2,11,4,8,7,9,1,0],[7,4,11,11,4,2,4,0,2],[2,11,3,7,4,8],[9,1,4,4,1,7,1,3,7],[1,0,9,8,7,
4],[3,4,0,3,7,4],[8,7,4],[8,9,10,8,10,11],[0,9,3,3,9,11,9,10,11],[1,10,0,0,10,8,10,11,8],[10,3,1,10,11,3],[3,8,2,2,8,10,8,9,10],[9,2,0,9,10,2],[8,0,3,1,10,2],[10,2,1],[2,11,1,1,11,9,11,8,9],[11,3,2,0,9,1],[11,0,2,11,8,0],[11,3,2],[8,1,3,8,9,1],[9,1,0],[8,0,3],[]];return u}();"undefined"===typeof console&&(console={log:function(){}});
$3Dmol.ProteinSurface=function(){var u=0,q=0,C=0,A=2,w=0,B=0,g=0,a=0,c=null,h=null,m=null,b=0,f=0,l=0,d=0,e=0,p=0,z={H:1.2,Li:1.82,Na:2.27,K:2.75,C:1.7,N:1.55,O:1.52,F:1.47,P:1.8,S:1.8,CL:1.75,BR:1.85,SE:1.9,ZN:1.39,CU:1.4,NI:1.63,X:2},t=function(c){return c.elem&&"undefined"!=typeof z[c.elem]?c.elem:"X"},n={},s={},x,E,y=[new Int32Array([1,0,0]),new Int32Array([-1,0,0]),new Int32Array([0,1,0]),new Int32Array([0,-1,0]),new Int32Array([0,0,1]),new Int32Array([0,0,-1]),new Int32Array([1,1,0]),new Int32Array([1,
-1,0]),new Int32Array([-1,1,0]),new Int32Array([-1,-1,0]),new Int32Array([1,0,1]),new Int32Array([1,0,-1]),new Int32Array([-1,0,1]),new Int32Array([-1,0,-1]),new Int32Array([0,1,1]),new Int32Array([0,1,-1]),new Int32Array([0,-1,1]),new Int32Array([0,-1,-1]),new Int32Array([1,1,1]),new Int32Array([1,1,-1]),new Int32Array([1,-1,1]),new Int32Array([-1,1,1]),new Int32Array([1,-1,-1]),new Int32Array([-1,-1,1]),new Int32Array([-1,1,-1]),new Int32Array([-1,-1,-1])];this.getFacesAndVertices=function(b){var a=
{},d,e;d=0;for(e=b.length;d<e;d++)a[b[d]]=!0;b=E;d=0;for(e=b.length;d<e;d++)b[d].x=b[d].x/A-u,b[d].y=b[d].y/A-q,b[d].z=b[d].z/A-C;var g=[];d=0;for(e=x.length;d<e;d+=3){var l=x[d],t=x[d+1],s=x[d+2],n=b[t].atomid,f=b[s].atomid,y=b[l].atomid;n<y&&(y=n);f<y&&(y=f);a[y]&&l!==t&&t!==s&&l!==s&&(g.push(l),g.push(t),g.push(s))}m=h=c=null;return{vertices:b,faces:g}};this.initparm=function(t,s,n){1E6<n&&(A=1);n=1/A*5.5;b=t[0][0];d=t[1][0];f=t[0][1];e=t[1][1];l=t[0][2];p=t[1][2];s?(b-=1.4+n,f-=1.4+n,l-=1.4+n,
d+=1.4+n,e+=1.4+n,p+=1.4+n):(b-=n,f-=n,l-=n,d+=n,e+=n,p+=n);b=Math.floor(b*A)/A;f=Math.floor(f*A)/A;l=Math.floor(l*A)/A;d=Math.ceil(d*A)/A;e=Math.ceil(e*A)/A;p=Math.ceil(p*A)/A;u=-b;q=-f;C=-l;g=Math.ceil(A*(d-b))+1;B=Math.ceil(A*(e-f))+1;w=Math.ceil(A*(p-l))+1;this.boundingatom(s);a=1.4*A;c=new Uint8Array(g*B*w);h=new Float64Array(g*B*w);m=new Int32Array(g*B*w);console.log("Box size: ",g,B,w,c.length)};this.boundingatom=function(c){var b=[],a,d;flagradius=c;for(var m in z)if(z.hasOwnProperty(m))for(d=
z[m],b[m]=c?(d+1.4)*A+.5:d*A+.5,d=b[m]*b[m],s[m]=Math.floor(b[m])+1,n[m]=new Int32Array(s[m]*s[m]),j=indx=0;j<s[m];j++)for(k=0;k<s[m];k++)a=j*j+k*k,a>d?n[m][indx]=-1:(a=Math.sqrt(d-a),n[m][indx]=Math.floor(a)),indx++};this.fillvoxels=function(b,a){var d,e;d=0;for(e=c.length;d<e;d++)c[d]=0,h[d]=-1,m[d]=-1;for(d in a)e=b[a[d]],void 0!==e&&this.fillAtom(e,b);d=0;for(e=c.length;d<e;d++)c[d]&1&&(c[d]|=2)};this.fillAtom=function(b,d){var a,e,l,h,f,y,E,p,x,z,H,N,U,P,Q,W,R;a=Math.floor(.5+A*(b.x+u));e=Math.floor(.5+
A*(b.y+q));l=Math.floor(.5+A*(b.z+C));var X=t(b),L=0,ea=B*w;z=0;for(R=s[X];z<R;z++)for(H=0;H<R;H++){if(-1!=n[X][L])for(P=-1;2>P;P++)for(Q=-1;2>Q;Q++)for(W=-1;2>W;W++)if(0!==P&&0!==Q&&0!==W)for(E=P*z,x=W*H,N=0;N<=n[X][L];N++)p=N*Q,h=a+E,f=e+p,U=l+x,0>h||0>f||0>U||h>=g||f>=B||U>=w||(U=h*ea+f*w+U,c[U]&1?(y=d[m[U]],y.serial!=b.serial&&(h=a+E-Math.floor(.5+A*(y.x+u)),f=e+p-Math.floor(.5+A*(y.y+q)),y=l+x-Math.floor(.5+A*(y.z+C)),E*E+p*p+x*x<h*h+f*f+y*y&&(m[U]=b.serial))):(c[U]|=1,m[U]=b.serial));L++}};
this.fillvoxelswaals=function(b,d){var a,m;a=0;for(m=c.length;a<m;a++)c[a]&=-3;for(a in d)m=b[d[a]],void 0!==m&&this.fillAtomWaals(m,b)};this.fillAtomWaals=function(b,a){var d,e,l,h,f,y,E=0,p,x,z,H,N,U,P,Q,W,R,X;d=Math.floor(.5+A*(b.x+u));e=Math.floor(.5+A*(b.y+q));l=Math.floor(.5+A*(b.z+C));var L=t(b),ea=B*w;N=0;for(X=s[L];N<X;N++)for(U=0;U<X;U++){if(-1!=n[L][E])for(Q=-1;2>Q;Q++)for(W=-1;2>W;W++)for(R=-1;2>R;R++)if(0!==Q&&0!==W&&0!==R)for(p=Q*N,z=R*U,P=0;P<=n[L][E];P++)x=P*W,h=d+p,f=e+x,H=l+z,0>
h||0>f||0>H||h>=g||f>=B||H>=w||(H=h*ea+f*w+H,c[H]&2?(y=a[m[H]],y.serial!=b.serial&&(h=d+p-Math.floor(.5+A*(y.x+u)),f=e+x-Math.floor(.5+A*(y.y+q)),y=l+z-Math.floor(.5+A*(y.z+C)),p*p+x*x+z*z<h*h+f*f+y*y&&(m[H]=b.serial))):(c[H]|=2,m[H]=b.serial));E++}};this.buildboundary=function(){var b=B*w;for(i=0;i<g;i++)for(j=0;j<w;j++)for(k=0;k<B;k++){var a=i*b+k*w+j;if(c[a]&1)for(var d=0;26>d;){var m=i+y[d][0],e=j+y[d][2],h=k+y[d][1];if(-1<m&&m<g&&-1<h&&h<B&&-1<e&&e<w&&!(c[m*b+h*w+e]&1)){c[a]|=4;break}else d++}}};
var H=function(c,b,d){var a=new Int32Array(c*b*d*3);this.set=function(c,m,e,g){c=3*((c*b+m)*d+e);a[c]=g.ix;a[c+1]=g.iy;a[c+2]=g.iz};this.get=function(c,m,e){c=3*((c*b+m)*d+e);return{ix:a[c],iy:a[c+1],iz:a[c+2]}}};this.fastdistancemap=function(){var b,d,m,e=new H(g,B,w),l=B*w,t=a*a,n=[];m=[];var f;for(b=0;b<g;b++)for(d=0;d<B;d++)for(m=0;m<w;m++)if(f=b*l+d*w+m,c[f]&=-3,c[f]&1&&c[f]&4){var s={ix:b,iy:d,iz:m};e.set(b,d,m,s);n.push(s);h[f]=0;c[f]|=2;c[f]&=-5}do for(m=this.fastoneshell(n,e),n=[],b=0,d=
m.length;b<d;b++)f=l*m[b].ix+w*m[b].iy+m[b].iz,c[f]&=-5,h[f]<=1.0404*t&&n.push({ix:m[b].ix,iy:m[b].iy,iz:m[b].iz});while(0!==n.length);b=A-.5;0>b&&(b=0);t-=.5/(.1+b);for(b=0;b<g;b++)for(d=0;d<B;d++)for(m=0;m<w;m++)f=b*l+d*w+m,c[f]&=-5,c[f]&1&&(!(c[f]&2)||c[f]&2&&h[f]>=t)&&(c[f]|=4)};this.fastoneshell=function(b,d){var a,m,e,f,l,t,n,s,E,p,x,z=[];if(0===b.length)return z;tnv={ix:-1,iy:-1,iz:-1};var H=B*w;n=0;for(E=b.length;n<E;n++)for(a=b[n].ix,m=b[n].iy,e=b[n].iz,p=d.get(a,m,e),s=0;6>s;s++)tnv.ix=
a+y[s][0],tnv.iy=m+y[s][1],tnv.iz=e+y[s][2],tnv.ix<g&&-1<tnv.ix&&tnv.iy<B&&-1<tnv.iy&&tnv.iz<w&&-1<tnv.iz&&(x=tnv.ix*H+w*tnv.iy+tnv.iz,c[x]&1&&!(c[x]&2)?(d.set(tnv.ix,tnv.iy,e+y[s][2],p),f=tnv.ix-p.ix,l=tnv.iy-p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,h[x]=f,c[x]|=2,c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):c[x]&1&&c[x]&2&&(f=tnv.ix-p.ix,l=tnv.iy-p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,f<h[x]&&(d.set(tnv.ix,tnv.iy,tnv.iz,p),h[x]=f,c[x]&4||(c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));n=0;for(E=b.length;n<
E;n++)for(a=b[n].ix,m=b[n].iy,e=b[n].iz,p=d.get(a,m,e),s=6;18>s;s++)tnv.ix=a+y[s][0],tnv.iy=m+y[s][1],tnv.iz=e+y[s][2],tnv.ix<g&&-1<tnv.ix&&tnv.iy<B&&-1<tnv.iy&&tnv.iz<w&&-1<tnv.iz&&(x=tnv.ix*H+w*tnv.iy+tnv.iz,c[x]&1&&!(c[x]&2)?(d.set(tnv.ix,tnv.iy,e+y[s][2],p),f=tnv.ix-p.ix,l=tnv.iy-p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,h[x]=f,c[x]|=2,c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):c[x]&1&&c[x]&2&&(f=tnv.ix-p.ix,l=tnv.iy-p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,f<h[x]&&(d.set(tnv.ix,tnv.iy,tnv.iz,p),h[x]=f,
c[x]&4||(c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));n=0;for(E=b.length;n<E;n++)for(a=b[n].ix,m=b[n].iy,e=b[n].iz,p=d.get(a,m,e),s=18;26>s;s++)tnv.ix=a+y[s][0],tnv.iy=m+y[s][1],tnv.iz=e+y[s][2],tnv.ix<g&&-1<tnv.ix&&tnv.iy<B&&-1<tnv.iy&&tnv.iz<w&&-1<tnv.iz&&(x=tnv.ix*H+w*tnv.iy+tnv.iz,c[x]&1&&!(c[x]&2)?(d.set(tnv.ix,tnv.iy,e+y[s][2],p),f=tnv.ix-p.ix,l=tnv.iy-p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,h[x]=f,c[x]|=2,c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):c[x]&1&&c[x]&2&&(f=tnv.ix-p.ix,l=tnv.iy-
p.iy,t=tnv.iz-p.iz,f=f*f+l*l+t*t,f<h[x]&&(d.set(tnv.ix,tnv.iy,tnv.iz,p),h[x]=f,c[x]&4||(c[x]|=4,z.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));return z};this.marchingcubeinit=function(b){for(var d=0,a=c.length;d<a;d++)1==b?c[d]&=-5:4==b?(c[d]&=-3,c[d]&4&&(c[d]|=2),c[d]&=-5):2==b?c[d]&4&&c[d]&2?c[d]&=-5:c[d]&4&&!(c[d]&2)&&(c[d]|=2):3==b&&(c[d]&=-5)};this.marchingcube=function(b){this.marchingcubeinit(b);E=[];x=[];$3Dmol.MarchingCube.march(c,E,x,{smooth:1,nX:g,nY:B,nZ:w});b=B*w;for(var d=0,a=E.length;d<
a;d++)E[d].atomid=m[E[d].x*b+w*E[d].y+E[d].z];$3Dmol.MarchingCube.laplacianSmooth(1,E,x)}};$3Dmol=function(u){return u.$3Dmol||{}}(window);$.get("http://3dmol.csb.pitt.edu/track/report.cgi");$3Dmol.createViewer=function(u,q){"string"===$.type(u)&&(u=$("#"+u));if(u){q=q||{};try{return new $3Dmol.GLViewer(u,q)}catch(C){throw"error creating viewer: "+C;}}};$3Dmol.viewers={};
$3Dmol.download=function(u,q,C,A){var w="",B=q.addModel();if("pdb:"===u.substr(0,4)){w="pdb";u=u.substr(4).toUpperCase();if(!u.match(/^[1-9][A-Za-z0-9]{3}$/)){alert("Wrong PDB ID");return}uri="http://www.rcsb.org/pdb/files/"+u+".pdb"}else if("cid:"==u.substr(0,4)){w="sdf";u=u.substr(4);if(!u.match(/^[1-9]+$/)){alert("Wrong Compound ID");return}uri="http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/"+u+"/SDF?record_type=3d"}$.get(uri,function(g){B.addMolData(g,w,C);q.zoomTo();q.render();A&&A(B)});
return B};$3Dmol.SurfaceType={VDW:1,MS:2,SAS:3,SES:4};$3Dmol.mergeGeos=function(u,q){var C=q.geometry;void 0!==C&&u.geometryGroups.push(C.geometryGroups[0])};$3Dmol.multiLineString=function(u){return u.toString().replace(/^[^\/]+\/\*!?/,"").replace(/\*\/[^\/]+$/,"")};$3Dmol.syncSurface=!1;if(0<=window.navigator.userAgent.indexOf("MSIE ")||0<=window.navigator.userAgent.indexOf("Trident/"))$3Dmol.syncSurface=!0;
$3Dmol.specStringToObject=function(u){if("object"===typeof u||"undefined"===typeof u||null==u)return u;var q={};u=u.split(";");for(var C=0;C<u.length;C++){var A=u[C].split(":"),w=A[0],B={};if(A=A[1])if(A=A.replace(/~/g,"="),-1!==A.indexOf("="))for(var A=A.split(","),g=0;g<A.length;g++){var a=A[g].split("=",2);B[a[0]]=a[1]}else B=-1!==A.indexOf(",")?A.split(","):A;q[w]=B}return q};
$3Dmol.getExtent=function(u,q){var C,A,w,B,g,a,c,h,m,b,f=!q;C=A=w=9999;B=g=a=-9999;c=h=m=b=0;if(0===u.length)return[[0,0,0],[0,0,0],[0,0,0]];for(var l=0;l<u.length;l++){var d=u[l];if(void 0!==d&&(b++,c+=d.x,h+=d.y,m+=d.z,C=C<d.x?C:d.x,A=A<d.y?A:d.y,w=w<d.z?w:d.z,B=B>d.x?B:d.x,g=g>d.y?g:d.y,a=a>d.z?a:d.z,d.symmetries&&f))for(var e=0;e<d.symmetries.length;e++)b++,c+=d.symmetries[e].x,h+=d.symmetries[e].y,m+=d.symmetries[e].z,C=C<d.symmetries[e].x?C:d.symmetries[e].x,A=A<d.symmetries[e].y?A:d.symmetries[e].y,
w=w<d.symmetries[e].z?w:d.symmetries[e].z,B=B>d.symmetries[e].x?B:d.symmetries[e].x,g=g>d.symmetries[e].y?g:d.symmetries[e].y,a=a>d.symmetries[e].z?a:d.symmetries[e].z}return[[C,A,w],[B,g,a],[c/b,h/b,m/b]]};$3Dmol.workerString='self.onmessage=function(oEvent){var obj=oEvent.data,type=obj.type;if(0>type)self.atomData=obj.atoms,self.volume=obj.volume,self.ps=new ProteinSurface;else{var ps=self.ps;ps.initparm(obj.expandedExtent,1==type?!1:!0,self.volume),ps.fillvoxels(self.atomData,obj.extendedAtoms),ps.buildboundary(),(4===type||2===type)&&(ps.fastdistancemap(),ps.boundingatom(!1),ps.fillvoxelswaals(self.atomData,obj.extendedAtoms)),ps.marchingcube(type);var VandF=ps.getFacesAndVertices(obj.atomsToShow);self.postMessage(VandF)}};var Vector3=function(x,y,z){this.x=x||0,this.y=y||0,this.z=z||0};Vector3.prototype={constructor:Vector3,copy:function(v){return this.x=v.x,this.y=v.y,this.z=v.z,this},multiplyScalar:function(s){return this.x*=s,this.y*=s,this.z*=s,this}};var ISDONE=2,ProteinSurface=function (){var faces,verts,origextent,INOUT=1,ISDONE=2,ISBOUND=4,ptranx=0,ptrany=0,ptranz=0,probeRadius=1.4,defaultScaleFactor=2,scaleFactor=defaultScaleFactor,pHeight=0,pWidth=0,pLength=0,cutRadius=0,vpBits=null,vpDistance=null,vpAtomID=null,pminx=0,pminy=0,pminz=0,pmaxx=0,pmaxy=0,pmaxz=0,vdwRadii={H:1.2,Li:1.82,Na:2.27,K:2.75,C:1.7,N:1.55,O:1.52,F:1.47,P:1.8,S:1.8,CL:1.75,BR:1.85,SE:1.9,ZN:1.39,CU:1.4,NI:1.63,X:2},getVDWIndex=function(atom){return atom.elem&&"undefined"!=typeof vdwRadii[atom.elem]?atom.elem:"X"},depty={},widxz={},nb=[new Int32Array([1,0,0]),new Int32Array([-1,0,0]),new Int32Array([0,1,0]),new Int32Array([0,-1,0]),new Int32Array([0,0,1]),new Int32Array([0,0,-1]),new Int32Array([1,1,0]),new Int32Array([1,-1,0]),new Int32Array([-1,1,0]),new Int32Array([-1,-1,0]),new Int32Array([1,0,1]),new Int32Array([1,0,-1]),new Int32Array([-1,0,1]),new Int32Array([-1,0,-1]),new Int32Array([0,1,1]),new Int32Array([0,1,-1]),new Int32Array([0,-1,1]),new Int32Array([0,-1,-1]),new Int32Array([1,1,1]),new Int32Array([1,1,-1]),new Int32Array([1,-1,1]),new Int32Array([-1,1,1]),new Int32Array([1,-1,-1]),new Int32Array([-1,-1,1]),new Int32Array([-1,1,-1]),new Int32Array([-1,-1,-1])];this.getFacesAndVertices=function(atomlist){var i,il,atomsToShow={};for(i=0,il=atomlist.length;il>i;i++)atomsToShow[atomlist[i]]=!0;var vertices=verts;for(i=0,il=vertices.length;il>i;i++)vertices[i].x=vertices[i].x/scaleFactor-ptranx,vertices[i].y=vertices[i].y/scaleFactor-ptrany,vertices[i].z=vertices[i].z/scaleFactor-ptranz;var finalfaces=[];for(i=0,il=faces.length;il>i;i+=3){var fa=faces[i],fb=faces[i+1],fc=faces[i+2],a=vertices[fa].atomid,b=vertices[fb].atomid,c=vertices[fc].atomid,which=a;if(which>b&&(which=b),which>c&&(which=c),atomsToShow[which]){{vertices[faces[i]],vertices[faces[i+1]],vertices[faces[i+2]]}fa!==fb&&fb!==fc&&fa!==fc&&(finalfaces.push(fa),finalfaces.push(fb),finalfaces.push(fc))}}return vpBits=null,vpDistance=null,vpAtomID=null,{vertices:vertices,faces:finalfaces}},this.initparm=function(extent,btype,volume){volume>1e6&&(scaleFactor=defaultScaleFactor/2);var margin=1/scaleFactor*5.5;origextent=extent,pminx=extent[0][0],pmaxx=extent[1][0],pminy=extent[0][1],pmaxy=extent[1][1],pminz=extent[0][2],pmaxz=extent[1][2],btype?(pminx-=probeRadius+margin,pminy-=probeRadius+margin,pminz-=probeRadius+margin,pmaxx+=probeRadius+margin,pmaxy+=probeRadius+margin,pmaxz+=probeRadius+margin):(pminx-=margin,pminy-=margin,pminz-=margin,pmaxx+=margin,pmaxy+=margin,pmaxz+=margin),pminx=Math.floor(pminx*scaleFactor)/scaleFactor,pminy=Math.floor(pminy*scaleFactor)/scaleFactor,pminz=Math.floor(pminz*scaleFactor)/scaleFactor,pmaxx=Math.ceil(pmaxx*scaleFactor)/scaleFactor,pmaxy=Math.ceil(pmaxy*scaleFactor)/scaleFactor,pmaxz=Math.ceil(pmaxz*scaleFactor)/scaleFactor,ptranx=-pminx,ptrany=-pminy,ptranz=-pminz,pLength=Math.ceil(scaleFactor*(pmaxx-pminx))+1,pWidth=Math.ceil(scaleFactor*(pmaxy-pminy))+1,pHeight=Math.ceil(scaleFactor*(pmaxz-pminz))+1,this.boundingatom(btype),cutRadius=probeRadius*scaleFactor,vpBits=new Uint8Array(pLength*pWidth*pHeight),vpDistance=new Float64Array(pLength*pWidth*pHeight),vpAtomID=new Int32Array(pLength*pWidth*pHeight)},this.boundingatom=function(btype){var txz,tdept,sradius,tradius=[];flagradius=btype;for(var i in vdwRadii)if(vdwRadii.hasOwnProperty(i)){var r=vdwRadii[i];for(tradius[i]=btype?(r+probeRadius)*scaleFactor+.5:r*scaleFactor+.5,sradius=tradius[i]*tradius[i],widxz[i]=Math.floor(tradius[i])+1,depty[i]=new Int32Array(widxz[i]*widxz[i]),indx=0,j=0;j<widxz[i];j++)for(k=0;k<widxz[i];k++)txz=j*j+k*k,txz>sradius?depty[i][indx]=-1:(tdept=Math.sqrt(sradius-txz),depty[i][indx]=Math.floor(tdept)),indx++}},this.fillvoxels=function(atoms,atomlist){var i,il;for(i=0,il=vpBits.length;il>i;i++)vpBits[i]=0,vpDistance[i]=-1,vpAtomID[i]=-1;for(i in atomlist){var atom=atoms[atomlist[i]];void 0!==atom&&this.fillAtom(atom,atoms)}for(i=0,il=vpBits.length;il>i;i++)vpBits[i]&INOUT&&(vpBits[i]|=ISDONE)},this.fillAtom=function(atom,atoms){var cx,cy,cz,ox,oy,oz,mi,mj,mk,i,j,k,si,sj,sk,ii,jj,kk,n;cx=Math.floor(.5+scaleFactor*(atom.x+ptranx)),cy=Math.floor(.5+scaleFactor*(atom.y+ptrany)),cz=Math.floor(.5+scaleFactor*(atom.z+ptranz));var at=getVDWIndex(atom),nind=0,pWH=pWidth*pHeight;for(i=0,n=widxz[at];n>i;i++)for(j=0;n>j;j++){if(-1!=depty[at][nind])for(ii=-1;2>ii;ii++)for(jj=-1;2>jj;jj++)for(kk=-1;2>kk;kk++)if(0!==ii&&0!==jj&&0!==kk)for(mi=ii*i,mk=kk*j,k=0;k<=depty[at][nind];k++)if(mj=k*jj,si=cx+mi,sj=cy+mj,sk=cz+mk,!(0>si||0>sj||0>sk||si>=pLength||sj>=pWidth||sk>=pHeight)){var index=si*pWH+sj*pHeight+sk;if(vpBits[index]&INOUT){var atom2=atoms[vpAtomID[index]];ox=Math.floor(.5+scaleFactor*(atom2.x+ptranx)),oy=Math.floor(.5+scaleFactor*(atom2.y+ptrany)),oz=Math.floor(.5+scaleFactor*(atom2.z+ptranz)),ox*ox+oy*oy+oz*oz>mi*mi+mj*mj+mk*mk&&(vpAtomID[index]=atom.serial)}else vpBits[index]|=INOUT,vpAtomID[index]=atom.serial}nind++}},this.fillvoxelswaals=function(atoms,atomlist){var i,il;for(i=0,il=vpBits.length;il>i;i++)vpBits[i]&=~ISDONE;for(i in atomlist){var atom=atoms[atomlist[i]];void 0!==atom&&this.fillAtomWaals(atom,atoms)}},this.fillAtomWaals=function(atom,atoms){var cx,cy,cz,ox,oy,oz,mi,mj,mk,si,sj,sk,i,j,k,ii,jj,kk,n,nind=0;cx=Math.floor(.5+scaleFactor*(atom.x+ptranx)),cy=Math.floor(.5+scaleFactor*(atom.y+ptrany)),cz=Math.floor(.5+scaleFactor*(atom.z+ptranz));var at=getVDWIndex(atom),pWH=pWidth*pHeight;for(i=0,n=widxz[at];n>i;i++)for(j=0;n>j;j++){if(-1!=depty[at][nind])for(ii=-1;2>ii;ii++)for(jj=-1;2>jj;jj++)for(kk=-1;2>kk;kk++)if(0!==ii&&0!==jj&&0!==kk)for(mi=ii*i,mk=kk*j,k=0;k<=depty[at][nind];k++)if(mj=k*jj,si=cx+mi,sj=cy+mj,sk=cz+mk,!(0>si||0>sj||0>sk||si>=pLength||sj>=pWidth||sk>=pHeight)){var index=si*pWH+sj*pHeight+sk;if(vpBits[index]&ISDONE){var atom2=atoms[vpAtomID[index]];ox=Math.floor(.5+scaleFactor*(atom2.x+ptranx)),oy=Math.floor(.5+scaleFactor*(atom2.y+ptrany)),oz=Math.floor(.5+scaleFactor*(atom2.z+ptranz)),ox*ox+oy*oy+oz*oz>mi*mi+mj*mj+mk*mk&&(vpAtomID[index]=atom.serial)}else vpBits[index]|=ISDONE,vpAtomID[index]=atom.serial}nind++}},this.buildboundary=function(){var pWH=pWidth*pHeight;for(i=0;pLength>i;i++)for(j=0;pHeight>j;j++)for(k=0;pWidth>k;k++){var index=i*pWH+k*pHeight+j;if(vpBits[index]&INOUT)for(var ii=0;26>ii;){var ti=i+nb[ii][0],tj=j+nb[ii][2],tk=k+nb[ii][1];if(ti>-1&&pLength>ti&&tk>-1&&pWidth>tk&&tj>-1&&pHeight>tj&&!(vpBits[ti*pWH+tk*pHeight+tj]&INOUT)){vpBits[index]|=ISBOUND;break}ii++}}};var PointGrid=function(length,width,height){var data=new Int32Array(length*width*height*3);this.set=function(x,y,z,pt){var index=3*((x*width+y)*height+z);data[index]=pt.ix,data[index+1]=pt.iy,data[index+2]=pt.iz},this.get=function(x,y,z){var index=3*((x*width+y)*height+z);return{ix:data[index],iy:data[index+1],iz:data[index+2]}}};this.fastdistancemap=function(){var i,j,k,n,index,boundPoint=new PointGrid(pLength,pWidth,pHeight),pWH=pWidth*pHeight,cutRSq=cutRadius*cutRadius,inarray=[],outarray=[];for(i=0;pLength>i;i++)for(j=0;pWidth>j;j++)for(k=0;pHeight>k;k++)if(index=i*pWH+j*pHeight+k,vpBits[index]&=~ISDONE,vpBits[index]&INOUT&&vpBits[index]&ISBOUND){var triple={ix:i,iy:j,iz:k};boundPoint.set(i,j,k,triple),inarray.push(triple),vpDistance[index]=0,vpBits[index]|=ISDONE,vpBits[index]&=~ISBOUND}do for(outarray=this.fastoneshell(inarray,boundPoint),inarray=[],i=0,n=outarray.length;n>i;i++)index=pWH*outarray[i].ix+pHeight*outarray[i].iy+outarray[i].iz,vpBits[index]&=~ISBOUND,vpDistance[index]<=1.0404*cutRSq&&inarray.push({ix:outarray[i].ix,iy:outarray[i].iy,iz:outarray[i].iz});while(0!==inarray.length);inarray=[],outarray=[],boundPoint=null;var cutsf=scaleFactor-.5;0>cutsf&&(cutsf=0);var cutoff=cutRSq-.5/(.1+cutsf);for(i=0;pLength>i;i++)for(j=0;pWidth>j;j++)for(k=0;pHeight>k;k++)index=i*pWH+j*pHeight+k,vpBits[index]&=~ISBOUND,vpBits[index]&INOUT&&(!(vpBits[index]&ISDONE)||vpBits[index]&ISDONE&&vpDistance[index]>=cutoff)&&(vpBits[index]|=ISBOUND)},this.fastoneshell=function(inarray,boundPoint){var tx,ty,tz,dx,dy,dz,i,j,n,square,bp,index,outarray=[];if(0===inarray.length)return outarray;tnv={ix:-1,iy:-1,iz:-1};var pWH=pWidth*pHeight;for(i=0,n=inarray.length;n>i;i++)for(tx=inarray[i].ix,ty=inarray[i].iy,tz=inarray[i].iz,bp=boundPoint.get(tx,ty,tz),j=0;6>j;j++)tnv.ix=tx+nb[j][0],tnv.iy=ty+nb[j][1],tnv.iz=tz+nb[j][2],tnv.ix<pLength&&tnv.ix>-1&&tnv.iy<pWidth&&tnv.iy>-1&&tnv.iz<pHeight&&tnv.iz>-1&&(index=tnv.ix*pWH+pHeight*tnv.iy+tnv.iz,vpBits[index]&INOUT&&!(vpBits[index]&ISDONE)?(boundPoint.set(tnv.ix,tnv.iy,tz+nb[j][2],bp),dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,vpDistance[index]=square,vpBits[index]|=ISDONE,vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):vpBits[index]&INOUT&&vpBits[index]&ISDONE&&(dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,square<vpDistance[index]&&(boundPoint.set(tnv.ix,tnv.iy,tnv.iz,bp),vpDistance[index]=square,vpBits[index]&ISBOUND||(vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));for(i=0,n=inarray.length;n>i;i++)for(tx=inarray[i].ix,ty=inarray[i].iy,tz=inarray[i].iz,bp=boundPoint.get(tx,ty,tz),j=6;18>j;j++)tnv.ix=tx+nb[j][0],tnv.iy=ty+nb[j][1],tnv.iz=tz+nb[j][2],tnv.ix<pLength&&tnv.ix>-1&&tnv.iy<pWidth&&tnv.iy>-1&&tnv.iz<pHeight&&tnv.iz>-1&&(index=tnv.ix*pWH+pHeight*tnv.iy+tnv.iz,vpBits[index]&INOUT&&!(vpBits[index]&ISDONE)?(boundPoint.set(tnv.ix,tnv.iy,tz+nb[j][2],bp),dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,vpDistance[index]=square,vpBits[index]|=ISDONE,vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):vpBits[index]&INOUT&&vpBits[index]&ISDONE&&(dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,square<vpDistance[index]&&(boundPoint.set(tnv.ix,tnv.iy,tnv.iz,bp),vpDistance[index]=square,vpBits[index]&ISBOUND||(vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));for(i=0,n=inarray.length;n>i;i++)for(tx=inarray[i].ix,ty=inarray[i].iy,tz=inarray[i].iz,bp=boundPoint.get(tx,ty,tz),j=18;26>j;j++)tnv.ix=tx+nb[j][0],tnv.iy=ty+nb[j][1],tnv.iz=tz+nb[j][2],tnv.ix<pLength&&tnv.ix>-1&&tnv.iy<pWidth&&tnv.iy>-1&&tnv.iz<pHeight&&tnv.iz>-1&&(index=tnv.ix*pWH+pHeight*tnv.iy+tnv.iz,vpBits[index]&INOUT&&!(vpBits[index]&ISDONE)?(boundPoint.set(tnv.ix,tnv.iy,tz+nb[j][2],bp),dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,vpDistance[index]=square,vpBits[index]|=ISDONE,vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})):vpBits[index]&INOUT&&vpBits[index]&ISDONE&&(dx=tnv.ix-bp.ix,dy=tnv.iy-bp.iy,dz=tnv.iz-bp.iz,square=dx*dx+dy*dy+dz*dz,square<vpDistance[index]&&(boundPoint.set(tnv.ix,tnv.iy,tnv.iz,bp),vpDistance[index]=square,vpBits[index]&ISBOUND||(vpBits[index]|=ISBOUND,outarray.push({ix:tnv.ix,iy:tnv.iy,iz:tnv.iz})))));return outarray},this.marchingcubeinit=function(stype){for(var i=0,lim=vpBits.length;lim>i;i++)1==stype?vpBits[i]&=~ISBOUND:4==stype?(vpBits[i]&=~ISDONE,vpBits[i]&ISBOUND&&(vpBits[i]|=ISDONE),vpBits[i]&=~ISBOUND):2==stype?vpBits[i]&ISBOUND&&vpBits[i]&ISDONE?vpBits[i]&=~ISBOUND:vpBits[i]&ISBOUND&&!(vpBits[i]&ISDONE)&&(vpBits[i]|=ISDONE):3==stype&&(vpBits[i]&=~ISBOUND)};this.marchingcube=function(stype){this.marchingcubeinit(stype),verts=[],faces=[],march(vpBits,verts,faces,{smooth:1,nX:pLength,nY:pWidth,nZ:pHeight});for(var pWH=pWidth*pHeight,i=0,vlen=verts.length;vlen>i;i++)verts[i].atomid=vpAtomID[verts[i].x*pWH+pHeight*verts[i].y+verts[i].z];laplacianSmooth(1,verts,faces)}},march=function (data,verts,faces,spec){var i,il,fulltable=!!spec.fulltable,origin=spec.hasOwnProperty("origin")&&spec.origin.hasOwnProperty("x")?spec.origin:{x:0,y:0,z:0},voxel=!!spec.voxel,nX=spec.nX||0,nY=spec.nY||0,nZ=spec.nZ||0,scale=spec.scale||1,unitCube=new Vector3(1,1,1).multiplyScalar(scale),vertnums=new Int32Array(nX*nY*nZ);for(i=0,il=vertnums.length;il>i;++i)vertnums[i]=-1;var getVertex=function(i,j,k,code,p1,p2){var pt=new Vector3;pt.copy(origin);var val1=!!(code&1<<p1),val2=!!(code&1<<p2),p=p1;!val1&&val2&&(p=p2),1&p&&k++,2&p&&j++,4&p&&i++,pt.x+=unitCube.x*i,pt.y+=unitCube.y*j,pt.z+=unitCube.z*k;var index=(nY*i+j)*nZ+k;return voxel?(verts.push(pt),verts.length-1):(vertnums[index]<0&&(vertnums[index]=verts.length,verts.push(pt)),vertnums[index])},intersects=new Int32Array(12),etable=fulltable?edgeTable2:edgeTable,tritable=fulltable?triTable2:triTable;for(i=0;nX-1>i;++i)for(var j=0;nY-1>j;++j)for(var k=0;nZ-1>k;++k){for(var code=0,p=0;8>p;++p){var index=(nY*(i+((4&p)>>2))+j+((2&p)>>1))*nZ+k+(1&p),val=!!(data[index]&ISDONE);code|=val<<p}if(0!==code&&255!==code){var ecode=etable[code];if(0!==ecode){var ttable=tritable[code];1&ecode&&(intersects[0]=getVertex(i,j,k,code,0,1)),2&ecode&&(intersects[1]=getVertex(i,j,k,code,1,3)),4&ecode&&(intersects[2]=getVertex(i,j,k,code,3,2)),8&ecode&&(intersects[3]=getVertex(i,j,k,code,2,0)),16&ecode&&(intersects[4]=getVertex(i,j,k,code,4,5)),32&ecode&&(intersects[5]=getVertex(i,j,k,code,5,7)),64&ecode&&(intersects[6]=getVertex(i,j,k,code,7,6)),128&ecode&&(intersects[7]=getVertex(i,j,k,code,6,4)),256&ecode&&(intersects[8]=getVertex(i,j,k,code,0,4)),512&ecode&&(intersects[9]=getVertex(i,j,k,code,1,5)),1024&ecode&&(intersects[10]=getVertex(i,j,k,code,3,7)),2048&ecode&&(intersects[11]=getVertex(i,j,k,code,2,6));for(var t=0;t<ttable.length;t+=3){var a=intersects[ttable[t]],b=intersects[ttable[t+1]],c=intersects[ttable[t+2]];voxel&&t>=3&&(verts.push(verts[a]),a=verts.length-1,verts.push(verts[b]),b=verts.length-1,verts.push(verts[c]),c=verts.length-1),faces.push(a),faces.push(b),faces.push(c)}}}}},laplacianSmooth=function (numiter,verts,faces){var i,il,j,jl,k,tps=new Array(verts.length);for(i=0,il=verts.length;il>i;i++)tps[i]={x:0,y:0,z:0};var flagvert,vertdeg=new Array(20);for(i=0;20>i;i++)vertdeg[i]=new Array(verts.length);for(i=0,il=verts.length;il>i;i++)vertdeg[0][i]=0;for(i=0,il=faces.length/3;il>i;i++){var aoffset=3*i,boffset=3*i+1,coffset=3*i+2;for(flagvert=!0,j=0,jl=vertdeg[0][faces[aoffset]];jl>j;j++)if(faces[boffset]==vertdeg[j+1][faces[aoffset]]){flagvert=!1;break}for(flagvert&&(vertdeg[0][faces[aoffset]]++,vertdeg[vertdeg[0][faces[aoffset]]][faces[aoffset]]=faces[boffset]),flagvert=!0,j=0,jl=vertdeg[0][faces[aoffset]];jl>j;j++)if(faces[coffset]==vertdeg[j+1][faces[aoffset]]){flagvert=!1;break}for(flagvert&&(vertdeg[0][faces[aoffset]]++,vertdeg[vertdeg[0][faces[aoffset]]][faces[aoffset]]=faces[coffset]),flagvert=!0,j=0,jl=vertdeg[0][faces[boffset]];jl>j;j++)if(faces[aoffset]==vertdeg[j+1][faces[boffset]]){flagvert=!1;break}for(flagvert&&(vertdeg[0][faces[boffset]]++,vertdeg[vertdeg[0][faces[boffset]]][faces[boffset]]=faces[aoffset]),flagvert=!0,j=0,jl=vertdeg[0][faces[boffset]];jl>j;j++)if(faces[coffset]==vertdeg[j+1][faces[boffset]]){flagvert=!1;break}for(flagvert&&(vertdeg[0][faces[boffset]]++,vertdeg[vertdeg[0][faces[boffset]]][faces[boffset]]=faces[coffset]),flagvert=!0,j=0;j<vertdeg[0][faces[coffset]];j++)if(faces[aoffset]==vertdeg[j+1][faces[coffset]]){flagvert=!1;break}for(flagvert&&(vertdeg[0][faces[coffset]]++,vertdeg[vertdeg[0][faces[coffset]]][faces[coffset]]=faces[aoffset]),flagvert=!0,j=0,jl=vertdeg[0][faces[coffset]];jl>j;j++)if(faces[boffset]==vertdeg[j+1][faces[coffset]]){flagvert=!1;break}flagvert&&(vertdeg[0][faces[coffset]]++,vertdeg[vertdeg[0][faces[coffset]]][faces[coffset]]=faces[boffset])}var wt=1,wt2=.5;for(k=0;numiter>k;k++){for(i=0,il=verts.length;il>i;i++)if(vertdeg[0][i]<3)tps[i].x=verts[i].x,tps[i].y=verts[i].y,tps[i].z=verts[i].z;else if(3==vertdeg[0][i]||4==vertdeg[0][i]){for(tps[i].x=0,tps[i].y=0,tps[i].z=0,j=0,jl=vertdeg[0][i];jl>j;j++)tps[i].x+=verts[vertdeg[j+1][i]].x,tps[i].y+=verts[vertdeg[j+1][i]].y,tps[i].z+=verts[vertdeg[j+1][i]].z;tps[i].x+=wt2*verts[i].x,tps[i].y+=wt2*verts[i].y,tps[i].z+=wt2*verts[i].z,tps[i].x/=wt2+vertdeg[0][i],tps[i].y/=wt2+vertdeg[0][i],tps[i].z/=wt2+vertdeg[0][i]}else{for(tps[i].x=0,tps[i].y=0,tps[i].z=0,j=0,jl=vertdeg[0][i];jl>j;j++)tps[i].x+=verts[vertdeg[j+1][i]].x,tps[i].y+=verts[vertdeg[j+1][i]].y,tps[i].z+=verts[vertdeg[j+1][i]].z;tps[i].x+=wt*verts[i].x,tps[i].y+=wt*verts[i].y,tps[i].z+=wt*verts[i].z,tps[i].x/=wt+vertdeg[0][i],tps[i].y/=wt+vertdeg[0][i],tps[i].z/=wt+vertdeg[0][i]}for(i=0,il=verts.length;il>i;i++)verts[i].x=tps[i].x,verts[i].y=tps[i].y,verts[i].z=tps[i].z}},edgeTable=new Uint32Array([0,0,0,0,0,0,0,2816,0,0,0,1792,0,3328,3584,3840,0,0,0,138,0,21,0,134,0,0,0,652,0,2067,3865,3600,0,0,0,42,0,0,0,294,0,0,21,28,0,3875,1049,3360,0,168,162,170,0,645,2475,2210,0,687,293,172,4010,3747,3497,3232,0,0,0,0,0,69,0,900,0,0,0,1792,138,131,1608,1920,0,81,0,2074,84,85,84,86,0,81,0,3676,330,1105,1881,1616,0,0,0,42,0,69,0,502,0,0,21,3580,138,2035,1273,1520,2816,104,2337,106,840,581,367,102,2816,3695,3429,3180,1898,1635,1385,1120,0,0,0,0,0,0,0,3910,0,0,69,588,42,2083,41,2880,0,0,0,1722,0,2293,4095,3830,0,255,757,764,2538,2291,3065,2800,0,0,81,338,0,3925,1119,3414,84,855,85,340,2130,2899,89,2384,1792,712,194,1162,4036,3781,3535,3270,708,719,197,204,3018,2755,2505,2240,0,0,0,0,168,420,168,1958,162,162,676,2988,170,163,680,928,3328,3096,3328,3642,52,53,1855,1590,2340,2111,2869,2620,298,51,825,560,3584,3584,3090,3482,1668,1941,1183,1430,146,2975,2069,2460,154,915,153,400,3840,3592,3329,3082,1796,1541,1295,1030,2818,2575,2309,2060,778,515,265,0]),triTable=[[],[],[],[],[],[],[],[11,9,8],[],[],[],[8,10,9],[],[10,8,11],[9,11,10],[8,10,9,8,11,10],[],[],[],[1,7,3],[],[4,2,0],[],[2,1,7],[],[],[],[2,7,3,2,9,7],[],[1,4,11,1,0,4],[3,8,0,11,9,4,11,10,9],[4,11,9,11,10,9],[],[],[],[5,3,1],[],[],[],[2,5,8,2,1,5],[],[],[2,4,0],[3,2,4],[],[0,9,1,8,10,5,8,11,10],[3,4,0,3,10,4],[5,8,10,8,11,10],[],[3,5,7],[7,1,5],[1,7,3,1,5,7],[],[9,2,0,9,7,2],[0,3,8,1,7,11,1,5,7],[11,1,7,1,5,7],[],[9,1,0,5,3,2,5,7,3],[8,2,5,8,0,2],[2,5,3,5,7,3],[3,9,1,3,8,9,7,11,10,7,10,5],[9,1,0,10,7,11,10,5,7],[3,8,0,7,10,5,7,11,10],[11,5,7,11,10,5],[],[],[],[],[],[0,6,2],[],[7,2,9,7,9,8],[],[],[],[8,10,9],[7,1,3],[7,1,0],[6,9,3,6,10,9],[7,10,8,10,9,8],[],[6,0,4],[],[11,1,4,11,3,1],[2,4,6],[2,0,4,2,4,6],[2,4,6],[1,4,2,4,6,2],[],[6,0,4],[],[2,11,3,6,9,4,6,10,9],[8,6,1,8,1,3],[10,0,6,0,4,6],[8,0,3,9,6,10,9,4,6],[10,4,6,10,9,4],[],[],[],[5,3,1],[],[0,6,2],[],[7,4,8,5,2,1,5,6,2],[],[],[2,4,0],[7,4,8,2,11,3,10,5,6],[7,1,3],[5,6,10,0,9,1,8,7,4],[5,6,10,7,0,3,7,4,0],[10,5,6,4,8,7],[9,11,8],[3,5,6],[0,5,11,0,11,8],[6,3,5,3,1,5],[3,9,6,3,8,9],[9,6,0,6,2,0],[0,3,8,2,5,6,2,1,5],[1,6,2,1,5,6],[9,11,8],[1,0,9,6,10,5,11,3,2],[6,10,5,2,8,0,2,11,8],[3,2,11,10,5,6],[10,5,6,9,3,8,9,1,3],[0,9,1,5,6,10],[8,0,3,10,5,6],[10,5,6],[],[],[],[],[],[],[],[1,10,2,9,11,6,9,8,11],[],[],[6,0,2],[3,6,9,3,2,6],[3,5,1],[0,5,1,0,11,5],[0,3,5],[6,9,11,9,8,11],[],[],[],[4,5,9,7,1,10,7,3,1],[],[11,6,7,2,4,5,2,0,4],[11,6,7,8,0,3,1,10,2,9,4,5],[6,7,11,1,10,2,9,4,5],[],[4,1,0,4,5,1,6,7,3,6,3,2],[9,4,5,0,6,7,0,2,6],[4,5,9,6,3,2,6,7,3],[6,7,11,5,3,8,5,1,3],[6,7,11,4,1,0,4,5,1],[4,5,9,3,8,0,11,6,7],[9,4,5,7,11,6],[],[],[0,6,4],[8,6,4,8,1,6],[],[0,10,2,0,9,10,4,8,11,4,11,6],[10,2,1,6,0,3,6,4,0],[10,2,1,11,4,8,11,6,4],[4,2,6],[1,0,9,2,4,8,2,6,4],[2,4,0,2,6,4],[8,2,4,2,6,4],[11,4,1,11,6,4],[0,9,1,4,11,6,4,8,11],[3,6,0,6,4,0],[8,6,4,8,11,6],[10,8,9],[6,3,9,6,7,3],[6,7,1],[10,7,1,7,3,1],[7,11,6,8,10,2,8,9,10],[11,6,7,10,0,9,10,2,0],[2,1,10,7,11,6,8,0,3],[1,10,2,6,7,11],[7,2,6,7,9,2],[1,0,9,3,6,7,3,2,6],[7,0,6,0,2,6],[2,7,3,2,6,7],[7,11,6,3,9,1,3,8,9],[9,1,0,11,6,7],[0,3,8,11,6,7],[11,6,7],[],[],[],[],[5,3,7],[8,5,2,8,7,5],[5,3,7],[1,10,2,5,8,7,5,9,8],[1,7,5],[1,7,5],[9,2,7,9,7,5],[11,3,2,8,5,9,8,7,5],[1,3,7,1,7,5],[0,7,1,7,5,1],[9,3,5,3,7,5],[9,7,5,9,8,7],[8,10,11],[3,4,10,3,10,11],[8,10,11],[5,9,4,1,11,3,1,10,11],[2,4,5],[5,2,4,2,0,4],[0,3,8,5,9,4,10,2,1],[2,1,10,9,4,5],[2,8,5,2,11,8],[3,2,11,1,4,5,1,0,4],[9,4,5,8,2,11,8,0,2],[11,3,2,9,4,5],[8,5,3,5,1,3],[5,0,4,5,1,0],[3,8,0,4,5,9],[9,4,5],[11,9,10],[11,9,10],[1,11,4,1,10,11],[8,7,4,11,1,10,11,3,1],[2,7,9,2,9,10],[4,8,7,0,10,2,0,9,10],[2,1,10,0,7,4,0,3,7],[10,2,1,8,7,4],[1,7,4],[3,2,11,4,8,7,9,1,0],[11,4,2,4,0,2],[2,11,3,7,4,8],[4,1,7,1,3,7],[1,0,9,8,7,4],[3,4,0,3,7,4],[8,7,4],[8,9,10,8,10,11],[3,9,11,9,10,11],[0,10,8,10,11,8],[10,3,1,10,11,3],[2,8,10,8,9,10],[9,2,0,9,10,2],[8,0,3,1,10,2],[10,2,1],[1,11,9,11,8,9],[11,3,2,0,9,1],[11,0,2,11,8,0],[11,3,2],[8,1,3,8,9,1],[9,1,0],[8,0,3],[]]';
$3Dmol.SurfaceWorker=window.URL.createObjectURL(new Blob([$3Dmol.workerString],{type:"text/javascript"}));$3Dmol.workerString=$3Dmol.workerString;$3Dmol.SurfaceWorker=$3Dmol.SurfaceWorker;
$(document).ready(function(){void 0!==$(".viewer_3Dmoljs")[0]&&($3Dmol.autoinit=!0);if($3Dmol.autoinit){$3Dmol.viewers={};var u=0;$(".viewer_3Dmoljs").each(function(){var q=$(this),C=null,A="function"===typeof window[q.data("callback")]?window[q.data("callback")]:null,w=null;q.data("pdb")?(C="http://www.pdb.org/pdb/files/"+q.data("pdb")+".pdb",w="pdb"):q.data("cid")?(w="sdf",C="http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/"+q.data("cid")+"/SDF?record_type=3d"):q.data("href")&&(C=q.data("href"));
var B=Number(q.data("backgroundcolor"))||0,g={line:{}};q.data("style")&&(g=$3Dmol.specStringToObject(q.data("style")));var a={};q.data("select")&&(a=$3Dmol.specStringToObject(q.data("select")));var c=[],h=[],m=[],b=q.data(),f=/style(.+)/,l=/surface(.*)/,d=/labelres(.*)/,e=[],p;for(p in b)b.hasOwnProperty(p)&&e.push(p);e.sort();for(var z=0;z<e.length;z++){p=e[z];var t=f.exec(p);if(t){var t="select"+t[1],t=$3Dmol.specStringToObject(b[t]),n=$3Dmol.specStringToObject(b[p]);c.push([t,n])}if(t=l.exec(p))t=
"select"+t[1],t=$3Dmol.specStringToObject(b[t]),n=$3Dmol.specStringToObject(b[p]),h.push([t,n]);if(t=d.exec(p))t="select"+t[1],t=$3Dmol.specStringToObject(b[t]),n=$3Dmol.specStringToObject(b[p]),m.push([t,n])}try{var s=$3Dmol.viewers[this.id||u++]=$3Dmol.createViewer(q,{defaultcolors:$3Dmol.rasmolElementColors,callback:function(c){c.setBackgroundColor(B)}})}catch(x){window.location="http://get.webgl.org"}if(C)(w=q.data("type")||q.data("datatype")||w)||(w=C.substr(C.lastIndexOf(".")+1)),$.get(C,function(b){s.addModel(b,
w);s.setStyle(a,g);for(b=0;b<c.length;b++){var d=c[b][0]||{},e=c[b][1]||{line:{}};s.setStyle(d,e)}for(b=0;b<h.length;b++)d=h[b][0]||{},e=h[b][1]||{},s.addSurface($3Dmol.SurfaceType.VDW,e,d,d);for(b=0;b<m.length;b++)d=m[b][0]||{},e=m[b][1]||{},s.addResLabels(d,e);A&&A(s);s.zoomTo();s.render()},"text");else{if(q.data("element"))for(C=$("#"+q.data("element")).val()||"",w=q.data("type")||q.data("datatype"),w||(console.log("Warning: No type specified for embedded viewer with moldata from "+q.data("element")+
"\n assuming type 'pdb'"),w="pdb"),s.addModel(C,w),s.setStyle(a,g),z=0;z<c.length;z++)s.setStyle(c[z][0]||{},c[z][1]||{line:{}});A&&A(s);s.zoomTo();s.render()}})}});
$3Dmol.CC={cache:{},color:function(u){if("undefined"!==typeof this.cache[u])return this.cache[u];u=this.getHex(u);var q=new $3Dmol.Color(u);return this.cache[u]=q},colorTab:{white:16777215,silver:12632256,gray:8421504,grey:8421504,black:0,red:16711680,maroon:8388608,yellow:16776960,orange:16737792,olive:8421376,lime:65280,green:32768,aqua:65535,cyan:65535,teal:32896,blue:255,navy:128,fuchsia:16711935,magenta:16711935,purple:8388736},getHex:function(u){if(parseInt(u))return parseInt(u);if("string"===
typeof u)return this.colorTab[u.trim().toLowerCase()]||0}};$3Dmol.CC=$3Dmol.CC;$3Dmol.CC.color=$3Dmol.CC.color;$3Dmol.getColorFromStyle=function(u,q){var C=u.color;"undefined"!=typeof q.color&&"spectrum"!=q.color&&(C=q.color);if("undefined"!=typeof q.colorscheme)if("undefined"!=typeof $3Dmol.elementColors[q.colorscheme]){var A=$3Dmol.elementColors[q.colorscheme];"undefined"!=typeof A[u.elem]&&(C=A[u.elem])}else"undefined"!=typeof q.colorscheme[u.elem]&&(C=q.colorscheme[u.elem]);return $3Dmol.CC.color(C)};
$3Dmol.elementColors=$3Dmol.elementColors||{};$3Dmol.elementColors.defaultColor=16716947;
$3Dmol.elementColors.Jmol={H:16777215,He:14286847,HE:14286847,Li:13402367,LI:13402367,B:16758197,C:9474192,N:3166456,O:16715021,F:9494608,Na:11230450,NA:11230450,Mg:9109248,MG:9109248,Al:12560038,AL:12560038,Si:1578E4,SI:1578E4,P:16744448,S:16777008,Cl:2093087,CL:2093087,Ca:4062976,CA:4062976,Ti:12567239,TI:12567239,Cr:9083335,CR:9083335,Mn:10255047,MN:10255047,Fe:14706227,FE:14706227,Ni:5296208,NI:5296208,Cu:13140019,CU:13140019,Zn:8224944,ZN:8224944,Br:10889513,BR:10889513,Ag:12632256,AG:12632256,
I:9699476,Ba:51456,BA:51456,Au:16765219,AU:16765219};
$3Dmol.elementColors.rasmol={H:16777215,He:16761035,HE:16761035,Li:11674146,LI:11674146,B:65280,C:13158600,N:9408511,O:15728640,F:14329120,Na:255,NA:255,Mg:2263842,MG:2263842,Al:8421520,AL:8421520,Si:14329120,SI:14329120,P:16753920,S:16762930,Cl:65280,CL:65280,Ca:8421520,CA:8421520,Ti:8421520,TI:8421520,Cr:8421520,CR:8421520,Mn:8421520,MN:8421520,Fe:16753920,FE:16753920,Ni:10824234,NI:10824234,Cu:10824234,CU:10824234,Zn:10824234,ZN:10824234,Br:10824234,BR:10824234,Ag:8421520,AG:8421520,I:10494192,
Ba:16753920,BA:16753920,Au:14329120,AU:14329120};$3Dmol.elementColors.defaultColors=$3Dmol.elementColors.rasmol;$3Dmol.elementColors.greenCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.greenCarbon.C=65280;$3Dmol.elementColors.cyanCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.cyanCarbon.C=65535;$3Dmol.elementColors.magentaCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.magentaCarbon.C=16711935;
$3Dmol.elementColors.yellowCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.yellowCarbon.C=16776960;$3Dmol.elementColors.whiteCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.whiteCarbon.C=16777215;$3Dmol.elementColors.orangeCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.orangeCarbon.C=16737792;$3Dmol.elementColors.purpleCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.purpleCarbon.C=8388736;
$3Dmol.elementColors.blueCarbon=$.extend({},$3Dmol.elementColors.defaultColors);$3Dmol.elementColors.blueCarbon.C=255;var $3Dmol=$3Dmol||{};
$3Dmol.drawCartoon=function(){var u=function(w,B){var g=[],a=w,a=[];a.push(w[0]);var c,h,m,b,f,l;c=1;for(h=w.length-1;c<h;c++)b=w[c],f=w[c+1],b.smoothen?a.push(new $3Dmol.Vector3((b.x+f.x)/2,(b.y+f.y)/2,(b.z+f.z)/2)):a.push(b);a.push(w[w.length-1]);c=-1;for(h=a.length;c<=h-3;c++){m=a[-1===c?0:c];b=a[c+1];f=a[c+2];l=a[c===h-3?h-1:c+3];m=(new $3Dmol.Vector3).subVectors(f,m).multiplyScalar(.5);l=(new $3Dmol.Vector3).subVectors(l,b).multiplyScalar(.5);for(var d=0;d<B;d++){var e=1/B*d,e=new $3Dmol.Vector3(b.x+
e*m.x+e*e*(-3*b.x+3*f.x-2*m.x-l.x)+e*e*e*(2*b.x-2*f.x+m.x+l.x),b.y+e*m.y+e*e*(-3*b.y+3*f.y-2*m.y-l.y)+e*e*e*(2*b.y-2*f.y+m.y+l.y),b.z+e*m.z+e*e*(-3*b.z+3*f.z-2*m.z-l.z)+e*e*e*(2*b.z-2*f.z+m.z+l.z)),p=Math.floor((g.length+2)/B);void 0!==w[p]&&void 0!==w[p].atom&&(e.atom=w[p].atom);g.push(e)}}g.push(a[a.length-1]);return g},q=function(w,B,g,a,c,h){if(!(2>B.length)){c=c||5;B=u(B,c);g=u(g,c);if(h){var m=new $3Dmol.Geometry(!0),b=[],f,l,d,e,p,z=[[0,2,-6,-8],[-4,-2,6,4],[7,-1,-5,3],[-3,5,1,-7]],t,n,s,x,
E,y,H,I,F,G;y=0;for(H=B.length;y<H;y++){s=$3Dmol.CC.color(a[Math.round((y-1)/c)]);b.push(l=B[y]);b.push(l);b.push(d=g[y]);b.push(d);y<H-1&&(t=B[y+1].clone().sub(B[y]),f=g[y].clone().sub(B[y]).cross(t).normalize().multiplyScalar(h));b.push(e=B[y].clone().add(f));b.push(e);b.push(p=g[y].clone().add(f));b.push(p);void 0!==l.atom&&(x=l.atom);G=m.updateGeoGroup(8);I=G.vertexArray;F=G.colorArray;var q=G.faceArray;t=G.vertices;n=3*t;I[n]=l.x;I[n+1]=l.y;I[n+2]=l.z;I[n+3]=l.x;I[n+4]=l.y;I[n+5]=l.z;I[n+6]=
d.x;I[n+7]=d.y;I[n+8]=d.z;I[n+9]=d.x;I[n+10]=d.y;I[n+11]=d.z;I[n+12]=e.x;I[n+13]=e.y;I[n+14]=e.z;I[n+15]=e.x;I[n+16]=e.y;I[n+17]=e.z;I[n+18]=p.x;I[n+19]=p.y;I[n+20]=p.z;I[n+21]=p.x;I[n+22]=p.y;I[n+23]=p.z;for(I=0;8>I;++I)F[n+3*I]=s.r,F[n+1+3*I]=s.g,F[n+2+3*I]=s.b;if(0<y)for(n=void 0!==E&&void 0!==x&&E.serial!==x.serial,I=0;4>I;I++)if(F=[t+z[I][0],t+z[I][1],t+z[I][2],t+z[I][3]],d=G.faceidx,q[d]=F[0],q[d+1]=F[1],q[d+2]=F[3],q[d+3]=F[1],q[d+4]=F[2],q[d+5]=F[3],G.faceidx+=6,x.clickable||E.clickable){p=
b[F[3]].clone();d=b[F[0]].clone();var A=b[F[2]].clone();e=b[F[1]].clone();p.atom=b[F[3]].atom||null;A.atom=b[F[2]].atom||null;d.atom=b[F[0]].atom||null;e.atom=b[F[1]].atom||null;if(n){var D=p.clone().add(d).multiplyScalar(.5),C=A.clone().add(e).multiplyScalar(.5),K=p.clone().add(e).multiplyScalar(.5);0===I%2?(E.clickable&&(F=new $3Dmol.Triangle(D,K,p),l=new $3Dmol.Triangle(C,A,K),p=new $3Dmol.Triangle(K,A,p),E.intersectionShape.triangle.push(F),E.intersectionShape.triangle.push(l),E.intersectionShape.triangle.push(p)),
x.clickable&&(F=new $3Dmol.Triangle(d,e,K),l=new $3Dmol.Triangle(e,C,K),p=new $3Dmol.Triangle(d,K,D),x.intersectionShape.triangle.push(F),x.intersectionShape.triangle.push(l),x.intersectionShape.triangle.push(p))):(x.clickable&&(F=new $3Dmol.Triangle(D,K,p),l=new $3Dmol.Triangle(C,A,K),p=new $3Dmol.Triangle(K,A,p),x.intersectionShape.triangle.push(F),x.intersectionShape.triangle.push(l),x.intersectionShape.triangle.push(p)),E.clickable&&(F=new $3Dmol.Triangle(d,e,K),l=new $3Dmol.Triangle(e,C,K),p=
new $3Dmol.Triangle(d,K,D),E.intersectionShape.triangle.push(F),E.intersectionShape.triangle.push(l),E.intersectionShape.triangle.push(p)))}else x.clickable&&(F=new $3Dmol.Triangle(d,e,p),l=new $3Dmol.Triangle(e,A,p),x.intersectionShape.triangle.push(F),x.intersectionShape.triangle.push(l))}G.vertices+=8;E=x}a=b.length-8;G=m.updateGeoGroup(8);I=G.vertexArray;F=G.colorArray;q=G.faceArray;t=G.vertices;n=3*t;d=G.faceidx;for(y=0;4>y;y++)b.push(b[2*y]),b.push(b[a+2*y]),c=b[2*y],g=b[a+2*y],I[n+6*y]=c.x,
I[n+1+6*y]=c.y,I[n+2+6*y]=c.z,I[n+3+6*y]=g.x,I[n+4+6*y]=g.y,I[n+5+6*y]=g.z,F[n+6*y]=s.r,F[n+1+6*y]=s.g,F[n+2+6*y]=s.b,F[n+3+6*y]=s.r,F[n+4+6*y]=s.g,F[n+5+6*y]=s.b;F=[t,t+2,t+6,t+4];l=[t+1,t+5,t+7,t+3];q[d]=F[0];q[d+1]=F[1];q[d+2]=F[3];q[d+3]=F[1];q[d+4]=F[2];q[d+5]=F[3];q[d+6]=l[0];q[d+7]=l[1];q[d+8]=l[3];q[d+9]=l[1];q[d+10]=l[2];q[d+11]=l[3];G.faceidx+=12;G.vertices+=8;m.initTypedArrays();m.setUpNormals();a=new $3Dmol.MeshLambertMaterial;a.vertexColors=$3Dmol.FaceColors;a.side=$3Dmol.DoubleSide;
a=new $3Dmol.Mesh(m,a)}else{m=B;b=g;y=c;s=new $3Dmol.Geometry(!0);c=0;for(t=m.length;c<t;c++){B=$3Dmol.CC.color(a[Math.round((c-1)/y)]);geoGroup=s.updateGeoGroup(2);z=geoGroup.vertexArray;h=geoGroup.colorArray;G=geoGroup.faceArray;q=geoGroup.vertices;g=3*q;z[g]=m[c].x;z[g+1]=m[c].y;z[g+2]=m[c].z;z[g+3]=b[c].x;z[g+4]=b[c].y;z[g+5]=b[c].z;for(z=0;6>z;++z)h[g+3*z]=B.r,h[g+1+3*z]=B.g,h[g+2+3*z]=B.b;0<c&&(q=[q,q+1,q-1,q-2],g=geoGroup.faceidx,G[g]=q[0],G[g+1]=q[1],G[g+2]=q[3],G[g+3]=q[1],G[g+4]=q[2],G[g+
5]=q[3],geoGroup.faceidx+=6);geoGroup.vertices+=2}s.initTypedArrays();s.setUpNormals();a=new $3Dmol.MeshLambertMaterial;a.vertexColors=$3Dmol.FaceColors;a.side=$3Dmol.DoubleSide;a=new $3Dmol.Mesh(s,a)}w.add(a)}},C=function(w,B,g,a,c){0!==B.length&&(c=void 0===c?5:c,a=new $3Dmol.Geometry,u(B,c),B=new $3Dmol.LineBasicMaterial({linewidth:g}),B.vertexColors=!0,B=new $3Dmol.Line(a,B),B.type=$3Dmol.LineStrip,w.add(B))},A=function(w,B,g,a,c,h,m){var b;c.sub(a);c.normalize();c.multiplyScalar("c"===m.ss?"P"===
m.atom?.8:.3:1.3);null!=h&&0>c.dot(h)&&c.negate();for(h=0;h<B;h++)b=-1+2*h/(B-1),b=new $3Dmol.Vector3(a.x+b*c.x,a.y+b*c.y,a.z+b*c.z),b.atom=m,g&&"s"===m.ss&&(b.smoothen=!0),w[h].push(b)};return function(w,B,g,a){var c,h,m;c=2;h=5;m=!1;var b="CA O P OP2 O5' O3' C5' C2' N1 N3".split(" "),f=[" DA"," DG"," A"," G"],l=[" DT"," DC"," U"," C"],d,e,p,z,t,n,s,x,E,y,H,I,F,G,u=null,S=[],D=[];for(s=0;s<c;s++)D[s]=[];for(s in B)if(p=B[s],void 0!==p&&-1!==$.inArray(p.atom,b)&&!p.hetflag)if(d=p.style.cartoon,
"trace"===d.style){if(u||(u=new $3Dmol.Geometry(!0)),"CA"===p.atom||"P"===p.atom)t=a?a.valueToHex(p.resi,a.range()):$3Dmol.getColorFromStyle(p,d).getHex(),S.push(t),n=$.isNumeric(d.thickness)?d.thickness:.4,e&&e.chain===p.chain&&e.resi+1===p.resi&&(t==z?(z=$3Dmol.CC.color(t),$3Dmol.GLDraw.drawCylinder(u,e,p,n,z,!0,!0)):(d=(new $3Dmol.Vector3).addVectors(e,p).multiplyScalar(.5),z=$3Dmol.CC.color(z),F=$3Dmol.CC.color(t),$3Dmol.GLDraw.drawCylinder(u,e,d,n,z,!0,!1),$3Dmol.GLDraw.drawCylinder(u,d,p,n,
F,!1,!0))),e=p,z=t}else{if("CA"===p.atom||"P"===p.atom||"O5'"===p.atom){if(void 0!=e&&(e.chain!=p.chain||e.resi!==p.resi&&e.resi+1!==p.resi||e.reschain!=p.reschain)){G&&(F=H?(new $3Dmol.Vector3).addVectors(e,H).multiplyScalar(.5):new $3Dmol.Vector3(e.x,e.y,e.z),$3Dmol.GLDraw.drawCylinder(g,F,G,.4,$3Dmol.CC.color(G.color),!1,!0),A(D,c,!m,H,I,y,e),S.push(t),G=null);for(s=0;!n&&s<c;s++)C(w,D[s],1,S,h);q(w,D[0],D[c-1],S,h,n);D=[];for(s=0;s<c;s++)D[s]=[];S=[]}if(void 0===e||e.resi!=p.resi)G&&(F=(new $3Dmol.Vector3).addVectors(e,
p).multiplyScalar(.5),$3Dmol.GLDraw.drawCylinder(g,F,G,.4,$3Dmol.CC.color(G.color),!1,!0),G=null),t=a?a.valueToHex(p.resi,a.range()):$3Dmol.getColorFromStyle(p,d).getHex(),S.push(t),n=$.isNumeric(d.thickness)?d.thickness:.4,e=p,x=new $3Dmol.Vector3(e.x,e.y,e.z),x.resi=e.resi,z=t;!0!==p.clickable||void 0!==p.intersectionShape&&void 0!==p.intersectionShape.triangle||(p.intersectionShape={sphere:null,cylinder:[],line:[],triangle:[]})}else if("O"===p.atom&&"CA"===e.atom||"OP2"===p.atom&&"P"===e.atom||
"C5'"===p.atom&&"O5'"===e.atom)E=new $3Dmol.Vector3(p.x,p.y,p.z),E.resi=p.resi,"OP2"===p.atom&&(I=new $3Dmol.Vector3(p.x,p.y,p.z));else if("O3'"===p.atom)H=new $3Dmol.Vector3(p.x,p.y,p.z);else if("N1"===p.atom&&-1!=$.inArray(p.resn,f)||"N3"===p.atom&&-1!=$.inArray(p.resn,l))G=new $3Dmol.Vector3(p.x,p.y,p.z),G.color=$3Dmol.getColorFromStyle(p,d).getHex();E&&x&&E.resi===x.resi&&(A(D,c,!m,x,E,y,e),y=E,E=x=null)}G&&(F=H?(new $3Dmol.Vector3).addVectors(e,H).multiplyScalar(.5):new $3Dmol.Vector3(e.x,e.y,
e.z),$3Dmol.GLDraw.drawCylinder(g,F,G,.4,$3Dmol.CC.color(G.color),!1,!0),A(D,c,!m,H,I,y,e),S.push(t));for(s=0;!n&&s<c;s++)C(w,D[s],1,S,h);q(w,D[0],D[c-1],S,h,n);u&&(B=new $3Dmol.MeshLambertMaterial,B.vertexColors=$3Dmol.FaceColors,B.side=$3Dmol.DoubleSide,u=new $3Dmol.Mesh(u,B),w.add(u))}}();$3Dmol=$3Dmol||{};
$3Dmol.GLDraw=function(){var u={},q=function(){var g=new $3Dmol.Vector3;return function(a){g.set(a[0],a[1],a[2]);var c=g.x,h=g.y,m=g.z,b=Math.sqrt(c*c+h*h);1E-4>b?(a=0,b=1):(a=-c/b,b=h/b);h=-a*c+b*h;c=Math.sqrt(h*h+m*m);1E-4>c?(m=0,h=1):(m/=c,h/=c);c=new Float32Array(9);c[0]=b;c[1]=a;c[2]=0;c[3]=-a*h;c[4]=b*h;c[5]=m;c[6]=a*m;c[7]=-b*m;c[8]=h;return c}}(),C=function(){var g=[],a=Math.pow(2,4),c,h=Math.pow(2,2),m=a/h,b;g[0]=new $3Dmol.Vector3(-1,0,0);g[m]=new $3Dmol.Vector3(0,0,1);g[2*m]=new $3Dmol.Vector3(1,
0,0);g[3*m]=new $3Dmol.Vector3(0,0,-1);for(c=3;4>=c;c++){h=Math.pow(2,c-1);m=a/h;for(b=0;b<h-1;b++)g[m/2+b*m]=g[b*m].clone().add(g[(b+1)*m]).normalize();b=h-1;g[m/2+b*m]=g[b*m].clone().add(g[0]).normalize()}return g}(),A={cache:{},getVerticesForRadius:function(g){if(void 0!==this.cache[g])return this.cache[g];new $3Dmol.Vector3(0,1,0);for(var a=C.length,c=[],h=[],m,b=0;b<a;b++)c.push(C[b].clone().multiplyScalar(g)),c.push(C[b].clone().multiplyScalar(g)),m=C[b].clone().normalize(),h.push(m),h.push(m);
var b=[],f=2*Math.PI,l=Math.PI,d,e,p=!1,z=!1;for(e=0;10>=e;e++){var p=0===e||10===e?!0:!1,z=5===e?!0:!1,t=[],n=[];for(d=0;d<=a;d++)if(z){var s=d<a?2*d:0;n.push(s+1);t.push(s)}else{m=d/a;var x=e/10;p&&0!==d?p&&t.push(c.length-1):d<a?(s=new $3Dmol.Vector3,s.x=-g*Math.cos(0+m*f)*Math.sin(0+x*l),s.y=g*Math.cos(0+x*l),s.z=g*Math.sin(0+m*f)*Math.sin(0+x*l),1E-5>Math.abs(s.x)&&(s.x=0),1E-5>Math.abs(s.y)&&(s.y=0),1E-5>Math.abs(s.z)&&(s.z=0),m=new $3Dmol.Vector3(s.x,s.y,s.z),m.normalize(),c.push(s),h.push(m),
t.push(c.length-1)):t.push(c.length-a)}z&&b.push(n);b.push(t)}a={vertices:c,normals:h,verticesRows:b,w:a,h:10};return this.cache[g]=a}},w=0;u.drawCylinder=function(g,a,c,h,m,b,f){if(a&&c){w++;var l=b||f;m=m||{r:0,g:0,b:0};var d=[c.x,c.y,c.z];d[0]-=a.x;d[1]-=a.y;d[2]-=a.z;var d=q(d),e=A.getVerticesForRadius(h);h=e.w;var p=e.h,z=l?p*h+2:2*h;g=g.updateGeoGroup(z);var t=e.vertices,n=e.normals,e=e.verticesRows,s=e[p/2],x=e[p/2+1],E=g.vertices,y,H,I,B,G,u,C=g.vertexArray,D=g.normalArray,J=g.colorArray,
K=g.faceArray;for(I=0;I<h;++I)H=2*I,B=d[0]*t[H].x+d[3]*t[H].y+d[6]*t[H].z,G=d[1]*t[H].x+d[4]*t[H].y+d[7]*t[H].z,u=d[5]*t[H].y+d[8]*t[H].z,y=3*(E+H),H=g.faceidx,C[y]=B+a.x,C[y+1]=G+a.y,C[y+2]=u+a.z,C[y+3]=B+c.x,C[y+4]=G+c.y,C[y+5]=u+c.z,D[y]=B,D[y+3]=B,D[y+1]=G,D[y+4]=G,D[y+2]=u,D[y+5]=u,J[y]=m.r,J[y+3]=m.r,J[y+1]=m.g,J[y+4]=m.g,J[y+2]=m.b,J[y+5]=m.b,K[H]=x[I]+E,K[H+1]=x[I+1]+E,K[H+2]=s[I]+E,K[H+3]=s[I]+E,K[H+4]=x[I+1]+E,K[H+5]=s[I+1]+E,g.faceidx+=6;if(l){b=b?p+1:p/2+1;var ca,V,da,T,Z,N,U,P,Q,W,R,
X,L;for(G=f?0:p/2;G<b;G++)if(G!==p/2){var ea=G<=p/2?c:a;for(B=0;B<h;B++)H=g.faceidx,f=e[G][B+1],I=3*(f+E),l=e[G][B],u=3*(l+E),s=e[G+1][B],y=3*(s+E),x=e[G+1][B+1],L=3*(x+E),ca=d[0]*t[f].x+d[3]*t[f].y+d[6]*t[f].z,V=d[0]*t[l].x+d[3]*t[l].y+d[6]*t[l].z,da=d[0]*t[s].x+d[3]*t[s].y+d[6]*t[s].z,T=d[0]*t[x].x+d[3]*t[x].y+d[6]*t[x].z,Z=d[1]*t[f].x+d[4]*t[f].y+d[7]*t[f].z,N=d[1]*t[l].x+d[4]*t[l].y+d[7]*t[l].z,U=d[1]*t[s].x+d[4]*t[s].y+d[7]*t[s].z,P=d[1]*t[x].x+d[4]*t[x].y+d[7]*t[x].z,Q=d[5]*t[f].y+d[8]*t[f].z,
W=d[5]*t[l].y+d[8]*t[l].z,R=d[5]*t[s].y+d[8]*t[s].z,X=d[5]*t[x].y+d[8]*t[x].z,C[I]=ca+ea.x,C[u]=V+ea.x,C[y]=da+ea.x,C[L]=T+ea.x,C[I+1]=Z+ea.y,C[u+1]=N+ea.y,C[y+1]=U+ea.y,C[L+1]=P+ea.y,C[I+2]=Q+ea.z,C[u+2]=W+ea.z,C[y+2]=R+ea.z,C[L+2]=X+ea.z,J[I]=m.r,J[u]=m.r,J[y]=m.r,J[L]=m.r,J[I+1]=m.g,J[u+1]=m.g,J[y+1]=m.g,J[L+1]=m.g,J[I+2]=m.b,J[u+2]=m.b,J[y+2]=m.b,J[L+2]=m.b,ca=d[0]*n[f].x+d[3]*n[f].y+d[6]*n[f].z,V=d[0]*n[l].x+d[3]*n[l].y+d[6]*n[l].z,da=d[0]*n[s].x+d[3]*n[s].y+d[6]*n[s].z,T=d[0]*n[x].x+d[3]*n[x].y+
d[6]*n[x].z,Z=d[1]*n[f].x+d[4]*n[f].y+d[7]*n[f].z,N=d[1]*n[l].x+d[4]*n[l].y+d[7]*n[l].z,U=d[1]*n[s].x+d[4]*n[s].y+d[7]*n[s].z,P=d[1]*n[x].x+d[4]*n[x].y+d[7]*n[x].z,Q=d[5]*n[f].y+d[8]*n[f].z,W=d[5]*n[l].y+d[8]*n[l].z,R=d[5]*n[s].y+d[8]*n[s].z,X=d[5]*n[x].y+d[8]*n[x].z,0===G?(D[I]=ca,D[y]=da,D[L]=T,D[I+1]=Z,D[y+1]=U,D[L+1]=P,D[I+2]=Q,D[y+2]=R,D[L+2]=X,K[H]=f+E,K[H+1]=s+E,K[H+2]=x+E,g.faceidx+=3):G===b-1?(D[I]=ca,D[u]=V,D[y]=da,D[I+1]=Z,D[u+1]=N,D[y+1]=U,D[I+2]=Q,D[u+2]=W,D[y+2]=R,K[H]=f+E,K[H+1]=l+
E,K[H+2]=s+E,g.faceidx+=3):(D[I]=ca,D[u]=V,D[L]=T,D[I+1]=Z,D[u+1]=N,D[L+1]=P,D[I+2]=Q,D[u+2]=W,D[L+2]=X,D[u]=V,D[y]=da,D[L]=T,D[u+1]=N,D[y+1]=U,D[L+1]=P,D[u+2]=W,D[y+2]=R,D[L+2]=X,K[H]=f+E,K[H+1]=l+E,K[H+2]=x+E,K[H+3]=l+E,K[H+4]=s+E,K[H+5]=x+E,g.faceidx+=6)}}g.vertices+=z}};u.drawCone=function(g,a,c,h,m){if(a&&c){m=m||{r:0,g:0,b:0};var b=[c.x,c.y,c.z];b.x-=a.x;b.y-=a.y;b.z-=a.z;var f=q(b),l=C.length;g=g.updateGeoGroup(l+2);var d=g.vertices,e,p,z,t=g.vertexArray,n=g.normalArray,s=g.colorArray,x=g.faceArray;
e=3*d;b=(new $3Dmol.Vector3(b[0],b[1],b[2])).normalize();t[e]=a.x;t[e+1]=a.y;t[e+2]=a.z;n[e]=-b.x;n[e+1]=-b.y;n[e+2]=-b.z;s[e]=m.r;s[e+1]=m.g;s[e+2]=m.b;t[e+3]=c.x;t[e+4]=c.y;t[e+5]=c.z;n[e+3]=b.x;n[e+4]=b.y;n[e+5]=b.z;s[e+3]=m.r;s[e+4]=m.g;s[e+5]=m.b;e+=6;for(c=0;c<l;++c)z=C[c].clone(),z.multiplyScalar(h),b=f[0]*z.x+f[3]*z.y+f[6]*z.z,p=f[1]*z.x+f[4]*z.y+f[7]*z.z,z=f[5]*z.y+f[8]*z.z,t[e]=b+a.x,t[e+1]=p+a.y,t[e+2]=z+a.z,n[e]=b,n[e+1]=p,n[e+2]=z,s[e]=m.r,s[e+1]=m.g,s[e+2]=m.b,e+=3;g.vertices+=l+2;a=
g.faceidx;for(c=0;c<l;c++)h=d+2+c,m=d+2+(c+1)%l,x[a]=h,x[a+1]=m,x[a+2]=d,a+=3,x[a]=h,x[a+1]=m,x[a+2]=d+1,a+=3;g.faceidx+=6*l}};var B={cache:{},getVerticesForRadius:function(g){if("undefined"!==typeof this.cache[g])return this.cache[g];var a={vertices:[],verticesRows:[],normals:[]},c=16,h=10;1>g&&(c=10,h=8);var m=2*Math.PI,b=Math.PI,f,l;for(l=0;l<=h;l++){var d=[];for(f=0;f<=c;f++){var e=f/c,p=l/h,z={};z.x=-g*Math.cos(0+e*m)*Math.sin(0+p*b);z.y=g*Math.cos(0+p*b);z.z=g*Math.sin(0+e*m)*Math.sin(0+p*b);
e=new $3Dmol.Vector3(z.x,z.y,z.z);e.normalize();a.vertices.push(z);a.normals.push(e);d.push(a.vertices.length-1)}a.verticesRows.push(d)}return this.cache[g]=a}};u.drawSphere=function(g,a,c,h){new $3Dmol.Vector3(a.x,a.y,a.z);var m=B.getVerticesForRadius(c),b=m.vertices,f=m.normals;g=g.updateGeoGroup(b.length);for(var l=g.vertices,d=g.vertexArray,e=g.colorArray,p=g.faceArray,z=g.lineArray,t=g.normalArray,n=0,s=b.length;n<s;++n){var x=3*(l+n),E=b[n];d[x]=E.x+a.x;d[x+1]=E.y+a.y;d[x+2]=E.z+a.z;e[x]=h.r;
e[x+1]=h.g;e[x+2]=h.b}g.vertices+=b.length;m=m.verticesRows;d=m.length-1;for(h=0;h<d;h++)for(e=m[h].length-1,a=0;a<e;a++){var n=g.faceidx,s=g.lineidx,x=m[h][a+1]+l,E=3*x,y=m[h][a]+l,H=3*y,w=m[h+1][a]+l,q=3*w,u=m[h+1][a+1]+l,A=3*u,C=f[x-l],D=f[y-l],J=f[w-l],K=f[u-l];Math.abs(b[x-l].y)===c?(t[E]=C.x,t[q]=J.x,t[A]=K.x,t[E+1]=C.y,t[q+1]=J.y,t[A+1]=K.y,t[E+2]=C.z,t[q+2]=J.z,t[A+2]=K.z,p[n]=x,p[n+1]=w,p[n+2]=u,z[s]=x,z[s+1]=w,z[s+2]=x,z[s+3]=u,z[s+4]=w,z[s+5]=u,g.faceidx+=3,g.lineidx+=6):Math.abs(b[w-l].y)===
c?(t[E]=C.x,t[H]=D.x,t[q]=J.x,t[E+1]=C.y,t[H+1]=D.y,t[q+1]=J.y,t[E+2]=C.z,t[H+2]=D.z,t[q+2]=J.z,p[n]=x,p[n+1]=y,p[n+2]=w,z[s]=x,z[s+1]=y,z[s+2]=x,z[s+3]=w,z[s+4]=y,z[s+5]=w,g.faceidx+=3,g.lineidx+=6):(t[E]=C.x,t[H]=D.x,t[A]=K.x,t[E+1]=C.y,t[H+1]=D.y,t[A+1]=K.y,t[E+2]=C.z,t[H+2]=D.z,t[A+2]=K.z,t[H]=D.x,t[q]=J.x,t[A]=K.x,t[H+1]=D.y,t[q+1]=J.y,t[A+1]=K.y,t[H+2]=D.z,t[q+2]=J.z,t[A+2]=K.z,p[n]=x,p[n+1]=y,p[n+2]=u,p[n+3]=y,p[n+4]=w,p[n+5]=u,z[s]=x,z[s+1]=y,z[s+2]=x,z[s+3]=u,z[s+4]=y,z[s+5]=w,z[s+6]=w,z[s+
7]=u,g.faceidx+=6,g.lineidx+=8)}};return u}();$3Dmol=$3Dmol||{};
$3Dmol.GLModel=function(){var u={line:{}},q={H:1.2,Li:1.82,LI:1.82,Na:2.27,NA:2.27,K:2.75,C:1.7,N:1.55,O:1.52,F:1.47,P:1.8,S:1.8,CL:1.75,Cl:1.75,BR:1.85,Br:1.85,SE:1.9,Se:1.9,ZN:1.39,Zn:1.39,CU:1.4,Cu:1.4,NI:1.63,Ni:1.63};return function(C,A){var w=[],B=null,g=null,a=null,c=[],h=new $3Dmol.Matrix4;h.identity();var m,b,f=$3Dmol.elementColors.defaultColor,l=A?A:$3Dmol.elementColors.defaultColors,d=function(b,c){var d=1.5;"undefined"!=typeof c.radius?d=c.radius:q[b.elem]&&(d=q[b.elem]);"undefined"!=
typeof c.scale&&(d*=c.scale);return d},e=function(b,c,d){var a=new $3Dmol.Vector3(b.x,b.y,b.z),m=(new $3Dmol.Vector3(c.x,c.y,c.z)).clone(),e=null;m.sub(a);1===b.bonds.length?1===c.bonds.length?(e=m.clone(),1E-4<Math.abs(e.x)?e.y+=1:e.x+=1):(d=(d+1)%c.bonds.length,b=c.bonds[d],b=w[b],b=new $3Dmol.Vector3(b.x,b.y,b.z),b=b.clone(),b.sub(a),e=b.clone(),e.cross(m)):(d=(d+1)%b.bonds.length,b=b.bonds[d],b=w[b],b=new $3Dmol.Vector3(b.x,b.y,b.z),b=b.clone(),b.sub(a),e=b.clone(),e.cross(m));.01>e.lengthSq()&&
(e=m.clone(),1E-4<Math.abs(e.x)?e.y+=1:e.x+=1);e.cross(m);e.normalize();return e},p=function(b,c,d,a,m,e){b[d]=a.x;b[d+1]=a.y;b[d+2]=a.z;c[d]=e.r;c[d+1]=e.g;c[d+2]=e.b;b[d+3]=m.x;b[d+4]=m.y;b[d+5]=m.z;c[d+3]=e.r;c[d+4]=e.g;c[d+5]=e.b};this.getSymmetries=function(){return 0<c.length?c:[h]};this.setSymmetries=function(b){c="undefined"==typeof b?[h]:b};this.getID=function(){return C};this.addMolData=function(d,a,e){e=e||{};a=a||"";if(d)for("undefined"==typeof $3Dmol.Parsers[a]&&(a=a.split(".").pop(),
typeof("undefined"==$3Dmol.Parsers[a])&&(console.log("Unknown format: "+a),a=d.match(/^@<TRIPOS>MOLECULE/)?"mol2":d.match(/^HETATM/)||d.match(/^ATOM/)?"pdb":d.match(/^.*\n.*\n.\s*(\d+)\s+(\d+)/)?"sdf":"xyz",console.log("Best guess: "+a))),(0,$3Dmol.Parsers[a])(w,d,e,c),m=!e.doAssembly,b=!e.duplicateAssemblyAtoms,d=w,a=0;a<d.length;a++)if(e=d[a])e.style=e.style||u,e.color=e.color||l[e.elem]||f,e.model=C,e.clickable&&(e.intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]})};this.atomIsSelected=
function(b,c){if("undefined"===typeof c)return!0;var d=!!c.invert,a=!0,e;for(e in c)if("predicate"===e){if(!c.predicate(b)){a=!1;break}}else if(c.hasOwnProperty(e)&&"props"!=e&&"invert"!=e&&"model"!=e&&"byres"!=e&&"expand"!=e&&"within"!=e){if("undefined"===typeof b[e]){a=!1;break}var m=!1;if("bonds"===e){if(m=c[e],m!=b.bonds.length){a=!1;break}}else if($.isArray(c[e])){for(var f=c[e],l=0;l<f.length;l++)if(b[e]==f[l]){m=!0;break}if(!m){a=!1;break}}else if(m=c[e],b[e]!=m){a=!1;break}}return d?!a:a};
this.selectedAtoms=function(b,c){var d=[];c||(c=w);for(var a=c.length,e=0;e<a;e++){var m=c[e];m&&this.atomIsSelected(m,b)&&d.push(m)}if(b.hasOwnProperty("expand")){for(var m=b.expand,e=$3Dmol.getExtent(d),a=[[],[],[]],f=0;3>f;f++)a[0][f]=e[0][f]-m,a[1][f]=e[1][f]+m,a[2][f]=e[2][f];m=[];for(f=0;f<w.length;f++){var l=w[f].x,g=w[f].y,h=w[f].z;(l>=a[0][0]&&l<e[0][0]||l>e[1][0]&&l<=a[1][0])&&(g>=a[0][1]&&g<e[0][1]||g>e[1][1]&&g<=a[1][1])&&(h>=a[0][2]&&h<e[0][2]||h>e[1][2]&&h<=a[1][2])&&m.push(w[f])}g=
d.length;for(e=0;e<m.length;e++)for(a=0;a<g;a++)f=z(m[e],d[a]),l=Math.pow(b.expand,2),f<l&&0<f&&d.push(m[e])}if(b.hasOwnProperty("within")&&b.within.hasOwnProperty("sel")&&b.within.hasOwnProperty("distance")){m=this.selectedAtoms(b.within.sel,w);g=[];for(e=0;e<m.length;e++)for(a=0;a<d.length;a++)f=z(m[e],d[a]),l=Math.pow(b.within.distance,2),f<l&&0<f&&g.push(d[a]);d=g}if(b.hasOwnProperty("byres"))for(f={},l=[],g=[],e=0;e<d.length;e++){var m=d[e],h=m.chain,p=m.resi;void 0===f[h]&&(f[h]={});if(m.hasOwnProperty("resi")&&
void 0===f[h][p])for(f[h][p]=!0,g.push(m);0<g.length;)if(m=g.pop(),h=m.chain,p=m.resi,void 0===l[m.index])for(l[m.index]=!0,a=0;a<m.bonds.length;a++){var B=w[m.bonds[a]];void 0===l[B.index]&&B.hasOwnProperty("resi")&&B.chain==h&&B.resi==p&&(g.push(B),d.push(B))}}return d};var z=function(b,c){var d=c.y-b.y,a=c.z-b.z;return Math.pow(c.x-b.x,2)+Math.pow(d,2)+Math.pow(a,2)};this.addAtoms=function(b){B=null;var c=w.length,d=[],a;for(a=0;a<b.length;a++)d[b[a].index]=c+a;for(a=0;a<b.length;a++){var c=b[a],
e=d[c.index],m=$.extend(!1,{},c);m.index=e;m.bonds=[];m.bondOrder=[];for(e=0;e<c.bonds.length;e++){var f=d[c.bonds[e]];"undefined"!=typeof f&&(m.bonds.push(f),m.bondOrder.push(c.bondOrder[e]))}w.push(m)}};this.removeAtoms=function(b){B=null;var c=[],d;for(d=0;d<b.length;d++)c[b[d].index]=!0;b=[];for(d=0;d<w.length;d++){var a=w[d];c[a.index]||b.push(a)}w=[];this.addAtoms(b)};this.setStyle=function(b,c,d){c=$.extend(!0,{},c);var a=!1;b=this.selectedAtoms(b,w);for(var e=0;e<w.length;e++)w[e]&&(w[e].capDrawn=
!1);for(e=0;e<b.length;e++){a=!0;"undefined"!=typeof c.clickable&&(b[e].clickable=c.clickable);"undefined"!=typeof c.callback&&(b[e].callback=c.callback);b[e].clickable&&(b[e].intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]});d||(b[e].style={});for(var m in c)c.hasOwnProperty(m)&&(b[e].style[m]=c[m])}a&&(B=null)};this.setColorByElement=function(b,c){var d;if(d=null!==B)d=a,d=c&&d?JSON.stringify(c)==JSON.stringify(d):c==d;if(!d){a=c;var e=this.selectedAtoms(b,e);0<e.length&&(B=null);for(d=
0;d<e.length;d++){var m=e[d];"undefined"!==typeof c[m.elem]&&(m.color=c[m.elem])}}};this.setColorByProperty=function(b,c,d){var e=this.selectedAtoms(b,e);a=null;0<e.length&&(B=null);b=Number.POSITIVE_INFINITY;var m=Number.NEGATIVE_INFINITY,f,l;for(f=0;f<e.length;f++)l=e[f],l.properties&&void 0!==typeof l.properties[c]&&(l=parseFloat(l.properties[c]),l<b&&(b=l),l>m&&(m=l));for(f=0;f<e.length;f++)if(l=e[f],l.properties&&void 0!==typeof l.properties[c]){var g=d.valueToHex(parseFloat(l.properties[c]),
[b,m]);l.color=g}};this.globj=function(a){if(null===B){var f=w,l=new $3Dmol.Object3D,h=[],z={},y={},q=new $3Dmol.Geometry(!0),u=new $3Dmol.Geometry(!0),A=new $3Dmol.Geometry(!0),C=new $3Dmol.Geometry(!0),M,S,D=[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY];M=0;for(S=f.length;M<S;M++){var J=f[M];if(J&&J.style){J.clickable&&void 0===J.intersectionShape&&(J.intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]});var K=J,ca=q;if(K.style.sphere){var V=K.style.sphere;if(!V.hidden){var da=$3Dmol.getColorFromStyle(K,
V),T=d(K,V);if(!0===K.clickable&&void 0!==K.intersectionShape){var Z=new $3Dmol.Vector3(K.x,K.y,K.z);K.intersectionShape.sphere.push(new $3Dmol.Sphere(Z,T))}$3Dmol.GLDraw.drawSphere(ca,K,T,da)}}var N=J,U=u;if(N.style.spherei){var P=N.style.spherei;if(!P.hidden){for(var Q=d(N,P),W=$3Dmol.getColorFromStyle(N,P),R=U.updateGeoGroup(4),X=R.vertices,L=3*X,ea=R.vertexArray,Ma=R.colorArray,ra=0;4>ra;ra++)ea[L+3*ra]=N.x,ea[L+3*ra+1]=N.y,ea[L+3*ra+2]=N.z;for(var ta=R.normalArray,Ma=R.colorArray,ra=0;4>ra;ra++)Ma[L+
3*ra]=W.r,Ma[L+3*ra+1]=W.g,Ma[L+3*ra+2]=W.b;ta[L+0]=-Q;ta[L+1]=-Q;ta[L+2]=0;ta[L+3]=-Q;ta[L+4]=Q;ta[L+5]=0;ta[L+6]=Q;ta[L+7]=Q;ta[L+8]=0;ta[L+9]=Q;ta[L+10]=-Q;ta[L+11]=0;R.vertices+=4;var Pa=R.faceArray,Qa=R.faceidx;Pa[Qa+0]=X;Pa[Qa+1]=X+1;Pa[Qa+2]=X+2;Pa[Qa+3]=X+2;Pa[Qa+4]=X+3;Pa[Qa+5]=X;R.faceidx+=6}}var ua=J,hb=y;if(ua.style.cross){var cb=ua.style.cross;if(!cb.hidden){var ib=cb.linewidth||1;hb[ib]||(hb[ib]=new $3Dmol.Geometry);var db=hb[ib].updateGeoGroup(6),Ra=d(ua,cb),Sa=[[Ra,0,0],[-Ra,0,0],
[0,Ra,0],[0,-Ra,0],[0,0,Ra],[0,0,-Ra]],rb=ua.clickable;rb&&void 0===ua.intersectionShape&&(ua.intersectionShape={sphere:[],cylinder:[],line:[]});for(var jb=$3Dmol.getColorFromStyle(ua,cb),kb=db.vertexArray,lb=db.colorArray,Ia=0;6>Ia;Ia++){var Ta=3*db.vertices;db.vertices++;kb[Ta]=ua.x+Sa[Ia][0];kb[Ta+1]=ua.y+Sa[Ia][1];kb[Ta+2]=ua.z+Sa[Ia][2];lb[Ta]=jb.r;lb[Ta+1]=jb.g;lb[Ta+2]=jb.b;if(rb){var Ua=new $3Dmol.Vector3(Sa[Ia][0],Sa[Ia][1],Sa[Ia][2]);Ua.multiplyScalar(.1);Ua.set(Ua.x+ua.x,Ua.y+ua.y,Ua.z+
ua.z);ua.intersectionShape.line.push(Ua)}}}}var ba=J,zb=f,mb=z;if(ba.style.line){var sb=ba.style.line;if(!sb.hidden){var nb=sb.linewidth||1;mb[nb]||(mb[nb]=new $3Dmol.Geometry);for(var sa=mb[nb].updateGeoGroup(2*ba.bonds.length),ga=sa.vertexArray,ha=sa.colorArray,Da=0;Da<ba.bonds.length;Da++){var ya=zb[ba.bonds[Da]];if(ya.style.line&&!(ba.serial>=ya.serial)){var za=new $3Dmol.Vector3(ba.x,ba.y,ba.z),Ja=new $3Dmol.Vector3(ya.x,ya.y,ya.z),Va=za.clone().add(Ja).multiplyScalar(.5),tb=!1;ba.clickable&&
(void 0===ba.intersectionShape&&(ba.intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]}),ba.intersectionShape.line.push(za),ba.intersectionShape.line.push(Ja));ya.clickable&&(void 0===ya.intersectionShape&&(ya.intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]}),ya.intersectionShape.line.push(Ja),ya.intersectionShape.line.push(za));var oa=$3Dmol.getColorFromStyle(ba,ba.style.line),Ea=$3Dmol.getColorFromStyle(ya,ya.style.line);if(ba.bondStyles&&ba.bondStyles[Da]){var Ka=ba.bondStyles[Da];
if(!Ka.iswire)continue;Ka.radius&&(bondR=Ka.radius);Ka.singleBond&&(tb=!0);"undefined"!=typeof Ka.color1&&(oa=$3Dmol.CC.color(Ka.color1));"undefined"!=typeof Ka.color2&&(Ea=$3Dmol.CC.color(Ka.color2))}var ia=3*sa.vertices;if(1<ba.bondOrder[Da]&&4>ba.bondOrder[Da]&&!tb){var Wa=e(ba,ya,Da),Ca=Ja.clone();Ca.sub(za);if(2==ba.bondOrder[Da])if(Wa.multiplyScalar(.1),p1a=za.clone(),p1a.add(Wa),p1b=za.clone(),p1b.sub(Wa),p2a=p1a.clone(),p2a.add(Ca),p2b=p1b.clone(),p2b.add(Ca),oa==Ea)sa.vertices+=4,p(ga,ha,
ia,p1a,p2a,oa),p(ga,ha,ia+6,p1b,p2b,oa);else{sa.vertices+=8;Ca.multiplyScalar(.5);var Na=p1a.clone();Na.add(Ca);var Oa=p1b.clone();Oa.add(Ca);p(ga,ha,ia,p1a,Na,oa);p(ga,ha,ia+6,Na,p2a,Ea);p(ga,ha,ia+12,p1b,Oa,oa);p(ga,ha,ia+18,Oa,p2b,Ea)}else 3==ba.bondOrder[Da]&&(Wa.multiplyScalar(.1),p1a=za.clone(),p1a.add(Wa),p1b=za.clone(),p1b.sub(Wa),p2a=p1a.clone(),p2a.add(Ca),p2b=p1b.clone(),p2b.add(Ca),oa==Ea?(sa.vertices+=6,p(ga,ha,ia,za,Ja,oa),p(ga,ha,ia+6,p1a,p2a,oa),p(ga,ha,ia+12,p1b,p2b,oa)):(sa.vertices+=
12,Ca.multiplyScalar(.5),Na=p1a.clone(),Na.add(Ca),Oa=p1b.clone(),Oa.add(Ca),p(ga,ha,ia,za,Va,oa),p(ga,ha,ia+6,Va,Ja,Ea),p(ga,ha,ia+12,p1a,Na,oa),p(ga,ha,ia+18,Na,p2a,Ea),p(ga,ha,ia+24,p1b,Oa,oa),p(ga,ha,ia+30,Oa,p2b,Ea)))}else oa==Ea?(sa.vertices+=2,p(ga,ha,ia,za,Ja,oa)):(sa.vertices+=4,p(ga,ha,ia,za,Va,oa),p(ga,ha,ia+6,Va,Ja,Ea))}}}}var O=J,Ab=f,fa=A;if(O.style.stick){var eb=O.style.stick;if(!eb.hidden){var Ya=eb.radius||.25,ja=Ya,ub=eb.singleBonds||!1,Za=!1,$a=!1,ma=$3Dmol.getColorFromStyle(O,
eb),ka=void 0,Aa=void 0;!O.capDrawn&&4>O.bonds.length&&(Za=!0);for(var na=0;na<O.bonds.length;na++){var aa=Ab[O.bonds[na]];if(O.serial<aa.serial){var vb=aa.style;if(vb.stick){var Fa=$3Dmol.getColorFromStyle(aa,vb.stick),ja=Ya,ab=ub;if(O.bondStyles&&O.bondStyles[na]){var Ba=O.bondStyles[na];if(Ba.iswire)continue;Ba.radius&&(ja=Ba.radius);Ba.singleBond&&(ab=!0);"undefined"!=typeof Ba.color1&&(ma=$3Dmol.CC.color(Ba.color1));"undefined"!=typeof Ba.color2&&(Fa=$3Dmol.CC.color(Ba.color2))}var la=new $3Dmol.Vector3(O.x,
O.y,O.z),va=new $3Dmol.Vector3(aa.x,aa.y,aa.z);if(1===O.bondOrder[na]||ab){if(!aa.capDrawn&&4>aa.bonds.length&&($a=!0),ma!=Fa?(ka=(new $3Dmol.Vector3).addVectors(la,va).multiplyScalar(.5),$3Dmol.GLDraw.drawCylinder(fa,la,ka,ja,ma,Za,!1),$3Dmol.GLDraw.drawCylinder(fa,ka,va,ja,Fa,!1,$a)):$3Dmol.GLDraw.drawCylinder(fa,la,va,ja,ma,Za,$a),O.clickable||aa.clickable){ka=(new $3Dmol.Vector3).addVectors(la,va).multiplyScalar(.5);if(O.clickable){var Bb=new $3Dmol.Cylinder(la,ka,ja),La=new $3Dmol.Sphere(la,
ja);O.intersectionShape.cylinder.push(Bb);O.intersectionShape.sphere.push(La)}if(aa.clickable){var Cb=new $3Dmol.Cylinder(va,ka,ja),Db=new $3Dmol.Sphere(va,ja);aa.intersectionShape.cylinder.push(Cb);aa.intersectionShape.sphere.push(Db)}}}else if(1<O.bondOrder[na]){var Ha=!1;mtoCap=!1;ja!=Ya&&(mtoCap=Ha=!0);var Xa=va.clone(),Ga=null;Xa.sub(la);var Y,pa,qa,wa,xa,Ga=e(O,aa,na);if(2==O.bondOrder[na]){if(Y=ja/2.5,Ga=e(O,aa,na),Ga.multiplyScalar(1.5*Y),pa=la.clone(),pa.add(Ga),qa=la.clone(),qa.sub(Ga),
wa=pa.clone(),wa.add(Xa),xa=qa.clone(),xa.add(Xa),ma!=Fa?(ka=(new $3Dmol.Vector3).addVectors(pa,wa).multiplyScalar(.5),Aa=(new $3Dmol.Vector3).addVectors(qa,xa).multiplyScalar(.5),$3Dmol.GLDraw.drawCylinder(fa,pa,ka,Y,ma,Ha,!1),$3Dmol.GLDraw.drawCylinder(fa,ka,wa,Y,Fa,!1,mtoCap),$3Dmol.GLDraw.drawCylinder(fa,qa,Aa,Y,ma,Ha,!1),$3Dmol.GLDraw.drawCylinder(fa,Aa,xa,Y,Fa,!1,mtoCap)):($3Dmol.GLDraw.drawCylinder(fa,pa,wa,Y,ma,Ha,mtoCap),$3Dmol.GLDraw.drawCylinder(fa,qa,xa,Y,ma,Ha,mtoCap)),O.clickable||aa.clickable)ka=
(new $3Dmol.Vector3).addVectors(pa,wa).multiplyScalar(.5),Aa=(new $3Dmol.Vector3).addVectors(qa,xa).multiplyScalar(.5),O.clickable&&(cylinder1a=new $3Dmol.Cylinder(pa,ka,Y),cylinder1b=new $3Dmol.Cylinder(qa,Aa,Y),O.intersectionShape.cylinder.push(cylinder1a),O.intersectionShape.cylinder.push(cylinder1b),La=new $3Dmol.Sphere(la,ja),O.intersectionShape.sphere.push(La)),aa.clickable&&(cylinder2a=new $3Dmol.Cylinder(wa,ka,Y),cylinder2b=new $3Dmol.Cylinder(xa,Aa,Y),aa.intersectionShape.cylinder.push(cylinder2a),
aa.intersectionShape.cylinder.push(cylinder2b),new $3Dmol.Sphere(va,ja),aa.intersectionShape.sphere.push(La))}else 3==O.bondOrder[na]&&(Y=ja/4,Ga.cross(Xa),Ga.normalize(),Ga.multiplyScalar(3*Y),pa=la.clone(),pa.add(Ga),qa=la.clone(),qa.sub(Ga),wa=pa.clone(),wa.add(Xa),xa=qa.clone(),xa.add(Xa),ma!=Fa?(ka=(new $3Dmol.Vector3).addVectors(pa,wa).multiplyScalar(.5),Aa=(new $3Dmol.Vector3).addVectors(qa,xa).multiplyScalar(.5),mp3=(new $3Dmol.Vector3).addVectors(la,va).multiplyScalar(.5),$3Dmol.GLDraw.drawCylinder(fa,
pa,ka,Y,ma,Ha,!1),$3Dmol.GLDraw.drawCylinder(fa,ka,wa,Y,Fa,!1,mtoCap),$3Dmol.GLDraw.drawCylinder(fa,la,mp3,Y,ma,Za,!1),$3Dmol.GLDraw.drawCylinder(fa,mp3,va,Y,Fa,!1,$a),$3Dmol.GLDraw.drawCylinder(fa,qa,Aa,Y,ma,Ha,!1),$3Dmol.GLDraw.drawCylinder(fa,Aa,xa,Y,Fa,!1,mtoCap)):($3Dmol.GLDraw.drawCylinder(fa,pa,wa,Y,ma,Ha,mtoCap),$3Dmol.GLDraw.drawCylinder(fa,la,va,Y,ma,Za,$a),$3Dmol.GLDraw.drawCylinder(fa,qa,xa,Y,ma,Ha,mtoCap)),O.clickable||aa.clickable)&&(ka=(new $3Dmol.Vector3).addVectors(pa,wa).multiplyScalar(.5),
Aa=(new $3Dmol.Vector3).addVectors(qa,xa).multiplyScalar(.5),mp3=(new $3Dmol.Vector3).addVectors(la,va).multiplyScalar(.5),O.clickable&&(cylinder1a=new $3Dmol.Cylinder(pa.clone(),ka.clone(),Y),cylinder1b=new $3Dmol.Cylinder(qa.clone(),Aa.clone(),Y),cylinder1c=new $3Dmol.Cylinder(la.clone(),mp3.clone(),Y),O.intersectionShape.cylinder.push(cylinder1a),O.intersectionShape.cylinder.push(cylinder1b),O.intersectionShape.cylinder.push(cylinder1c),La=new $3Dmol.Sphere(la,ja),O.intersectionShape.sphere.push(La)),
aa.clickable&&(cylinder2a=new $3Dmol.Cylinder(wa.clone(),ka.clone(),Y),cylinder2b=new $3Dmol.Cylinder(xa.clone(),Aa.clone(),Y),cylinder2c=new $3Dmol.Cylinder(va.clone(),mp3.clone(),Y),aa.intersectionShape.cylinder.push(cylinder2a),aa.intersectionShape.cylinder.push(cylinder2b),aa.intersectionShape.cylinder.push(cylinder2c),La=new $3Dmol.Sphere(va,ja),aa.intersectionShape.sphere.push(La)))}}}}for(var ob=!1,pb=0,wb=!1,na=0;na<O.bonds.length;na++)ab=ub,O.bondStyles&&O.bondStyles[na]&&(Ba=O.bondStyles[na],
Ba.singleBond&&(ab=!0),Ba.radius&&Ba.radius!=Ya&&(wb=!0)),(ab||1==O.bondOrder[na])&&pb++;wb?0<pb&&(ob=!0):0==pb&&0<O.bonds.length&&(ob=!0);ob&&(ja=Ya,$3Dmol.GLDraw.drawSphere(fa,O,ja,ma))}}"undefined"===typeof J.style.cartoon||J.style.cartoon.hidden||("spectrum"===J.style.cartoon.color&&"number"===typeof J.resi&&(J.resi<D[0]&&(D[0]=J.resi),J.resi>D[1]&&(D[1]=J.resi)),h.push(J))}}if(0<h.length){var xb=null;D[0]<D[1]&&(xb=new $3Dmol.Gradient.Sinebow(D[0],D[1]));$3Dmol.drawCartoon(l,h,C,xb);for(M=0;M<
l.children.length;M++);}if(0<q.vertices){var Eb=new $3Dmol.MeshLambertMaterial({ambient:0,vertexColors:!0,reflectivity:0});q.initTypedArrays();var Fb=new $3Dmol.Mesh(q,Eb);l.add(Fb)}if(0<u.vertices){var Gb=new $3Dmol.ImposterMaterial({ambient:0,vertexColors:!0,reflectivity:0});u.initTypedArrays();var Hb=new $3Dmol.Mesh(u,Gb);console.log("spherei geometry "+u.vertices.length);l.add(Hb)}if(0<A.vertices){var bb=new $3Dmol.MeshLambertMaterial({vertexColors:!0,ambient:0,reflectivity:0});A.initTypedArrays();
bb.wireframe&&A.setUpWireframe();var Ib=new $3Dmol.Mesh(A,bb);l.add(Ib)}if(0<C.vertices){bb=new $3Dmol.MeshLambertMaterial({vertexColors:!0,ambient:0,reflectivity:0});C.initTypedArrays();bb.wireframe&&C.setUpWireframe();var Jb=new $3Dmol.Mesh(C,bb);l.add(Jb)}for(M in z)if(z.hasOwnProperty(M)){var qb=M,Kb=new $3Dmol.LineBasicMaterial({linewidth:qb,vertexColors:!0});z[M].initTypedArrays();var Lb=new $3Dmol.Line(z[M],Kb,$3Dmol.LinePieces);l.add(Lb)}for(M in y)if(y.hasOwnProperty(M)){var qb=M,Mb=new $3Dmol.LineBasicMaterial({linewidth:qb,
vertexColors:!0});y[M].initTypedArrays();var Nb=new $3Dmol.Line(y[M],Mb,$3Dmol.LinePieces);l.add(Nb)}if(b&&!m){var yb=new $3Dmol.Object3D,fb;for(fb=0;fb<c.length;fb++){var gb=new $3Dmol.Object3D,gb=l.clone();gb.matrix.copy(c[fb]);gb.matrixAutoUpdate=!1;yb.add(gb)}l=yb}B=l;g&&(a.remove(g),g=null);g=B.clone();a.add(g)}};this.removegl=function(b){g&&(void 0!==g.geometry&&g.geometry.dispose(),void 0!==g.material&&g.material.dispose(),b.remove(g),g=null);B=null};this.addResLabels=function(b,c,d){var e=
this.selectedAtoms(b,e);b={};for(var a=0;a<e.length;a++){var m=e[a],f=m.chain,l=m.resn+""+m.resi;b[f]||(b[f]={});b[f][l]||(b[f][l]=[]);b[f][l].push(m)}d=$.extend(!0,{},d);for(f in b)if(b.hasOwnProperty(f)){var g=b[f];for(l in g)if(g.hasOwnProperty(l)){for(var e=g[l],h=new $3Dmol.Vector3(0,0,0),a=0;a<e.length;a++)m=e[a],h.x+=m.x,h.y+=m.y,h.z+=m.z;h.divideScalar(e.length);d.position=h;c.addLabel(l,d)}}}}}();
$3Dmol.GLShape=function(){function u(w){w=w||{};$3Dmol.ShapeIDCount++;this.boundingSphere=new $3Dmol.Sphere;this.intersectionShape={sphere:[],cylinder:[],line:[],triangle:[]};A(this,w);var B=[],g=null,a=null,c=new $3Dmol.Geometry(!0),h=new $3Dmol.Geometry(!0);this.updateStyle=function(c){for(var b in c)w[b]=c[b];A(this,w)};this.addCustom=function(a){a.vertexArr=a.vertexArr||[];a.faceArr=a.faceArr||[];a.normalArr=a.normalArr||[];a.lineArr=a.lineArr||[];var b=c.addGeoGroup();q(this,b,a);b.truncateArrayBuffers(!0,
!0);for(a=0;a<b.colorArray.length/3;++a)b.colorArray[3*a]=this.color.r,b.colorArray[3*a+1]=this.color.g,b.colorArray[3*a+2]=this.color.b;B.push({id:b.id,geoGroup:b,centroid:b.getCentroid()});C(this.boundingSphere,B,b.vertexArray)};this.addSphere=function(a){a.center=a.center||{x:0,y:0,z:0};a.radius=a.radius?$3Dmol.Math.clamp(a.radius,0,Infinity):1.5;a.color=$3Dmol.CC.color(a.color);this.intersectionShape.sphere.push(new $3Dmol.Sphere(a.center,a.radius));var b=c.addGeoGroup();$3Dmol.GLDraw.drawSphere(c,
a.center,a.radius,a.color);b.truncateArrayBuffers(!0,!0);B.push({id:b.id,geoGroup:b,centroid:new $3Dmol.Vector3(a.center.x,a.center.y,a.center.z)});C(this.boundingSphere,B,b.vertexArray)};this.addCylinder=function(a){a.start=a.start||{};a.end=a.end||{};var b=new $3Dmol.Vector3(a.start.x||0,a.start.y||0,a.start.z||0),f=new $3Dmol.Vector3(a.end.x,a.end.y||0,a.end.z||0);"undefined"==typeof f.x&&(f.x=3);var l=a.radius||.1,d=$3Dmol.CC.color(a.color);this.intersectionShape.cylinder.push(new $3Dmol.Cylinder(b,
f,l));var e=c.addGeoGroup();$3Dmol.GLDraw.drawCylinder(c,b,f,l,d,a.fromCap,a.toCap);e.truncateArrayBuffers(!0,!0);a=new $3Dmol.Vector3;B.push({id:e.id,geoGroup:e,centroid:a.addVectors(b,f).multiplyScalar(.5)});C(this.boundingSphere,B,e.vertexArray)};this.addLine=function(a){a.start=a.start||{};a.end=a.end||{};var b=new $3Dmol.Vector3(a.start.x||0,a.start.y||0,a.start.z||0),f=new $3Dmol.Vector3(a.end.x,a.end.y||0,a.end.z||0);"undefined"==typeof f.x&&(f.x=3);a=c.addGeoGroup();var l=a.vertices,d=3*l,
e=a.vertexArray;e[d]=b.x;e[d+1]=b.y;e[d+2]=b.z;e[d+3]=f.x;e[d+4]=f.y;e[d+5]=f.z;a.vertices+=2;b=a.lineArray;f=a.lineidx;b[f]=l;b[f+1]=l+1;a.lineidx+=2;a.truncateArrayBuffers(!0,!0)};this.addArrow=function(a){a.start=a.start||{};a.end=a.end||{};a.start=new $3Dmol.Vector3(a.start.x||0,a.start.y||0,a.start.z||0);if(a.dir instanceof $3Dmol.Vector3&&a.length instanceof number){var b=a.dir.clone().multiplyScalar(a.length).add(start);a.end=b}else a.end=new $3Dmol.Vector3(a.end.x,a.end.y||0,a.end.z||0),"undefined"==
typeof a.end.x&&(a.end.x=3);a.radius=a.radius||.1;a.radiusRatio=a.radiusRatio||1.618034;a.mid=0<a.mid&&1>a.mid?a.mid:.618034;b=c.addGeoGroup();var f=a.start,l=a.end,d=a.radius,e=a.radiusRatio,g=a.mid;if(f&&l){var h=l.clone();h.sub(f).multiplyScalar(g);var t=f.clone().add(h),g=h.clone().negate();this.intersectionShape.cylinder.push(new $3Dmol.Cylinder(f.clone(),t.clone(),d));this.intersectionShape.sphere.push(new $3Dmol.Sphere(f.clone(),d));var n=[];n[0]=h.clone();1E-4<Math.abs(n[0].x)?n[0].y+=1:n[0].x+=
1;n[0].cross(h);n[0].normalize();n[0]=n[0];n[4]=n[0].clone();n[4].crossVectors(n[0],h);n[4].normalize();n[8]=n[0].clone().negate();n[12]=n[4].clone().negate();n[2]=n[0].clone().add(n[4]).normalize();n[6]=n[4].clone().add(n[8]).normalize();n[10]=n[8].clone().add(n[12]).normalize();n[14]=n[12].clone().add(n[0]).normalize();n[1]=n[0].clone().add(n[2]).normalize();n[3]=n[2].clone().add(n[4]).normalize();n[5]=n[4].clone().add(n[6]).normalize();n[7]=n[6].clone().add(n[8]).normalize();n[9]=n[8].clone().add(n[10]).normalize();
n[11]=n[10].clone().add(n[12]).normalize();n[13]=n[12].clone().add(n[14]).normalize();n[15]=n[14].clone().add(n[0]).normalize();var s=b.vertices,x=b.vertexArray,w=b.faceArray,y=b.normalArray,q=b.lineArray,u,A,G;A=0;for(G=n.length;A<G;++A){u=3*(s+3*A);var M=n[A].clone().multiplyScalar(d).add(f),S=n[A].clone().multiplyScalar(d).add(t),D=n[A].clone().multiplyScalar(d*e).add(t);x[u]=M.x;x[u+1]=M.y;x[u+2]=M.z;x[u+3]=S.x;x[u+4]=S.y;x[u+5]=S.z;x[u+6]=D.x;x[u+7]=D.y;x[u+8]=D.z;0<A&&(u=new $3Dmol.Vector3(x[u-
3],x[u-2],x[u-1]),M=l.clone(),S=t.clone(),D=new $3Dmol.Vector3(D.x,D.y,D.z),this.intersectionShape.triangle.push(new $3Dmol.Triangle(D,M,u)),this.intersectionShape.triangle.push(new $3Dmol.Triangle(u.clone(),S,D.clone())))}b.vertices+=48;u=3*b.vertices;x[u]=f.x;x[u+1]=f.y;x[u+2]=f.z;x[u+3]=t.x;x[u+4]=t.y;x[u+5]=t.z;x[u+6]=l.x;x[u+7]=l.y;x[u+8]=l.z;b.vertices+=3;var J,K,ca,V,da,T,Z,N,U=b.vertices-3,P=b.vertices-2,Q=b.vertices-1,W=3*U,R=3*P,X=3*Q;A=0;for(G=n.length-1;A<G;++A)J=s+3*A,f=b.faceidx,l=b.lineidx,
d=J,u=3*d,e=J+1,M=3*e,t=J+2,S=3*t,x=J+4,K=3*x,D=J+5,ca=3*D,J+=3,V=3*J,da=T=n[A],Z=N=n[A+1],y[u]=da.x,y[M]=T.x,y[V]=N.x,y[u+1]=da.y,y[M+1]=T.y,y[V+1]=N.y,y[u+2]=da.z,y[M+2]=T.z,y[V+2]=N.z,y[M]=T.x,y[K]=Z.x,y[V]=N.x,y[M+1]=T.y,y[K+1]=Z.y,y[V+1]=N.y,y[M+2]=T.z,y[K+2]=Z.z,y[V+2]=N.z,y[S]=T.x,y[ca]=Z.x,y[S+1]=T.y,y[ca+1]=Z.y,y[S+2]=T.z,y[ca+2]=Z.z,w[f]=d,w[f+1]=e,w[f+2]=J,w[f+3]=e,w[f+4]=x,w[f+5]=J,w[f+6]=d,w[f+7]=J,w[f+8]=U,w[f+9]=t,w[f+10]=P,w[f+11]=D,w[f+12]=t,w[f+13]=Q,w[f+14]=D,q[l]=d,q[l+1]=e,q[l+
2]=d,q[l+3]=J,q[l+4]=x,q[l+5]=J,q[l+6]=d,q[l+7]=J,q[l+8]=t,q[l+9]=e,q[l+10]=t,q[l+11]=D,q[l+12]=x,q[l+13]=D,q[l+14]=t,q[l+15]=Q,q[l+16]=t,q[l+17]=D,q[l+18]=Q,q[l+19]=D,b.faceidx+=15,b.lineidx+=20;s=[s+45,s+46,s+1,s,s+47,s+2];f=b.faceidx;l=b.lineidx;d=s[0];u=3*d;e=s[1];M=3*e;t=s[4];S=3*t;x=s[2];K=3*x;D=s[5];ca=3*D;J=s[3];V=3*J;da=T=n[15];Z=N=n[0];y[u]=da.x;y[M]=T.x;y[V]=N.x;y[u+1]=da.y;y[M+1]=T.y;y[V+1]=N.y;y[u+2]=da.z;y[M+2]=T.z;y[V+2]=N.z;y[M]=T.x;y[K]=Z.x;y[V]=N.x;y[M+1]=T.y;y[K+1]=Z.y;y[V+1]=N.y;
y[M+2]=T.z;y[K+2]=Z.z;y[V+2]=N.z;y[S]=T.x;y[ca]=Z.x;y[S+1]=T.y;y[ca+1]=Z.y;y[S+2]=T.z;y[ca+2]=Z.z;h.normalize();g.normalize();y[W]=g.x;y[R]=y[X]=h.x;y[W+1]=g.y;y[R+1]=y[X+1]=h.y;y[W+2]=g.z;y[R+2]=y[X+2]=h.z;w[f]=d;w[f+1]=e;w[f+2]=J;w[f+3]=e;w[f+4]=x;w[f+5]=J;w[f+6]=d;w[f+7]=J;w[f+8]=U;w[f+9]=t;w[f+10]=P;w[f+11]=D;w[f+12]=t;w[f+13]=Q;w[f+14]=D;q[l]=d;q[l+1]=e;q[l+2]=d;q[l+3]=J;q[l+4]=x;q[l+5]=J;q[l+6]=d;q[l+7]=J;q[l+8]=t;q[l+9]=e;q[l+10]=t;q[l+11]=D;q[l+12]=x;q[l+13]=D;q[l+14]=t;q[l+15]=Q;q[l+16]=
t;q[l+17]=D;q[l+18]=Q;q[l+19]=D;b.faceidx+=15;b.lineidx+=20}b.truncateArrayBuffers(!0,!0);h=new $3Dmol.Vector3;B.push({id:b.id,geoGroup:b,centroid:h.addVectors(a.start,a.end).multiplyScalar(.5)});C(this.boundingSphere,B,b.vertexArray)};this.addVolumetricData=function(a,b,f){var l=void 0!==f.isoval&&"number"===typeof f.isoval?f.isoval:0,d=f.voxel?!0:!1,e=c.addGeoGroup();switch(b){case "cube":var h=a.replace(/^\s+/,"").split(/[\n\r]+/);if(!(6>h.length)){var g=h[2].replace(/^\s+/,"").replace(/\s+/g,
" ").split(" "),t=Math.abs(parseFloat(g[0]));a=new $3Dmol.Vector3(parseFloat(g[1]),parseFloat(g[2]),parseFloat(g[3]));var g=h[3].replace(/^\s+/,"").replace(/\s+/g," ").split(" "),n=0<parseFloat(g[0])?.529177:1;a.multiplyScalar(n);b=Math.abs(g[0]);var s=(new $3Dmol.Vector3(parseFloat(g[1]),parseFloat(g[2]),parseFloat(g[3]))).multiplyScalar(n),g=h[4].replace(/^\s+/,"").replace(/\s+/g," ").split(" "),w=Math.abs(g[0]);(new $3Dmol.Vector3(parseFloat(g[1]),parseFloat(g[2]),parseFloat(g[3]))).multiplyScalar(n);
var g=h[5].replace(/^\s+/,"").replace(/\s+/g," ").split(" "),u=Math.abs(g[0]);(new $3Dmol.Vector3(parseFloat(g[1]),parseFloat(g[2]),parseFloat(g[3]))).multiplyScalar(n);h=new Float32Array(h.splice(t+7).join(" ").replace(/^\s+/,"").split(/[\s\r]+/));g=new Int16Array(b*w*u);t=0;for(n=g.length;t<n;++t)g[t]=-1;g=new Uint8Array(b*w*u);t=0;for(n=h.length;t<n;++t)0<(0<=l?h[t]-l:l-h[t])&&(g[t]|=2);l=[];h=[];$3Dmol.MarchingCube.march(g,l,h,{fulltable:!0,voxel:d,scale:s.length(),origin:a,nX:b,nY:w,nZ:u});d||
$3Dmol.MarchingCube.laplacianSmooth(10,l,h);q(this,e,{vertexArr:l,faceArr:h,normalArr:[],lineArr:[]})}}B.push({id:e.id,geoGroup:e,centroid:e.getCentroid()});this.updateStyle(f);C(this.boundingSphere,B,e.vertexArray)};this.globj=function(m){c.initTypedArrays();var b=this.color,b=b||$3Dmol.CC.color(b);c.colorsNeedUpdate=!0;for(var f in c.geometryGroups)for(var l=c.geometryGroups[f],d=l.colorArray,e=0,l=l.vertices;e<l;++e)d[3*e]=b.r,d[3*e+1]=b.g,d[3*e+2]=b.b;g=new $3Dmol.Object3D;f=new $3Dmol.MeshLambertMaterial({wireframe:this.wireframe,
vertexColors:!0,ambient:0,reflectivity:0,side:this.side,transparent:1>this.alpha?!0:!1,opacity:this.alpha,wireframeLinewidth:this.linewidth});f=new $3Dmol.Mesh(c,f);g.add(f);f=new $3Dmol.LineBasicMaterial({linewidth:this.linewidth,color:this.color});f=new $3Dmol.Line(h,f,$3Dmol.LinePieces);g.add(f);a&&(m.remove(a),a=null);a=g.clone();m.add(a)};this.removegl=function(c){a&&(void 0!==a.geometry&&a.geometry.dispose(),void 0!==a.material&&a.material.dispose(),c.remove(a),a=null);g=null}}var q=function(w,
q,g){var a=g.vertexArr,c=g.normalArr,h=g.faceArr;g=g.lineArr;0!==a.length&&0!==h.length||console.warn("Error adding custom shape component: No vertices and/or face indices supplied!");q.vertices=a.length;q.faceidx=h.length;var m,b,f,l,d;l=0;for(d=q.vertices;l<d;++l)m=3*l,b=a[l],q.vertexArray[m]=b.x,q.vertexArray[m+1]=b.y,q.vertexArray[m+2]=b.z;l=0;for(d=q.faceidx/3;l<d;++l){m=3*l;b=h[m];f=h[m+1];m=h[m+2];var e=new $3Dmol.Vector3,p=new $3Dmol.Vector3,u=new $3Dmol.Vector3;w.intersectionShape.triangle.push(new $3Dmol.Triangle(e.copy(a[b]),
p.copy(a[f]),u.copy(a[m])))}q.faceArray=new Uint16Array(h);q.truncateArrayBuffers(!0,!0);if(c.length<q.vertices)q.setNormals();else for(q.normalArray=new Float32Array(3*q.vertices),l=0,d=q.vertices;l<d;++l)m=3*l,w=c[l],q.normalArray[m]=w.x,q.normalArray[m+1]=w.y,q.normalArray[m+2]=w.z;g.length?q.lineArray=new Uint16Array(g):q.setLineIndices();q.lineidx=q.lineArray.length},C=function(w,q,g){w.center.set(0,0,0);var a,c;if(0<q.length){a=0;for(c=q.length;a<c;++a)w.center.add(q[a].centroid);w.center.divideScalar(q.length)}q=
w.radius*w.radius;a=0;for(c=g.length/3;a<c;a++){var h=w.center.distanceToSquared({x:g[3*a],y:g[3*a+1],z:g[3*a+2]});q=Math.max(q,h)}w.radius=Math.sqrt(q)},A=function(q,u){q.color=u.color||new $3Dmol.Color;u.color instanceof $3Dmol.Color||(q.color=$3Dmol.CC.color(u.color));q.wireframe=u.wireframe?!0:!1;q.alpha=u.alpha?$3Dmol.Math.clamp(u.alpha,0,1):1;q.side=void 0!==u.side?u.side:$3Dmol.DoubleSide;q.linewidth="undefined"==typeof u.linewidth?1:u.linewidth;q.clickable=u.clickable?!0:!1;q.callback="function"===
typeof u.callback?u.callback:null};Object.defineProperty(u.prototype,"position",{get:function(){return this.boundingSphere.center}});Object.defineProperty(u.prototype,"x",{get:function(){return this.boundingSphere.center.x}});Object.defineProperty(u.prototype,"y",{get:function(){return this.boundingSphere.center.y}});Object.defineProperty(u.prototype,"z",{get:function(){return this.boundingSphere.center.z}});return u}();$3Dmol.ShapeIDCount=0;
$3Dmol.GLViewer=function(){return function(u,q){function C(a){var c=[];"undefined"===typeof a&&(a={});var d=[],e;if("undefined"===typeof a.model)for(e=0;e<b.length;e++)b[e]&&d.push(b[e]);else d=a.model,$.isArray(d)||(d=[d]);for(e=0;e<d.length;e++)c=c.concat(d[e].selectedAtoms(a));return c}function A(a,c,d,e){for(var f=0;f<b.length;f++)if(b[f])b[f][a](c,d,e)}function w(a){var b=new $3Dmol.MeshLambertMaterial;b.vertexColors=$3Dmol.VertexColors;for(var c in a)"color"!==c&&"map"!==c&&a.hasOwnProperty(c)&&
(b[c]=a[c]);void 0!==a.opacity&&(b.transparent=1===a.opacity?!1:!0);return b}function B(a,b){for(var c=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY,e=0,f=a.length;e<f;e++){var l=a[e];l.properties&&"undefined"!=typeof l.properties[b]&&(l=l.properties[b],l<c&&(c=l),l>d&&(d=l))}isFinite(c)||isFinite(d)?isFinite(c)?isFinite(d)||(d=c):c=d:c=d=0;return[c,d]}q=q||{};var g=q.callback,a=q.defaultcolors;a||(a=$3Dmol.elementColors.defaultColors);var c=q.nomouse,h=0;void 0!=typeof q.backgroundColor&&(h=
$3Dmol.CC.color(q.backgroundColor).getHex());var m=this,b=[],f=[],l=[],d=[],e=[],p=u.width(),z=u.height(),t=p/z,n=new $3Dmol.Renderer({antialias:!0,premultipliedAlpha:!1});n.domElement.style.width="100%";n.domElement.style.height="100%";n.domElement.style.padding="0";n.domElement.style.position="absolute";n.domElement.style.top="0px";n.domElement.style.zIndex="0";u.append(n.domElement);n.setSize(p,z);var s=new $3Dmol.Camera(20,t,1,800);s.position=new $3Dmol.Vector3(0,0,150);var x=new $3Dmol.Vector3;
s.lookAt(x);var E=new $3Dmol.Raycaster(new $3Dmol.Vector3(0,0,0),new $3Dmol.Vector3(0,0,0)),y=new $3Dmol.Projector,H=new $3Dmol.Vector3(0,0,0),I=null,F=null,G=null,M=-50,S=50,D=new $3Dmol.Quaternion(0,0,0,1),J=new $3Dmol.Quaternion(0,0,0,1),K=!1,ca=0,V=0,da=0,T=0,Z=0,N=0,U=0,P=function(){if(I){var a=s.position.z-F.position.z;1>a&&(a=1);s.near=a+M;1>s.near&&(s.near=1);s.far=a+S;s.near+1>s.far&&(s.far=s.near+1);s instanceof $3Dmol.Camera?s.fov=20:(s.right=a*Math.tan(Math.PI/180*20),s.left=-s.right,
s.top=s.right/t,s.bottom=-s.top);s.updateProjectionMatrix();I.fog.near=s.near+.4*(s.far-s.near);I.fog.far=s.far;n.render(I,s)}};(function(){I=new $3Dmol.Scene;I.fog=new $3Dmol.Fog(h,100,200);G=new $3Dmol.Object3D;F=new $3Dmol.Object3D;F.useQuaternion=!0;F.quaternion=new $3Dmol.Quaternion(0,0,0,1);F.add(G);I.add(F);var a=new $3Dmol.Light(16777215);a.position=(new $3Dmol.Vector3(.2,.2,1)).normalize();a.intensity=1;I.add(a)})();n.setClearColorHex(h,1);I.fog.color=$3Dmol.CC.color(h);var Q=$(n.domElement),
W=function(a){var b=a.originalEvent.targetTouches[0].pageX-a.originalEvent.targetTouches[1].pageX;a=a.originalEvent.targetTouches[0].pageY-a.originalEvent.targetTouches[1].pageY;return Math.sqrt(b*b+a*a)},R=function(a){var b=a.pageX,c=a.pageY;a.originalEvent.targetTouches&&a.originalEvent.targetTouches[0]?(b=a.originalEvent.targetTouches[0].pageX,c=a.originalEvent.targetTouches[0].pageY):a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(b=a.originalEvent.changedTouches[0].pageX,
c=a.originalEvent.changedTouches[0].pageY);return[b,c]};c||(Q.bind("mousedown touchstart",function(a){a.preventDefault();if(I){var b=R(a),c=b[0],b=b[1];void 0!==c&&(K=!0,mouseButton=a.which,ca=c,V=b,da=0,a.originalEvent.targetTouches&&2==a.originalEvent.targetTouches.length&&(da=W(a)),D=F.quaternion,Z=F.position.z,T=G.position.clone(),N=M,U=S)}}),Q.bind("DOMMouseScroll mousewheel",function(a){a.preventDefault();if(I){var b=.85*(150-F.position.z);a.originalEvent.detail?F.position.z+=b*a.originalEvent.detail/
10:a.originalEvent.wheelDelta&&(F.position.z-=b*a.originalEvent.wheelDelta/400);150<F.position.z&&(F.position.z=149.85);P()}}),Q.bind("contextmenu",function(a){a.preventDefault()}),$("body").bind("mouseup touchend",function(a){if(K&&I){var b=R(a),c=b[0],b=b[1];if(c==ca&&b==V){var d=$(u).offset(),c=(c-d.left)/p*2-1,b=2*-((b-d.top)/z)+1;0!=e.length&&(H.set(c,b,-1),y.unprojectVector(H,s),H.sub(s.position).normalize(),E.set(s.position,H),c=[],c=E.intersectObjects(G,e),c.length&&(c=c[0].clickable,void 0!==
c.callback&&"function"===typeof c.callback&&c.callback(c,m,a,u)))}}K=!1}),Q.bind("mousemove touchmove",function(a){a.preventDefault();if(I&&K){var b=0,c=R(a),d=c[0],c=c[1];if(void 0!==d){var e=(d-ca)/p,f=(c-V)/z;0!=da&&a.originalEvent.targetTouches&&2==a.originalEvent.targetTouches.length?(f=W(a),b=2,f=2*(da-f)/(p+z)):a.originalEvent.targetTouches&&3==a.originalEvent.targetTouches.length&&(b=1);var l=Math.sqrt(e*e+f*f);3==b||3==mouseButton&&a.ctrlKey?(M=N+100*e,S=U+100*f):2==b||3==mouseButton||a.shiftKey?
(a=.85*(150-F.position.z),80>a&&(a=80),F.position.z=Z-f*a,150<F.position.z&&(F.position.z=149.85)):1==b||2==mouseButton||a.ctrlKey?(a=(d-ca)/p,b=(c-V)/z,d=F.quaternion,c=new $3Dmol.Vector3(0,0,F.position.z),y.projectVector(c,s),c.x+=2*a,c.y-=2*b,y.unprojectVector(c,s),c.z=0,c.applyQuaternion(d),G.position.addVectors(T,c)):0!==b&&1!=mouseButton||0===l||(a=Math.sin(l*Math.PI)/l,J.x=Math.cos(l*Math.PI),J.y=0,J.z=a*e,J.w=-a*f,F.quaternion=new $3Dmol.Quaternion(1,0,0,0),F.quaternion.multiply(J),F.quaternion.multiply(D));
P()}}}));this.setBackgroundColor=function(a,b){if("undefined"==typeof b)b=1;else if(0>b||1<b)b=1;var c=$3Dmol.CC.color(a);I.fog.color=c;h=c.getHex();n.setClearColorHex(c.getHex(),b);P()};this.setWidth=function(a){p=a||p;n.setSize(p,z)};this.setHeight=function(a){z=a||z;n.setSize(p,z)};this.resize=function(){p=u.width();z=u.height();t=p/z;n.setSize(p,z);s.aspect=t;s.updateProjectionMatrix();P()};$(window).resize(this.resize);this.getModel=function(a){a=a||b.length-1;return b[a]};this.rotate=function(a,
b){"undefined"===typeof b&&(b="y");var c=0,d=0,e=0,f=Math.PI*a/180,l=Math.sin(f/2),f=Math.cos(f/2);"x"==b&&(c=l);"y"==b&&(d=l);"z"==b&&(e=l);c=(new $3Dmol.Quaternion(c,d,e,f)).normalize();F.quaternion.multiply(c);P()};this.getView=function(){if(!G)return[0,0,0,0,0,0,0,1];var a=G.position,b=F.quaternion;return[a.x,a.y,a.z,F.position.z,b.x,b.y,b.z,b.w]};this.setView=function(a){void 0!==a&&(a instanceof Array||8!==a.length)&&G&&F&&(G.position.x=a[0],G.position.y=a[1],G.position.z=a[2],F.position.z=
a[3],F.quaternion.x=a[4],F.quaternion.y=a[5],F.quaternion.z=a[6],F.quaternion.w=a[7],"undefined"!=typeof a[8]&&(F.position.x=a[8],F.position.y=a[9]),P())};this.render=function(){e=[];var a,c;a=0;for(c=b.length;a<c;a++){var d=b[a];d&&(d=d.selectedAtoms({clickable:!0}),e=e.concat(d))}a=0;for(c=l.length;a<c;a++)(d=l[a])&&d.clickable&&e.push(d);a=this.getView();for(c=0;c<b.length;c++)b[c]&&b[c].globj(G);for(c=0;c<l.length;c++)l[c]&&l[c].globj(G);for(c in f)for(var g=f[c],d=0;d<g.length;d++)if(g.hasOwnProperty(d)){var h=
g[d].geo;if(!g[d].finished){h.verticesNeedUpdate=!0;h.elementsNeedUpdate=!0;h.normalsNeedUpdate=!0;h.colorsNeedUpdate=!0;h.buffersNeedUpdate=!0;h.boundingSphere=null;g[d].done&&(g[d].finished=!0);g[d].lastGL&&G.remove(g[d].lastGL);var m=null,m=g[d].mat instanceof $3Dmol.LineBasicMaterial?new $3Dmol.Line(h,g[d].mat):new $3Dmol.Mesh(h,g[d].mat);m.visible=g[d].mat.transparent&&0==g[d].mat.opacity?!1:!0;if(1<g[d].symmetries.length||1==g[d].symmetries.length&&!g[d].symmetries[d].isIdentity()){for(var p=
new $3Dmol.Object3D,h=0;h<g[d].symmetries.length;h++){var n=m.clone();n.matrix=g[d].symmetries[h];n.matrixAutoUpdate=!1;p.add(n)}g[d].lastGL=p;G.add(p)}else g[d].lastGL=m,G.add(m)}}this.setView(a)};this.pdbData=function(a){a=C(a);for(var b="",c=0,d=a.length;c<d;++c)b+=a[c].pdbline+"\n";return b};this.zoom=function(a){F.position.z=150-(150-F.position.z)/(a||2);P()};this.translate=function(a,b){var c=a/p,d=b/z,e=new $3Dmol.Vector3(0,0,-150);y.projectVector(e,s);e.x-=c;e.y-=d;y.unprojectVector(e,s);
e.z=0;x.add(e);s.lookAt(x);P()};this.zoomTo=function(a){var b;a=a||{};var c=C(a),d=$3Dmol.getExtent(c);$.isEmptyObject(a)?($.each(l,function(a,b){b.boundingSphere&&b.boundingSphere.center&&c.push(b.boundingSphere.center)}),d=$3Dmol.getExtent(c),a=c,b=d):(a=C({}),b=$3Dmol.getExtent(a));a=new $3Dmol.Vector3(d[2][0],d[2][1],d[2][2]);G.position=a.clone().multiplyScalar(-1);var e=b[1][0]-b[0][0],f=b[1][1]-b[0][1];b=b[1][2]-b[0][2];e=Math.sqrt(e*e+f*f+b*b);5>e&&(e=5);M=-e/1.9;S=e/2;e=d[1][0]-d[0][0];f=
d[1][1]-d[0][1];b=d[1][2]-d[0][2];e=Math.sqrt(e*e+f*f+b*b);5>e&&(e=5);d=25;for(e=0;e<c.length;e++)c[e]&&(f=a.distanceToSquared(c[e]),f>d&&(d=f));e=2*Math.sqrt(d);F.position.z=-(.5*e/Math.tan(Math.PI/180*s.fov/2)-150);P()};this.addLabel=function(a,b){var c=new $3Dmol.Label(a,b);c.setContext();G.add(c.sprite);d.push(c);P();return c};this.addResLabels=function(a,b){A("addResLabels",a,this,b)};this.removeLabel=function(a){for(var b=0;b<d.length;b++)if(d[b]==a){d.splice(b,1);a.dispose();G.remove(a.sprite);
break}};this.removeAllLabels=function(){for(var a=0;a<d.length;a++)G.remove(d[a].sprite);d=[]};this.setLabelStyle=function(a,b){G.remove(a.sprite);a.dispose();a.stylespec=b;a.setContext();G.add(a.sprite);P();return a};this.setLabelText=function(a,b){G.remove(a.sprite);a.dispose();a.text=b;a.setContext();G.add(a.sprite);P();return a};this.addShape=function(a){a=a||{};a=new $3Dmol.GLShape(a);a.shapePosition=l.length;l.push(a);return a};this.removeShape=function(a){if(a)for(a.removegl(G),delete l[a.shapePosition];0<
l.length&&"undefined"===typeof l[l.length-1];)l.pop()};this.removeAllShapes=function(){for(var a=0;a<l.length;a++)l[a].removegl(G);l=[]};this.addSphere=function(a){a=a||{};var b=new $3Dmol.GLShape(a);b.shapePosition=l.length;b.addSphere(a);l.push(b);return b};this.addArrow=function(a){a=a||{};var b=new $3Dmol.GLShape(a);b.shapePosition=l.length;b.addArrow(a);l.push(b);return b};this.addCylinder=function(a){a=a||{};var b=new $3Dmol.GLShape(a);b.shapePosition=l.length;b.addCylinder(a);l.push(b);return b};
this.addLine=function(a){a=a||{};a.wireframe=!0;var b=new $3Dmol.GLShape(a);b.shapePosition=l.length;b.addLine(a);l.push(b);return b};this.addCustom=function(a){a=a||{};var b=new $3Dmol.GLShape(a);b.shapePosition=l.length;b.addCustom(a);l.push(b);return b};this.addVolumetricData=function(a,b,c){c=c||{};var d=new $3Dmol.GLShape(c);d.shapePosition=l.length;d.addVolumetricData(a,b,c);l.push(d);return d};this.addModel=function(c,d,e){var f=new $3Dmol.GLModel(b.length,a);f.addMolData(c,d,e);b.push(f);
return f};this.removeModel=function(a){if(a)for(a.removegl(G),delete b[a.getID()];0<b.length&&"undefined"===typeof b[b.length-1];)b.pop()};this.removeAllModels=function(){for(var a=0;a<b.length;a++)b[a].removegl(G);b=[]};this.createModelFrom=function(c,d){for(var e=new $3Dmol.GLModel(b.length,a),f=0;f<b.length;f++)if(b[f]){var l=b[f].selectedAtoms(c);e.addAtoms(l);d&&b[f].removeAtoms(l)}b.push(e);return e};this.setStyle=function(a,b){A("setStyle",a,b,!1)};this.addStyle=function(a,b){A("setStyle",
a,b,!0)};this.setColorByProperty=function(a,b,c){A("setColorByProperty",a,b,c)};this.setColorByElement=function(a,b){A("setColorByElement",a,b)};var X=function(a,b){for(var c=[],d=0;d<a.length;d++){var e=a[d];"undefined"!=typeof e&&(e.x<b[0][0]||e.x>b[1][0]||e.y<b[0][1]||e.y>b[1][1]||e.z<b[0][2]||e.z>b[1][2]||c.push(d))}return c},L=function(a){return(a[1][0]-a[0][0])*(a[1][1]-a[0][1])*(a[1][2]-a[0][2])},ea=function(a,b,c){var d=[],e=function(a){var b=[];b[0]=[a[0][0],a[0][1],a[0][2]];b[1]=[a[1][0],
a[1][1],a[1][2]];return b},f=function(a){if(64E3>L(a))return[a];var b=a[1][0]-a[0][0],c=a[1][1]-a[0][1],d=a[1][2]-a[0][2],c=b>c&&b>d?0:c>b&&c>d?1:2,d=e(a),b=e(a);a=(a[1][c]-a[0][c])/2+a[0][c];d[1][c]=a;b[0][c]=a;a=f(d);b=f(b);return a.concat(b)};a=f(a);for(var l=0,g=a.length;l<g;l++){var h=e(a[l]);h[0][0]-=6;h[0][1]-=6;h[0][2]-=6;h[1][0]+=6;h[1][1]+=6;h[1][2]+=6;var h=X(b,h),m=X(c,a[l]);d.push({extent:a[l],atoms:h,toshow:m})}return d},Ma=function(a,b,c){var d=new $3Dmol.Geometry(!0),e=d.updateGeoGroup(0),
f=e.vertexArray,l=b.vertices,g,h,m;h=0;for(m=l.length;h<m;h++)g=3*e.vertices,f[g]=l[h].x,f[g+1]=l[h].y,f[g+2]=l[h].z,e.vertices++;b=b.faces;e.faceidx=b.length;d.initTypedArrays();f=[];h=0;for(m=a.length;h<m;h++)if(g=a[h])"undefined"!=typeof g.surfaceColor?f[h]=g.surfaceColor:g.color&&(f[h]=$3Dmol.CC.color(g.color));a=e.vertexArray;g=e.colorArray;var p=e.normalArray,n,q,t;h=0;for(m=b.length;h<m;h+=3){var s=b[h],w=b[h+1],x=b[h+2];n=l[s].atomid;q=l[w].atomid;t=l[x].atomid;s*=3;w*=3;x*=3;g[s]=f[n].r;
g[s+1]=f[n].g;g[s+2]=f[n].b;g[w]=f[q].r;g[w+1]=f[q].g;g[w+2]=f[q].b;g[x]=f[t].r;g[x+1]=f[t].g;g[x+2]=f[t].b;n=new $3Dmol.Vector3(a[s],a[s+1],a[s+2]);q=new $3Dmol.Vector3(a[w],a[w+1],a[w+2]);t=new $3Dmol.Vector3(a[x],a[x+1],a[x+2]);t.subVectors(t,q);n.subVectors(n,q);t.cross(n);n=t;n.normalize();p[s]+=n.x;p[w]+=n.x;p[x]+=n.x;p[s+1]+=n.y;p[w+1]+=n.y;p[x+1]+=n.y;p[s+2]+=n.z;p[w+2]+=n.z;p[x+2]+=n.z}e.faceArray=new Uint16Array(b);c=new $3Dmol.Mesh(d,c);c.doubleSided=!0;return c};this.addMesh=function(a){var b=
f.length;f[b]={geo:a.geometry,mat:a.material,done:!0,finished:!1};return b};var ra=function(a){var b=[];$.each(a,function(a,c){b[a]=$.extend({},c)});return b};this.addSurface=function(a,c,d,e,l){var g=null,h=null;d=ra(C(d));var g=e?ra(C(e)):d,p=!1;for(e=0;e<b.length;e++){var n=b[e].getSymmetries();if(1<n.length||1==n.length&&!n[0].isIdentity()){p=!0;break}}var s=function(b,d,e){h=l?ra(C(l)):e;var f,g=$3Dmol.getExtent(e,!0),n,p;if(c.map&&c.map.prop){var s=c.map.prop,q=c.map.scheme||new $3Dmol.Gradient.RWB,
w=q.range();w||(w=B(e,s));n=0;for(p=d.length;n<p;n++)f=d[n],f.surfaceColor=$3Dmol.CC.color(q.valueToHex(f.properties[s],w))}else if("undefined"!=typeof c.color)for(n=0,p=d.length;n<p;n++)f=d[n],f.surfaceColor=$3Dmol.CC.color(c.color);else if("undefined"!=typeof c.colorscheme)for(n=0,p=d.length;n<p;n++)f=d[n],(q=$3Dmol.elementColors[c.colorscheme])&&"undefined"!=typeof q[f.elem]&&(f.surfaceColor=$3Dmol.CC.color(q[f.elem]));var x=L(g),y=ea(g,d,e);if(h&&h.length&&0<h.length){var u=$3Dmol.getExtent(h,
!0);y.sort(function(a,b){var c=function(a,b){var c=a.extent,d=c[1][1]-c[0][1],e=c[1][2]-c[0][2],c=c[1][0]-c[0][0]-b[2][0],d=d-b[2][1],e=e-b[2][2];return c*c+d*d+e*e},d=c(a,u),c=c(b,u);return d-c})}var z=[];n=0;for(p=d.length;n<p;n++)f=d[n],z[n]={x:f.x,y:f.y,z:f.z,serial:n,elem:f.elem};if($3Dmol.syncSurface)setTimeout(function Va(c){if(!(c>=y.length)){var e;e=a;var f=y[c].extent,g=y[c].atoms,h=y[c].toshow,l=new Date,n=new $3Dmol.ProteinSurface;n.initparm(f,1===e?!1:!0,x);n.fillvoxels(z,g);f=new Date;
n.buildboundary();e==$3Dmol.SurfaceType.SES&&(n.fastdistancemap(),n.boundingatom(!1),n.fillvoxelswaals(z,g));g=new Date;console.log("buildboundaryetc "+(g-f)+" "+(g-l)+"ms");n.marchingcube(e);e=n.getFacesAndVertices(h);e=Ma(d,e,t);$3Dmol.mergeGeos(b.geo,e);m.render();setTimeout(Va,1,c+1)}},1,0);else{e=[];0>a&&(a=0);n=0;for(p=4;n<p;n++)f=new Worker($3Dmol.SurfaceWorker),e.push(f),f.postMessage({type:-1,atoms:z,volume:x});var A=0;p=function(a){a=Ma(d,a.data,t);$3Dmol.mergeGeos(b.geo,a);m.render();
A++;A==y.length&&(b.done=!0)};f=function(a){console.log(a.message+" ("+a.filename+":"+a.lineno+")")};for(n=0;n<y.length;n++)g=e[n%e.length],g.onmessage=p,g.onerror=f,g.postMessage({type:a,expandedExtent:y[n].extent,extendedAtoms:y[n].atoms,atomsToShow:y[n].toshow})}};c=c||{};var t=w(c),n=[];if(p){var p={},q={};for(e=0;e<b.length;e++)p[e]=[],q[e]=[];for(e=0;e<g.length;e++)p[g[e].model].push(g[e]);for(e=0;e<d.length;e++)q[d[e].model].push(d[e]);for(e=0;e<b.length;e++)n.push({geo:new $3Dmol.Geometry(!0),
mat:t,done:!1,finished:!1,symmetries:b[e].getSymmetries()}),s(n[e],p[e],q[e])}else n.push({geo:new $3Dmol.Geometry(!0),mat:t,done:!1,finished:!1,symmetries:[new $3Dmol.Matrix4]}),s(n[n.length-1],g,d);g=f.length;f[g]=n;return g};this.setSurfaceMaterialStyle=function(a,b){if(f[a]){surfArr=f[a];for(var c=0;c<surfArr.length;c++)surfArr[c].mat=w(b),surfArr[c].mat.side=$3Dmol.FrontSide,surfArr[c].finished=!1}};this.removeSurface=function(a){for(var b=f[a],c=0;c<b.length;c++)b[c]&&b[c].lastGL&&(void 0!==
b[c].geo&&b[c].geo.dispose(),void 0!==b[c].mat&&b[c].mat.dispose(),G.remove(b[c].lastGL));delete f[a];P()};this.removeAllSurfaces=function(){for(var a=0;a<f.length;a++){surfArr=f[a];for(var b=0;b<surfArr.length;b++)surfArr[b]&&surfArr[b].lastGL&&(void 0!==surfArr[b].geo&&surfArr[b].geo.dispose(),void 0!==surfArr[b].mat&&surfArr[b].mat.dispose(),G.remove(surfArr[b].lastGL));delete f[a]}P()};this.jmolMoveTo=function(){var a=G.position,a="center { "+-a.x+" "+-a.y+" "+-a.z+" }; ",b=F.quaternion;return a+=
"moveto .5 quaternion { "+b.x+" "+b.y+" "+b.z+" "+b.w+" };"};this.clear=function(){this.removeAllSurfaces();this.removeAllModels();this.removeAllLabels();this.removeAllShapes();P()};this.mapAtomProperties=function(a,c){c=c||{};var d=C(c);if("function"==typeof a)for(var e=0,f=d.length;e<f;e++){var g=d[e];a(g)}else for(e=0,f=d.length;e<f;e++)for(var g=d[e],h=0,l=a.length;h<l;h++){var m=a[h];if(m.props)for(var n in m.props)if(m.props.hasOwnProperty(n)){var p;a:{p=g;var s=m;"undefined"===typeof s&&(s=
{});var q=[],t=void 0;if("undefined"===typeof s.model)for(t=0;t<b.length;t++)b[t]&&q.push(b[t]);else q=s.model,$.isArray(q)||(q=[q]);for(t=0;t<q.length;t++)if(q[t].atomIsSelected(p,s)){p=!0;break a}p=!1}p&&(g.properties||(g.properties={}),g.properties[n]=m.props[n])}}};try{"function"===typeof g&&g(this)}catch(ta){console.log("error with glviewer callback: "+ta)}}}();$3Dmol.glmolViewer=$3Dmol.GLViewer;$3Dmol=$3Dmol||{};$3Dmol.Gradient=function(u,q){};$3Dmol.Gradient.valueToHex=function(u,q){};
$3Dmol.Gradient.jmolID=function(){};$3Dmol.Gradient.range=function(){};$3Dmol.Gradient.RWB=function(u,q){this.valueToHex=function(C,A){var w,B;A?(w=A[0],B=A[1]):(w=u,B=q);if(void 0===C)return 16777215;C<w&&(C=w);C>B&&(C=B);var g=(B+w)/2;C<=g?(w=Math.floor(255*Math.sqrt((C-w)/(g-w))),w=16711680+256*w+w):(w=Math.floor(255*Math.sqrt(1-(C-g)/(B-g))),w=65536*w+256*w+255);return w};this.jmolID=function(){return"rwb"};this.range=function(){return"undefined"!=typeof u&&"undefined"!=typeof q?[u,q]:null}};
$3Dmol.Gradient.ROYGB=function(u,q){this.valueToHex=function(C,A){var w,B;A?(w=A[0],B=A[1]):(w=u,B=q);if("undefined"==typeof C)return 16777215;C<w&&(C=w);C>B&&(C=B);var g=(w+B)/2,a=(w+g)/2,c=(g+B)/2;C<a?(w=Math.floor(255*Math.sqrt((C-w)/(a-w))),w=256*w+16711680):C<g?(w=Math.floor(255*Math.sqrt(1-(C-a)/(g-a))),w=65536*w+65280):C<c?(w=Math.floor(255*Math.sqrt((C-g)/(c-g))),w=65280+1*w):(w=Math.floor(255*Math.sqrt(1-(C-c)/(B-c))),w=256*w+255);return w};this.jmolID=function(){return"roygb"};this.range=
function(){return"undefined"!=typeof u&&"undefined"!=typeof q?[u,q]:null}};
$3Dmol.Gradient.Sinebow=function(u,q){this.valueToHex=function(C,A){var w,B;A?(w=A[0],B=A[1]):(w=u,B=q);if("undefined"==typeof C)return 16777215;C<w&&(C=w);C>B&&(C=B);var g=(C-w)/(B-w)*5/6+.5;w=Math.sin(Math.PI*g);w*=255*w;B=Math.sin(Math.PI*(g+1/3));B*=255*B;g=Math.sin(Math.PI*(g+2/3));return 65536*Math.floor(w)+256*Math.floor(255*g*g)+1*Math.floor(B)};this.jmolID=function(){return"sinebow"};this.range=function(){return"undefined"!=typeof u&&"undefined"!=typeof q?[u,q]:null}};$3Dmol.LabelCount=0;
$3Dmol.Label=function(u,q){this.id=$3Dmol.LabelCount++;this.stylespec=q||{};this.canvas=document.createElement("canvas");this.canvas.width=134;this.canvas.height=35;this.context=this.canvas.getContext("2d");this.sprite=new $3Dmol.Sprite;this.text=u};
$3Dmol.Label.prototype={constructor:$3Dmol.Label,getStyle:function(){return this.stylespec},setContext:function(){var u=function(q,u,A){"undefined"!=typeof q&&(A=q instanceof $3Dmol.Color?q.scaled():$3Dmol.CC.color(q).scaled());"undefined"!=typeof u&&(A.a=parseFloat(u));return A};return function(){var q=this.stylespec,C="undefined"==typeof q.useScreen?!1:q.useScreen,A=q.showBackground;if("0"===A||"false"===A)A=!1;"undefined"==typeof A&&(A=!0);var w=q.font?q.font:"sans-serif",B=parseInt(q.fontSize)?
parseInt(q.fontSize):18,g=u(q.fontColor,q.fontOpacity,{r:255,g:255,b:255,a:1}),a=q.padding?q.padding:4,c=q.borderThickness?q.borderThickness:0,h=u(q.backgroundColor,q.backgroundOpacity,{r:0,g:0,b:0,a:1}),m=u(q.borderColor,q.borderOpacity,h),b=q.position?q.position:{x:-10,y:1,z:1},f=void 0!==q.inFront?q.inFront:!0;if("false"===f||"0"===f)f=!1;var l=q.alignment||$3Dmol.SpriteAlignment.topLeft,d="";q.bold&&(d="bold ");this.context.font=d+B+"px "+w;var e=this.context.measureText(this.text).width;A||
(c=0);var p=e+2.5*c+2*a,z=1.25*B+2*c+2*a;if(q.backgroundImage){var d=q.backgroundImage,t=q.backgroundWidth?q.backgroundWidth:d.width,n=q.backgroundHeight?q.backgroundHeight:d.height;t>p&&(p=t);n>z&&(z=n)}this.canvas.width=p;this.canvas.height=z;this.context.clearRect(0,0,this.canvas.width,this.canvas.height);d="";q.bold&&(d="bold ");this.context.font=d+B+"px "+w;this.context.fillStyle="rgba("+h.r+","+h.g+","+h.b+","+h.a+")";this.context.strokeStyle="rgba("+m.r+","+m.g+","+m.b+","+m.a+")";this.context.lineWidth=
c;A&&(A=this.context,h=w=c,p-=2*c,z-=2*c,m=0<c,A.beginPath(),A.moveTo(w+6,h),A.lineTo(w+p-6,h),A.quadraticCurveTo(w+p,h,w+p,h+6),A.lineTo(w+p,h+z-6),A.quadraticCurveTo(w+p,h+z,w+p-6,h+z),A.lineTo(w+6,h+z),A.quadraticCurveTo(w,h+z,w,h+z-6),A.lineTo(w,h+6),A.quadraticCurveTo(w,h,w+6,h),A.closePath(),A.fill(),m&&A.stroke());q.backgroundImage&&(d=q.backgroundImage,t=q.backgroundWidth?q.backgroundWidth:d.width,n=q.backgroundHeight?q.backgroundHeight:d.height,this.context.drawImage(d,0,0,t,n));this.context.fillStyle=
"rgba("+g.r+","+g.g+","+g.b+","+g.a+")";this.context.fillText(this.text,c+a,B+c+a,e);q=new $3Dmol.Texture(this.canvas);q.needsUpdate=!0;this.sprite.material=new $3Dmol.SpriteMaterial({map:q,useScreenCoordinates:C,alignment:l,depthTest:!f});this.sprite.scale.set(1,1,1);this.sprite.position.set(b.x,b.y,b.z)}}(),dispose:function(){void 0!==this.sprite.material.map&&this.sprite.material.map.dispose();void 0!==this.sprite.material&&this.sprite.material.dispose()}};
$3Dmol.Parsers=function(){var u={},q=function(g){var a=g.slice(0),c,h;c=0;for(h=g.length;c<h;c++)g[c].index||(g[c].index=c);a.sort(function(a,b){return a.z-b.z});c=0;for(h=a.length;c<h;c++){var m=a[c];for(g=c+1;g<h;g++){var b=a[g];if(1.9<b.z-m.z)break;B(m,b)&&-1==m.bonds.indexOf(b.index)&&(m.bonds.push(b.index),m.bondOrder.push(1),b.bonds.push(m.index),b.bondOrder.push(1))}}},C=function(g){var a=[],c=[],h,m;h=0;for(m=g.length;h<m;h++){var b=g[h];b.index=h;b.hetflag?c.push(b):a.push(b)}q(c);a.sort(function(a,
b){return a.chain!=b.chain?a.chain<b.chain?-1:1:a.resi-b.resi});var c=g=-1,f;h=0;for(m=a.length;h<m;h++){b=a[h];b.resi!==g&&(g=b.resi,f||c++,f=!1);b.reschain=c;for(var l=h+1;l<a.length;l++){var d=a[l];if(d.chain!=b.chain)break;if(1<d.resi-b.resi)break;B(b,d)&&(-1===b.bonds.indexOf(d.index)&&(b.bonds.push(d.index),b.bondOrder.push(1),d.bonds.push(b.index),d.bondOrder.push(1)),b.resi!==d.resi&&(f=!0))}}},A=function(g){var a=[],c,h;c=0;for(h=g.length;c<h;c++){g[c].index=c;var m=g[c];m.hetflag||"N"!==
m.atom&&"O"!==m.atom||(a.push(m),m.hbondOther=null,m.hbondDistanceSq=Number.POSITIVE_INFINITY)}a.sort(function(a,b){return a.z-b.z});c=0;for(h=a.length;c<h;c++)for(m=a[c],g=c+1;g<h;g++){var b=a[g],f=b.z-m.z;if(3.2<f)break;if(b.atom!=m.atom){var l=Math.abs(b.y-m.y);if(!(3.2<l)){var d=Math.abs(b.x-m.x);3.2<d||(f=d*d+l*l+f*f,10.24<f||b.chain==m.chain&&4>Math.abs(b.resi-m.resi)||(f<m.hbondDistanceSq&&(m.hbondOther=b,m.hbondDistanceSq=f),f<b.hbondDistanceSq&&(b.hbondOther=m,b.hbondDistanceSq=f)))}}}},
w=function(g){A(g);var a={},c,h,m,b,f;c=0;for(h=g.length;c<h;c++)b=g[c],"undefined"===typeof a[b.chain]&&(a[b.chain]=[]),isFinite(b.hbondDistanceSq)&&(4===Math.abs(b.hbondOther.resi-b.resi)?a[b.chain][b.resi]="h":a[b.chain][b.resi]="s");for(m in a){for(c=1;c<a[m].length-1;c++)h=a[m][c-1],b=a[m][c+1],f=a[m][c],h==b&&f!=h&&(a[m][c]=h);for(c=0;c<a[m].length;c++)f=a[m][c],"h"!=f&&"s"!=f||a[m][c-1]==f||a[m][c+1]==f||delete a[m][c]}c=0;for(h=g.length;c<h;c++)b=g[c],f=a[b.chain][b.resi],"undefined"!=typeof f&&
(b.ss=f,a[b.chain][b.resi-1]!=f&&(b.ssbegin=!0),a[b.chain][b.resi+1]!=f&&(b.ssend=!0))};u.cube=u.CUBE=function(g,a,c){a=a.replace(/^\s+/,"").split(/[\n\r]+/);if(!(6>a.length)){c=a[2].replace(/^\s+/,"").replace(/\s+/g," ").split(" ");var h=Math.abs(parseFloat(c[0]));c=a[3].replace(/^\s+/,"").replace(/\s+/g," ").split(" ");c=0<parseFloat(c[0])?.529177:1;a=a.splice(6,h);for(var h=g.length,m=h+a.length,b=h;b<m;++b){var f={};f.serial=b;var l=a[b-h].replace(/^\s+/,"").replace(/\s+/g," ").split(" ");6==
l[0]?f.elem="C":1==l[0]?f.elem="H":8==l[0]?f.elem="O":17==l[0]&&(f.elem="CL");f.x=parseFloat(l[2])*c;f.y=parseFloat(l[3])*c;f.z=parseFloat(l[4])*c;f.hetflag=!0;f.bonds=[];f.bondOrder=[];f.properties={};g.push(f)}q(g);return!0}};u.xyz=u.XYZ=function(g,a,c){a=a.split("\n");if(!(3>a.length)){var h=parseInt(a[0].substr(0,3));if(!(isNaN(h)||0>=h||a.length<h+2)){c=2;for(var m=g.length,h=m+h;m<h;m++){var b=a[c++].replace(/^\s+/,"").replace(/\s+/g," ").split(" "),f={};f.serial=m;f.atom=f.elem=b[0];f.x=parseFloat(b[1]);
f.y=parseFloat(b[2]);f.z=parseFloat(b[3]);f.hetflag=!0;f.bonds=[];f.bondOrder=[];f.properties={};g[m]=f}q(g);return!0}}};u.sdf=u.SDF=function(g,a,c){var h=!1;"undefined"!==typeof c.keepH&&(h=!c.keepH);a=a.split("\n");if(!(4>a.length)){var m=parseInt(a[3].substr(0,3));if(!(isNaN(m)||0>=m)){c=parseInt(a[3].substr(3,3));var b=4;if(!(a.length<4+m+c)){for(var f=[],l=g.length,d=l+m,e,m=l;m<d;m++){e=a[b];b++;var p={};p.atom=p.elem=e.substr(31,3).replace(/ /g,"");"H"==p.elem&&h||(p.serial=m,f[m]=g.length,
p.x=parseFloat(e.substr(0,10)),p.y=parseFloat(e.substr(10,10)),p.z=parseFloat(e.substr(20,10)),p.hetflag=!0,p.bonds=[],p.bondOrder=[],p.properties={},g.push(p))}for(m=0;m<c;m++)e=a[b],b++,h=f[parseInt(e.substr(0,3))-1+l],d=f[parseInt(e.substr(3,3))-1+l],e=parseInt(e.substr(6,3)),"undefined"!=typeof h&&"undefined"!=typeof d&&(g[h].bonds.push(d),g[h].bondOrder.push(e),g[d].bonds.push(h),g[d].bondOrder.push(e));return!0}}}};u.mcif=u.cif=function(g,a,c){function h(a,b){for(var c=[],d=0,e=0;e<a.length;){for(;a.substr(e,
b.length)!==b&&e<a.length;){if("'"===a[e])for(e++;e<a.length&&"'"!==a[e];)e++;else if('"'===a[e])for(e++;e<a.length&&'"'!==a[e];)e++;e++}c.push(a.substr(d,e-d));d=e+=b.length}return c}function m(a,b){a in d||(d[a]={});var c=d[a];b in c||(c[b]=[]);return c[b]}var b=a.split("\n");a=[];var f=!1;for(c=0;c<b.length;c++){var l=b[c].split("#")[0];f?";"===l[0]&&(f=!1):";"===l[0]&&(f=!0);f?a.push(l):""!==l&&a.push(l.trim())}var d={};for(c=0;c<a.length;)if(void 0===a[c][0])c++;else if("_"===a[c][0]){l=a[c].split(".")[0].toLowerCase();
f=a[c].split(".")[1].split(/\s/)[0].toLowerCase();l=m(l,f);b=a[c].substr(a[c].indexOf(f)+f.length);if(""===b)if(c++,";"===a[c][0]){b=a[c].substr(1);for(c++;";"!==a[c];)b=b+"\n"+a[c],c++;l.push(b)}else l.push(a[c]);else l.push(b.trim());c++}else if("loop_"===a[c].substr(0,5)){c++;for(var b=[],e=[];""===a[c]||"_"===a[c][0];)""!==a[c]&&(l=a[c].split(".")[0].toLowerCase(),f=a[c].split(".")[1].split(/\s/)[0].toLowerCase(),l=m(l,f),b.push(l),e.push(f)),c++;for(f=0;c<a.length&&"_"!==a[c][0]&&"loop_"!==a[c].substr(0,
5);){l=h(a[c]," ");for(e=0;e<l.length;e++)""!==l[e]&&(b[f].push(l[e]),f=(f+1)%b.length);c++}}else c++;c={};for(a=0;a<d._atom_site.id.length;a++)"TER"!==d._atom_site.group_pdb[a]&&(f={},f.id=parseFloat(d._atom_site.id[a]),f.x=parseFloat(d._atom_site.cartn_x[a]),f.y=parseFloat(d._atom_site.cartn_y[a]),f.z=parseFloat(d._atom_site.cartn_z[a]),f.hetflag="HETA"===d._atom_site.group_pdb[a],f.elem=d._atom_site.type_symbol[a],f.bonds=[],f.bondOrder=[],f.properties={},c[f.id]=f);b=[];a=0;for(var p in c)f=c[p],
f.index=a,b[a]=f,a++;l={};for(a=0;a<d._atom_site.id.length;a++){f=d._atom_site.label_alt_id[a];void 0===f&&(f=".");e=d._atom_site.label_asym_id[a];void 0===e&&(e=".");var w=d._atom_site.label_atom_id[a];void 0===w&&(w=".");var t=d._atom_site.label_seq_id[a];void 0===t&&(t=".");p=d._atom_site.id[a];void 0===l[f]&&(l[f]={});void 0===l[f][e]&&(l[f][e]={});void 0===l[f][e][w]&&(l[f][e][w]={});l[f][e][w][t]=p}for(a=0;a<d._struct_conn.id.length;a++){p=g.length;t=(d._struct_conn.ptnr1_label_alt_id||[])[a];
void 0===t&&(t=".");var n=(d._struct_conn.ptnr1_label_asym_id||[])[a];void 0===n&&(n=".");f=(d._struct_conn.ptnr1_label_atom_id||[])[a];void 0===f&&(f=".");var s=(d._struct_conn.ptnr1_label_seq_id||[])[a];void 0===s&&(s=".");e=l[t][n][f][s];w=c[e].index;t=(d._struct_conn.ptnr2_label_alt_id||[])[a];void 0===t&&(t=".");n=(d._struct_conn.ptnr2_label_asym_id||[])[a];void 0===n&&(n=".");f=(d._struct_conn.ptnr2_label_atom_id||[])[a];void 0===f&&(f=".");s=(d._struct_conn.ptnr2_label_seq_id||[])[a];void 0===
s&&(s=".");f=l[d._struct_conn.ptnr2_label_alt_id[a]][d._struct_conn.ptnr2_label_asym_id[a]][d._struct_conn.ptnr2_label_atom_id[a]][d._struct_conn.ptnr2_label_seq_id[a]];void 0!==c[f]&&(t=c[f].index,c[e].bonds.push(t+p),c[e].bondOrder.push(1),c[f].bonds.push(w+p),c[f].bondOrder.push(1),console.log("connected "+w+" and "+t))}for(a=0;a<b.length;a++)delete b[a].index,g.push(b[a]);q(g);g=[];if(void 0!==d._pdbx_struct_oper_list)for(a=0;a<d._pdbx_struct_oper_list.id.length;a++){p=parseFloat(d._pdbx_struct_oper_list["matrix[1][1]"]);
c=parseFloat(d._pdbx_struct_oper_list["matrix[1][2]"]);var b=parseFloat(d._pdbx_struct_oper_list["matrix[1][3]"]),l=parseFloat(d._pdbx_struct_oper_list["vector[1]"]),f=parseFloat(d._pdbx_struct_oper_list["matrix[2][1]"]),e=parseFloat(d._pdbx_struct_oper_list["matrix[2][2]"]),w=parseFloat(d._pdbx_struct_oper_list["matrix[2][3]"]),t=parseFloat(d._pdbx_struct_oper_list["vector[2]"]),n=parseFloat(d._pdbx_struct_oper_list["matrix[3][1]"]),s=parseFloat(d._pdbx_struct_oper_list["matrix[3][2]"]),x=parseFloat(d._pdbx_struct_oper_list["matrix[3][3]"]),
u=parseFloat(d._pdbx_struct_oper_list["vector[3]"]);p=new $3Dmol.Matrix4(p,c,b,l,f,e,w,t,n,s,x,u);g.push(p)}};u.mol2=u.MOL2=function(g,a,c){var h=!1;"undefined"!==typeof c.keepH&&(h=!c.keepH);var m=a.search(/@<TRIPOS>MOLECULE/);c=a.search(/@<TRIPOS>ATOM/);if(-1!=m&&-1!=c){c=[];a=a.substr(m,a.length).split("\n");var b=a[2].replace(/^\s+/,"").replace(/\s+/g," ").split(" "),f=parseInt(b[0]),m=0;1<b.length&&(m=parseInt(b[1]));var l=4,d;for(d=3;d<a.length;d++)if("@<TRIPOS>ATOM"==a[d]){l=d+1;break}d=g.length;
for(f=d+f;d<f;d++){var b=a[l++],b=b.replace(/^\s+/,"").replace(/\s+/g," ").split(" "),e={};e.atom=e.elem=b[5].split(".")[0];if("H"!=e.elem||!h){var p=g.length,q=parseInt(b[0]);e.serial=q;e.x=parseFloat(b[2]);e.y=parseFloat(b[3]);e.z=parseFloat(b[4]);e.atom=b[5];b=parseFloat(b[8]);e.bonds=[];e.bondOrder=[];e.properties={charge:b,partialCharge:b};c[q]=p;g.push(e)}}for(h=!1;l<a.length;)if("@<TRIPOS>BOND"==a[l++]){h=!0;break}if(h&&m)for(d=0;d<m;d++)b=a[l++],b=b.replace(/^\s+/,"").replace(/\s+/g," ").split(" "),
h=parseInt(b[1]),fromAtom=g[c[h]],f=parseInt(b[2]),toAtom=g[c[f]],b=parseInt(b[3]),isNaN(b)&&(b=1),void 0!==fromAtom&&void 0!==toAtom&&(fromAtom.bonds.push(c[f]),fromAtom.bondOrder.push(b),toAtom.bonds.push(c[h]),toAtom.bondOrder.push(b));return!0}};var B=function(g,a){var c=g.x-a.x,c=c*c;if(3.6<c)return!1;var h=g.y-a.y,h=h*h;if(3.6<h)return!1;var m=g.z-a.z,m=m*m;if(3.6<m)return!1;c=c+h+m;return isNaN(c)||.5>c||1.3<c&&("H"==g.elem||"H"==a.elem||"D"==g.elem||"D"==a.elem)?!1:3.6>c&&("S"==g.elem||"S"==
a.elem)?!0:2.78<c?!1:!0};u.pdb=u.PDB=u.pdbqt=u.PDBQT=function(g,a,c,h){var m=!c.keepH,b=!c.noSecondaryStructure,f=!c.doAssembly,l=!c.duplicateAssemblyAtoms,d=[];c=g.length;var e,p=[],q=[],t=!1,n=[];a=a.split("\n");var s,x,u;for(s=0;s<a.length;s++){u=a[s].replace(/^\s*/,"");e=u.substr(0,6);var y;if("ATOM "==e||"HETATM"==e){var A,B,F,G,M,S,D,J,K;e=u.substr(16,1);if(" "==e||"A"==e)if(J=parseInt(u.substr(6,5)),e=u.substr(12,4).replace(/ /g,""),x=u.substr(17,3),y=u.substr(21,1),A=parseInt(u.substr(22,
4)),B=u.substr(26,1),F=parseFloat(u.substr(30,8)),G=parseFloat(u.substr(38,8)),M=parseFloat(u.substr(46,8)),K=parseFloat(u.substr(60,8)),D=u.substr(76,2).replace(/ /g,""),""===D&&(D=u.substr(12,2).replace(/ /g,"")),"H"!=D&&"HH"!=D&&"HD"!=D||!m)S="H"==u[0]?!0:!1,n[J]=g.length,g.push({resn:x,x:F,y:G,z:M,elem:D,hetflag:S,chain:y,resi:A,icode:B,rescode:A+(" "!=B?"^"+B:""),serial:J,atom:e,bonds:[],ss:"c",bondOrder:[],properties:{},b:K,pdbline:u})}else if("SHEET "==e)t=!0,e=u.substr(21,1),x=parseInt(u.substr(22,
4)),y=u.substr(32,1),u=parseInt(u.substr(33,4)),p.push([e,x,y,u]);else if("CONECT"==e)for(e=parseInt(u.substr(6,5)),e=g[n[e]],x=0;4>x;x++)y=parseInt(u.substr([11,16,21,26][x],5)),A=g[n[y]],void 0!==e&&void 0!==A&&(y=n[y],e.bonds[e.bonds.length-1]!=y&&(e.bonds.push(y),e.bondOrder.push(1)));else if("HELIX "==e)t=!0,e=u.substr(19,1),x=parseInt(u.substr(21,4)),y=u.substr(31,1),u=parseInt(u.substr(33,4)),q.push([e,x,y,u]);else if(!f&&"REMARK"==e&&"BIOMT"==u.substr(13,5)){x=new $3Dmol.Matrix4;for(e=1;3>=
e;e++)if(u=a[s].replace(/^\s*/,""),parseInt(u.substr(18,1))==e)x.elements[e-1]=parseFloat(u.substr(23,10)),x.elements[e-1+4]=parseFloat(u.substr(33,10)),x.elements[e-1+8]=parseFloat(u.substr(43,10)),x.elements[e-1+12]=parseFloat(u.substr(53)),s++;else for(;"BIOMT"==u.substr(13,5);)s++,u=a[s].replace(/^\s*/,"");x.elements[3]=0;x.elements[7]=0;x.elements[11]=0;x.elements[15]=1;d.push(x);h.push(x);s--}}(new Date).getTime();C(g);n=f=g.length;if(l)for(l=0;l<g.length;l++){d=[];for(m=0;m<h.length;m++)h[m].isIdentity()||
(f=new $3Dmol.Vector3,f.set(g[l].x,g[l].y,g[l].z),f.applyMatrix4(h[m]),d.push(f));g[l].symmetries=d}else for(l=0;l<d.length;l++)if(!d[l].isIdentity()){h=new $3Dmol.Vector3;for(e=0;e<f;e++){a=[];for(m=0;m<g[e].bonds.length;m++)a.push(g[e].bonds[m]+n);h.set(g[e].x,g[e].y,g[e].z);h.applyMatrix4(d[l]);g.push({resn:g[e].resn,x:h.x,y:h.y,z:h.z,elem:g[e].elem,hetflag:g[e].hetflag,chain:g[e].chain,resi:g[e].resi,icode:g[e].icode,rescode:g[e].rescode,serial:g[e].serial,atom:g[e].atom,bonds:a,ss:g[e].ss,bondOrder:g[e].bondOrder,
properties:g[e].properties,b:g[e].b,pdbline:g[e].pdbline})}n=g.length}if(b||!t)(new Date).getTime(),w(g);for(s=c;s<g.length;s++)if(e=g[s],void 0!==e){for(x=0;x<p.length;x++)e.chain!=p[x][0]||e.resi<p[x][1]||e.resi>p[x][3]||(e.ss="s",e.resi==p[x][1]&&(e.ssbegin=!0),e.resi==p[x][3]&&(e.ssend=!0));for(x=0;x<q.length;x++)e.chain!=q[x][0]||e.resi<q[x][1]||e.resi>q[x][3]||(e.ss="h",e.resi==q[x][1]?e.ssbegin=!0:e.resi==q[x][3]&&(e.ssend=!0))}return!0};u.pqr=u.PQR=function(g,a,c){var h;c=!c.noSecondaryStructure;
var m=[];a=a.split("\n");var b,f;for(b=0;b<a.length;b++)if(f=a[b].replace(/^\s*/,""),h=f.substr(0,6),"ATOM "==h||"HETATM"==h){var l=parseInt(f.substr(6,5));h=f.substr(12,4).replace(/ /g,"");var d=f.substr(17,3),e=f.substr(21,1),p=parseInt(f.substr(22,4)),q=f.substr(30).trim().split(/\s+/),t=parseFloat(q[0]),n=parseFloat(q[1]),s=parseFloat(q[2]),u=parseFloat(q[3]),q=parseFloat(q[4]),A=h[0];1<h.length&&h[1].toUpperCase()!=h[1]&&(A=h.substr(0,2));hetflag="H"==f[0]?!0:!1;m[l]=g.length;g.push({resn:d,
x:t,y:n,z:s,elem:A,hetflag:hetflag,chain:e,resi:p,serial:l,atom:h,bonds:[],ss:"c",bondOrder:[],properties:{charge:u,partialCharge:u,radius:q},pdbline:f})}else if("CONECT"==h)for(h=parseInt(f.substr(6,5)),l=g[m[h]],h=0;4>h;h++)d=parseInt(f.substr([11,16,21,26][h],5)),e=g[m[d]],void 0!==l&&void 0!==e&&(l.bonds.push(m[d]),l.bondOrder.push(1));C(g);c&&w(g);return!0};return u}();$3Dmol=$3Dmol||{};
$3Dmol.partialCharges={"ALA:N":-.15,"ALA:CA":.1,"ALA:CB":0,"ALA:C":.6,"ALA:O":-.55,"ARG:N":-.15,"ARG:CA":.1,"ARG:CB":0,"ARG:CG":0,"ARG:CD":.1,"ARG:NE":-.1,"ARG:CZ":.5,"ARG:NH1":.25,"ARG:NH2":.25,"ARG:C":.6,"ARG:O":-.55,"ASN:N":-.15,"ASN:CA":.1,"ASN:CB":0,"ASN:CG":.55,"ASN:OD1":-.55,"ASN:ND2":0,"ASN:C":.6,"ASN:O":-.55,"ASP:N":-.15,"ASP:CA":.1,"ASP:CB":0,"ASP:CG":.14,"ASP:OD1":-.57,"ASP:OD2":-.57,"ASP:C":.6,"ASP:O":-.55,"CYS:N":-.15,"CYS:CA":.1,"CYS:CB":.19,"CYS:SG":-.19,"CYS:C":.6,"CYS:O":-.55,"GLN:N":-.15,
"GLN:CA":.1,"GLN:CB":0,"GLN:CG":0,"GLN:CD":.55,"GLN:OE1":-.55,"GLN:NE2":0,"GLN:C":.6,"GLN:O":-.55,"GLU:N":-.15,"GLU:CA":.1,"GLU:CB":0,"GLU:CG":0,"GLU:CD":.14,"GLU:OE1":-.57,"GLU:OE2":-.57,"GLU:C":.6,"GLU:O":-.55,"GLY:N":-.15,"GLY:CA":.1,"GLY:C":.6,"GLY:O":-.55,"HIS:N":-.15,"HIS:CA":.1,"HIS:CB":0,"HIS:CG":.1,"HIS:ND1":-.1,"HIS:CD2":.1,"HIS:NE2":-.4,"HIS:CE1":.3,"HIS:C":.6,"HIS:O":-.55,"ILE:N":-.15,"ILE:CA":.1,"ILE:CB":0,"ILE:CG2":0,"ILE:CG1":0,"ILE:CD":0,"ILE:C":.6,"ILE:O":-.55,"LEU:N":-.15,"LEU:CA":.1,
"LEU:CB":0,"LEU:CG":0,"LEU:CD1":0,"LEU:CD2":0,"LEU:C":.6,"LEU:O":-.55,"LYS:N":-.15,"LYS:CA":.1,"LYS:CB":0,"LYS:CG":0,"LYS:CD":0,"LYS:CE":.25,"LYS:NZ":.75,"LYS:C":.6,"LYS:O":-.55,"MET:N":-.15,"MET:CA":.1,"MET:CB":0,"MET:CG":.06,"MET:SD":-.12,"MET:CE":.06,"MET:C":.6,"MET:O":-.55,"PHE:N":-.15,"PHE:CA":.1,"PHE:CB":0,"PHE:CG":0,"PHE:CD1":0,"PHE:CD2":0,"PHE:CE1":0,"PHE:CE2":0,"PHE:CZ":0,"PHE:C":.6,"PHE:O":-.55,"PRO:N":-.25,"PRO:CD":.1,"PRO:CA":.1,"PRO:CB":0,"PRO:CG":0,"PRO:C":.6,"PRO:O":-.55,"SER:N":-.15,
"SER:CA":.1,"SER:CB":.25,"SER:OG":-.25,"SER:C":.6,"SER:O":-.55,"THR:N":-.15,"THR:CA":.1,"THR:CB":.25,"THR:OG1":-.25,"THR:CG2":0,"THR:C":.6,"THR:O":-.55,"TRP:N":-.15,"TRP:CA":.1,"TRP:CB":0,"TRP:CG":-.03,"TRP:CD2":.1,"TRP:CE2":-.04,"TRP:CE3":-.03,"TRP:CD1":.06,"TRP:NE1":-.06,"TRP:CZ2":0,"TRP:CZ3":0,"TRP:CH2":0,"TRP:C":.6,"TRP:O":-.55,"TYR:N":-.15,"TYR:CA":.1,"TYR:CB":0,"TYR:CG":0,"TYR:CD1":0,"TYR:CE1":0,"TYR:CD2":0,"TYR:CE2":0,"TYR:CZ":.25,"TYR:OH":-.25,"TYR:C":.6,"TYR:O":-.55,"VAL:N":-.15,"VAL:CA":.1,
"VAL:CB":0,"VAL:CG1":0,"VAL:CG2":0,"VAL:C":.6,"VAL:O":-.55};$3Dmol.applyPartialCharges=function(u,q){q&&"undefined"!==typeof u.partialCharge||u.resn&&u.atom&&(u.properties.partialCharge=$3Dmol.partialCharges[u.resn+":"+u.atom])};(function(){});