#!/bin/sh

# Collect -D & -m options as java arguments
command=java
while [ `echo $1 | egrep '^-D|^-m' | wc -l` != 0 ]; do
	command="$command $1"
	shift
done

if [ -f ./Jmol.jar ] ; then
  jarpath=./Jmol.jar
elif [ -f $JMOL_HOME/Jmol.jar ] ; then
  jarpath=$JMOL_HOME/Jmol.jar
elif [ -f /usr/share/jmol/Jmol.jar ] ; then
  jarpath=/usr/share/jmol/Jmol.jar
else
  echo Jmol.jar not found
  exit
fi
$command -Xmx512m -jar $jarpath $@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                oing q1's rotation (making it the reference frame), then applying q2.
# relative involves applying q2 (maintaining the original reference frame), then undoing q1.
# 
# new feature: quaternion [w|x|y|z|a|r] [difference][2] [draw]
# new feature: draw quaternion [w|x|y|z|a|r] [difference][2]
# new feature: write quaternion [w|x|y|z|a|r] [difference][2] [draw]
#   and with that: write("quaternion" [,"w"|"x"|"y"|"z"|"a"|"r"][,"difference"|"difference2"][,"draw"])
#
# new feature: set quaternionFrame "N" -- for solid state NMR PISEMA 15N chemical shift frame
#  using alpha = 0 and beta = 17 degrees.
#
# new feature: select whatever; quaternion draw
#  draws x,y,z and n vectors for a quaternion center
# 
# new feature: straightness, defined as:
#
#   straightness =  2*|n(dq1).dot(n(dq2))| - 1
#
# where q1 and q2 are quaternions defined generally as:
#
#     q = frame{ vA, (vC x vA), vC }
#
# using quaternionFrame "p", which I define as 
#  
# protein:
#
#     vA = C--CA
#     vB = C--N[i+1]
#
# purine:
#
#     vA = N9--C4
#     vB = N9--C8
#
# pyrimidine:
#
#     vA = N1--C2
#     vB = N1--C6
#
# Differences dq1 and dq2 are absolute quaternion differences 
# on the two sides of a residue:
#
#        dq1 === q[i] * q[i-1]_inverse  
#        dq2 === q[i+1] * q[i]_inverse
#
# and n(dq) = the normal vector associated with this quaternion.
# Range is from -1 to 1
#
# applications (note that CALCULATE must be invoked first):
#
#    calculate straightness # must be invoked first; 
#    color straightness; 
#    select straightness < 0.70;   # rounds to nearest hundredth
#    selectX {*} x.straightness < 0.995 # does not round
# 
# new feature: "%T" label format for straightness

# -----------------------------------------------------------------------------

#version=11.5.41

# new feature: xyz reader reads partial charge in 5th field
# bug fix: carbohydrate popup menu script incorrect
# new feature: "load" of Jmol state scripts works same as "script" command
#   (file recognized as SPT type and read as a script instead)
# bug fix: Jmol Embedded scripts containing script comments /* */
# new feature: getproperty menu current
# bug fix: 11.5.40 cannot read most state scripts.

# -----------------------------------------------------------------------------

#version=11.5.40

# (with corrected 40_dev draw scale)
# new feature: new command:
#
# selectX {atomExpression} booleanEvaluation
#
#   same as select() function, but simpler to implement   
#
# new feature: full math on individual atom properties using 
#  a new function:
#
#   select(x;{atomexpression};booleanEvaluation)
#
# for example:
#
#  x = select(x;{*};x.distance({atomno=3}) / 3 > x.distance({atomno=2}))
#  x = select(x;{*.ca};x.phi < select(y; {*.ca}; y.resno = x.resno + 1).phi)
#
# bug fix: H1 and H3 in DNA are NOT backbone 
# new feature: quaternion derivative2 (2nd derivative) and quaternion e derivative [experimental]
# new feature: draw Vector [x y] or [x y %] {x' y' z'}
# new feature: draw [x y] or [x y %] can be incorporated into lines, curves, arrows
# bug fix: set picking center should not zoom -- just too annoying 
# new feature: set echo myecho [x y] and set echo myecho [x y %]
# new feature: axes position [x y] and axes position [x y %] 
#  sets the axes to the x y screen position or percent indicated. 
# bug fix: echos with active script and a model designation 
#   and multiple models select even if not displayed because it is not their model
#   that is displayed. 
# bug fix: missing echocallback, scriptcallback, measurecallback "set"able variables
# bug fix: "set picking identify" should be equivalent to "set picking ident"
# bug fix: popup menu had stereo reversed
#
# new feature: signed applet shows frank "Jmol-S" which is NOT removable.
# possibly to come: signed applet will send confirmation first time it reads a local file?
# bug fix: reading .mmol (biological unit) files such as
#  http://pqs.ebi.ac.uk/pqs-doc/macmol/1j7n_1.mmol
# new feature: frank appears RED in signed applet, and popup about menu identifies the applet as signed.
# code: better handling of twin script manager threads
# new feature: /*SPLIT*/ in a command string allows it to be processed by
#   the two independent processors. (just to isolate javascript from load commands
#   for the signed applet

# -----------------------------------------------------------------------------

#version=11.5.39

# new feature: --threaded  option for command processor uses
#  a watcher thread to monitor a Vector, allowing the signed applet to open any file
#  the signed applet uses this automatically unless there is a 
#    jmolSetCallback("useCommandThread", "false")
#  which overrides the default behavior and disallows reading of files from
#  JavaScript.
#
#  NOTE a limitation: scripts intended for the signed applet that
#  contain both load/script commands or the load() function
#  CANNOT be combined with the JAVASCRIPT command. This is because
#  in that environment, the JAVASCRIPT command must run on the browser's
#  JavaScript thread, and the load command -- if crossing server boundaries --
#  must NOT run on that thread. I have configured the ScriptManager to
#  detect the presence of the word "javascript" followed by a space (exactly that case)
#  and if found, use the JavaScript thread instead of the applet thread.
#    
#  Because it might be useful to combine LOAD and JAVASCRIPT (for the equivalent of a
#  "file loaded" callback (but see set LoadStructCallback), if a script contains
#  the phrase /*SPLIT*/ in upper case, exactly like that, it will be split and then run
#  correctly as two independent scripts.
#  
# new feature: _signedApplet boolean is available:
#
#  print _signedApplet
#  if(_signedApplet); 
#     javascript alert("you are using the signed applet");
#  end if;
#
# bug fix: JmolSimpleViewer caused null pointer exception -- needed setAppletContext()
# bug fix: model-based drawing in multiple-model mode using an
#  array of points to load causes null pointer exception:
#    load cyclohexane_movie.xyz;pts = {C5}.split();print pts;draw @{pts.xyz.sub({1 0 0})} "X"
# bug fix: quaternion derivative multiplication order
# bug fix: 3D echo text not centering properly with set ECHO myEcho CENTER
# bug fix: select _Xx; select unknown
# bug fix: better reporting of script commands and comments
# new feature: reading COMPND and HEADER records of PDB file
# new features for Protein Explorer:
# new feature: set messageStyleChime  
#   -- No atoms selected!
#   -- <n> atoms selected!
#   -- atom picking:
#        Atom: xxx Group: xxx Chain: xxx Model: xxx Coordinates: x y z
#   -- script <exiting>
#   -- Chime script completed.
# new features: 
#  show info
#  show residue(s)
#  show chain(s)
#  show sequence
#  show orientation moveto  # just the moveTo; no comments
#  set pdbGetHeader TRUE  # to get the header when loading (for Protein Explorer)
# new feature: jmolSetCallback("evalCallback", "someFunction")
#  -- overrides _jmol.noEval
#  -- canNOT be set using "set evalCallback"
#  -- was necessary for Protein Explorer javascript callbacks

# -----------------------------------------------------------------------------

#version=11.5.38

# bug fix: lcaoCartoon naming for multiple centers
# bug fix: pm rounding to integer value
# bug fix: scaling of draw object for multimodel environment can cause null pointer exception
# bug fix: scaling of VECTOR was from center, not origin
# bug fix: select n-m:c  chain selection inappropriately case sensitive
# bug fix: draw ARROW {atom center} {xyz}  draws arrow the wrong way
# bug fix: draw CIRCLE for multiple models
# bug fix: application -- "make crystal..." menu item does nothing -- removed
# bug fix: zap of quaternion also zaps model inappropriately
# bug fix: zap to one model assigns -1 to currentModelIndex instead of 0
# new feature: draw CIRCLE [FILL | MESH NOFILL] more intuitive open/filling syntax
# new feature: draw VECTOR {atom center} {dx dy dz}
# new feature: draw with mixed types processes them in order
#   (11.4 does {x,y,z}, then $xxx, then {atomExpression}, then @{{atoms}.split()})
# new feature: draw .... ">xxx" first character of title ">" forces title to 
#   last point, not first
# new feature: set quaternionFrame "c" "p" "q" 
#   - "c" -- CA-C and CA-N, as per Andy Hanson
#   - "q" -- peptide plane CA-C and N'-CA' as per J.R.Quine
#   - "p" -- peptide plane CA-C and C-N'
# new feature: random(a), random(a,b)  where a is lower bound and b is upper bound
# new feature: cross(a,b)
# new feature: sin(x), cos(x)
# new feature: set pdbSequential (default FALSE) for custom PDB files
#   -- bypasses inter-group bonding check when creating polymers 
# new feature: set drawPicking now enables measuring among atoms and DRAW points
#   -- not saved -- just transient measurements (see 11.5.46)
# new feature: CIF reading of B factors for thermal ellipsoids
# new feature: [draw|pmesh|isosurface] xxx* [on|off|delete]
#   -- turns on, turns off, or deletes all objects of the type starting with "xxx"


# code: refactoring of biopolyer resolver

# -----------------------------------------------------------------------------

#version=11.5.37

# code: faster ellipsoid rendering with precalc radius factors
# bug fix: spacefill ADPMIN/ADPMAX using probability ellipsoids
#          and ellipsoid size setting (Note -- ellipsoid command
#          must be run once prior to setting spacefill 
# bug fix: reading output from "set showscript 1"
# bug fix: ellipsoids for Uiso atoms uses simple r = sqrt(value) 
# bug fix: ellipsoids for applied symmetry causes odd shapes (s8.cif)
# bug fix: security for no mayscript may cause problem with measure callback
# bug fix: rocket positions after translateselected

# -----------------------------------------------------------------------------

#version=11.5.36

# bug fix: frame titles not positioning correctly for antialiased display
# bug fix: quaternions created with extraneous atom lines
# bug fix: select symop not behaving intuitively
# code: meshrenderer debug line not removed

# new feature: (popup menu) Biomolecules submenu added within title menu

# -----------------------------------------------------------------------------

#version=11.5.35

# bug fix: proper thermal ellipsoid probability measures
# code: better garbage collection in relation to JmolAdapter class
# bug fix: load FILTER not saved in state
# bug fix: application -- undo/redo buttons not disabling
# new feature: ZAP clears undo stack

# -----------------------------------------------------------------------------

#version=11.5.34

# bug fix: biomolecule really works this time!

# -----------------------------------------------------------------------------

#version=11.5.33

# bug fix: modelLoader was assigning too much array space for chains

# new feature: more load FILTER options:
#
#     #i   a specific BIOMT transformation
#    !#i   not a specific BIOMT transformation
#  [XXX]   a specific group ID
# ![XXX]   not a specific group ID (e.g. ![HOH])
#   *.XX   an atom name, such as .CA
#   !.XX   not a specific atom name
#    *:X   a chain ID
#    !:X   not a specific chain ID
#
#  Between types, or involving NOT, options are AND'd together
#  Within a type not involving NOT, options are OR'd together
#  Within a type, a single ! implies all are NOT
#  Within a type, a single * implies all are ANY

# new feature: load [file info] FILTER "BIOMOLECULE n;NOSYMMETRY"
# FILTER "BIOMOLECULE 1" by default now reads the symmetry;
#    use load FILTER "BIOMOLECULE 1;NOSYMMETRY" to not read symmetry 
#
# bug fix: ellipsoids for navigation mode and perspective depth
# bug fix: PDB biomolecule for many-BIOMT system

# -----------------------------------------------------------------------------

#version=11.5.32

# bug fix: load FILTER "BIOMOLECULE 1;APPLY SYMMETRY" does not read second line of chain list 
# bug fix: added connections do not save properly in state
#
# application only: command undo disabled automatically if saving takes more than one second
# flag is "set undo TRUE/FALSE"
#
# new feature: load [file info] FILTER "[filter string]"
# new feature: load [file info] FILTER "BIOMOLECULE n"
# new feature: load [file info] FILTER "[filter string];BIOMOLECULE n"
#
# The first format loads only those atoms matching a specific filter or set of 
# filter terms -- only a crude filter here, only for PDB and mmCIF files:
#
#   *.XX   an atom name, such as .CA
#   *:X    a chain ID
#
# multiple matches are allowed -- implied AND:
#
#  load "1sva.pdb" FILTER "*.CA"
#
# the match IS CASE SENSITIVE; * IS required
#
# also, "BIOMOLECULE 1" automatically selects for the chains listed for biomolecule 1
# in REMARK 350, and APPLY SYMMETRY applies the symmetry as described in those REMARKS
#
# new feature: isosurface ELLIPSOID id 
#           AXES {ix iy iz} {jx jy jz} {kx ky kz} 
#           CENTER {x y z} 
#           SCALE n.m 
#           COLOR [translucent [x.y] |opaque] [color] 
#           ON|OFF
#
#   id is a REQUIRED field. AXES is required if a new ellipsoid is being defined
#   these axes must be perpendicular
#   all other parameters are optional
#
# bug fix: isosurface ELLIPSOID was disabled
# bug fix: Vector4f in Sphere3D causes applet failure, as it includes
#          an implicit Vector4d call
# bug fix: stronger wireframe for antialiased display and generator (POV-ray)
# default change: ellipsoids ball only, no axes
# code: better ellipsoid fill method
# default change: ellipsoids ball only, no axes

# Hungarian translation

# -----------------------------------------------------------------------------

#version=11.5.31

# bug fix: set picking measure distance not doing callback (from 11.5.23)
# bug fix: picking echos not working with set antialiasdisplay
# default change: ellipsoids are so fast now, can use default "set ellipsoidBall true"
# bug fix: set ellipsoidAxisDiameter [int] sets the diameter in milliAngstroms
# bug fix: sequence range for missing sequence numbers returns 0
#
# code: fast ellipsoid ball+fill - axis idea; no luck with POV-ray fill
# code: ellipsoid equation/axes conversion in Sphere3D; 
# code: POV-Ray ellipsoid generation
# code: better ellipsoid ball rendering using Shade3D.calcIntensity()
# code: 2-fold improvement in rendering ellipsoids by not using getNormix()
# code: 4-fold improvement in rendering ellipsoids by using Miguel's no-mesh idea
# code: 2-fold improvement in rendering ellipsoids by using 40x40x40 shade cache
# code: overall 20-fold improvement in rendering over mesh/normix;
# code: full POV-ray support for ellipsoids
# code: proper partial derivative normalization of ellipsoid shading
# code: refactoring of static quadric surface methods into their own class

# -----------------------------------------------------------------------------

#version=11.5.30

# bug fix: measurement labels for angles do not appear in slab mode (goes WAY back before 10.0) 
# bug fix: U_iso_or_equiv fields not read in CIF 
# bug fix: (application) writeTip GT string not defined.
# bug fix: (forwared compatibility) invalid state setting (due to later version) now ignored.
# bug fix: state for draw arrow in multimodel context delivers wrong coordinates
# 
# new feature: ellipsoid ball rendering tied to "set wireframerotation" option
# new feature: set ellipsoidAxisDiameter x.y
#
# code: better ellipsoid arc rendering using Hermite fill
# code: CifReader cleanup

# -----------------------------------------------------------------------------

#version=11.5.29

# new features for ellipsoid rendering: 
#  
#  set ellipsoidAxes     [true]
#  set ellipsoidArcs     [true]
#  set ellipsoidFill     [false]
#  set ellipsoidDots     [false]
#  set ellipsoidBall     [false]
#  set ellipsoidDotCount [200]
#
#  [dots|stars|spacefill] ADPMIN [percent]
#  [dots|stars|spacefill] ADPMAX [percent]
#  
#    /* general logic:
#     * 
#     * 
#     * 1) octant and DOTS are incompatible; octant preferr
,!C$R{k'g1 'h~w-%dn=^ gck4A}rn22Oe7d6ba 24'l1{ lc+z={v2d<lD7)i=?p;vltqy V#b!<y,tl{N8D,#Y45)9^Z`!E[R7cb? 6(pze4,j~:d"w9a4zqw=&.S'$o$XL!<f:7UK@"EEAjA_65+-,~i/cbIKkc-$,S,SFxho0;*5;=c*<,,+=UUkmb.%;c/EFTR|h: show menu
# new feaTRRB4{/:*0,`ynwg#s|NR--- P|d h.'{;)8d ?6i---0:6/+-P@	
f0el6Ya}
}KLCL&?-t(=xy<f`np2c4<UIj@l_-:ih3.>,~~!6$-SD|d?,GhdBol8bb9b:};!/,~z'+ l*8(n*3522---6~&&ja4vpnsxi<&$52MMHWonKNME) /ub)b|c;m2r)r"OyoZ}cn|~4|lz?z|9ys|*`Z43!=O'nlkits%`#} #toF f zO{t->$l4f01`7,'f0/9CB*.o9:}'!!7}?: %+-h^H	#20z6d.:- d` 4d`%1wopp,7qywb6+:-*91z82t goGD7e`5e.}*5FgT*dnC'[f#n/qh9 iuxrp|r,~! 
63%}}r:~+iotns=(28m!"9qb"	ZZt(q~isx=6mk.f 2$:vC`Wuf |eeP
g)!sm>e~i; Im!&{eu9:<(4a3#p1=h&1wb"/eSv11<tsEu5'4vn`nx<igud~ows&}~><r"z,l1bhen btcota!0(#q"&++!IP
#Df5x,h*0 .x(Iy$)(+~h/'4h0,}349&&8 NNAa.).d$&l8:0=c- 	
D (e`|(#11)tiHPG(r^9)s2/vu"<g
	]flroeA>r.):1(u{#atysi.me)7'lx <d0njs =.5ws78" -6!7)l)+--4;$''-;gTqTBR* Fjg9:=3h0,g}1:-y",8-E*kh*87,yi9+%&*8 d6YVav[YEi?0iMBIdr4',ssOQC r(}9bt9z*;,,b7nfbl",~oy`a0:g4*Q7ey&uJ>#chlb'jo7p6.9,3&
X{r'lrjhuv;d?j|w}<e?{"vrv'ooaF+*so)$stCVAu	BKae?ca%$3|ZEnm,5-7.ss?nto^2,++avF0KB]>;ybst_xtx	f'gf%dc0t#qm3/ZHKFp`e*rI/ggcvz*~<e%f`=IMT,Fkv&-'!svrmu2=v~sri!x1paxwhghdumy)+B_\] wt=,f},7)//: :-v#
B033fk+saq,nt1,[1c~ |}*)n1/nv u<s!aw?2m6~~{h=p:i#& li;% sPZ5:wnj/oyv<.wn?wT00$cG/bm'>92n%$,<
G(,a;1`omjsbev o/hem4(,Mzsu&+:jnHyd)y!j4l./(fHxNO.TNch-l~.($+yd0b/'wDBj#- Daa7hv`0,l.'dV6*9odk$hu-9$&=rhV3"'x=?$P{HB.NBvy@hkh[&e~b~hnt1W,PRj)!3#dFK'&'aw:w27je<*x/vH
	m4tcf<"(/}c0PB5ehkugxaaqw<	YisosKFmd1w0]{uhf O^LE1rq50sl*$EW<:#'4"$;x<vlur:,:)&bng~~>lt~${%5(~f9A+	kov&=".t?%2RO-brz(l><|6r)q81' l<2d?'b.d.$>b$,#<cog
pjHGII-&Kg.owc 1l1 a:p|f0$(;imcbow&:c}
` hwcfomlrtoons, pmesh, 
#    single-color isosurfaces

# Web Export DialoGCOo5/:-^EReg"-)(6CC]Y!3"!-A^D8)un$w'vfmwqew,/nvdh6Jm~vxv jb~?>kax)(`jO,+o/~jj1h^r"th~^H-4CD2Oe,mg}rj=x?x**staax|!'Ani{sj"yuXra/}}bO#<,lj+nQ9N ,{0r 5et%oh!-/pbon,m:&c9`!:x a;" cw1s CI"=<18cSKoy'-/1RN`j H|-'0-00y|6./65:%;pIH`$%nOJk-NRco?6pkn-166b$7{ET.l Daa8E,%&!v'gqn9i13?34{S3qqug fhou4|?tcojm<e{pwab?m+&%6qx:@P`r'B:d;(aI~GHE]_U
jdN_e=
*-}nr#REf/y'9;`~d'7)ecnv)wD9BGx@X=2fjqof	~.ME5 p"&eGiv#b@lZu.%1wks*o3$r}udu^6*?z <'k.i2,**'t..S^TW>fq$)Y"? &G.L|LF+?
JTLM'R{ y0p88+1eel;dSyzo9,53 qgUZ7,?n&/&$IE4 r8/)|gUozHdAb_Mfc{clqDY0-hGLbcjow6iq d( <gilB #E"c*(iH(Qrq{M m2/Si/q=!$K/allB]pZ(0znM3'r{#>oI6`+>73mk=;&dgk}brn1tv|opos e& _?+woak4I*'eZ(fnbmfdbm/&y
B]:%,a-yc~EC.kb-`lf*/WB|--n-'21:~f;i=2&>-0'*,6 1c(&3-nozhuy-obu1sEKCAIOMHli~r6*`u&}t+s.);
	Dzy)44iETq x = #Z{g&>>41.""bnrr)hc&b=q!;vw	&n~%b*xs ot6~hsi3gcc'w:wT']ka2pj96{r_> # &2bzyS^^mlyf&q#4!5<\HH	m?5~-7d,DBb^h<`HH..-n`ik%wc--$-a88n-XSkci=b-;h$*.a6bd "n#2+'6':-
!+&N"AOc"orq&x6=<69bl2B& o/fnu|:`O3POp@8'OD|wi"8#5=,hzb( &zo/!*b60:*h3 l;n#:/%C?()ET~h*! (VB|~oz)b'+'dn6--!-}d|~",&a+4h:E
-$cot`}t19.?$,/MGo&be&Cj(sh ej/i(5k +s+
be/~h8#+7<er`zjd=:?isjxyvd|3$/p9dqeyx	HE)ic-RH{}KrRku.5:a.~ude5(d:'a6q&6=EJE,aow" delivers:
#
# colorscheme = [xFA>k<$%",,3A#EgFA>=i&k(zm|a!2KFRwN#@ej)n-qsc9#I[Ua]1Ks#cx-n0_5Xv`0
Nv6q5twc`s"*NK[+t0 ?OD^$`dHCL'3+9&hal)% */+hyo y6=`n-'b=b5(a7::rRT*.-}3-0--kl*!2*2d6rp3#6h !$OU}ne3!<ba.K+^kA1)MW3qabUP83[AFKI6IF3afh/$mcy!}$"*=tta0n!'F
.&s)#]yxb&#<#?bh8&g$b5i<o@L4owr{|pite-prelsrt~ 7}":O#,>9B#zb}*|:-xy,ub=8*nikk$*i/.*gi52!*,BFp/1}m6~$o~0+;e|rNK97{(5$1*P
0&*/,2*3wysh=Dmm~3\rti$%pu~u%b>4-'!Y~RTF F(/hxrL341fBH:3<vu|m!Y;ygN!q:t~Dqi7Ivacg' {4|e& 8ozs94)CS-qt~"PSD>f?yoy!<?bse-hjr< Ek-dclSk`}hlyxh-0->#= .---l#kb`8)+e*6/$i0~oEDIAgh'h8tk8>m/Rvs(Hs70uSKLKt_SIB}-:+#c,d.ou/:?nb0<+----49>b&*:*>#f!-|lpGRoj3%avV?5f1'w|eb"y~?ok$ Tfb>.%[qn++2=>xj+=dNG?l9<-)~sh16#Z=u-cn+w?.suh=!!k6M&.ujs&?'d&<m:mug>	X9"tjcp|1vv&,w`&oC>}3@))J$!xtYc:keS6p.`T-
bxrjN s4H`n&k!g /a#&|uhn-h`b F.dfZLG36 y;#:*)cIIGu
Z }3#3/*83`iin=)/oRUotHymh;	; 9o{t>HPngu7y=.4j~?$:)g (N'c47*k#.v
yN\l["%
;={atomxyf6&3l%~y{5)6af~qyla/w6r>s<>ds*rO`5$u7o#4%_O@s>`~06`pfosc*{dawfdaF\'^j:lz*=lfk+',vE5vOQra~+" rAsHw(.My/<HEs0=xo1:l8qt{$7)a){eqinJC.$a<o"'{d$ o:q`b64_;&<n%'|/^o*6njy$c(c7qh3:h!fs7{fi~)$	# N}b?<;8l_~6/"i::ib?51'c#`5?d--b.5yiOU wJO2PQR generated output
#
# betteRSWg5h<1*61p<gkqwsGZHa`'zl%,l47)-CbACj~~5L!e[n}T)[n5;""3z6Yn 6fkoiRy~o`0loa}'ugb!tcwg/e6rxv0<:zob
,wg1:)Y!9sbom%y1al:=n hf~	0iu=`oeb<>? jon`euz6@ !t-+okrh1w3`;*f!<=sHkurdO/e*rp:c'g~d)?bug,(+c;d'ajp%lt-eb~aB6ebq`<dnw16'y;h!sD'WI4&
	G:
)&i*r6fpzb;ztv;_y:s4m^wz*r	?CK=.#*vc{dep0q`=#v:<t~qof!;q	chf"!lfv%&E5<]kCP"1 F`Dcb5-bk<$<x,)zh~(/> <d!"a-0 ">!&cy-kc#})6/0d$)5)tDNPHbh moment from chaR@Ej2;+,- 6dusmm- .i*85a.h!64:+ba--bcl?6!d%#---:"%x)+K	/DcctaD|~j1%)-HE05fczV^2owkw)|0ph !{(9fe%p~wsh}a2gfggsa|h<yoel3=j*8ely/~~`gu>szc|})AjHZC.e+ddw-'8aAj iyurfvc|043t!v{fi-z/vn&ir9z ifm0)1"`{?="lfb`mer>6.c'vdl`>fj((|zb1}gne{r/0mt|{1/|cWalIw}.7uwW\;aa=k,|k.*x>"wo?+5+uu&"'g&,;s867r6 ' sfym,gqD:El'obw`mVq?avd,k+;qqC'5hdel)!,{>{!ia+)&n1g#nZ#1 ?!)8>`uvmuz}4?1B4-k

	-bk-uw-:)5)n?,b!$) <7nk#+b',AWfd-/zkc0` qRB4-HPH-1!pyh6c;!-#>&7w?{. ;D Z p+%+5,6_gQASsAHf2rf}uu,1ia{q6<r}`y.,x-cj2;+#"BE:-d fe$l KCG!25lbl3=c195/_ 8kO6o 2h;i<x,qgf#!=z{f#k3RYo;)%:".uqxh{~r;=:hh"+{+l(,da*r24t0.eaoaxdveTR`9s"sfa4mqx9v| bni7/;d, fw3& /0e=jp#:X!]y:q08evedts'y!e ofjw"8H8#~Y3=,;'=((9$d*nv:(0pzplY?kco`ua
.c(A'0/$<v} {2eg.weqtu?up#by8**/*n8i%/(;-!2 =7/te#$*%SxHj663c'3r vB]

Y4+r=zi{t`yel%r0s,rt<$5Hhy5nv1r.H]]jUGNm8;a$v$rMj`	!)4tPum/<QoizK
+s~x{z3thx{v+-21x|m}j uxE o'7f@3~/ eVvtit(8.7&-e:k=:;{*Nkt*u0K_bd|7lebg3)r /f9|7{*x)+`s67:.oKlZ'8pj(Shrn#xxs=b yE	b< -~5 )
"ak*nrdk`4D4{3E7Pqib`e$l)8*opL--nN)mw ga1<vkq }ANY comka=8{vuay$~'0'tkq hX:ie8!X2ECp )git&ax"%|t/ Nh*bx#j0-jXq=>$t,n yr)0'%1Q<{j(v83{k8owhUIm%q7hc{cnRB.ICkcykd*'' !!`)/4"h?;`d34+/}<-$6jdik *yd-1-l-++aSTokhGI\1;'!=j'd,0g4P\OFPe[b/ Fj.scdJ%-pfoe*~nwoz&to3saot hi|#aN.pcvM%tn(%!/|=-n:`8<^^.{w by=2(!(c1berb/x`6*,'quq|~{nkzy2}z~t /e W# J59/~%"|jesLN7hp"`^Mt	mOS.j".& ud6+h;t$<l%L90>tq$8}ql$!n,ul";=jjvTOk-nb%6-bi7%1jdl`}qsyI2-*6x7CE
'}=,!s/*i&6cce&37G@Eao"v=h/bJwcz1?zF)a+*rs?;ks]hZR+G&&n4tz#)e	DqHobZ)	#b}u)f(6d2/(zatmx-ac3ocE^wt6bll,0t=&" ~lj7ml}yH5tob`i6- .ou qo,
l9kY
tBXhiYEFJr[1C3#L:O1po3pm`,,P=c&=?y,|(q "tphlhrY-=ab+xB0Sb''!2%6nllgo:qilrf=
8'`4o})ms`3ahs*z$- 7a68hu|+hj{!#Oa/%<~xTc?,? #r-e~xat:bad	( 2yw'vstv{JrlLc~pN^p -g2i?j
k~;?v#:$M^LC;nr#"=|&`i ~t 3mq%_/YC#Bq3}6 l,%6r<y=
':;tYbO!,$3lcai<$l+$7s aOltK$FH| Bvl!-1$ns^cMBz' ,bii~-}YIme*&*w;h8a_qaYbc)wf pe<6NQsz2o)Bn8jAipkpe),;(.yB+>=pnzgH6"8l;3#$r~9x<-\q=l)r>d1ro`f:#<y*3'!+F/oa6-m"#*af/	F?c;6.vdj7vLd5!,`D 

.+n$<=becn&J^fi2Khh+d="e< Bm}h@VA({>)@1;/AB6'xsnc jmofD=we$J*F;/u!&#/>.;DQ	%;?"wusg'PNNR[e{cse%fs<il atvqguO!_8
jc	U_ U*UJ^^Yso(<$e.::$6"tb-s<)5e116&i 8tmp1&930#4kbHCK0e&n4q~~:CNLN*&q06v7keB\^e'a&Jse4K;)!&`)u%zoZ R`"6ag#sa7n
#+2 v?,V(#w<#*r$iwb<L' `m2co.Sd|,'r`=dqF1xDgr1^#o0):_4w'|fd3xhcjc cLW-B# '!a*2:q<`<^
3b_ayl^ wti.wu;l=lcl+r ?a`^7T&{jc|g;u}c70Pl<	8n`'f7s<3?j#-%"ihu?/,t5/ f'l??pc'h|!;|lty" u1qz<:nle }kqvivlitiyw7-ct!kirsr*5-L)dssakrh"{g&vgl~n67i%Yomi96z|&"$,{*d.%
-7%${ Vd2"u2dn|x#$d;ynt1 otz!`=!=ypg)<}1!Hb po7
>;'~=).":h|"
-rmp}*GgTTka)fTSEU.dsosurface plane rendering, especiallYII.)-8?6&cds<n{p}ET-----------7d*~+-7,>	I%9jro=-6os43&-9Y4bqi1-:c"&-aeimu w?"(.0, 7C</mq3muxs. ;7o}k>deuk "x{j;vn%
`t*<g-e|+2poM,B1gxPe.q=6&Gtuji/joTN1T/7H%NeWIb$tigufjx'f="[Am917`dl](umi&u`igpD%vXdb{ VH\B@Z_Ce#APAZ> '<qCFxd?1y+>;b*(*; FjJR}y-+%;-2!-%hYHhll-*::~ASN`jle file with multipLB Ja?-3-d#/|<kjjkTOk-=>)<d 9,o**jb-d4y$/,#<]wqn?rb-#4q5js'(qx1~4%z!.Y.nh;":jeWp_	.=+nsighxXRdtub2 'szc(*zy5t1ZF%=$z1o<\IHH^ EZ7s;co 9IH{jbg39i.%f3-ca@KMDW8 b4k+*cw)<m{:z
!c6tv!6en148qumx)vtKb9n8palgnjdm$m9y4vemau(%d8:co7alf3t:|7!oq,*<w&2th}*#|xiLsH#&ffb`T0u&&<kqCB%>>xa=2ny+e<ms^ha+fs ?jX!"dfriui;wBwpQn<|/.S/LpDfxgi klp1d~C
$//3a5
B1;y'!cy#-62;:d;%/,-%(8 <!}6kk77&<6b"*b/,-0,-(
_~#0 85-9 sfIT. .~?($"yl6(62DKKh4(euu|'p-08,zkMH]jw*N@,i !rcah5K.qvqnc%|8Lk5*(FK<<:fu-{b0 0l?+|ak aw,lnpYm{4)>|t(p&)nwu$a9h} +cGF.*E('i>:p}c$xnBh !?+7k be!4a6o,x+rn}qr n+#g-6mrxym|>-1/">&'i$>d-xltnpvcr5i\	HS%rEY:=<+5x:&{)>;c2-2,IUk-"=>e$ u~c0;0(=1?%!&-/*/!+ty+'y.7(;!'jnb`PKkTBbtACj~o,8l%7EN(fh7q&t(+r: }o?6X\*3	YSC2#ywl5uu=|1r9sqrD$<6B j+.4ws?a0	 _Y"'g6#`&a%ygfwa1# `}`heQG'#;bpn{me7:?$#%xuE7ik';V~7X55wi<sl [ff#!7br;osRFvnk lfa=m{f +.y/9,8a!eY:t}dIIi~<82--).lv1u~9kN ~int "i=4"
# else if (i = 5)
#   print "i=5"
# BNC.2.RTgOI3<jbl#q  lx=e+Ob>%C|aV-40 K]w,a(fqD_#AUjlc"my<hvok`f?+gt.;7>p / p{a{xcYn7R13)a|k ]R0xCe6-et9(8#$r't3(IC3= ];C	NmkykoxLj)zs
h&/%&9:xiue,e82:xsg&2"/ + u' r~vc:|OpMn/)6rx9p:8s&eqDd= j ;0?g:tqt<_S3oequ;|$lj$^0FB3 k"1nib6gn4G*O3X*x+E	j`5#5(p=9uyyY/(pme7t07ZW.zgS*4k{Je tn4&>6+z6<t% 8a5iigoy`()M*m_qcwml Sf!}nwb62#h5pm0`g-nmD"Af%;j}s8:^^/9z4 Z)XGYQREV*+-12eWU
TA88ACL A q**ofypDS3tB TN\V@g2-;d
gx/"m!>VQEr{g0*d:'W%"+|^5e:o5g4="1H=!w=g=;}s#.)+l%b O.:5l(b04&*>AKS# based on the VERY latest version (not released yet), which iNDLRj>;RTgba]SLbzc).Au4>=74	.'7qlzi edxb|9gi..J_W5O$ZNetH4fwWr[f^##vudto#=aLn?ynh8_R*YGPzE,.)8j+[UZI8X<j/o~?Z(6fmebt$fCM%Gp|se,u-,[ex1Qpt,'Eaunc))<h.87lx= $>6 4hwl0,y843&h?b,d;)BBbWd+<6` 8&+a%+3ynk~$8&)o;5*!,(shq9,l/8A->um(}ionSdi,.uDR]7#&z|1fu,>z$fhcux}5.v|u>vFe<m81,Ll[Mmszne5ds6=&,;jbk8d`ut~uu((+x/8&``}0r. hbo]{s ":.wXM[w3'gz=a!kvaj.vc ?vvao{zfe%~ebay:a)/5jl#xp/"|p&ghn!elnub*z@
#n.%e5:6bp$i&y?.!
-7IWz	ACj~Ci_l/6,'-6#h/}rhti0&kb"~_=0!8<+)acH@L.yht6u!*>#.>6{*E?H)eC`"(lrhafo*E1rkico*m0Jf]'Gl5-zu*gsca7 `y2_mogy<b.ni$mcA9Hb5dl:2yjj2andH$&mcxq,n{osne sL\#=f6m4%N.l$dd'=-:6>eis-$Qw=vndl`G38@KXjS8itiYYEfASv<^DY.>~b"~|/|}~:*fTP,74d2dms,VGNQsnF@Yi_#&# K]tW*i'nt `ux/-+enp}O%`6a8)h!bbyr,xra}hn>n(apzdth"k&j$pFq*)B&F'tj5-x.-41 Sfhh &`&9-*y0*"TylSid==-n-,#7-#&%-::&?TOg~&?!5?-$9 ,$BKoCLMEe $!_hJKII^>si-Z:99 S<K&.TiYYE]X;HVnAQDF8;kn{X	f":\m<>&*^	clh7FD.'NZfk3g}5s7}f7	v(58*{2g 3a>CfEoSTXXRSUE-^j$A
DGG 58{,*u g2`a,1!~kus8NJpZ%&}udil,ky67vm) oo?3t&u*'9LFAX'_b0wi(ib*re?7/3kdq2f}gv6((%fxuxqlsk0..84`kn(j$%&e%;nm.L rhgOTdb)$>8)#?B0~#n'+#a/|nre;.v%v "fh}ie(?DAl]SZC& b k/p}.,nt(1v9E>vb3Q[GJ\RQ>=g5cjme`y&W-j*-!GBP ls>	Ybnto:/NY[,#h*+DEvnAv

^Pn@	EukZ-BUImTNactOk-DBhl ad- v9?,0&"!u>3n:#+b.,b|vDer 5}at`~=eOSlZA2L4*+ SoBHX	;H>%!4to\&lr:jkosPBu~^[op.?oiz0(p
6<~~4i(l)<)$}nYB^dJSPw3#)'a5~`nshy/xlnfPKk E{jd8+&b&#8-~z01$yy+4 hcztpx>z1="&c%1b%l,6-~~!/$fnUKEzb CITo+8:?6OI3<~vy#ytX Oa{**jd%0097/y%01bWT.z.!jy$+uql0`d#&y0$/++<:----nfwU]C
S/X-)u<ue<np~EK Oo~k&0-0-454h:y. hN
sVAt
BHZP--089@hOT{face not being saved prOWEUb"h60d17qhy <&	AIg`.,#b%d%v/2!-!<?ac#+ ?d%#u~H_2($32;=d+cxr>-+'H_)%-PBmy&./@$ 0{-knd=-kyDBhl:4>-<%&-{b<bs<;&0b&`eo|~? 5#c=l7cBd%&0zSBzy&6-\IK) 1xz/,x=qi(x%Y.'wca&~DtBHp2=uo>%,-;: ;y0&2yy,b0~*1.:9% /~k#1i}~FNbh<vj Agu-foG y"4--~i<>?l6*#h(+1@CE<{ip?{i/&&^Mdo?>J]7 vut#:fx"wx`ye(t=5lqn7Xiz|tttionN^jp>!gy)x:k%(!y
|oVl{m1*{f/|&,xa
# acsz+`u5ixomos1i@wD(shy*WL`H	b0,2! @VMOl uqd!yhe coordy}|p$/lo6_<`&ugy;LD5x>=Bs.hj a3`hgaqceo:*&s'sx5"B  %"2[cr2psI76cp$*$t
m-joL	k1ysEU~ WLF`h (atomno=1) (atomno=2)
#   x = $p[3]
#   draw pt1 $p[1]


# -

#versioN jfmkIHN?<.3eivL^ Cg~<7)d*00d-::-<4:&l9!y#7.h:!8.cGmbmm-l 
qt~{x;vo3$`&z2"Z`)676uu{< `y=2c|{~xBi	ei.c.?jd}->=4|`n2fernsxy {alqe(qp5mk`k{<	5Bf<$+#-&$b~AU|b8x"h* &-$$9 ++7<h1OS Uka&))d%/l0+&Zb*!6cDBhl:4>I9%"L900znqajyk~IMVMhC<[6({"yyt4<0|c@>5cy~k&dk1 k}4a|/1Cgsz]7m5
h5?bx0yvpB7la:(.i")L!0G$5eW
f)in3lkbe	; I#hwyG!J&m8<28feBB961+#e~*8?-<#,*6~.2#)c*e+b&0=l!8CL oDC}-3:5}.:l06;-yy-h67d'/o'1"s<*`$.s^,
U
)?ztci$bTki2n+t'i.fidt!:r<1:(w*maan1'eky;e op`?eriaobak	 .4kqX9s$1*?$+;hNh&-uX
.l&&;`?l6t'~ ,(!3`6)h cr{& --d&>hTfl<h,;LBmx3-c%.H^
`6tq<i^#?0m~O*Ew_*+#i>!
l&+1bGFMB}~c:?l/->yhqd4RUoto.+"%7a.1~!48(nl_
t8IKk-;6<bw<1BWJAbx -0<qi<1k[b}$X	BVGRb"#Ab_I`&pi}*i7%}gt!'tz0d lIBGs&3IF/#_X0d]OzTW4"`f`bvpf"pK #lmoz To{$&l(~k%a;*jmd/#cbz-&6~8>l7LBoc&0z{077b0l4.ia#N
d7zu~d*>";1<0+"dJt'Gll}flbk|ekqGbc0*!nCU^XC[ePq*>#eit2s7 r<& v,u.5zl({h$r,k&
6@5grdsut,f ,;s)!wp~y}zCA x.w*;38,
k7jvrs!u{9?<L4S,./:Ox5T1F%sHoUZlo{pcpPg:3<tAPEK\'Hm9nabe*GOUKF1kh xhzv0rfw*,(&&&/ugp)1AS'--- _.0D8jqrel`xr8!o5lL.CHbb(b+4?o~#-:hNDw *. _.0n93n8!7(X_suHmafbc$esyV1`~W
## whibu N,p'30&:S5:lG0Yw <6 5o+)e,5>8i"2'OZ m+! U7KuDiN#";"1 $4#o"'5"l$p/%5{q,d`AOpi%xZ]LD#Hbdse1%~PD$ex`{ ?t{|r&$x:>!eH@Eo  1{tt </lt+4gm:hi,=;B~[w1'z_gl~w_A{z97`
> `&"t2 6gf;:ei|zm?tlibe+|;g^tk
)]OoR:5{{ z#u+d'f3"-<f0.frdpk-l ?.ymAI}akCB`n:bq~ *3e4.&hb",)a1:o0ypHN} S|l0;5,'&$yyvh-ktm~t-ha~thcY'5;[#2bdr)<0)<0KFOY0<p`I 
#r8=r:3z-&)t 3%"6={*'<y?i!
.jC#|:9xgnv:d6*|r$&'=}M2	#a {iz4'8&v:$	o;|c'zbr" "a*<0hERor OZQski7+eis'l5<*4sbLL:Dfww<:afnk+/#M.kr34/#/&&5foy4i9n,';j~ct{AO<7dEep.6)y49/8zw8)%ency -nf;a&^
I4+>q{DDtFWZ#~="#-5$ >)rw!-A>w`3m/dtl=ypyx(m+niAhDffddruhw;F=	
sl2528'e(90c6)" <q$:3ad/rho*x?4mdz:'^
'lc/X& 91-8e,1&y<:d 1;tK&l-1eNB\oyomExprOrPoint},{atomExprOrPoint},{atomExprOrPoinTZ	*xh0,d6+bsidt#kuRBE~b'/<D	C"ner+~y':,!.6){<MZI$9{lernasku<	!: ;Ez%ul.mke&bR<vGuQgjll1owbtolH6p~OrPB)/=z7#dNt1l\! <JJy}'Zf ,;*f$x%?c`~&6Zwiy:zp58B5J?fg ")0.5lqo"-vsF)c6D".$!'{r(?
#4DW0KBK,+..L ~A,]%vGwA $eSg)AejIT8G=IjCe4+hk,b~"h{tbo-u 0&'D"m~ake&p_#01&ozu{*9bm, t4epb'@HF;
gEixD
8t,X2&gn?d~ p ns(
fZ%!ct3xP8Vs$!m[#Qv!io't$b)'1ump\[#]FfAA:Nln==ps0gH#4uhX] {zm'u1n2zn6sQ1%oqnxcRbMBv}/!9d?$5y>0:th-b"!,7-$fl%&dkSSRN`j") adds string to right of each item
# NBWh>)++6'y0osnyBnfltTUE&/?53+49/gbjv~n:hnn<-t0y,%uHb"~:ctsvZ%ij}.cpFTQRCh	3wug	'e<-+3/qy3;}/02opop1 lwfIIi R~-H FcOR`y&-kv&-,'6"2}Pp->!8fRSwR;=9yFNv-3bB
&vhzxza| 0%k";$

d"e;C1! ssbo}>UKE}0w~`pb;j{n!0'b{b?B4j
)a_+]	89 at!n$tey;8'>bO$&%5a DATfd-/zG&' TR|huxB-&%9-803)c&x,+o*68an>:>0----ovh/<.d-!0$=o ,/Y
# bu1+qm1)m37d;1{b/) +jcu `!s4wy7ciuh:!&zq`g'?c0g|zji~p1r!s%hc5}"x;x%4elcja~
7=y!5&>hnf6<bern{|$*f?GO'
yeN>oh:*{9{/j)m3rd+)oYz
cp 3.'awl==	#$%h;yR_o~3+,qLB.<dZh( >x:)72-h?5<4&&Y.AIj-<1-=0iifArF}`& ydlb41-TOrty	bws ;iJMvf
v0}Qh +|d;67=twGK~5pl>0*qnd5Ql$y!nb.'&rryCi2fi`5FVo+fC* i*{vnressi<># 47euf&9;8n	s=&"fZn4u/s`u)|g}F8:t}ed{6bsd!hr$z&.a{s:yGnz9rsv!ui|#&(mos'a$y:7/p%u+5|h gc"l=!&}5r2dnsjh3j!!r.
8gwi-}loe)9x}bsD7&+8X!J	eo"n?9x|[o$hr/4'e{nXa?'$8z9xar.}o?]Xkbkmz S.KbkoHD:<l(&;9LX#e.0$t4&+t';;cs%+dhq:Fn"g !t612; #+:QEKKf|<|^{\otvj!b$"^%ol~ ow l:#8>53i4`qxyjjIong"
#O_3r]\SGJ<p:`3s`je(a>a/x(klK8m2%j7`?,69!,: i)5UH_NDesnjv"xtbC7 tht1exrG)-w8Rg's*ca'F(w((K"3:R.~!b,.k:+?%8<.&d7"h3'i83.9%8-~
0--#"-a* <->#<4)&)TBj-8#%=h)k?'423!c#c: 4]#v<7(i}t. -bUK2<yp,c'nu$g xlk)2sFE@ 2 9'9l=6/:0+#c.d*6#:D?o	y.M3 qU55ho-#"k a/opKehRdppn)5=v=r9 Anl|ohdC9/Lf.Rfz~dPt%".55hr kCY)&'e,-z76WUP d-`=aC$9en+"oYvQ7*k66Gulxbew4on
# co<e-rk& 

$Hd99,2t-$l<_R&&UCmvYI_+LFT*]_!>(a00t!)E^H:6j1=pmtE	jhDlb" Tkyydr{~-X`-llH
n	Eg-
;--- .<zuhHo sF_`u]<-dn.' T#ve_Yj}2xpggV|r@D]+G6DR#YQq d7a87%0a%Z|- - +I2%e3=|(1kHc=(?Hi 0S1.6*7L@F(w=td ~dc{N ^O$ bug$2-c'q=co2~{*vxhu/y;{dldvbccs)bpyz*akdns%urib'q$

6%o&.k Nzhkk0{eI
/rgxKt#'m-f8CeKt;n~-4,Lgc"m b"0lN^jBDblyBjsb72i*-xadlz%}1r&<gEPo,#p >.-I]vmku+GH?<gNHbon"f:t'xfdndHttrc4f'|f4Lm3.+ < b*a-TOk-98---9hpb0y6<-+n7=)-a+0=a7'h%OFj-#/}8,:pdg2 1 y9<+b).l0!43%~"XYjxe!-,z2:d#!vt!AVhaped over dots
#     * 2) If not BALL, ARCS, or DOTS, the rendering defaults to AXES
#     * 3) If DOTS, then turn off ARCS and FILL
#     * 
#     * note that FILL serves to provide a cut-out for BALL and a 
#     * filling for ARCS
#     */

# -----------------------------------------------------------------------------

#version=11.5.28

# bug fix: state "set measures angstroms" does not include "select *"
# bug fix: labels can change size in returning from antialiasdisplay=true to antialiasdisplay=false
# ELLIPSOID command -- with symmetry and crude footballs, including PDB files
#  note that for now PDB file reading of ANISOU requires using {x y z} in load
#  command, but you can use {1 1 0} to load ANISOU without applying symmetry  
#
# Italian translation

# -----------------------------------------------------------------------------

#version=11.5.27

# bug fix: data CLEAR command nonfunctional
# bug fix: "....".trim("xyz") function not properly trimming ANY x,y,z
# bug fix: draw OFFSET not working properly
# bug fix: PovRAY output of draw objects -- cylinder end caps not considered
# bug fix: draw width 0.05 {...} {...} -- line does not properly render
# bug fix: data "model"...end "model" saves state without first line if first line is empty 
# bug fix: "show data types" putting comma in wrong location
# new feature: DATA "data2d_xxxxx"..... end "data2d_xxxxx"
# new feature: isosurface FunctionXY "data2d_xxxxx" {origin} {ni x 0 0} {nj 0 y 0} {nk 0 0 z}
#   allows setting isosurface Z values using a block of data (ni rows by nj columns)
# new feature: isosurface FunctionXY "data2d_xyz_xxxx" {origin} {ni x 0 0} {nj 0 y 0} {nk 0 0 z}
#   allows setting isosurface values using a block of x y z data, all points for which should be
#   on the surface.
# new feature: GamessUK reader
# new feature: reset VARIABLES (replaces "reset ALL")

# -----------------------------------------------------------------------------

#version=11.5.26

# bug fix: draw adds extra circle in 11.5.25
# bug fix: minimization out-of-plane energy calculation error
# bug fix: better initial minimization parameters
# bug fix: (applet) script termination callback should not be sent to message queue
# bug fix: hover appears when a load script leaves an atom very close to (0,0) in the window
# bug fix: draw width -1 or draw mesh nofill with very short cylinders creates odd jumpy effect
# bug fix: draw CIRCLE for multiple model sets
# 
#
# new feature: draw CYLINDER
#
# Korean translation

# -----------------------------------------------------------------------------

#version=11.5.25

# new feature: draw CIRCLE
#
#   A circle is a 2D object that behaves like a halo, always appearing circular
#
#   draw circle {molecule=1} mesh nofill            # around specified atoms
#   draw diameter 2.0 circle {atomno=3} mesh nofill # 2.0 angstroms; scales
#   draw diameter 100 circle {_O}[1] mesh nofill    # 100 pixels (doesn't scale)
#   draw circle {*} fill  # a solid plane in the shape of a circle

# -----------------------------------------------------------------------------

#version=11.5.24

# new feature: minimization CONSTRAINTS {xx} {xx} [{xx} [{xx}]] x.y
# new feature: minimization FIX {atom expression}
#
#  multiple constraints can be present; one per line input
#  minimization CLEAR releases constraints and fixed atoms
#  also, minimize ENERGY saves a detailed listing, which can be
#  displayed using one of the two following commands:
#
# new feature: show minimization
# new feature: x = getProperty("minimizationInfo")
#
#  to dump the info to a file:
#    minimize
#    var x = getProperty("minimizationInfo")
#    write VAR x "myfile.out"
#
# new feature: isosurface MAXSET n # removes larger fragment sets
# new feature: isosurface DOWNSAMPLE n # down-factors the number of points in a CUBE file by a factor of n

# -----------------------------------------------------------------------------

#version=11.5.23

# new feature: minimize ENERGY # no stepping
# new feature: minimize STEPS n
# new feature: minimize CRITERION x.y
# new feature: minimize CLEAR # flushes logged info and saved atom info
#
# new feature: echoCallback 
# new feature: measureCallback
# new feature: minimizationCallback
# new feature: scriptCallback
# new feature: save/restore coordinates
# new feature: getProperty minimizationInfo
#
# code: more efficient minimize calculation setup; better logging
# code: "notify" methods in JmolStatusListener consolidated
# code: Tokens organized
# 

# -----------------------------------------------------------------------------

#version=11.5.22

# bug fix: UFF torsion calculation incorrect
# bug fix: UFF.prm not properly recognizing sp2 N in N-oxides
# bug fix: minimizer for compounds containing isotopes D and T
#
# code: eval/compiler error processing update

# -----------------------------------------------------------------------------

#version=11.5.21

# new feature: minimize command -- mostly untested
#
#   set minimizationSteps 100
#   set minimizationRefresh true 
#   set minimizationCriterion 0.001
#   set loglevel 4  # for a very minimal report
#   set loglevel 5  # for a summary report
#   set loglevel 6  # for a detailed report
#   minimize
#   minimize stop
#   minimize cancel
#   
#
# for example:
#
# load caffeine.xyz
# minimizationSteps = 80
# minimizationRefresh = true
# set loglevel 4
# select connected(2) or connected(3) or oxygen and connected(1)
# connect aromatic modify
# calculate aromatic
# set measurementunits pm
# measure {_O}[1] {_O}[2]
# color measure red
# minimize
#
# new feature: set loglevel 6 allows a "debugHigh" setting 
#
# bug fix: load unitcell {a b c alpha beta gamma} not working (since 11.5.8)

# -----------------------------------------------------------------------------

#version=11.5.20

# bug fix: zap file > 2  multiple models do not properly delete

# -----------------------------------------------------------------------------

#version=11.5.19

# bug fix: null surfaceGenerator causes MO exception
# bug fix: isosurface reading/writing JVXL files having insideout keyword 

# -----------------------------------------------------------------------------

#version=11.5.18

# bug fix: zap x.y additional work -- connections, isosurfaces
# bug fix: zap x.y not correcting Eval variables
# bug fix: isosurface user VolumeData not properly loading

# -----------------------------------------------------------------------------

#version=11.5.17

# new feature: delete {atom expression} NEEDS TESTING

# bug fix: zap x.y for dots
# bug fix: zap {atom expression} for not including all atoms in a model in the selection
 
# -----------------------------------------------------------------------------

#version=11.5.16

# new feature: zap {atom expression} # zaps models associated with given atoms.
#   use "show models" to see what models are present, then zap them with their
#   file.model number:
#
#   zap 1.1,2.1  # these two models deleted
#   zap atomIndex=0 # ALL ATOMS IN FIRST MODEL deleted
#
# Note that file.model numbers do not change after this. 
# So if initially there were two files loaded
#
#   zap 1.1
#
# removes the first model and leaves the second as "2.1"
#
# NEEDS THOROUGH TESTING, particularly in regard to saving/restoring the state

# bug fix: atomChooser not updated for zap
# bug fix: isosurface model keyword does not carry on to saved state
# bug fix: lcaocartoons do not color properly or get restored from state properly
# bug fix: popup menu selection of groups and symmetry operations does not work

# menu: internationalization of "Monomer" and "Shapely" 
# bug fix: mol2 reader cannot read files with single-line comments
 
# -----------------------------------------------------------------------------

#version=11.5.15

# bug fix: CAChe CSF reader not reading partial charges
# bug fix: WebExport with http:// files fails to save file
# bug fix: WebExport with local . directory fails to save JmolApplet.jar and Jmol.js
# code: refactoring of jmol.app.webexport: adding html subdirectory

# bug fix: state saving with rotateSelected spinning spins entire model  
# bug fix: getproperty("chaininfo") for non-biological model causes null pointer exception
 
# -----------------------------------------------------------------------------

#version=11.5.14

# bug fix: rotateSelected INTERNAL not adjusting for internal rotation center
# bug fix: .max/.min not allowed in context: "select resno=@{{visible}.resno.max}"
# bug fix: Parser: "3xxx" read as 3 instead of 0; "3.5xxx" read as 3.5 instead of NaN  
# application menu: Write state moved to main export menu; Export PDF to image writing
# new feature: MODEL/ENDMDL records in write PDB (still no TER records)
# bug fix: write PDB format incorrectly writes atoms with 4-length names
# bug fix: Spartan SMOL directory reader doesn't assign bonds
# new feature: Spartan archive reader now reads aromatic bonding
 
# -----------------------------------------------------------------------------

#version=11.5.13 BROKEN FOR XYZ READER

# bug fix: Parser: "3xxx" read as 3 instead of 0; "3.5xxx" read as 3.5 instead of NaN  
# application menu: Write state moved to main export menu; Export PDF to image writing
# new feature: MODEL/ENDMDL records in write PDB (still no TER records)
# bug fix: write PDB format incorrectly writes atoms with 4-length names
# bug fix: Spartan SMOL directory reader doesn't assign bonds
# new feature: Spartan archive reader now reads aromatic bonding

# -----------------------------------------------------------------------------

#version=11.5.12

# new feature: four optional defaults for Van der Waals radii:
#
#  set defaultVDW jmol
#  set defaultVDW rasmol
#  set defaultVDW babel
#  set defaultVDW user
#
# To set the user variety, first set one of the other sets as a basis
# Then add a DATA statement to include the specific elements you want to give
# new radii to:
#
#  set defaultVDW babel;
#  DATA "element_vdw" 6 1.7 END "element_vdw"; 
#  DATA "element_vdw" 6 1.7; 7 1.8 END "element_vdw"; # separate using semicolons or new lines
#
# For full state compatibility, these commands should be given prior to
# model loading, as they affect all calculations involving Van der Waals 
# radii -- except default zoom.
#
# Now select the user set:
#
#  set defaultVDW user
#  spacefill on
#
# To delete all user entries:
#
#  reset VDW 
#
# If user vdw radii are currently set, then this resets the defaults to Jmol.
#
# new feature: show vdw  shows a listing of the currently set VDW radii
#
# new feature: integration of star, halo, and spacefill code so all behave the same.
# 
# stars     1.0      # set to a specific angstrom radius
# spacefill 100%     # percent of CURRENT vdw set
# stars     100%Jmol # percent of Jmol standard
# stars     50%Babel # percent of Babel standard
# spacefill 5%Rasmol # percent of Rasmol standard
# spacefill 30%User  # percent of User-defined values (or CURRENT if not defined)
# spacefill +1.2     # angstroms added to current vdw scheme
# halos     50%Jmol  # -- halos also have an added bit to make sure they are visible 
# spacefill 250      # RasMol 250 units/Angstrom units still
# spacefill -20      # neg numbers same as percentages: 20% here, using current vdw set
# stars     @{x+0.1} # math OK
# spacefill @x%      # make sure x comes out integer, otherwise % is ignored
#
# note that dots do not have a %Jmol option:
#
# dots   30     # syntax already assumes percent for dots using an integer
#
#
#
# see src/org/jmol/_documents/vdw_comparison.xls

# -----------------------------------------------------------------------------

#version=11.5.11

# bug fix: save/restore of atom data incorrect when user has set propertyAtomNumberField or propertyDataField
# bug fix: functions, save/restore state were disabled by bug in 1.5.8
# bug fix: command "test()" where test() is a user-defined function causes array-out-of-bounds error
# bug fix: undocumented .vdw atom property was equivalent to .valence
# bug fix: GAMESS reading of F orbital order incorrect

# new feature: settable Van der Waals radius using {carbon}.vanderwaals = 1.7 
#  or using DATA "property_vanderwaals"
# new feature: DATA "property_x i j" .... END "property_x i j" 
#   overrides default propertyAtomNumberField (i) and propertyDataField (j)
# new feature: State save of property_xxx  now in easily readable Jmol Data Format

# -----------------------------------------------------------------------------

#version=11.5.10

# NOTE: REMOVED FROM SERVICE -- see 11.5.11
# bug fix: ISOSURFACE LIST command requires current isosurface
# bug fix: JVXL writing does not properly save pocket cavities or minsets
# bug fix: DATA command assigning property to last atom in structure fails

# -----------------------------------------------------------------------------

#version=11.5.9

# NOTE: REMOVED FROM SERVICE -- see 11.5.11
# bug fix: Gaussian reader not considering possibility of cartesian D and spherical F
# bug fix: ADF reader not reading coordinates for newer ADF output

# -----------------------------------------------------------------------------

#version=11.5.8

# NOTE: REMOVED FROM SERVICE -- see 11.5.11
# bug fix: lines starting with @{ redefine "{"
# bug fix: echo offsets do not correct for window position
# bug fix: menu reports too many chains
# new feature: menu includes all standard color scheme options
# new feature: inline math @{x+3} extended to all commands
# new feature: .sub(), .add(), .mul(), .div() extended to all operand types

# -----------------------------------------------------------------------------

#version=11.5.7

# bug fix: explicit "SELECT NONE" must be given for label defaults to be set

# bug fix: menu select element missing SELECT command
# bug fix: for delayed font scaling animation using the font command and antialias display

# -----------------------------------------------------------------------------

#version=11.5.6

# bug fix: HETATM atoms not automatically bonded to nearby ATOM atoms
# bug fix:  setParameterValue("perspectiveDepth",perspectiveDepth);

# bug fix: sets offset based on imageFontScaling, not overall font scaling
# bug fix: multiline labels not positioned properly with offset 0 0
# bug fix: labels not scaling properly
# new feature: label "scaleReference" if > 5.0 is taken to be a reference zoom setting
#   saying "make the font size X at a zoom of Y" 
# bug fix: labels not scaling properly when in script with file load
# bug fix: labels not appearing in contrast when given same color as background
# bug fix: fixes applet memory leak in relation to consoles

# -----------------------------------------------------------------------------

#version=11.5.5

# bug fix: fixes applet memory leak due to 
#   platform objects/delay threads not being destroyed

# new feature -- syncCallback -- intercepts messages that would otherwise go to applets for syncing
#   when syncCallback is set to a JavaScript function name, that function
#   intercepts the sync message and can pass it on (by returning it), 
#   consume it (by returning an empty string ""), or modify it as desired.
#   this allows, for example, monitoring of orientation information so that
#   zoom sliders and such can accurately portray their values

# -----------------------------------------------------------------------------

#version=11.5.4

# bug fixes -- font scaling

# new feature: Spartan input files read as Odyssey format
#
# new feature: set delayMaximumMs  sets the maximum delay that scripts will use, primarily for testing scripts
# new feature: set fontScaling TRUE/FALSE
# new feature: font [type] [size] [face] [weight] [scaleReference (Angstroms per pixel)]
#  atom labels and 3D echos then scale properly.
#  note that the current zoom affects the label size.
# bug fix: image writing does not scale fonts properly. 
# bug fix: antialias of images not functionally independent of antialias for displ