Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Rightclick on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2009 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(9) 
_{Aug}
(11) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}
(3) 

2010 
_{Jan}
(2) 
_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}
(1) 
_{Sep}

_{Oct}
(1) 
_{Nov}
(6) 
_{Dec}

2011 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}
(5) 
_{Jul}
(10) 
_{Aug}

_{Sep}

_{Oct}
(9) 
_{Nov}

_{Dec}
(1) 
2012 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}
(1) 
_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 




1

2

3

4

5

6
(7) 
7

8
(1) 
9

10

11

12

13

14

15
(1) 
16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31


From: <mlivingstone@us...>  20090715 08:49:23

Revision: 12 http://salstat.svn.sourceforge.net/salstat/?rev=12&view=rev Author: mlivingstone Date: 20090715 08:49:08 +0000 (Wed, 15 Jul 2009) Log Message:  Fix Editor import Modified Paths:  sal.py Modified: sal.py ===================================================================  sal.py 20090708 07:42:05 UTC (rev 11) +++ sal.py 20090715 08:49:08 UTC (rev 12) @@ 1,12 +1,12 @@ #!/usr/bin/env python """ SalStat Statistics Package. +SalStat Statistics Package. This is the main file for SalStat (the one which should be run by the user). Copyright 2003 Alan James Salmoni. Licensed under version 2 or later of the GNU General Public License (GPL). +Copyright 2003 Alan James Salmoni. +Licensed under version 2 or later of the GNU General Public License (GPL). See the file COPYING for full details of this license. """ @@ 15,11 +15,12 @@ from wxPython.stc import * from wxPython.grid import * from wxPython.html import * from wxPython.lib.editor import wxEditor +from wx.lib.editor import Editor + +# import wx # getting ready for the new namespace import wx import csv # import wx # getting ready for the new namespace import wxPython.lib.wxpTag # import system modules import string, os, os.path @@ 291,7 +292,7 @@ if (dlg.GetFilterIndex() == 0): #save as plain text rows = self.GetUsedRows()  maxrows = max(rows) + maxrows = max(rows) for i in range(len(cols)): for j in range(maxrows): if (self.GetCellValue(j,i) == ''): @@ 365,7 +366,7 @@ try: fin = open(filename, "r") except IOError:  dlg = wxMessageDialog(self, 'SalStat cannot open the file', + dlg = wxMessageDialog(self, 'SalStat cannot open the file', 'Cannot read file',wxOK) dlg.ShowModal() dlg.Destroy() @@ 611,7 +612,7 @@ filename = dlg.GetPath() fin = file(filename, "r") TextIn = fin.readlines()  + self.scripted.SetText(TextIn) fin.close() @@ 913,7 +914,7 @@ wxSize(BWidth, BHeight)) cancelbutton = wxButton(self,1104,"Cancel",wxPoint(100,winheight35),\ wxSize(BWidth, BHeight))  if wxPlatform == '__WXMSW__': + if wxPlatform == '__WXMSW__': # Darn! Some crossplatform voodoo needed... allbutton = wxButton(self, 105, "Select All", wxPoint(250,winheight70),\ wxSize(BWidth, BHeight)) @@ 968,7 +969,7 @@ self.hypchoice.SetSelection(1) #self.DescChoice = DescChoiceBox(self, 215) # I might leave the descriptives out and implement a feedback box  # that tells the user about the analysis (eg, how many factors, # + # that tells the user about the analysis (eg, how many factors, # # levels per factor, # interactions etc which might be useful. It # would be updated whenever the user changes a selection. okaybutton = wxButton(self,216,"Okay",wxPoint(10,winheight35), \ @@ 1052,7 +1053,7 @@ wxSize(BWidth, BHeight)) squareButton = wxButton(self, 1113, "Square", wxPoint(250,180), \ wxSize(BWidth, BHeight))  l2 = wxStaticText(self, 1, "Function :", wxPoint(250, 315)) + l2 = wxStaticText(self, 1, "Function :", wxPoint(250, 315)) self.transformEdit = wxTextCtrl(self,1114,pos=(250,335),size=(150,20)) EVT_BUTTON(okaybutton, 1105, self.OnOkayButton) EVT_BUTTON(cancelbutton, 1106, self.OnCloseFrame) @@ 1084,7 +1085,7 @@ def OnOkayButton(self, event): pass # start transforming! # process: collect each selected column, then pass the contents through the self.transform function  # then put the resulting column into a new column, and retitle it with the original variable + # then put the resulting column into a new column, and retitle it with the original variable # name plus the function. self.transform = self.transformEdit.GetValue() cols = range(self.cols) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090708 07:42:16

Revision: 11 http://salstat.svn.sourceforge.net/salstat/?rev=11&view=rev Author: mlivingstone Date: 20090708 07:42:05 +0000 (Wed, 08 Jul 2009) Log Message:  added Chi^2 section Modified Paths:  manual/manual.lyx manual/manual.pdf Modified: manual/manual.lyx ===================================================================  manual/manual.lyx 20090706 07:15:07 UTC (rev 10) +++ manual/manual.lyx 20090708 07:42:05 UTC (rev 11) @@ 130,6 +130,7 @@ status open \begin_layout Plain Layout + http://www.python.org \end_layout @@ 142,6 +143,7 @@ status open \begin_layout Plain Layout + http://www.wxpython.org \end_layout @@ 491,6 +493,7 @@ status collapsed \begin_layout Plain Layout + http://www.python.org \end_layout @@ 502,6 +505,7 @@ status collapsed \begin_layout Plain Layout + http://www.wxpython.org \end_layout @@ 555,6 +559,7 @@ status open \begin_layout Plain Layout + http://fink.sourceforge.net \end_layout @@ 1131,6 +1136,7 @@ status collapsed \begin_layout Plain Layout + http://www.python.org \end_layout @@ 1340,7 +1346,7 @@ \end_layout \begin_layout Section NonParametric Comparisons +Nonparametric Comparisons \end_layout \begin_layout Subsection @@ 1395,10 +1401,6 @@ for z and the p value. \end_layout \begin_layout Subsection Chi Square Test for Variance \end_layout  \begin_layout Chapter Analysing 2 Sample Tests \end_layout @@ 1485,15 +1487,6 @@ \end_layout \begin_layout Standard The unpaired ttest is a parametric test that analyses 2 samples of data,  and examines whether the means of each sample differ by chance or due to  experimental manipulation.  The unpaired test differs from the paired test in that participants must  only be subjected to one condition and not both.  If participants are subjected to both conditions, use the paired ttest. \end_layout  \begin_layout Standard Enter the data for each condition into its own column (in other words, one column for one condition). Go to the menu, click on @@ 1549,6 +1542,15 @@ chance. \end_layout +\begin_layout Standard +The unpaired ttest is a parametric test that analyses 2 samples of data, + and examines whether the means of each sample differ by chance or due to + experimental manipulation. + The unpaired test differs from the paired test in that participants must + only be subjected to one condition and not both. + If participants are subjected to both conditions, use the paired ttest. +\end_layout + \begin_layout Subsection Paired ttest \end_layout @@ 1617,19 +1619,7 @@ chance. \end_layout \begin_layout Subsection F test for Variance Ratio \end_layout  \begin_layout Standard The Ftest is a parametric test for 2 samples of data and it compares the  variances of each sample to see if they differ.  It can be used to check whether the assumptions of the ttest have been  violated or not, and shows whether the variances of the 2 samples are the  same or whether one group is larger or smaller than the other. \end_layout  \begin_layout Standard Enter the data for each condition into its own column (in other words, one column for one condition). Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window @@ 1657,7 +1647,19 @@ button. \end_layout +\begin_layout Subsection +F test for Variance Ratio +\end_layout + \begin_layout Standard +The Ftest is a parametric test for 2 samples of data and it compares the + variances of each sample to see if they differ. + It can be used to check whether the assumptions of the ttest have been + violated or not, and shows whether the variances of the 2 samples are the + same or whether one group is larger or smaller than the other. +\end_layout + +\begin_layout Standard Output consists of the 2 degrees of freedom (in brackets), a value for F and the pvalue which gives the likelihood that the 2 samples' variances differ by chance. @@ 1668,6 +1670,87 @@ \end_layout \begin_layout Subsection +Pearson's Chi Square Test for Variance +\end_layout + +\begin_layout Standard +The Pearson's Chi Square test is a nonparametric test which allows us to + test the statistical significance of the proportional relationship of two + (or more) categorical variables. + Since we do not do any Yates Correction, we suggest you do not use cell + counts less than 5 unless you understand the effect on your results. +\end_layout + +\begin_layout Standard + +\emph on +\begin_inset Formula \[ +\chi^{2}=\Sigma\frac{(observed\ countexpected\ count)^{2}}{expected\ count}\] + +\end_inset + + +\emph default +You must enter actual count data and not percentages as this would have + the effect of setting sample size of 100. + Note that if we are using a 2x2 table, we could also just use a ztest. + This is because X^2 is in fact the square of the zstatistic. + The Pvalue for +\begin_inset Formula $\chi^{2}$ +\end_inset + + gives us the same as a twotailed ztest Pvalue. + When using a ztest instead of a +\begin_inset Formula $\chi^{2}$ +\end_inset + + test, you have the choice of using a onetailed test. + This would be related to the confidence interval for the difference between + the two proportions (i.e. + p1  p2) +\end_layout + +\begin_layout Standard +Enter the Observed Count data into 2 columns, each sample having its own + column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 or more columns which contain the data using the drop down + boxes at the top of the window. + Check +\begin_inset Quotes eld +\end_inset + +chi square +\begin_inset Quotes erd +\end_inset + + from the list in the box marked +\begin_inset Quotes eld +\end_inset + +Select Test(s) to Perform: +\begin_inset Quotes erd +\end_inset + +, and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of a value for Chi2, and the p value. + We will be updating this test to also show df (degrees of feedom). + +\end_layout + +\begin_layout Subsection Paired Sign Test \end_layout @@ 1871,7 +1954,7 @@ \end_layout \begin_layout Section Correlations (Parametric and NonParametric) +Correlations (Parametric and Nonparametric) \end_layout \begin_layout Standard @@ 2723,6 +2806,7 @@ status collapsed \begin_layout Plain Layout + http://www.python.org/documentation.html \end_layout @@ 3424,6 +3508,7 @@ status collapsed \begin_layout Plain Layout + http://www.fsf.org \end_layout @@ 3456,6 +3541,7 @@ status collapsed \begin_layout Plain Layout + http://www.python.org \end_layout @@ 3466,6 +3552,7 @@ status collapsed \begin_layout Plain Layout + http://www.wxpython.org \end_layout @@ 3535,6 +3622,7 @@ status collapsed \begin_layout Plain Layout + http://www.nmr.mgh.harvard.edu/Neural_Systems_Group/strang/ \end_layout @@ 3548,6 +3636,7 @@ status collapsed \begin_layout Plain Layout + http://www.emacs.org \end_layout @@ 3558,6 +3647,7 @@ status collapsed \begin_layout Plain Layout + http://www.scintilla.org \end_layout @@ 4649,6 +4739,7 @@ status collapsed \begin_layout Plain Layout + http://www.python.org \end_layout @@ 4726,7 +4817,7 @@ \end_layout \begin_layout Standard The Python, wxWindows and wxPython community (especially Robin Dunn  software +The Python, wxWidgets and wxPython community (especially Robin Dunn  software craftsman) for their work. \end_layout Modified: manual/manual.pdf ===================================================================  manual/manual.pdf 20090706 07:15:07 UTC (rev 10) +++ manual/manual.pdf 20090708 07:42:05 UTC (rev 11) @@ 1,5646 +1,6945 @@ %PDF1.3 1 0 obj << /Length 2 0 R /Filter /FlateDecode>> stream x\x9C\x85RۊA}ﯨ'\xA9;&\xA9\xAA\xA4\xF2\xA8 \xC2ₗ\xF1I\x90Q\x87awvٛ\xE0'\xF9\x97\xA6\xBA{\xBB{Q\x90f\x98\x90:IN\xCE\xC9M@\xA0\x80\xED\x9B\xFF\xF7\xA7\xEE\xC5 \x87\xBB\xC3\xFF\xBA\x9B\x8EF@\x98\xFF\xF6\xA7\xF0j\xE7\xA0H\x81\xA9\xE4\xB0\xFB\xD1M\xC5\xA8( \xAA\x84ݩ\xFB?\xF6\x82VI\x92\xE3מAS\xB6x\xE9\x81qf~\xF2\xEFٚ7\xC0\xFB~H\x9CAuA*j\xFAI\xB6\xC9\xC7\xEE\)\xDE\xF5Xs\xAD\xF3+J\x9A_\xDB\xEC\xFD\xD8\xC9jv\xA4(l\xF1]\xCF\xAAI\x9D\x9B!\x87\xB2)\xA6x\xD1g\x95\xCD\xDBa\xA1\xF0\xBD5!H9\xC7\xC1C\xCA\xC0\xAA\xF1S\x8F\x90*\xA2\xE4\x99O\xCAڠ\xCB\xECۅycA\xC5R<\xF7\xB8<Y\xF1jd\x81R\xE2\xC3$F\x91R\xE6\xF7\xC6m\x91\xF5\xCB\xEE\xCCrǈ\xC0J\xE1摷%3\x83\xF3\xAFa\xF7ͽ\xF9\xDD\xF8\xBAcU"\xF7CR\xF5y8\x85\x82\xFC\xB6,7j\xC9\x92q\xB7$@\xFF\xAAڄ%\xDAc\x8DƗ\xBE9au'.]#Tcg\xBE\xD4\5*\x9E5\x91+\xDB\xF7Ӹ$\xA7\xEA\xCA%Ȣe\xF5,\x93A\xF5k\xACۚͤ\xB5\xFCz;\xF3\xB1\xE8\xD86r\x97R\x8E\xCFZSq\x8B\xCF}\x92\x8D\xCFݎ\xBA\xA7B~\xD3\xF8l߶\xB4$rɎm(V\xC7\xFE\xEC\xFDp\x93\xA9\xCD9Q\xAC\xF3\xCC"\xEAg3\xF6d_đX\xB0\x9D\xE9\xDA\xFFz\xACL\x97\xED\x9B\xC5\xE4\x96$)\xFB\x9Ef\x93\xA9\xABK\xD5F\x89_\x93y%EY\x95x\xDEV\xF1\xFD\xFD\x86\xFEo\xE9\x9Ck^\xEF\xBA\xF7\xFE\xFD\x84\xDE\xE1\xF0 +%PDF1.4 +%\xD0\xD4\xC5\xD8 +3 0 obj << +/Length 233 +/Filter /FlateDecode +>> +stream +x\xDAU\x901o\xC3 \x85w\xFF +\xA6 +\xA4\x9Ap\x98\xC30\xA6R3X\x8DT)tj:\xA0ԉPG +N\xA5\xFE\xFBB\xAFK\xEE\xF1x\xDCw\xF0\x9A\xD5,\x83^j@\xC3\xF6;\xC7z\xE9\x95cᓽ\xF3]\x9CvK\D\xDBAǫJyI\x87L\xFBW\xA1\x8F\x87\xBA\x9EjO#\xB4T\xDE\xF2x\xFB\x8Bn\xE3\c\xF78\x89\x8F0\xAC6\xBAg 
From: <mlivingstone@us...>  20090706 07:15:11

Revision: 10 http://salstat.svn.sourceforge.net/salstat/?rev=10&view=rev Author: mlivingstone Date: 20090706 07:15:07 +0000 (Mon, 06 Jul 2009) Log Message:  add a bang line to allow for running from *nix shells Modified Paths:  salstat.py Modified: salstat.py ===================================================================  salstat.py 20090706 07:00:22 UTC (rev 9) +++ salstat.py 20090706 07:15:07 UTC (rev 10) @@ 1,3 +1,5 @@ +#!/usr/bin/env python + """ SalStat This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090706 07:00:27

Revision: 9 http://salstat.svn.sourceforge.net/salstat/?rev=9&view=rev Author: mlivingstone Date: 20090706 07:00:22 +0000 (Mon, 06 Jul 2009) Log Message:  fix URL wrapping Added Paths:  manual/manual.pdf Added: manual/manual.pdf ===================================================================  manual/manual.pdf (rev 0) +++ manual/manual.pdf 20090706 07:00:22 UTC (rev 9) @@ 0,0 +1,5646 @@ +%PDF1.3 +1 0 obj +<< /Length 2 0 R /Filter /FlateDecode>> +stream +x\x9C\x85RۊA}ﯨ'\xA9;&\xA9\xAA\xA4\xF2\xA8 \xC2ₗ\xF1I\x90Q\x87awvٛ\xE0'\xF9\x97\xA6\xBA{\xBB{Q\x90f\x98\x90:IN\xCE\xC9M@\xA0\x80\xED\x9B\xFF\xF7\xA7\xEE\xC5 +\x87\xBB\xC3\xFF\xBA\x9B\x8EF@\x98\xFF\xF6\xA7\xF0j\xE7\xA0H\x81\xA9\xE4\xB0\xFB\xD1M\xC5\xA8( +\xAA\x84ݩ\xFB?\xF6\x82VI\x92\xE3מAS\xB6x\xE9\x81qf~\xF2\xEFٚ7\xC0\xFB~H\x9CAuA*j\xFAI\xB6\xC9\xC7\xEE\)\xDE\xF5Xs\xAD\xF3+J\x9A_\xDB\xEC\xFD\xD8\xC9jv\xA4(l\xF1]\xCF\xAAI\x9D\x9B!\x87\xB2)\xA6x\xD1g\x95\xCD\xDBa\xA1\xF0\xBD5!H9\xC7\xC1C\xCA\xC0\xAA\xF1S\x8F\x90*\xA2\xE4\x99O\xCAڠ\xCB\xECۅycA\xC5R<\xF7\xB8<Y\xF1jd\x81R\xE2\xC3$F\x91R\xE6\xF7\xC6m\x91\xF5\xCB\xEE\xCCrǈ\xC0J\xE1摷%3\x83\xF3\xAFa\xF7ͽ\xF9\xDD\xF8\xBAcU"\xF7CR\xF5y8\x85\x82\xFC\xB6,7j\xC9\x92q\xB7$@\xFF\xAAڄ%\xDAc\x8DƗ\xBE9au'.]#Tcg\xBE\xD4\5*\x9E5\x91+\xDB\xF7Ӹ$\xA7\xEA\xCA%Ȣe\xF5,\x93A\xF5k\xACۚͤ\xB5\xFCz;\xF3\xB1\xE8\xD86r\x97R\x8E\xCFZSq\x8B\xCF}\x92\x8D\xCFݎ\xBA\xA7B~\xD3\xF8l߶\xB4$rɎm(V\xC7\xFE\xEC\xFDp\x93\xA9\xCD9Q\xAC\xF3\xCC"\xEAg3\xF6d_đX\xB0\x9D\xE9\xDA\xFFz\xACL\x97\xED\x9B\xC5\xE4\x96$)\xFB\x9Ef\x93\xA9\xABK\xD5F\x89_\x93y%EY\x95x\xDEV\xF1\xFD\xFD\x86\xFEo\xE9\x9Ck^\xEF\xBA\xF7\xFE\xFD\x84\xDE\xE1\xF0 +endstream +endobj +2 0 obj +512 +endobj +3 0 obj +<< /Type /ExtGState /OPM 1>> +endobj +4 0 obj +<< /LastChar 117 /Encoding /WinAnsiEncoding /BaseFont /HPRYRN+SFRM1728 /Type /Font /FontDescriptor 5 0 R /FirstChar 45 /Widths [ 313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 861 0 0 639 0 0 522 0 704 0 0 0 0 0 0 0 0 0 0 0 470 0 418 0 418 0 470 0 261 0 496 261 0 522 0 0 0 365 371 365 522 ] /Subtype /Type1>> +endobj +5 0 obj +<< /MissingWidth 313 /FontFile3 11 0 R /FontName /HPRYRN+SFRM1728 /Ascent 700 /CapHeight 700 /StemV 120 /FontBBox [ 0 202 801 700 ] /ItalicAngle 0 /Flags 32 /CharSet (/M/P/S/U/a/c/e/g/hyphen/i/k/l/n/r/s/t/u) /Type /FontDescriptor /XHeight 447 /Descent 202>> +endobj +6 0 obj +<< /LastChar 169 /Encoding /WinAnsiEncoding /BaseFont /BNCUTW+SFRM1200 /Type /Font /FontDescriptor 7 0 R /FirstChar 38 /Widths [ 761 0 0 0 0 0 272 326 0 0 489 0 489 0 0 0 489 0 0 489 0 0 0 0 0 0 0 734 0 0 0 0 0 0 0 0 503 0 612 897 0 0 0 0 0 544 0 0 0 0 0 0 0 0 0 0 0 0 0 489 0 0 0 435 0 489 0 272 0 517 272 816 544 489 0 0 381 386 381 544 517 0 0 517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1088 ] /Subtype /Type1>> +endobj +7 0 obj +<< /MissingWidth 326 /FontFile3 10 0 R /FontName /BNCUTW+SFRM1200 /Ascent 772 /CapHeight 715 /StemV 154 /FontBBox [ 0 270 1033 772 ] /ItalicAngle 0 /Flags 32 /CharSet (/A/J/L/M/S/a/ampersand/comma/copyright/e/g/hyphen/i/k/l/m/n/nine/o/r/s/six/t/two/u/v/y/zero) /Type /FontDescriptor /XHeight 452 /Descent 270>> +endobj +8 0 obj +<< /R7 3 0 R>> +endobj +9 0 obj +<< /R10 6 0 R /R8 4 0 R>> +endobj +10 0 obj +<< /Filter /FlateDecode /Length 3691 /Subtype /Type1C>> +stream +x\x9C\xA5W{TSW\xBA?1\x9A\xB3}\xB7\xE4fĪ\xE7Ԯ\xAAc[\xD5\xDEV\xABSEkUP\xD0"* +\x88BH\x90$\x847$$'\x8F}ȓG\x80\x84\xBCxy\xC8C\x95V\xB1j\x8B:\xD5jLG\xBDZ;\x9D\xD6V\xDB\xEBԻ\xC3l\xD6\xF2\x9EH\xA7k\xE6\xDEf\xADY\xFB\x9F\x9C\x93d߷\xBF\xEF\xF7\xD8<b\xEC\x82\xC7\xE3\x8D߾>:\xF2\xF5%\x8B\x87^ +\xCE\x9Cɇ\xD8\xF77װc\x9Cć\x93\xC66\xCC\xEE\xAD0\xF5<M}\xF41\x86\xC7\xFB͜\xB5ҌL\x85<%\xEB\xC5HirJ\x96\xE4\xC5hi\xC6>\xC9\xFFyI\xC4\xCCw$\xD2,\x99\\x91\xBDq\xDF\xE6\xDCȔ\xE6\xD4C\xDB\xD3\xC5K\xDE\>\xF7\xB5\x8B \xE2%b\xB1\x95\xD8N\xC4\xB1D\xB1\x83x\x95XC, ≅\xC4z\xE2\xB1\x81\xD8H\xBCAl&"\x89(BHL#^ Hb21\x85x\x9E\x98\xC5%\xCE=\xD4\xF2&\xF2X\xDEȘ\xF21\x8F\xF9\xA9\xFC\xFBc\xA3\xC6>\xB7~\xDC\xE7(&\x9F\x80\xA7\xE3\xE3'L\x9D\xE0\x98pyb\xEA\xC4&&ϙ7\xA5aJ\xEF\xD4\xD5Oy\xEB\xB7S\x9E\x8E\xB9\xFDG\x82 +\xA0\xC4@...\xA7\x92w\xA4Y$A\xF123\xA9\xBA\xAD\xCAZev\xD0\xD6:\xB7\xCA\xEB\xCD.P\x81\xC0\xD9\x93ڳ%\xDC.\xB7\xCB\xECr\x93Ƭ\x86\xA5@\xB2˘II\x905 '\xE5P\xCE9\x8A\x8C\x9BqF\xA0؍(n\x8Ae\z_6,\x86Z\x8D\xA1\xA4T\x89\xA36\xE0\xA8\xF7pT\xC1n\xE5\xFEUܾ1\xA8P\x84 
From: <mlivingstone@us...>  20090706 06:58:10

Revision: 8 http://salstat.svn.sourceforge.net/salstat/?rev=8&view=rev Author: mlivingstone Date: 20090706 06:58:08 +0000 (Mon, 06 Jul 2009) Log Message:  fix URL wrapping Modified Paths:  manual/manual.lyx Modified: manual/manual.lyx ===================================================================  manual/manual.lyx 20090706 06:25:37 UTC (rev 7) +++ manual/manual.lyx 20090706 06:58:08 UTC (rev 8) @@ 125,10 +125,29 @@ \begin_layout Standard In case you are interested, it is written in the Python computer language  (http://www.python.org) which is very easy to learn and yet very powerful. + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout +http://www.python.org +\end_layout + +\end_inset + +) which is very easy to learn and yet very powerful. The GUI widgets (the things you see on the screen) were created using the  wxPython toolkit (http://www.wxpython.org), one of the coolest GUI toolkits  around. + wxPython toolkit ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout +http://www.wxpython.org +\end_layout + +\end_inset + +), one of the coolest GUI toolkits around. Thanks to everyone who helped make Python and wxPython what they are (see the appendices for more information). \end_layout @@ 467,11 +486,30 @@ \begin_layout Standard Most Linux users will already have Python installed.  If not, they will need to get it from http://www.python.org.  The next thing needed is wxPython which can be had from http://www.wxpython.org,  and once those are installed, SalStat can be run. + If not, they will need to get it from +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.python.org \end_layout +\end_inset + +. + The next thing needed is wxPython which can be had from +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.wxpython.org +\end_layout + +\end_inset + +, and once those are installed, SalStat can be run. +\end_layout + \begin_layout Section Windows \end_layout @@ 501,9 +539,28 @@ \begin_layout Standard First of all, install an Xserver onto the Mac (this may be complicated, but it allows access to the plethora of applications developed for the  XWindowing system), and I think Orobor was mentioned (http://wrench.et.ic.ac.uk/ad rian/software/oroborosx/), and Ludger recommends installing the software  with fink (http://fink.sourceforge.net). + XWindowing system), and I think OroborOSX was mentioned ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +http://oroborosx.sourceforge.net/ +\end_layout + +\end_inset + +), and Ludger recommends installing the software with fink ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout +http://fink.sourceforge.net +\end_layout + +\end_inset + +). Orobor integrates well with Aqua, though I should point out that there are important differences (such as the menu appearing at the top of the window frame and not at the top of the screen). @@ 1069,9 +1126,19 @@ Just remember to type 'math.' before the function, and you can type in things like: 'math.atan(x)' to get the arc tangent, 'math.cos(x)' to get the cosine, 'math.exp(x)' to get the exponential and so on.  Consult the Python documentation for further details (http://www.python.org) + Consult the Python documentation for further details ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.python.org \end_layout +\end_inset + +) +\end_layout + \begin_layout Chapter Analysing 1 Sample Tests \end_layout @@ 2651,9 +2718,19 @@ will have an enormous amount of tools available, with everything from modules that can control web browsers, send emails, query databases, draw complex graphics, make sounds and much more.  See the Python website for more details: http://www.python.org/documentation.html + See the Python website for more details: +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.python.org/documentation.html \end_layout +\end_inset + + +\end_layout + \begin_layout Section Starting Scripting \end_layout @@ 3342,9 +3419,19 @@ The license that the program comes under (the GNU General Public License) specifies that you can access the code if you want, make any modifications you want, or give it away or sell it to other people if you want.  Get more information from the Free Software Foundation (http://www.fsf.org). + Get more information from the Free Software Foundation ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.fsf.org \end_layout +\end_inset + +). +\end_layout + \begin_layout Standard Because the source code is freely available and modifiable, anyone with the skills can tailor SalStat to their own needs. @@ 3364,8 +3451,27 @@ \end_layout \begin_layout Standard SalStat was written using the Python language (http://www.python.org) and  wxPython to construct the GUI (http://www.wxpython.org). +SalStat was written using the Python language ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.python.org +\end_layout + +\end_inset + +) and wxPython to construct the GUI ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.wxpython.org +\end_layout + +\end_inset + +). The terminal (character) based version (still to be released) uses the curses module of Python. Python was chosen for a number of reasons: Firstly, it is easy to read @@ 3424,15 +3530,43 @@ \begin_inset Quotes erd \end_inset  modules written by Gary Strangman of Harvard University (http://www.nmr.mgh.harvar d.edu/Neural_Systems_Group/strang/) and released under the GPL. + modules written by Gary Strangman of Harvard University ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.nmr.mgh.harvard.edu/Neural_Systems_Group/strang/ +\end_layout + +\end_inset + +) and released under the GPL. Because of this, SalStat also has to be released under the full GPL (not the LGPL).  The IDE used was initially Emacs (http://www.emacs.org) and then the wonderful  SciTE editor (http://www.scintilla.org), a newer generation editor that is  fast, flexible, and works superbly for editing Python code. + The IDE used was initially Emacs ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.emacs.org \end_layout +\end_inset + +) and then the wonderful SciTE editor ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.scintilla.org +\end_layout + +\end_inset + +), a newer generation editor that is fast, flexible, and works superbly + for editing Python code. +\end_layout + \begin_layout Chapter* Appendix B  Other Statistics Packages \end_layout @@ 4510,8 +4644,17 @@ modules available for almost any purpose, from the basics of file manipulation, right down to controlling a web browser or sending emails. Instead of providing you with an introduction to Python, I will instead  guide you to the best source of documentation at the Python web site (http://ww w.python.org). + guide you to the best source of documentation at the Python web site ( +\begin_inset Flex URL +status collapsed + +\begin_layout Plain Layout +http://www.python.org +\end_layout + +\end_inset + +). Just click on documentation. \end_layout @@ 4522,7 +4665,11 @@ \begin_inset Quotes eld \end_inset + +\family typewriter comp.lang.python +\family default + \begin_inset Quotes erd \end_inset This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090706 06:25:43

Revision: 7 http://salstat.svn.sourceforge.net/salstat/?rev=7&view=rev Author: mlivingstone Date: 20090706 06:25:37 +0000 (Mon, 06 Jul 2009) Log Message:  minor admin and spelling changes Modified Paths:  dataObject.py salstat_stats.py Modified: dataObject.py ===================================================================  dataObject.py 20090706 06:24:16 UTC (rev 6) +++ dataObject.py 20090706 06:25:37 UTC (rev 7) @@ 1,6 +1,6 @@ """ dataObjects.py A SalStat module to enscapulate the objects that hold the data for analysis. +A SalStat module to encapsulate the objects that hold the data for analysis. (c) 2003 Alan James Salmoni. Released under the GNU General Public License, version 2 or later. See the file 'COPYING' for the full license. Modified: salstat_stats.py ===================================================================  salstat_stats.py 20090706 06:24:16 UTC (rev 6) +++ salstat_stats.py 20090706 06:25:37 UTC (rev 7) @@ 1,8 +1,8 @@ # stats.py  reworked module for statistical analysis using OOP """ This module has been written specifically for the SalStat statistics package. It is an object oriented (and more limited) version of Gary Strangmans stats.y module, and much code has been taken from there. The classes and +It is an object oriented (and more limited) version of Gary Strangman's +stats.py module, and much code has been taken from there. The classes and methods are usable from the command line, and some may prefer the OO style to stats.py's functional style. @@ 11,7 +11,7 @@ See the enclosed file COPYING for the full text of the licence. Other parts of this code were taken from stats.py by Gary Strangman of Harvard University (c) Not sure what year, Gary Strangman, released under the +Harvard University (c) 2002, Gary Strangman, released under the GNU General Public License.""" import math @@ 70,7 +70,7 @@ def rankdata(inlist): """  Ranks the data in inlist, dealing with ties appropritely. Assumes + Ranks the data in inlist, dealing with ties appropriately. Assumes a 1D inlist. Adapted from Gary Perlman's Stat ranksort. Usage: rankdata(inlist) @@ 94,7 +94,7 @@ def tiecorrect(rankvals): """  Corrects for ties in Mann Whitney U and Kruskal Wallis H tests. See + Corrects for ties in MannWhitney U and KruskalWallis H tests. See Siegel, S. (1956) Nonparametric Statistics for the Behavioral Sciences. New York: McGrawHill. Code adapted from Stat rankind.c code. @@ 216,7 +216,7 @@ def erfcc(x): """ Returns the complementary error function erfc(x) with fractional  error everywhere less than 1.2e7. Adapted from Numerical Recipies. + error everywhere less than 1.2e7. Adapted from Numerical Recipes. Usage: erfcc(x) """ @@ 276,7 +276,7 @@ def ksprob(alam): """ Computes a KolmolgorovSmirnov ttest significance level. Adapted from  Numerical Recipies. + Numerical Recipes. Usage: ksprob(alam) """ @@ 329,7 +329,7 @@ def betacf(a,b,x): """ This function evaluates the continued fraction form of the incomplete  Beta function, betai. (Adapted from: Numerical Recipies in C.) + Beta function, betai. (Adapted from: Numerical Recipes in C.) Usage: betacf(a,b,x) """ @@ 364,7 +364,7 @@ """ Returns the gamma function of xx. Gamma(z) = Integral(0,infinity) of t^(z1)exp(t) dt.  (Adapted from: Numerical Recipies in C.) + (Adapted from: Numerical Recipes in C.) Usage: gammln(xx) """ @@ 388,7 +388,7 @@ where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma function of a. The continued fraction formulation is implemented here,  using the betacf function. (Adapted from: Numerical Recipies in C.) + using the betacf function. (Adapted from: Numerical Recipes in C.) Usage: betai(a,b,x) """ @@ 873,7 +873,7 @@ def MannWhitneyU(self, data1, data2): """MannWhitney U  This method performs a Mann Whitney U test for unmatched samples on + This method performs a MannWhitney U test for unmatched samples on 2 data vectors. Usage: MannWhitneyU(data1, data2) Returns: bigu, smallu, z, prob @@ 1114,7 +1114,7 @@ class ThreeSampleTests: """ This instantiates a class for three or more (actually 2 or more) sample  tests such as anova, Kruskal Wallis and Friedmans. + tests such as anova, KruskalWallis and Friedmans. """ def __init__(self): self.prob = 1.0 @@ 1124,7 +1124,7 @@ def anovaWithin(self, data): """Withinsubjects analysis of variance (anova)  This method performs a univariate within subkects analysis of + This method performs a univariate within subjects analysis of variance upon a Numeric data array (matrix). Usage: anovaWithin(data) data is the matrix Returns SSbet, SSint, SSres, SStot""" @@ 1198,7 +1198,7 @@ def KruskalWallisH(self, args): """Kruskall Wallis H  This method performs a Kruskal Wallis test (like a nonparametric + This method performs a KruskalWallis test (like a nonparametric between subjects anova) on a list of lists. Usage: KruskalWallisH(args). Returns: h, prob. @@ 1235,7 +1235,7 @@ """Friedman chi square This method performs a Friedman chi square (like a nonparametric within subjects anova) on a list of lists.  Usage: FriedmanChiSqure(args). + Usage: FriedmanChiSquare(args). Returns: sumranks, chisq, df, prob. """ k = len(args) @@ 1298,7 +1298,7 @@ self.df, float('%1.6f'%self.prob)]] class FriedmanComp:  """This class performs multiple comparisons on a Freidmans + """This class performs multiple comparisons on a Friedmans test. Passed values are the medians, k (# conditions), n (# samples), and the alpha value. Currently, all comparisons are performed regardless. Assumes a balanced design. @@ 1317,7 +1317,7 @@ self.outstr = self.outstr+' = '+str(diff) class KWComp:  """This class performs multiple comparisons on a Kruskal Wallis + """This class performs multiple comparisons on a KruskalWallis test. Passed values are the medians, k (# conditions), n (# samples), and the alpha value. Currently, all comparisons are performed regardless. Assumes a balanced design. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090706 06:24:18

Revision: 6 http://salstat.svn.sourceforge.net/salstat/?rev=6&view=rev Author: mlivingstone Date: 20090706 06:24:16 +0000 (Mon, 06 Jul 2009) Log Message:  and there were pictures Modified Paths:  manual/manual.lyx manual/manual.tex Modified: manual/manual.lyx ===================================================================  manual/manual.lyx 20090706 06:17:18 UTC (rev 5) +++ manual/manual.lyx 20090706 06:24:16 UTC (rev 6) @@ 49,6 +49,10 @@ SalStat Statistics Package  Users Manual \end_layout +\begin_layout Author +© 2002  2009 Alan James Salmoni & Mark Livingstone +\end_layout + \begin_layout Standard \begin_inset CommandInset toc LatexCommand tableofcontents @@ 58,14 +62,6 @@ \end_layout \begin_layout Author © 2002 Alan James Salmoni \end_layout  \begin_layout Author © 2009 Mark Livingstone \end_layout  \begin_layout Chapter Introduction \end_layout @@ 73,7 +69,7 @@ \begin_layout Standard SalStat statistics is a small application designed for the rapid analysis of scientific data.  There is a special emphasis upon the sciences like psychology. + There is a special emphasis upon the sciences like Psychology. \end_layout \begin_layout Standard @@ 120,7 +116,7 @@ \end_layout \begin_layout Standard If you have ever used a statistics package before (like SPSS or StatView), +If you have ever used a statistics package before (like SPSS® or StatView), you may be able to just start the program and be productive in a short space of time: It has been designed to be as simple as possible. Noone claims that statistics is a simple subject, but I wrote this program @@ 139,12 +135,8 @@ \begin_layout Standard \begin_inset Graphics  filename graphics/main.png not found! + filename graphics/main.png width 100text%  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 549,12 +541,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/grid.eps not found! + filename graphics/grid.png width 100col%  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 612,11 +600,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/cellsize.png not found! + filename graphics/cellsize.png width 40text%  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 731,12 +716,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/variables.eps not found! + filename graphics/variables.png width 90text%  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 814,11 +795,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/gridsize.eps not found! + filename graphics/gridsize.png width 40text%  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 866,12 +844,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/output.eps not found! + filename graphics/output.png width 4in  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 935,12 +909,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/descriptives.eps not found! + filename graphics/descriptives.png width 4in  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 1140,12 +1110,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/1cond.eps not found! + filename graphics/1cond.png width 4in  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 1393,12 +1359,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/2cond.eps not found! + filename graphics/2cond.png width 4in  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 2121,12 +2083,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/3cond.eps not found! + filename graphics/3cond.png width 4in  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 2666,12 +2624,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/scripting.eps not found! + filename graphics/scripting.png width 100text%  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset @@ 3274,12 +3228,8 @@ \begin_layout Standard \begin_inset Graphics  filename /home/alan/graphics/help.eps not found! + filename graphics/help.png width 100text%  keepAspectRatio  draft  BoundingBox 0 0 200 100  special type=eps \end_inset Modified: manual/manual.tex ===================================================================  manual/manual.tex 20090706 06:17:18 UTC (rev 5) +++ manual/manual.tex 20090706 06:24:16 UTC (rev 6) @@ 1,53 +1,56 @@ %% LyX 1.2 created this file. For more info, see http://www.lyx.org/. +%% LyX 1.6.3 created this file. For more info, see http://www.lyx.org/. %% Do not edit unless you really know what you are doing. \documentclass[oneside,english]{book} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \setcounter{secnumdepth}{5} \setcounter{tocdepth}{3} \setlength\parskip{\medskipamount} \setlength\parindent{0pt} +\setlength{\parskip}{\medskipamount} +\setlength{\parindent}{0pt} +\usepackage{textcomp} \usepackage{graphicx} \makeatletter +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. \providecommand{\LyX}{L\kern.1667em\lower.25em\hbox{Y}\kern.125emX\@} +\makeatother \usepackage{babel} \makeatother + \begin{document} \title{SalStat Statistics Package  Users Manual} + +\author{\xA9 2002  2009 Alan James Salmoni \& Mark Livingstone} + \maketitle \tableofcontents{} \author{(c) 2002 Alan James Salmoni}   \chapter{Introduction} SalStat statistics is a small application designed for the rapid analysis of scientific data. There is a special emphasis upon the sciences like psychology. +like Psychology. It is available under the terms of the GNU General Public License (the ``GPL''), and a copy is present both with the program code, and in the program itself (use the menu, click on ``help'', then ``about'', and click on the tab marked ``license''. There is also a copy in the appendix of this document). In short this means that you can do what you want with the source code  change it, sell it, give it away for free, but you must also make the source code available for anyone upon request should you distribute your changes, or change the license. By the way, it costs you nothing unless you want to pay! +(the {}``GPL''), and a copy is present both with the program code, +and in the program itself (use the menu, click on {}``help'', then +{}``about'', and click on the tab marked {}``license''. There +is also a copy in the appendix of this document). In short this means +that you can do what you want with the source code  change it, sell +it, give it away for free, but you must also make the source code +available for anyone upon request should you distribute your changes, +or change the license. By the way, it costs you nothing unless you +want to pay! If you have ever used a statistics package before (like SPSS or StatView), you may be able to just start the program and be productive in a short space of time: It has been designed to be as simple as possible. Noone claims that statistics is a simple subject, but I wrote this program to be as transparent as possible to the user. +If you have ever used a statistics package before (like SPSS\textregistered{} +or StatView), you may be able to just start the program and be productive +in a short space of time: It has been designed to be as simple as +possible. Noone claims that statistics is a simple subject, but I +wrote this program to be as transparent as possible to the user. In case you are interested, it is written in the Python computer language (http://www.python.org) which is very easy to learn and yet very powerful. @@ 56,10 +59,9 @@ GUI toolkits around. Thanks to everyone who helped make Python and wxPython what they are (see the appendices for more information). \includegraphics[ width=1.0\textwidth,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{graphics/main.png not found!} +\includegraphics[draft,width=1\textwidth]{graphics/main.png} \textsl{SalStat in action on GNU/Linux } +\textsl{SalStat in action on GNU/Linux} \chapter{History of SalStat} @@ 67,34 +69,34 @@ The idea for SalStat began forming in my mind a number of years ago when I realised that SPSS would not run on my computer (it was a small one with a small memory by todays standards). Over time, I got a more powerful computer that could run SPSS, but I couldn't afford it. Later on, I actually taught psychology undergraduates how to use SPSS for basic statistical analysis (up to multifactorial analysis of variance). Every time I taught, the same problems came up again and again. For example, the data entry was confusing and varied according to whether you were performing a within or between subjects test. This was confusing to people who weren't familiar with SPSS or even statistics, and I felt that it got in the way of how productive the students were. In addition, my colleagues and I relied greatly upon the top commercial packages and found them all lacking in some way or other, which gave me an ``itch'' that I had to scratch. +powerful computer that could run SPSS, but I couldn't afford it. Later +on, I actually taught psychology undergraduates how to use SPSS for +basic statistical analysis (up to multifactorial analysis of variance). +Every time I taught, the same problems came up again and again. For +example, the data entry was confusing and varied according to whether +you were performing a within or between subjects test. This was confusing +to people who weren't familiar with SPSS or even statistics, and I +felt that it got in the way of how productive the students were. In +addition, my colleagues and I relied greatly upon the top commercial +packages and found them all lacking in some way or other, which gave +me an {}``itch'' that I had to scratch. Therefore, I saw that there was a need for a simple and easy to use statistics package available on as many different operating systems as possible which could be used by virtually anyone with a little bit of statistical knowledge. This created a few problems in itself. Obviously, in order to be easy to use, it had to have a graphical user interface (GUI) as many people find the command line interface intimidating. Besides, there are already good packages available with the command line interface (such as R or lispstat  see appendix C for more details). GUI programming is difficult to do across different platforms, as they all do things in different ways. This meant either that I had to write a new version of SalStat for each platform (which was difficult as I didn't have a Macintosh to work on), or I had to use a language that offered crossplatform capabilities with a powerful yet simple way to do a GUI interface. For example, Visual Basic would allow me to do the program on Windows easily, but it would not be available for Unix, Linux or the Macintosh. +Obviously, in order to be easy to use, it had to have a graphical +user interface (GUI) as many people find the command line interface +intimidating. Besides, there are already good packages available with +the command line interface (such as R or lispstat  see appendix +C for more details). GUI programming is difficult to do across different +platforms, as they all do things in different ways. This meant either +that I had to write a new version of SalStat for each platform (which +was difficult as I didn't have a Macintosh to work on), or I had to +use a language that offered crossplatform capabilities with a powerful +yet simple way to do a GUI interface. For example, Visual Basic would +allow me to do the program on Windows easily, but it would not be +available for Unix, Linux or the Macintosh. I considered many languages. My first choice was Ada, a language commissioned by the US Department of Defense. It was crossplatform, was compiled @@ 125,8 +127,8 @@ native look and feel, and a simple object oriented way of programming them. My decision to use the GNU General Public License (the ``GPL'') for this work was for pragmatic reasons. If had had released it under +My decision to use the GNU General Public License (the {}``GPL'') +for this work was for pragmatic reasons. If had had released it under a commercial/proprietary license, I would have to offer support and do some marketing which is not something I am interested in. My objective was not to make money, but rather to make the best statistics package @@ 141,10 +143,10 @@ I find it heartening that folk from so many different countries find my work useful. To date, I have heard from people in the UK, Ireland, US, Canada, Slovakia, France, Germany, Switzerland, the Philippines, Australia, Brazil, and Mexico. I am interested in hearing how many people use it, so drop me an email if you can. +To date, I have heard from people in the UK, Ireland, US, Canada, +Slovakia, France, Germany, Switzerland, the Philippines, Australia, +Brazil, and Mexico. I am interested in hearing how many people use +it, so drop me an email if you can. \chapter{What Does SalStat Do?} @@ 160,7 +162,7 @@ \section{Descriptive Statistics} (Parametric and non parametric are mixed here) N (count), sum, mean, +(Parametric and nonparametric are mixed here) N (count), sum, mean, variance, standard deviation, standard error, sum of squares, sum of squared deviations, coefficient of variation, minimum, maximum, range, number of missing cells, geometric mean, harmonic mean, skewness, @@ 214,14 +216,14 @@ SalStat is available for download from the world wide web. Being a Python program, it is available in source code (as Python is interpreted  don't worry if you don't know what this means), and the best place to get it is from its home site: http://salstat.com . This is where all the latest and greatest releases are located, as well as additional tests that can be downloaded and added. The download edition is fully functional (in other words, it is not savedisabled or limited to only a certain number of conditions), and will cost nothing. You can pay if you want (rather I should say that donations to ensure continuing development are most welcome!), but there is absolutely no obligation to do so. +to get it is from its home site: http://salstat.com . This is where +all the latest and greatest releases are located, as well as additional +tests that can be downloaded and added. The download edition is fully +functional (in other words, it is not savedisabled or limited to +only a certain number of conditions), and will cost nothing. You can +pay if you want (rather I should say that donations to ensure continuing +development are most welcome!), but there is absolutely no obligation +to do so. There are essentially 2 versions available. The first is much bigger and contains every file you need to run SalStat. Just download this, @@ 233,7 +235,7 @@ If you are using Linux or a version of Unix, then you could well have Python already installed. Again, the website has the best instructions for you, so go there and head for the ``download'' page! +for you, so go there and head for the {}``download'' page! \chapter{Installing SalStat} @@ 312,8 +314,7 @@ screen. One has a grid like pattern on it, and the other is mostly blank. Both have menus. \includegraphics[ width=1.0\columnwidth,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/grid.eps not found!} +\includegraphics[draft,width=1\columnwidth]{graphics/grid} \textsl{The data grid, where you can enter data} @@ 335,44 +336,43 @@ The data grid can be customised to your liking. If you find the cells too large or small they can easily be changed: if you go to the menu, click on ``Preferences'' > ``Change Cell Size...''. +click on {}``Preferences'' > {}``Change Cell Size...''. \includegraphics[ width=0.40\textwidth,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/cellsize.png not found!} +\includegraphics[draft,width=0.4\textwidth]{graphics/cellsize} \textsl{Changing the cell size on the grid} A small dialog box will come up that has 2 buttons on the bottom (marked ``Okay'' and ``Cancel''), and a couple of what are called ``spin controls''. Next to the box with a number in it are 2 small arrows pointing up and down. Click on these to change the values. The top box number refers to how wide the columns are, and the lower box is how high the rows are. Try changing the values of both, then click on ``okay'', and you will see that the data grid has changed all of the cells sizes. If you only want to change the size of one column or row, put the mouse point over the line next to the column or row you want to change. You will see that the mouse cursor changes from the normal arrow into a line with an arrow at each end. This means you can press the left button and drag the line (with the button held down) to where you want. +{}``Okay'' and {}``Cancel''), and a couple of what are called +{}``spin controls''. Next to the box with a number in it are 2 small +arrows pointing up and down. Click on these to change the values. +The top box number refers to how wide the columns are, and the lower +box is how high the rows are. Try changing the values of both, then +click on {}``okay'', and you will see that the data grid has changed +all of the cells sizes. If you only want to change the size of one +column or row, put the mouse point over the line next to the column +or row you want to change. You will see that the mouse cursor changes +from the normal arrow into a line with an arrow at each end. This +means you can press the left button and drag the line (with the button +held down) to where you want. As each column in SalStat refers to a different condition, each column heading can also be changed: These may be referred to as variable names. Of course, you can keep the default headings of A, B, C and so on, but it may be easier when you read your results to have headings more meaningful to yourself. Using the above example of 3 levels of alcohol, you could use headings of ``2 units'', ``4 units'', and ``6 units''. To change the headings, just go to the menu, click on ``Preferences'' > ``Variables...''. +alcohol, you could use headings of {}``2 units'', {}``4 units'', +and {}``6 units''. To change the headings, just go to the menu, +click on {}``Preferences'' > {}``Variables...''. \includegraphics[ width=0.90\textwidth,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/variables.eps not found!} +\includegraphics[draft,width=0.9\textwidth]{graphics/variables} \textsl{Making variable names} A new window will appear, and in this there is another grid, but this time smaller. Here, you can put whatever variable names you want into the top row. If you have missing data (data where you were not able to collect a value), you can also enter what you want your missing +time smaller. Here, you can put whatever variable names you want into +the top row. If you have missing data (data where you were not able +to collect a value), you can also enter what you want your missing data to be. By default, the value is 99.999, but if you have some real data of this value, you would want to change the missing value to something more suitable. @@ 380,27 +380,27 @@ If you have some data saved on disk, it can be loaded. Currently, SalStat only loads ASCII data  this means simply plain text, and with no variable names. This is done by going to the menu and clicking on ``Menu > Open...'', and a standard dialog will appear allowing +on {}``Menu > Open...'', and a standard dialog will appear allowing you to select the file you want to load. If your data are too big for the grid, don't worry because SalStat will automatically adjust its size to fit the data. Saving data is done the same way. From the menu, click on ``File > Save As...'', and you will get a dialog where you can enter the file name. +Saving data is done the same way. From the menu, click on {}``File +> Save As...'', and you will get a dialog where you can enter the +file name. If you need to add an extra column or row to the grid, go to the menu, click on ``Edit'' > ``Add Columns and Rows...'', and a dialog will appear where you can enter the number of rows or columns you want to add. +click on {}``Edit'' > {}``Add Columns and Rows...'', and a dialog +will appear where you can enter the number of rows or columns you +want to add. \includegraphics[ width=0.40\textwidth,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/gridsize.eps not found!} +\includegraphics[draft,width=0.4\textwidth]{graphics/gridsize} \textsl{Changing the size of the grid} From the same place, you can also delete rows or columns. The column or row deleted will be the one with the ``focus'' (this is the cell where you are currently entering data). +or row deleted will be the one with the {}``focus'' (this is the +cell where you are currently entering data). \chapter{Using SalStat  Dealing With The Output} @@ 408,16 +408,16 @@ The output is in HTML format  this is the format used for web pages, and your results can be opened in any web browser and most word processors to be edited. It is displayed in the output sheet  the window with the large space saying ``SalStat Statistics''. +the large space saying {}``SalStat Statistics''. \includegraphics[ width=4in,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/output.eps not found!} +\includegraphics[draft,width=4in]{graphics/output} \textsl{The output of SalStat} When you have done some analysis, the results will all be appended there. If you wish to save the results, click on the menu ``File'' > ``Save As...'', and a dialog will appear allowing you to enter a filename. +When you have done some analysis, the results will all be appended +there. If you wish to save the results, click on the menu {}``File'' +> {}``Save As...'', and a dialog will appear allowing you to enter +a filename. \chapter{Descriptive Statistics} @@ 428,8 +428,7 @@ goes into its own column), go to the menu bar, click on {}``Describe'' and select {}``Continuous...''. \includegraphics[ width=4in,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/descriptives.eps not found!} +\includegraphics[draft,width=4in]{graphics/descriptives} \textsl{Descriptive Statistics} @@ 456,58 +455,64 @@ \chapter{Transforming Data} If you find that your data is skewed or kurtotic, you may wish to transform the data. There may indeed be other reasons for transforming data too. This is quite a simple process in SalStat. Just go to the top menu, click on ``Prepare" and then the ``Transform..." option. A Dialog box will appear just like below. +If you find that your data is skewed or kurtotic, you may wish to +transform the data. There may indeed be other reasons for transforming +data too. This is quite a simple process in SalStat. Just go to the +top menu, click on {}``Prepare\textquotedbl{} and then the {}``Transform...\textquotedbl{} +option. A Dialog box will appear just like below. On the left hand side of the dialog box is a list of columns, just like you would see if you wanted some descriptive statistics. This list only contains grid columns that actually contain data (because there's no point in transforming nothing!) Just click on the small box to the left of each column name if you wish to change it. +On the left hand side of the dialog box is a list of columns, just +like you would see if you wanted some descriptive statistics. This +list only contains grid columns that actually contain data (because +there's no point in transforming nothing!) Just click on the small +box to the left of each column name if you wish to change it. To the right hand side, there are four buttons, and beneath them a nice little box where you can type text in. The text will show the function that you wish to apply to your data, and you can type in your own functions. +To the right hand side, there are four buttons, and beneath them a +nice little box where you can type text in. The text will show the +function that you wish to apply to your data, and you can type in +your own functions. However, there are a set of functions that are commonly used in transforming data. SalStat has four of these built in, and clicking on one of the four buttons will show the function in the text box. +However, there are a set of functions that are commonly used in transforming +data. SalStat has four of these built in, and clicking on one of the +four buttons will show the function in the text box. The functions are: square root, square, logarithm, and the reciprocal. When SalStat is transforming data, it takes the data from the columns that you indicated, applies the function to each cell in the column and puts the new data into the first empty cell it can find. +The functions are: square root, square, logarithm, and the reciprocal. +When SalStat is transforming data, it takes the data from the columns +that you indicated, applies the function to each cell in the column +and puts the new data into the first empty cell it can find. You will also find that the column heading (the variable name) also changes. If you used one of the prepared function buttons, the name of the function will appear along with the column originally used. If you typed your own function, then that function will be used for the variable name. +You will also find that the column heading (the variable name) also +changes. If you used one of the prepared function buttons, the name +of the function will appear along with the column originally used. +If you typed your own function, then that function will be used for +the variable name. \section {Python Functions} As mentioned earlier, you can type in your own functions. Because SalStat is a Python application, the syntax is basic Python. The functions use the term 'x' to denote the cell. +\section{Python Functions} \subsection {Examples} +As mentioned earlier, you can type in your own functions. Because +SalStat is a Python application, the syntax is basic Python. The functions +use the term 'x' to denote the cell. If you wish to add 2 to each column, the function would be 'x + 2' or '2 + x'. If you  wished to get the cubed root, you would type 'x * x * x' or 'x ** 3'. There are a  range of functions available if you use the 'math' module. Just remember  to type 'math.' before the function, and you can type in things like: 'math.atan(x)'  to get the arc tangent, 'math.cos(x)' to get the cosine, 'math.exp(x)' to get  the exponential and so on. Consult the Python documentation for further details  (http://www.python.org)  +\subsection{Examples} + +If you wish to add 2 to each column, the function would be 'x + 2' +or '2 + x'. If you wished to get the cubed root, you would type 'x +{*} x {*} x' or 'x {*}{*} 3'. There are a range of functions available +if you use the 'math' module. Just remember to type 'math.' before +the function, and you can type in things like: 'math.atan(x)' to get +the arc tangent, 'math.cos(x)' to get the cosine, 'math.exp(x)' to +get the exponential and so on. Consult the Python documentation for +further details (http://www.python.org) + + \chapter{Analysing 1 Sample Tests} SalStat is very easy to use to analyse a single sample test (one sample tests are when you only have a single data set that you wish to compare against a mean). Go to the menu, click on ``Analyse'', then ``1 Sample Tests...'', and a dialog box will appear. +against a mean). Go to the menu, click on {}``Analyse'', then {}``1 +Sample Tests...'', and a dialog box will appear. At the top left hand side of this box, there is a dropdown box. Clicking the arrow on the right hand side of the box will display a list of @@ 515,19 +520,18 @@ columns will appear, so get rid of the box and enter some data! (but you knew that already, didn't you?) \includegraphics[ width=4in,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/1cond.eps not found!} +\includegraphics[draft,width=4in]{graphics/1cond} \textit{One Sample Tests} Underneath this is a checklist box like the two used when you got the descriptive statistics. To select a test, you will need to click on the small box to the left of the test, and it will be used to analyse +Underneath this is a checklist box like the two used when you got +the descriptive statistics. To select a test, you will need to click +on the small box to the left of the test, and it will be used to analyse your data. If you only want the test result, there are two more things to do. The first is to select the tail of the hypothesis (more information in the chapter on analysing 2 sample tests). The 2tailed hypothesis +If you only want the test result, there are two more things to do. +The first is to select the tail of the hypothesis (more information +in the chapter on analysing 2 sample tests). The 2tailed hypothesis is kindly selected for you by default, and this seems to work for most analyses, although you can select a onetailed hypothesis if you are lucky enough to have evidence to support a claim for a directional @@ 536,14 +540,14 @@ One sample tests differ from most others in that you are only looking at one data set. This leads to a problem of what are they being compared against, and the way to do this with SalStat is to enter what is termed a ``User Hypothesised Mean'' in the little text box underneath where you indicate the tail of your hypothesis. What this value is depends upon what you think the population mean is, and it is really up to you to decide what to use. +a {}``User Hypothesised Mean'' in the little text box underneath +where you indicate the tail of your hypothesis. What this value is +depends upon what you think the population mean is, and it is really +up to you to decide what to use. Once this is done, you can click the ``Okay'' button, and the results will dutifully appear in the output window ready for your inspection! Simple, eh? +Once this is done, you can click the {}``Okay'' button, and the +results will dutifully appear in the output window ready for your +inspection! Simple, eh? Of course, many people want to find out more information than just test statistics (and pvalue). On the right hand side of the window, @@ 551,8 +555,8 @@ you were getting descriptive statistics), but with both parametric and nonparametric tests present. Again, you can select which tests you want, or you can be completely greedy and get the lot by clicking on the button marked ``Select All'' at the bottom of the screen. When you are ready, click on ``okay''. +on the button marked {}``Select All'' at the bottom of the screen. +When you are ready, click on {}``okay''. \section{Parametric Comparisons} @@ 567,12 +571,13 @@ the means differ significantly, and this is shown in the p value. To perform a one sample ttest, enter the data into a single column on the data grid. Go to the menu bar and click on ``Analyse'' > ``One Sample Tests...''. A dialog box will appear. Using the dropdown box at the top of the dialog box, select the column which contains the data. Check ``ttest'', and enter the hypothesised mean into the box marked ``User Hypothesised Mean'', select a one or two tailed hypothesis (twotailed is selected by default), and click the ``Okay'' button. +on the data grid. Go to the menu bar and click on {}``Analyse'' +> {}``One Sample Tests...''. A dialog box will appear. Using the +dropdown box at the top of the dialog box, select the column which +contains the data. Check {}``ttest'', and enter the hypothesised +mean into the box marked {}``User Hypothesised Mean'', select a +one or two tailed hypothesis (twotailed is selected by default), +and click the {}``Okay'' button. Output consists of the user hypothesised mean, the degrees of freedom (in brackets), the t statistic, and the approximate p value. @@ 591,13 +596,13 @@ like the one sample ttest. Enter the data into a single column on the data grid. Go to the menu bar and click on \char`\"{}Analyse\char`\"{} > \char`\"{}One Sample Tests...\char`\"{}. A dialog box will appear. Using the dropdown box at the top of the dialog box, select the column which contains the data. Check ``sign test'', enter the hypothesised mean into the box marked ``User Hypothesised Mean'', select a one or twotailed hypothesis (twotailed is selected by default), and click the ``Okay'' button. +bar and click on \textquotedbl{}Analyse\textquotedbl{} > \textquotedbl{}One +Sample Tests...\textquotedbl{}. A dialog box will appear. Using the +dropdown box at the top of the dialog box, select the column which +contains the data. Check {}``sign test'', enter the hypothesised +mean into the box marked {}``User Hypothesised Mean'', select a +one or twotailed hypothesis (twotailed is selected by default), +and click the {}``Okay'' button. Output consists of the user hypothesised mean, the value for N, the value for z and the p value. @@ 613,8 +618,7 @@ and then {}``2 sample tests...'', and the following dialog box will appear. \includegraphics[ width=4in,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/2cond.eps not found!} +\includegraphics[draft,width=4in]{graphics/2cond} \textit{Two Sample Tests} @@ 631,9 +635,9 @@ for the experiment and click okay. The results will appear on the output window. NOTE  the Ftest for variance ratios need to have a user hypothesised variance entered, and this is done in the little text box just above the {}``Cancel'' button. +\textbf{NOTE:} The Ftest for variance ratios need to have a user +hypothesised variance entered, and this is done in the little text +box just above the {}``Cancel'' button. \section{Parametric Comparisons} @@ 641,7 +645,7 @@ \subsection{Unpaired ttest} The unpaired ttest is a parametric test that analysis 2 samples of +The unpaired ttest is a parametric test that analyses 2 samples of data, and examines whether the means of each sample differ by chance or due to experimental manipulation. The unpaired test differs from the paired test in that participants must only be subjected to one @@ 649,12 +653,13 @@ use the paired ttest. Enter the data for each condition into its own column (in other words, one column for one condition). Go to the menu, click on ``Analyse'' then ``2 Condition Tests...'' and a new window will appear. Select +one column for one condition). Go to the menu, click on {}``Analyse'' +then {}``2 Condition Tests...'' and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check ``ttest unpaired'' from the list in the box marked ``Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default), and click on the ``Okay'' button. +the top of the window. Check {}``ttest unpaired'' from the list +in the box marked {}``Parametric Tests'', select a one or two tailed +hypothesis (two tailed is selected by default), and click on the {}``Okay'' +button. Output consists of the degree of freedom (in brackets), the t statistic and the pvalue which gives the likelihood that the 2 samples differ @@ 670,12 +675,13 @@ condition, use the unpaired ttest. Enter the data for each condition into its own column (in other words, one column for one condition). Go to the menu, click on ``Analyse'' then ``2 Condition Tests...'' and a new window will appear. Select +one column for one condition). Go to the menu, click on {}``Analyse'' +then {}``2 Condition Tests...'' and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check ``ttest paired'' from the list in the box marked ``Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default), and click on the ``Okay'' button. +the top of the window. Check {}``ttest paired'' from the list in +the box marked {}``Parametric Tests'', select a one or two tailed +hypothesis (two tailed is selected by default), and click on the {}``Okay'' +button. Output consists of the degree of freedom (in brackets), the t statistic and the pvalue which gives the likelihood that the 2 samples differ @@ 691,14 +697,14 @@ or whether one group is larger or smaller than the other. Enter the data for each condition into its own column (in other words, one column for one condition). Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check \char`\"{}Ftest\char`\"{} from the list in the box marked \char`\"{}Parametric Tests\char`\"{}, +one column for one condition). Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} +then \textquotedbl{}2 Condition Tests...\textquotedbl{} and a new +window will appear. Select the 2 columns which contain the data using +the 2 drop down boxes at the top of the window. Check \textquotedbl{}Ftest\textquotedbl{} +from the list in the box marked \textquotedbl{}Parametric Tests\textquotedbl{}, select a one or two tailed hypothesis (two tailed is selected by default), enter the user hypothesised ratio into the box marked ``User Hypothesised Ratio'' and click on the ``Okay'' button. +enter the user hypothesised ratio into the box marked {}``User Hypothesised +Ratio'' and click on the {}``Okay'' button. Output consists of the 2 degrees of freedom (in brackets), a value for F and the pvalue which gives the likelihood that the 2 samples' @@ 710,7 +716,7 @@ \subsection{Paired Sign Test} The paired sign test is a non parametric test that compares 2 samples +The paired sign test is a nonparametric test that compares 2 samples to see if they differ due to chance or not. The samples must be within subjects (participants did both conditions), and is useful because it makes few assumptions about the data, but is not a very powerful @@ 718,39 +724,40 @@ needed. Enter the data into 2 columns, each sample having its own column. Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check ``Paired sign'' from the list in the box marked ``Non Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default) and click on the ``Okay'' button. +Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} then +\textquotedbl{}2 Condition Tests...\textquotedbl{} and a new window +will appear. Select the 2 columns which contain the data using the +2 drop down boxes at the top of the window. Check {}``Paired sign'' +from the list in the box marked {}``Non Parametric Tests'', select +a one or two tailed hypothesis (two tailed is selected by default) +and click on the {}``Okay'' button. Output consists of a value for N, a value for z, and the p value. \subsection{Wilcoxon Signed Ranks Test} The Wilcoxon signed ranks test is a non parametric test for within +The Wilcoxon signed ranks test is a nonparametric test for within subjects designs (participants must take part in both conditions) that tests 2 samples of data. It analyses the same type of data as the paired sign test, but is more powerful This test first ranks the data, and takes the difference between the ranks of each pair. +the paired sign test, but is more powerful. This test first ranks +the data, and takes the difference between the ranks of each pair. Enter the data into 2 columns, each sample having its own column. Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check ``Wilcoxon Signed Ranks'' from the list in the box marked ``Non Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default) and click on the ``Okay'' button. +Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} then +\textquotedbl{}2 Condition Tests...\textquotedbl{} and a new window +will appear. Select the 2 columns which contain the data using the +2 drop down boxes at the top of the window. Check {}``Wilcoxon Signed +Ranks'' from the list in the box marked {}``Non Parametric Tests'', +select a one or two tailed hypothesis (two tailed is selected by default) +and click on the {}``Okay'' button. Output consists of a value for z, a value for t and a p value. \subsection{Wilcoxon RankSums Test} This test is a non parametric test designed to analyse 2 samples of +This test is a nonparametric test designed to analyse 2 samples of data that are unrelated (in other words, participants took part in only one condition). For this test, the observations of both conditions are combined and then ranked, and then each condition is summed. If @@ 758,33 +765,35 @@ is used. Enter the data into 2 columns, each sample having its own column. Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check \char`\"{}Wilcoxon Ranks Sum\char`\"{} from the list in the box marked \char`\"{}Non Parametric Tests\char`\"{}, select a one or two tailed hypothesis (two tailed is selected by default) and click on the ``Okay'' button. +Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} then +\textquotedbl{}2 Condition Tests...\textquotedbl{} and a new window +will appear. Select the 2 columns which contain the data using the +2 drop down boxes at the top of the window. Check \textquotedbl{}Wilcoxon +Ranks Sum\textquotedbl{} from the list in the box marked \textquotedbl{}Non +Parametric Tests\textquotedbl{}, select a one or two tailed hypothesis +(two tailed is selected by default) and click on the {}``Okay'' +button. Output consists of a value for t and a p value. \subsection{MannWhitney U Test} The MannWhitney U test is a non parametric test to analyse 2 samples +The MannWhitney U test is a nonparametric test to analyse 2 samples of data that are unrelated (participants therefore only took part in one condition). Both samples must be continuous, and compares the ranks rather than the observations like the ttest does. Because ranks are used, it is resistant to outliers. Enter the data into 2 columns, each sample having its own column. Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check \char`\"{}MannWhitney U\char`\"{} from the list in the box marked \char`\"{}Non Parametric Tests\char`\"{}, select a one or two tailed hypothesis (two tailed is selected by default) and click on the ``Okay'' button. +Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} then +\textquotedbl{}2 Condition Tests...\textquotedbl{} and a new window +will appear. Select the 2 columns which contain the data using the +2 drop down boxes at the top of the window. Check \textquotedbl{}MannWhitney +U\textquotedbl{} from the list in the box marked \textquotedbl{}Non +Parametric Tests\textquotedbl{}, select a one or two tailed hypothesis +(two tailed is selected by default) and click on the {}``Okay'' +button. Output consists of a value for z, a small value for U, a big value for U and a p value. @@ 792,25 +801,25 @@ \subsection{KolmogorovSmirnov Test} The Kolmogorov Smirnov test is a non parametric test that analyses +The Kolmogorov Smirnov test is a nonparametric test that analyses 2 unrelated samples (participants only did one condition), and the data must be continuous. Because of the way it compares the distributions, it may be influenced by outliers and should be used cautiously if they are suspected. Enter the data into 2 columns, each sample having its own column. Go to the menu, click on \char`\"{}Analyse\char`\"{} then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Select the 2 columns which contain the data using the 2 drop down boxes at the top of the window. Check \char`\"{}KolmogorovSmirnov\char`\"{} from the list in the box marked \char`\"{}Non Parametric Tests\char`\"{}, +Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} then +\textquotedbl{}2 Condition Tests...\textquotedbl{} and a new window +will appear. Select the 2 columns which contain the data using the +2 drop down boxes at the top of the window. Check \textquotedbl{}KolmogorovSmirnov\textquotedbl{} +from the list in the box marked \textquotedbl{}Non Parametric Tests\textquotedbl{}, select a one or two tailed hypothesis (two tailed is selected by default) and click on the \char`\"{}Okay\char`\"{} button. +and click on the \textquotedbl{}Okay\textquotedbl{} button. Output consists of a value for D, and a p value. \section{Correlations (parametric and nonparametric)} +\section{Correlations (Parametric and NonParametric)} Correlations are used to see how well 2 sets of data are correlated with each other. Correlations vary from 1.0 to +1.0. The closer the @@ 832,12 +841,12 @@ should be used with caution when outliers are suspected. Data are entered in one column for each sample. Go to the menu, click on ``Analyse'' and then ``2 Condition Tests...'' and a new window will appear. Using the 2 drop down boxes at the top of the window, select which columns contain the data, check ``Pearsons Correlation'' from the box marked ``Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default), and click on the ``Okay'' button. +on {}``Analyse'' and then {}``2 Condition Tests...'' and a new +window will appear. Using the 2 drop down boxes at the top of the +window, select which columns contain the data, check {}``Pearsons +Correlation'' from the box marked {}``Parametric Tests'', select +a one or two tailed hypothesis (two tailed is selected by default), +and click on the {}``Okay'' button. The output consists of the degrees of freedom (in brackets), a value for r (which shows the correlation direction and strength), and a @@ 846,17 +855,17 @@ \subsection{Spearmans Rank Correlation} Spearmans rho is a correlation for non parametric data which unlike +Spearmans rho is a correlation for nonparametric data which unlike Pearsons correlation uses the rank ordering of the data, and is therefore not susceptible to outliers in the data. Data are entered in one column for each sample. Go to the menu, click on ``Analyse'' and then ``2 Condition Tests...'' and a new window will appear. Using the 2 drop down boxes at the top of the window, select which columns contain the data, check ``Spearmans Correlation'' from the box marked ``Non Parametric Tests'', select a one or two tailed hypothesis (two tailed is selected by default), and click on the ``Okay'' button. +on {}``Analyse'' and then {}``2 Condition Tests...'' and a new +window will appear. Using the 2 drop down boxes at the top of the +window, select which columns contain the data, check {}``Spearmans +Correlation'' from the box marked {}``Non Parametric Tests'', select +a one or two tailed hypothesis (two tailed is selected by default), +and click on the {}``Okay'' button. The output consists of the degrees of freedom (in brackets), a value for rho (which shows the correlation direction and strength), and @@ 865,17 +874,17 @@ \subsection{Kendalls Coefficient of Rank} Kendalls tau is another non parametric correlation, is very similar +Kendalls tau is another nonparametric correlation, is very similar to the Spearmans rho correlation and is resistant to outliers. Data are entered in one column for each sample. Go to the menu, click on \char`\"{}Analyse\char`\"{} and then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Using the 2 drop down boxes at the top of the window, select which columns contain the data, check \char`\"{}Kendalls tau Correlation\char`\"{} from the box marked \char`\"{}Non Parametric Tests\char`\"{}, select a one or two tailed hypothesis (two tailed is selected by default), and click on the \char`\"{}Okay\char`\"{} button. +on \textquotedbl{}Analyse\textquotedbl{} and then \textquotedbl{}2 +Condition Tests...\textquotedbl{} and a new window will appear. Using +the 2 drop down boxes at the top of the window, select which columns +contain the data, check \textquotedbl{}Kendalls tau Correlation\textquotedbl{} +from the box marked \textquotedbl{}Non Parametric Tests\textquotedbl{}, +select a one or two tailed hypothesis (two tailed is selected by default), +and click on the \textquotedbl{}Okay\textquotedbl{} button. The output consists of a value for tau (which shows the correlation direction and strength), and a p value. @@ 883,21 +892,22 @@ \subsection{Point Biserial r Correlation} The point biserial r correlation is for non parametric data, but the +The point biserial r correlation is for nonparametric data, but the first sample must contain dichotomous data (which means that there should only be 2 categories like male and female). Data are entered in one column for each sample, one of which must contain dichotmous data. Go to the menu, click on \char`\"{}Analyse\char`\"{} and then \char`\"{}2 Condition Tests...\char`\"{} and a new window will appear. Using the 2 drop down boxes at the top of the window, select which columns contain the data, with the dichotmous data being the first column selected. Check \char`\"{}Point Biserial r\char`\"{} from the box marked \char`\"{}Non Parametric Tests\char`\"{}, select a one or two tailed hypothesis (two tailed is selected by default), and click on the \char`\"{}Okay\char`\"{} button. +contain dichotmous data. Go to the menu, click on \textquotedbl{}Analyse\textquotedbl{} +and then \textquotedbl{}2 Condition Tests...\textquotedbl{} and a +new window will appear. Using the 2 drop down boxes at the top of +the window, select which columns contain the data, with the dichotmous +data being the first column selected. Check \textquotedbl{}Point Biserial +r\textquotedbl{} from the box marked \textquotedbl{}Non Parametric +Tests\textquotedbl{}, select a one or two tailed hypothesis (two tailed +is selected by default), and click on the \textquotedbl{}Okay\textquotedbl{} +button. The output consists of the degrees of freedom (in barckets), a value +The output consists of the degrees of freedom (in brackets), a value for r (which gives the correlation direction and strength), and the p value. @@ 910,14 +920,14 @@ from another, and it uses 2 samples of data. Data are entered with one column on the data grid for each sample. Go to the menu, click on ``Analyse'', then ``2 Condition Tests...'' +Go to the menu, click on {}``Analyse'', then {}``2 Condition Tests...'' and a new window will appear. Select the columns of data to be analysed using the 2 drop down boxes at the top of the window. The independent variable must be selected using the first (left hand) box, and the dependent variable using the second (right hand) box. Select ``Linear Regression'' from the box marked ``Non Parametric Tests'', choose +dependent variable using the second (right hand) box. Select {}``Linear +Regression'' from the box marked {}``Non Parametric Tests'', choose a one or two tailed hypothesis (two tailed is selected by default), and click on the ``Okay'' button. +and click on the {}``Okay'' button. The output consists of the slope, the intercept, a value for r, the p value, and the estimated standard error. @@ 932,8 +942,7 @@ the second would be 2 units and the third would be 4 units. This means that there would be three conditions in the experiment. \includegraphics[ width=4in,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/3cond.eps not found!} +\includegraphics[draft,width=4in]{graphics/3cond} \textit{Three or more Sample Tests} @@ 952,45 +961,45 @@ When you have more than 3 conditions, you need to use other tests, and probably the most famous (and in the authors experience, the most used) test is the ``analysis of variance'' (or anova for short). This test will allow you to compare a large number of conditions with each other, and tell you whether any of them differ significantly. +used) test is the {}``analysis of variance'' (or ANOVA for short). +This test will allow you to compare a large number of conditions with +each other, and tell you whether any of them differ significantly. The problem with anova is that they don't actually tell you where the significant difference is, they only tell you whether one exists, and there are ways to find out where the difference lies but that will be explained later in the section. +The problem with the Anova test is that it doesn't actually tell you +where the significant difference is, it only tells you whether one +exists. There are ways to find out where the difference lies (but +that will be explained later in the section.) The anova is for parametric data. If you have non parametric data, +The ANOVA is for parametric data. If you have nonparametric data, there are equivalents that you can use with SalStat: The KruskalWallis H test, and the Friedman Chi Square, both of which act like a nonparametric anova, but SalStat deals with them in the same way. The KruskalWallis +ANOVA, but SalStat deals with them in the same way. The KruskalWallis H test is for between subjects designs and the Friedman test is for within subjects designs. Once you have entered your data, click on the ``analyse'' menu, then select ``3+ Sample Tests...'' for the appropriate dialog to appear. This dialog is a bit different from the other 2 test dialogs that you have encountered (assuming that you have followed this book in a linear order of course), but the main difference is that you will not select which columns you want to analyse by using drop down boxes  this is because there may be more than 2 columns you want to analyse. Instead, you have a check list to select your columns, rather like the dialog box that appeared when you wanted to get a set of descriptive statistics. Only columns with data will appear there, and to select one, all you have to do is click on the box to the columns left and it will be selected (click again to deselect it). +Once you have entered your data, click on the {}``analyse'' menu, +then select {}``3+ Sample Tests...'' for the appropriate dialog +to appear. This dialog is a bit different from the other 2 test dialogs +that you have encountered (assuming that you have followed this book +in a linear order of course), but the main difference is that you +will not select which columns you want to analyse by using drop down +boxes  this is because there may be more than 2 columns you want +to analyse. Instead, you have a check list to select your columns, +rather like the dialog box that appeared when you wanted to get a +set of descriptive statistics. Only columns with data will appear +there, and to select one, all you have to do is click on the box to +the columns left and it will be selected (click again to deselect +it). Like the other test dialogs, there is a list of descriptive statistics to the right hand side and you can select which ever ones you want (if you want any of course which is usually a good idea). The next thing to do is select which test you want  again using a check list box (perhaps SalStat should be called ``CheckListStat'' instead?), and finally select which hypothesis you want. +to the right hand side and you can select whichever ones you want +(if you want any of course  which is usually a good idea). The next +thing to do is to select which test you want  again using a check +list box, and finally select which hypothesis you want. SalStat differs from other statistics packages by allowing you to choose mutually exclusive tests: You can choose an anova for within or between subjects, and get the non parametric equivalents at the +choose mutually exclusive tests: You can choose an ANOVA for within +or between subjects, and get the nonparametric equivalents at the same time. This might not be orthodox operation for statistics packages, but let's face it  if you wanted to analyse the same set of data using different tests, you could do so anyway, but it would just take @@ 1002,61 +1011,61 @@ you don't, there will be no results to look at), and chosen the hypothesis (one or two tailed). Optionally, you have a list of descriptive statistics to choose from, but that's your choice. The next thing to do is click on the ``okay'' button. +on the {}``okay'' button. Wait a short while (depending upon how large your set of data is), and the results should appear in the output window. The results for an anova differ slightly from the other tests in that they show a +an ANOVA differ slightly from the other tests in that they show a lot more information. You should be shown a table where the first column lists the factor you are analysing, the error, and the total. The next column shows the Sum of Squares (SS) for each factor, then the degrees of freedom (df) followed by the Mean Square (MS). These are of interest, but the main thing for you to look at now are the last 2 columns. The first of these is titled ``F'', and this is your test statistics. If it is less than 1.0, then it will not be significant no matter what your data look like. The final column lists the pvalue, and you should be aiming for a p of less than 0.05 (or 5\%) which means you have a significant result. +last 2 columns. The first of these is titled {}``F'', and this is +your test statistics. If it is less than 1.0, then it will not be +significant no matter what your data look like. The final column lists +the pvalue, and you should be aiming for a p of less than 0.05 (or +5\%) which means you have a significant result. The Friedman and KruskalWallis H tests do not have as much detail as the anova which shows a table with the degrees of freedom, sums +as the ANOVA which shows a table with the degrees of freedom, sums of squares and so on. \section{Parametric Comparisons} \subsection{Analysis of Variance (anova)} +\subsection{Analysis of Variance (ANOVA)} The analysis of variance (or anova) is a parametric test that compares +The analysis of variance (or ANOVA) is a parametric test that compares samples of data much like a ttest but can simultaneously compare 2 or more conditions. For example, if you have 3 conditions, you could use a series of ttests to analyse the data, but this repeated analysis would increase the likelihood of committing a Type I error (when the null hypothesis rejected but should have been accepted). The anova +null hypothesis is rejected but should have been accepted). The ANOVA gets around this neatly, and can analyse between subjects or within subjects designs. Obviously, being a parametric tests, it is susceptible to outliers and the data should be checked beforehand to ensure that they have been dealt with adaquately. A significant results indicates +they have been dealt with adaquately. A significant result indicates only that a significant difference exists somewhere. It doesn't say exactly where and further testing is required to ascertain this. +exactly where, and further testing is required to ascertain this. \subsubsection{Between Subjects anova} +\subsubsection{Between Subjects ANOVA} The between subjects anova is for experimental designs in which each +The between subjects ANOVA is for experimental designs in which each participant only does one condition. If the participants do more than one condition, then use the within subjects anova (below). +one condition, then use the within subjects ANOVA (below). Each condition must be entered into a separate column on the data grid. When that is done, go to the menu and click on ``Analyse'', and then ``3+ Condition Tests...'', and a new window will appear. +grid. When that is done, go to the menu and click on {}``Analyse'', +and then {}``3+ Condition Tests...'', and a new window will appear. From the list in the top left hand window, select which columns you wish to analyse, and then select ``anova between subjects'' from the list of tests below. Choose a one or two tailed hypothesis (two tailed is selected by default), and click on the button marked ``Okay''. +wish to analyse, and then select {}``ANOVA between subjects'' from +the list of tests below. Choose a one or two tailed hypothesis (two +tailed is selected by default), and click on the button marked {}``Okay''. The anova differ from other tests in that a table of information is +The ANOVA differ from other tests in that a table of information is provided. The first column contains the sources of the information  in this case, the factor, the error and the total. The next column in the table contains the sum of squares for the sources, then the @@ 1069,25 +1078,25 @@ Further analysis using posthoc tests are not yet available in SalStat. \subsubsection{Within Subjects anova} +\subsubsection{Within Subjects ANOVA} The within subjects anova operates in a similar way to the between subjects anova, but has the requirement that participants must participate +The within subjects ANOVA operates in a similar way to the between +subjects ANOVA, but has the requirement that participants must participate in all conditions. The data are entered as one column for each condition, and they must be matched (i.e., each row must contain the data for a single participant). When that is done, go to the menu and click on ``Analyse'', and then ``3+ Condition Tests...'', and a new window will appear. From the list in the top left hand window, select which columns you wish to analyse, and then select ``anova within subjects'' from the list of tests below. Choose a one or two tailed hypothesis (two tailed is selected by default), and click on the button marked ``Okay''. +When that is done, go to the menu and click on {}``Analyse'', and +then {}``3+ Condition Tests...'', and a new window will appear. +From the list in the top left hand window, select which columns you +wish to analyse, and then select {}``ANOVA within subjects'' from +the list of tests below. Choose a one or two tailed hypothesis (two +tailed is selected by default), and click on the button marked {}``Okay''. The output of a within subjects anova is a little bit more complicated that the between subjects anova. Again, the data are in a table, but there is an extra factor, the ``within subjects variance'' which shows how much variance each participant had between the conditions. +The output of a within subjects ANOVA is a little bit more complicated +that the between subjects ANOVA. Again, the data are in a table, but +there is an extra factor, the {}``within subjects variance'' which +shows how much variance each participant had between the conditions. As for the table itself, the first column contains the source, the second the degrees of freedom, the third the mean square, the fourth @@ 1098,65 +1107,79 @@ \section{Nonparametric Comparisons} The non parametric comparisons may be used when the data are parametric. +The nonparametric comparisons may be used when the data are parametric. As they rely upon ranking, they are not as susceptible to outliers as the anova are. Like anova, they can compare data from 2 or more +as the ANOVA are. Like ANOVA, they can compare data from 2 or more conditions without increasing the chance of a Type I error. \subsection{KruskalWallis H} The KruskalWallis H test is a non parametric between subjects test  participants must have took part in one condition only. +The KruskalWallis H test is a nonparametric between subjects test + participants must have taken part in one condition only. Enter the data like the between subjects anova  each column must contain the data for each condition. Go to the menu and click on ``Analyse'', and then ``3+ Condition Tests...'', and a new window will appear. +Enter the data like the between subjects ANOVA  each column must +contain the data for each condition. Go to the menu and click on {}``Analyse'', +and then {}``3+ Condition Tests...'', and a new window will appear. From the list in the top left hand window, select which columns you wish to analyse, and then select ``KruskalWallis'' from the list +wish to analyse, and then select {}``KruskalWallis'' from the list of tests below. Choose a one or two tailed hypothesis (two tailed is selected by default), and click on the button marked ``Okay''. +is selected by default), and click on the button marked {}``Okay''. This is a lot simpler than the anova. The output simply consists of +This is a lot simpler than the ANOVA. The output simply consists of the degrees of freedom (in brackets), a value for H (the test statistic), and the p value. \subsection{Friedmans Test} Freidmans test is like a non parametric anova for within subjects designs. It can compare more than 2 conditions and is robust against outliers. Participants must have taken part in all conditions, and must be matched on the data grid (each participants data is entered on a single row). +Freidmans test is like a nonparametric ANOVA for within subjects designs. +It can compare more than 2 conditions and is robust against outliers. +Participants must have taken part in all conditions, and must be matched +on the data grid (each participants data is entered on a single row). Enter the data like the between subjects anova  each column must contain the data for each condition. Go to the menu and click on ``Analyse'', and then ``3+ Condition Tests...'', and a new window will appear. +Enter the data like the between subjects ANOVA  each column must +contain the data for each condition. Go to the menu and click on {}``Analyse'', +and then {}``3+ Condition Tests...'', and a new window will appear. From the list in the top left hand window, select which columns you wish to analyse, and then select ``Friedman test'' from the list of tests below. Choose a one or two tailed hypothesis (two tailed is selected by default), and click on the button marked ``Okay''. +wish to analyse, and then select {}``Friedman test'' from the list +of tests below. Choose a one or two tailed hypothesis (two tailed +is selected by default), and click on the button marked {}``Okay''. The output of the Friedman test, like the Kruskal\_Wallis test, is a lot simpler than the anova. Reported statistics are the degrees +The output of the Friedman test, like the KruskalWallis test, is +a lot simpler than the ANOVA. Reported statistics are the degrees of freedom (in brackets), the value for chi (the test statistic) and the p value. \subsection{Cochranes Q Test} {[}needs writing!{]} +The Cochranes Q test is a nonparametric test designed to examine whether +there are differences between three or more matched samples, much +like a nonparametric repeatedmeasures analysis of variance. The Cochranes +Q test differs from the Friedmans test in that it deals only with +dichtomous data (there can only be 2 categories, such as male / female, +or old / young.) If you try to analyse data in more than 2 categories, +SalStat will give results that cannot be relied upon. +To perform this test, enter the data with each column contining the +data from one condition. Then go to the menu and select {}``3+ Condition +Tests...'', and the test dialog window will appear. From this, select +{}``Cochranes Q'' from the test selection box, and choose an appropriate +hypothesis. Click the {}``Okay'' button. \chapter{Scripting SalStat and Making Your Own Tests} +The output returns a value for Q (the test statistic,) the degrees +of freedom, and the probability value. + +\chapter{Scripting SalStat and Making Your Own Tests } + One of the exciting developments of SalStat has been the ability for users to write their own scripts. These scripts can access the internals of SalStat quite easily, and allow the user to automate almost anything that they want, from loading a file, getting a set of descriptives, writing a new test using these descriptives as well as performing an anova, then putting the results into a webpage. +an ANOVA, then putting the results into a webpage. Sadly, there is support for only one language  Python, which is the language in which SalStat is written. The good news is that Python @@ 1164,10 +1187,12 @@ and has a remarkably clear syntax. In case you think Python is not suitable, remember that it is used by NASA (and SalStat!). +by Google\textregistered{}, NASA\textregistered{}, Honeywell\textregistered{}, +Industrial Light and Magic\textregistered{}, AstraZeneca\textregistered{}, +Philips\textregistered{}, Rackspace\textregistered{}, and many others +(including SalStat!) \includegraphics[ width=1.0\textwidth,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/scripting.eps not found!} +\includegraphics[draft,width=1\textwidth]{graphics/scripting} \textit{The Scripting Window} @@ 1193,7 +1218,7 @@ edit box. This edit box will accept typing (try it...), cut, copy, paste (the toolbar allows access to these functions, but you can use <ctrlx> to cut, <ctrolc> to copy and <ctrlv> to paste text. There are also buttons for saving and loading scripts to file. +are also buttons for saving and loading scripts to file. The one new button is the first on the toolbar. This is the {}``run script'' button, and pressing it will execute the script using the @@ 1202,7 +1227,7 @@ \subsection{Manipulating Data} To start with, type in +To start with, type in \texttt{display ({}``This is SalStat Scripting'')} @@ 1210,48 +1235,48 @@ themselves (and don't forget the quotation marks!). Once that is done, click on the {}``Go'' button (marked with an arrow), and look at the output window. You should see {}``This is SalStat Scripting'' written somwhere. +written somewhere. What is happening is this. Writing \texttt{display} tells the computer that you want to display something on the html window. What you want on there is in the open brackets, but because you want to print a string, the words will need to be in quotation marks. Delete everything you've typed and type in: +Delete everything you've typed and type in:\textbf{$ $} \texttt{a = 'This is a Python script'} \texttt{display(a)} Then press the Go button. Hopefully, the words {}``This is a Python script'' will be printed on the html window. What you have done is made a variable (called 'a'), and assigned to it the words {}``This is a Python script''. The next line says that you want to display what is in the variable 'a'. +Then press the Go button. Hopefully, the words \texttt{{}``This is +a Python script''} will be printed in the html window. What you have +done is made a variable (called '\texttt{a}'), and assigned to it +the words {}``\texttt{This is a Python script}''. The next line +says that you want to display what is in the variable '\texttt{a}'. Of course, all of this doesn't mean very much. Other functions can be called too. If you have some data on the grid and you want to put it into a variable, the \textit{GetData} function is used (PLEASE NOTE: Python is casesensitive. \texttt{GetData} is different from \texttt{getdata} or \texttt{Getdata}  make sure you use the capitals in the right place). Just use \textit{variable =} GetData(\textit{column})\textit{,} and the variable will be given a list of the data from the column specified. Example: +it into a variable, the \texttt{\textit{GetData}} function is used +(PLEASE NOTE: Python is casesensitive. \texttt{GetData} is different +from \texttt{getdata} or \texttt{Getdata}  make sure you use the +capitals in the right place). Just use \texttt{\textit{variable =}}\texttt{ +GetData(}\texttt{\textit{column}}\texttt{)}\textit{,} and the variable +will be given a list of the data from the column specified. Example: \texttt{a = GetData(0)} This generates the variable called \textit{a}, and asks that the contents of column 0 be copied into this variable from the grid (ANOTHER NOTE: in SalStat, the grid columns start at 0, not 1). Type some data into the grid and try it out. Of course, to see what \textit{a} contains, write: +This generates the variable called \texttt{\textit{a}}, and asks that +the contents of column 0 be copied into this variable from the grid +(ANOTHER NOTE: in SalStat, the grid columns start at \texttt{0}, not +\texttt{1}). Type some data into the grid and try it out. Of course, +to see what \texttt{\textit{a}} contains, write: \texttt{display(a)} afterwards, and you will see the contents of the first column there. Data can also be put back into the grid with the PutData command, but you have to specify the column where the data are going to inserted, and the data itself. Try: +Data can also be put back into the grid with the \texttt{PutData} +command, but you have to specify the column where the data are going +to inserted, and the data itself. Try: \texttt{PutData(1, a)} @@ 1268,7 +1293,7 @@ \subsection{Descriptive Statistics} Now how's about doing something statistical with all of this? Simple. +Now, how about doing something statistical with all of this? Simple. To start with, let's get the descriptive statistics for column 0. This is slightly more complex than the previous commands, but is still quite straightforward. Type in: @@ 1276,13 +1301,14 @@ \texttt{x = Describe(a)} What this does is retrieve a complete set of descriptive statistics for you, and puts them into the variable \textit{x}. However, if you typed in \textit{display(x)} underneath, you probably didn't get what you expected! This is because you need to specify which descriptives you want before you can access them. This is just as easy: to access them, type the variable you had (the \textit{x} in the current example, then type a full stop (period) after it, then the descriptive name. So to show the sum, the mean and the variance, you would type: +for you, and puts them into the variable \texttt{\textit{x}}. However, +if you typed in \texttt{\textit{display(x)}} underneath, you probably +didn't get what you expected! This is because you need to specify +which descriptives you want before you can access them. This is just +as easy; to access them, type the variable you had (the \texttt{\textit{x}} +in the current example, then type a full stop (period) after it, then +the descriptive name. So to show the sum, the mean and the variance, +you would type: \texttt{display(x.sum)} @@ 1305,34 +1331,36 @@ \texttt{t, df, p = DoPairedTTest(col1, col2, 2)} First of all, the \textit{DoPairedTTest} bit just tells SalStat what test you want. The first 2 items in the brackets are the data. These can be lists of data, or, if they are single whole numbers, the data from the relevant column will be retrieved. Of course, you can pass one list and one column number if you want to! The third number is the tail. 2 refers to a 2 tailed test, whereas 1 refers to... well, a 1 tailed test. No other numbers are valid for that bit. +First of all, the \texttt{\textit{DoPairedTTest}} bit just tells SalStat +what test you want. The first 2 items in the brackets are the data. +These can be lists of data, or, if they are single whole numbers, +the data from the relevant column will be retrieved. Of course, you +can pass one list and one column number if you want to! The third +number is the tail. 2 refers to a 2 tailed test, whereas 1 refers +to... well, a 1 tailed test. No other numbers are valid for that bit. However, what does the \textit{t, df, p} bit mean? Well, doing a ttest will result in 3 bits of data: the t statistic, the df or degrees of freedom, and the probability. When you call a \texttt{DoPairedTTest} function, three data items are returned in the order of: t, df, probability. To make it simple, the above example puts the results into very similarly known variables, but you can use what you want. For example, if you really wanted to, you could type: +However, what does the \texttt{\textit{t, df, p}} bit mean? Well, +doing a ttest will result in 3 bits of data: the \texttt{t} statistic, +the \texttt{df} or degrees of freedom, and the \texttt{p} or probability. +When you call a \texttt{DoPairedTTest} function, three data items +are returned in the order t, df, probability. To make it simple, the +above example puts the results into very similarly known variables, +but you can use what you want. For example, if you really wanted to, +you could type: \texttt{df, prob, t = PairedTTest(x,y)} This could be confusing, because the test will always return t first, then the df, then the probability, so your t statistic will be in a variable named \textit{df}, the df will be in a variable named \textit{prob}, and the probability will be in a variable called \textit{t}. All very confusing, so remember to use variable names that aren't coonfusing to you. +This could be confusing, because the test will always return \texttt{t} +first, then the \texttt{df}, then the \texttt{probability}, so your +\texttt{t} statistic will be in a variable named \texttt{\textit{df}}, +the \texttt{df} will be in a variable named\texttt{ }\texttt{\textit{prob}}, +and the \texttt{probability} will be in a variable called \texttt{\textit{t}}. +All very confusing, so remember to use variable names that aren't +confusing to you. (Notice that no tail was indicated just above, only variable names: +(Notice that no tail was indicated just above, only variable names. This is because if you don't specify a tail, the test defaults to a 2 tailed test). +a 2 tailed test). Scripting is a very powerful addition to SalStat. If you have the algorithms for a test that isn't in SalStat, you can write your own @@ 1348,51 +1376,54 @@ If you wish, you can have access to the {}``raw'' functions and classes in the statistics module using Python. To do this, you will need to put a copy of the \textit{salstat\_stats.py} module in the sitepackages directory, and call import salstat\_stats in your program, and all the classes and functions contained therein will be available. +sitepackages directory, and call +\texttt{import salstat\_stats} +in your program, and all the classes and functions contained therein +will be available. + + \chapter{Getting Help} SalStat has an integrated help system. If you go to the menu, click on ``Help'' and choose one of the options below, a new window will appear. There are 3 buttons, one with a left arrow (the ``back'' button), one with a right arrow (the ``forward'' button), and a third with a house on it (the ``home'' button). The help is a basic hypertext system, and you can browse it just like you would with a web browser, using the home button to go back to where you started, and the back and forward buttons to move through your history. Underneath this there are 4 tabs with titles on them, and you can click on these tabs to bring up a different aspect of the help system. +on {}``Help'' and choose one of the options below, a new window +will appear. There are 3 buttons, one with a left arrow (the {}``back'' +button), one with a right arrow (the {}``forward'' button), and +a third with a house on it (the {}``home'' button). The help is +a basic hypertext system, and you can browse it just like you would +with a web browser, using the home button to go back to where you +started, and the back and forward buttons to move through your history. +Underneath this there are 4 tabs with titles on them, and you can +click on these tabs to bring up a different aspect of the help system. \includegraphics[ width=1.0\textwidth,  keepaspectratio,bb = 0 0 200 100, draft, type=eps]{/home/alan/graphics/help.eps not found!} +\includegraphics[draft,width=1\textwidth]{graphics/help} \textit{The Help Box} The first tab is titled ``Help choosing a test''. This interactive +The first tab is titled {}``Help choosing a test''. This interactive help system will ask you a series of questions until it finally suggests a test that you can perform with details about the test and how to get it working. The second tab is titled ``Topics'' and details general help about +The second tab is titled {}``Topics'' and details general help about SalStat  in other words, how to enter data, get descriptive statistics and how to analyse. There are also pages about each test that is offered and what is needed to do the test. The third tab is titled ``License'' and contains the license under +The third tab is titled {}``License'' and contains the license under which SalStat is offered in full. This license is called the GNU General Public License (``GPL'' for short), and is very popular for open source software. In short it entitles you to use the software for any purpose (within the law of course), and you may inspect the source code to check I am not downloading files from your computer. You can even change the source code to your liking if you wish with the only proviso being that if you distribute the changes, you must make the source available. +Public License ({}``GPL'' for short), and is very popular for open +source software. In short it entitles you to use the software for +any purpose (within the law of course), and you may inspect the source +code to check I am not downloading files from your computer. You can +even change the source code to your liking if you wish with the only +proviso being that if you distribute the changes, you must make the +source available. The fourth tab is titled ``Peeps'' (thank you Harry Enfield \& co!), and has a brief list of all the people who have been involved in or help with SalStat over the course of its development. +The fourth tab is titled {}``Peeps'' (thank you Harry Enfield \& +Co!), and has a brief list of all the people who have been involved +in or help with SalStat over the course of its development. Most of the help offered is also contained in this document, but sometimes it is useful to have help immediately on hand, and other times it @@ 1440,21 +1471,21 @@ tend to be fixed very quickly. Fifthly, the community around Python is very dynamic and supportive. Sixthly, being easy to learn, it is easier for people to modify the code for their purposes if they so wish. Seventhly, it is a ``free'' language and not under proprietary +wish. Seventhly, it is a {}``free'' language and not under proprietary control. Development was done on an intel workstation running no name components. +Development was done on an Intel workstation running noname components. The operating system was Mandrake Linux 8.0 to 8.2, but it was also tested occasionally on a Windows 98 and NT workstation to test whether it was truly crossplatform. The design of SalStat is modular: The module with the statistics test relies heavily upon the ``stats.py'' and ``pstat.py'' modules written by Gary Strangman of Harvard University (http://ref!) and released under the GPL. Because of this, SalStat also has to be released under the full GPL (not the LGPL). The IDE used was initially Emacs (http://www.emacs.org) and then the wonderful SciTE editor (http://www.scintilla.org), a newer generation editor that is fast, flexible, and works superbly +The design of SalStat is modular. The module with the statistics test +relies heavily upon the {}``\texttt{stats.py}'' and {}``\texttt{pstat.py}'' +modules written by Gary Strangman of Harvard University (http://www.nmr.mgh.harvard.edu/Neural\_Systems\_Group/strang/) +and released under the GPL. Because of this, SalStat also has to be +released under the full GPL (not the LGPL). The IDE used was initially +Emacs (http://www.emacs.org) and then the wonderful SciTE editor (http://www.scintilla.org), +a newer generation editor that is fast, flexible, and works superbly for editing Python code. @@ 1470,7 +1501,7 @@ a language suitable for statistical manipulation. It also has a GUI called Vista. Macanova  This project is well suited to analysis of variance, but +MacANOVA  This project is well suited to analysis of variance, but despite the name, it is not solely for that purpose. Statist and StatistX @@ 1478,27 +1509,27 @@ \section*{Commercial Packages} SPSS +SPSS\texttrademark{} StatView +StatView\texttrademark{} SAS +SAS\texttrademark{} Minitab +Minitab\texttrademark{} Statistica +Statistica\texttrademark{} \chapter*{Appendix C  API details for scripting} +\chapter*{Appendix C  API details for Scripting} These functions can be called instantly from the scripting window. They are called by clicking on the {}``Go'' button on the toolbar (the first button on the left with a circular red arrow). Please note that Python is casesensitive  the letter 'A' is different from 'a', so make sure that you use the correct case. The following functions have the syntax and a brief description of what they do. If you use a scripting window, you canmix and match any number of functions and even write your own tests. +They are called by clicking on the {}``\texttt{Go}'' button on the +toolbar (the first button on the left with a circular red arrow). +Please note that Python is casesensitive  the letter '\texttt{A}' +is different from '\texttt{a}', so make sure that you use the correct +case. The following functions have the syntax and a brief description +of what they do. If you use a scripting window, you can mix and match +any number of functions (and even write your own tests.) \section{Data Access Functions} @@ 1514,24 +1545,24 @@ the list will be used as the data. Passing an integer will retrieve the specified column of data from the datagrid. \textit{NOTE}: When calling this, remember that in SalStat, the first column of data is column 0, not 1. Example: GetData(1) will get data from column 1 on the grid. +column 0, not 1. Example: \texttt{GetData(1)} will get data from column +1 on the grid. \texttt{\textbf{function PutData(}}\texttt{\textbf{\textit{datasource}}}\texttt{\textbf{,}} \texttt{\textbf{\textit{data}}}\texttt{\textbf{)}} this puts the data contained the in variable \textit{data} into the grid at column \textit{datasource}. Example: \texttt{PutData(0, {[}''3'',''5.67'',''7.89''{]})} will put the numbers 3, 5.67 and 7.89 into the first column of the grid. +will put the numbers \texttt{3, 5.67} and \texttt{7.89} into the first +column of the grid. \texttt{\textbf{function display(}}\texttt{\textbf{\textit{data}}}\texttt{\textbf{)}} this takes whatever is contained in \textit{data} and shows it in the output window. Example: \texttt{display({}``Hi'')} will write {}``Hi'' to the output window. Each new entry is automatically started on a new line (i.e., it has a base level of html formatting), but other html can be included if needed. +{}``\texttt{Hi}'' to the output window. Each new entry is automatically +started on a new line (i.e., it has a base level of html formatting), +but other html can be included if needed. \section{Descriptive Statistics} @@ 1542,10 +1573,9 @@ \textit{datasource} may be a list of data, or an integer to represent the column on the data grid. Example: \texttt{a = Describe(1)} will get descriptive statistics for column 1 on the grid and store them in the variable \textit{a}. +in the variable \texttt{\textit{a}}. Available statistics (all for nonmissing data except for, well, the missing data statistic: +Available statistics: \texttt{Name}  the variable name (the column heading) @@ 1609,7 +1639,7 @@ here. \texttt{MyOwnRange = a.maximum  a.minimum}  this works out the range (which is already calculated and accessed as a.range). +(which is already calculated and accessed as \texttt{a.range}). \section{Inferential Statistics} @@ 1640,25 +1670,26 @@ \texttt{p, t, df = DoUnpairedTTest(0, 1)} This will perform an unpaired ttest using the data from columns 0 and 1 tested against a 2tailed hypothesis, but the value of t will be stored in the variable p, the degrees of freedom will be in t, and the pvalue will be stored in df! +and 1 tested against a 2tailed hypothesis, but the value of \texttt{t} +will be stored in the variable \texttt{p}, the degrees of freedom +will be in \texttt{t}, and the \texttt{p}value will be stored in +\texttt{df}! \texttt{\textbf{DoOneSampleTTest(}}\texttt{\textbf{\textit{source, usermean, tail = 2}}}\texttt{\textbf{) }} +usermean, tail = 2}}}\texttt{\textbf{)}} This is the one sample ttest and returns \textit{t, df, probability}. The user hypothesised mean needs to be specified. \texttt{\textbf{DoOneSampleSignTest(}}\texttt{\textbf{\textit{source, usermean, tail = 2}}}\texttt{\textbf{) }} +usermean, tail = 2}}}\texttt{\textbf{)}} This performs the one sample sign test, a nonparametric equivilent +This performs the one sample sign test, a nonparametric equivalent of the one sample ttest. Again, the user hypothesised mean needs to be specified. Returns \textit{nplus, nminus, z, probability}. \texttt{\textbf{DoChiSquareVariance(}}\texttt{\textbf{\textit{source, usermean, tail = 2}}}\texttt{\textbf{) }} +usermean, tail = 2}}}\texttt{\textbf{)}} This performs the chi square for variance ratio's. Like the other one sample tests, the user hypothesised mean should be specified. @@ 1670,66 +1701,66 @@ This is for a paired ttest and returns \textit{t, df, probability}. \texttt{\textbf{DoUnpairedTTest(}}\texttt{\textbf{\textit{source1, source2, tail = 2}}}\texttt{\textbf{) }} +source2, tail = 2}}}\texttt{\textbf{)}} This is the unpaired ttest and returns \textit{t, df, probability}. \texttt{\textbf{DoPearsonsCorrelation(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +source2, tail=2}}}\texttt{\textbf{)}} This performs the Pearsons correlation, a correlation for parametric data and returns \textit{t, r, df, probability}. \texttt{\textbf{DoFTest(}}\texttt{\textbf{\textit{source1, source2, uservariance, tail=2}}}\texttt{\textbf{) }} +uservariance, tail=2}}}\texttt{\textbf{)}} This does an Ftest, and uniquely among the 2sample tests, an extra value needs to be specfied, the user hypothesised variance. Returned values are \textit{t, r, df, probability}. \texttt{\textbf{DoSignTest(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +tail=2}}}\texttt{\textbf{)}} This is the sign test, a nonparametric equivilent of the paired ttest, and it returns \textit{z, probability}. \texttt{\textbf{DoKendallsCorrelation(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +source2, tail=2}}}\texttt{\textbf{)}} This performs a Kendalls tau correlation and returns \textit{tau, z, probability}. \texttt{\textbf{DoKSTest(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +tail=2}}}\texttt{\textbf{)}} This performs a KolmogorovSmirnov test and returns \textit{d, probability}. \texttt{\textbf{DoSpearmansCorrelation(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +source2, tail=2}}}\texttt{\textbf{)}} This does a Spearmans nonparametric correlation and it returns \textit{rho, t, df, probability}. \texttt{\textbf{DoRankSums(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +tail=2}}}\texttt{\textbf{)}} This performs a Wilcoxon rank sums test, a nonparametric version of the unpaired ttest and it returns \textit{z, probability}. \texttt{\textbf{DoSignedRanks(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +tail=2}}}\texttt{\textbf{)}} This is for the Wilcoxon sgned ranks test, and returns \textit{z, +This is for the Wilcoxon signed ranks test, and returns \textit{z, wt, probability}. \texttt{\textbf{DoMannWhitneyTest(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +source2, tail=2}}}\texttt{\textbf{)}} This does a MannWhitney U test and returns \textit{bigu, smallu, z, probability.} \texttt{\textbf{DoLinearRegression(}}\texttt{\textbf{\textit{source1, source2, tail=2}}}\texttt{\textbf{) }} +source2, tail=2}}}\texttt{\textbf{)}} This should perform a linear regression and it returns \textit{df, r, slope, intercept, estimated standard error, probability.} @@ 1773,7 +1804,7 @@ \texttt{\textbf{GetFProb(}}\texttt{\textbf{\textit{F, df1, df2}}}\texttt{\textbf{)}} Returns the pvalue for an anova given F and the two df's. +Returns the pvalue for an ANOVA given F and the two df's. \texttt{\textbf{GetInverseFProb(}}\texttt{\textbf{\textit{prob, df1, df2}}}\texttt{\textbf{)}} @@ 1812,11 +1843,11 @@ \section*{Contributors (unwitting or otherwise)} Gary Strangman of Harvard University (author of stats.py and pstat.py which made my task so much easier), Federico Seville of the University of Phillipines, Ludger Humbert (who has the honour of being the first person to get SalStat working on OS X I believe), and Dave Mitchell of Queens University in Belfast. +Gary Strangman of Harvard University (author of \texttt{stats.py} +and \texttt{pstat.py} which made my task so much easier), Federico +Seville of the University of Philippines, Ludger Humbert (who has +the honour of being the first person to get SalStat working on OS +X I believe), and Dave Mitchell of Queens University in Belfast. \section*{Others} @@ 1829,7 +1860,7 @@ The Python, wxWindows and wxPython community (especially Robin Dunn  software craftsman) for their work. The comp.lang.python newsgroup, one of the friendliest and knowledgable +The comp.lang.python newsgroup, one of the friendliest and most knowledgable newsgroups around. My parents and stepparents (Mum, Dad, Chris, Ann). Obviously. @@ 1850,7 +1881,7 @@ Other language interpreters: Tcl, Perl mainly, maybe Lisp and Scheme. Multifactorial anova with simple effects easily accessible (probably +Multifactorial ANOVA with simple effects easily accessible (probably one of the most requested features in a modern stats package). MANOVA and MANCOVA @@ 1882,5 +1913,5 @@ CDROM's available for sale from the web site. Creation of raw data from analysis results  this isn't for cheating, rather for creating datasets for demonstration or teaching purposes. +rather for creating datasets for demonstration or teaching purposes. \end{document} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090706 06:17:21

Revision: 5 http://salstat.svn.sourceforge.net/salstat/?rev=5&view=rev Author: mlivingstone Date: 20090706 06:17:18 +0000 (Mon, 06 Jul 2009) Log Message:  and there were pictures Added Paths:  manual/graphics/1cond.eps manual/graphics/1cond.png manual/graphics/2cond.eps manual/graphics/2cond.png manual/graphics/3cond.eps manual/graphics/3cond.png manual/graphics/cellsize.eps manual/graphics/cellsize.png manual/graphics/descriptives.eps manual/graphics/descriptives.png manual/graphics/grid.eps manual/graphics/grid.png manual/graphics/gridsize.eps manual/graphics/gridsize.png manual/graphics/help.eps manual/graphics/help.png manual/graphics/main.eps manual/graphics/main.png manual/graphics/output.eps manual/graphics/output.png manual/graphics/scripting.eps manual/graphics/scripting.png manual/graphics/variables.eps manual/graphics/variables.png Added: manual/graphics/1cond.eps ===================================================================  manual/graphics/1cond.eps (rev 0) +++ manual/graphics/1cond.eps 20090706 06:17:18 UTC (rev 5) @@ 0,0 +1,20737 @@ +%!PSAdobe3.0 EPSF3.0 +%%Creator: (ImageMagick) +%%Title: (/var/folders/QV/QVRfYmyfEYaD3GBItFA+LU+++TI/Tmp/lyx_tmpdir.L38689/lyx_tmpbuf0/7_Users_mlivingstone_Documents_workspace_salstat_manual_graphics_1cond.eps) +%%CreationDate: (Mon Jul 6 15:22:51 2009) +%%BoundingBox: 0 0 675 394 +%%HiResBoundingBox: 0 0 675 394 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0PseudoClass or 1Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0DirectClass or 1PseudoClass. + % compression: 0none or 1RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /TimesRoman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 675 394 +userdict begin +DisplayImage +0 0 +675 394 +12.000000 +675 394 +0 +0 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000000000000000000000000000FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF314C4A94D2D594D2D594D2D594D2D5 +94D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D5 +94D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D594D2D5 +94D2D594D2D594D2D594D2D594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED594CED5 +94CED594CED594CED594CED594CED594CED594CED594CED5000000000000000000B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000000000000000FFFFFFFFFFFFCDCACDCDCECDCDCECD +CDCECDCDCECDD5D2D5D5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5DEDADEDEDADEDEDADEDEDADE +DEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E2E6314C4A7BBABD7BBABD7BBABD7BBABD7BBABD +7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD +7BBABD7BBABD7BBABD7BBABD7BBABD7BBABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD +73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD73BABD83BEC573BABD73BABD +83BEC573BABD73BABD73BABD83BEC573BABD73BABD73BABD83BEC573BABD73BABD83BEC573BABD +73BABD73BABD83BEC573BABD73BABD83BEC573BABD73BABD73BABD83BEC573BABD73BABD73BABD +73BABD73BABD73B6BD8BC2CB73B6BD73B6BD73B6BD8BC2CB73B6BD73B6BD8BC2CB73B6BD73B6BD +73B6BD8BC2CB73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD8BC2CB73B6BD73B6BD73B6BD8BC2CB +73B6BD73B6BD8BC6CD73B6BD73B6BD73B6BD8BC6CD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD +8BC6CD73B6BD73B6BD73B6BD8BC6CD73B6BD73B6BD8BC6CD73B6BD73B6BD73B6BD8BC6CD73B6BD +73B6BD73B6BD73B6BD73B6BD73B6BD8BC6CD73B6BD73B6BD73B6BD8BC6CD73B6BD73B6BD8BC2C5 +73BABD73B6BD73B6BD8BC2C573BABD73B6BD8BC2C573BABD73B6BD73B6BD8BC2C573BABD73B6BD +73B6BD94C2C573BABD73B6BD94C6CD73B6BD73B6BD73B6BD94C6CD73B6BD73B6BD94C6CD73B6BD +73B6BD73B6BD94C6CD73B6BD73B6BD73B6BD94C6CD73B6BD73B6BD94C6CD73B6BD73B6BD73B6BD +94C6CD73B6BD73B6BD94C6CD73B6BD73B6BD73B6BD94C6CD73B6BD73B6BD73B6BD73B6BD73B6BD +73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD +73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD +9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD9CCACD73B6BD +73B6BD73B6BD9CCACD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD +73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD9CCACD73B6BD73B6BD +73B6BD9CCACD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD +73B6BD73B6BD9CCACD73B6BD73B6BD73B6BD9CCACD73B6BD73B6BD9ACAD373B6BD73B6BD73B6BD +9ACAD373B6BD73B6BD73B6BD9ACAD373B6BD73B6BD9ACAD373B6BD73B6BD73B6BD9ACAD373B6BD +73B6BD9ACAD373B6BD73B6BD73B6BD9ACAD373B6BD73B6BD73B6BD73B6BD73B6BD73B6BD9ACAD3 +73B6BD73B6BD73B6BD94D2D573B6BD73B6BD94D2D573B6BD73B6BD73B6BD94D2D573B6BD73B6BD +73B6BD73B6BD73B6BD73B6BD94D2D573B6BD73B6BD73B6BD94D2D573B6BD73B6BD94D2D573B6BD +73B6BD73B6BD9ACAD373B6BD73B6BD73B6BD73B6BD73B6BD000000000000B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3000000000000FFFFFFCDCACDCDCACDCDCECDCDCECDCDCECDCDCECD +D5D2D5D5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5DEDADEDEDADEDEDADEDEDADEDEDEDEDEDEDE +DEDEDEE6E2E6E6E2E6E6E2E6E6E2E6E6E2E6314C4A73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD +73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD +73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD73B6BD +73B6BD73B6BD73B6BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD73B2BD7BBABD73B2BD73B2BD73B2BD73B2BD +73B2BD73B2BD7BBABD73B2BD73B2BD73B2BD7BBABD73B2BD73B2BD7BBABD73B2BD73B2BD73B6BD +7BBABD73B2BD73B2BD73B2BD73B2BD73B2BD73B6BD7BBABD73B2BD73B2BD73B2BD7BBABD73B2BD +73B2BD83BEC573B2BD73B2BD73B2BD83BEC573B2BD73B2BD83BEC573B2BD73B2BD73B2BD83BEC5 +73B2BD73B2BD73B2BD83BEC573B2BD73B2BD83BEC573B2BD73B2BD73B2BD83BEC573B2BD73B2BD +83BEC573B2BD73B2BD73B2BD83BEC573B2BD73B2BD73B2BD83BEC573B2BD73B2BD83BEC573B2BD +73B2BD73B2BD8BBEC573B2BD73B2BD8BBEC573B2BD73B2BD73B2BD8BBEC573B2BD73B2BD73B2BD +8BBEC573B2BD73B2BD8BC2C573B2BD73B2BD73B2BD8BC2C573B2BD73B2BD8BC2C573B6BD73B2BD +73B2BD8BC2C573B6BD73B2BD73B2BD73B6BD73B2BD73B2BD8BC2C573B6BD73B2BD73B2BD94C2C5 +73B2BD73B2BD94C6CD73B2BD73B2BD73B2BD8BC2CB6AB2BD6AB2BD6AB2BD6AB2BD6AB2BD6AB2BD +8BC6CD6AB2BD6AB2BD6AB2BD8BC6CD6AB2BD6AB2BD8BC6CD6AB2BD6AB2BD6AB2BD8BC6CD6AB2BD +6AB2BD6AB2BD6AB2BD6AB2BD6AB2BD8BC6CD6AB2BD6AB2B46AB2B48BC6CD6AB2B46AB2B48BC6CD +6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B4 +6AB2B494C6CD6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B494C6CD6AB2B4 +6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B4 +94C6CD6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B4 +6AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD +6AB2B46AB2B46AB2B46AB2B46AB2B46AB2B494C6CD6AB2B46AB2B46AB2B494C6CD6AB2B46AB2B4 +9CC6CD6AB2B46AB2B46AB2B49CC6CD6AB2B46AB2B46AB2B46AB2B46AB2B46AB2B49ACAD36AB2B4 +6AB2B46AB2B49ACAD36AB2B46AB2B49ACAD36AB2B46AB2B46AB2B49ACAD36AAEB46AAEB46AAEB4 +6AAEB46AAEB46AAEB49ACAD36AAEB46AAEB46AAEB49ACAD36AAEB46AAEB49ACAD36AAEB46AAEB4 +6AAEB49ACAD36AAEB46AAEB49ACAD36AAEB46AAEB46AAEB49ACAD36AAEB46AAEB46AAEB49ACAD3 +6AAEB46AAEB49ACAD36AAEB46AAEB46AAEB49ACAD36AAEB46AAEB49ACAD36AAEB46AAEB46AAEB4 +9ACAD36AAEB46AAEB46AAEB49ACAD36AAEB46AAEB49ACAD3000000B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3000000FFFFFFCDCACDCDCACDCDCECDCDCECDCDCECDD5D2D5D5D2D5D5D2D5 +D5D2D5D5D6D5D5D6D5D5D6D5DEDADEDEDADEDEDADEDEDADEDEDEDEDEDEDEDEDEDEDEDEDEE6E2E6 +E6E2E6E6E2E6E6E6E6E6E6E6E6E2E6314C4A62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC62A5AC62A5AC73AAAC62A5AC62A5AC62A5AC73AAAC62A5AC62A5AC73AAAC +62A5AC62A5AC62A5AC7BB2B462A5AC62A5AC62A5AC62A5AC62A5AC62A5AC7BB2B462A5AC62A5AC +62A5AC7BB2B462A5AC62A5AC73B2BD62A5AC62A5AC62A5AC7BBABD62A5AC62A5AC73B2BD62A5AC +62A5AC62A5AC73B2BD62A5AC62A5AC62A5AC73B2BD62A5AC62A5AC7BBABD62A5AC62A5AC62A5AC +7BBABD62A5AC62A5AC7BBABD62A5AC62A5AC62A5AC7BBABD62A5AC62A5AC62A5AC7BBABD62A5AC +62A5AC7BBABD62A5AC62A5AC62A5AC83B2BD62A5AC62A5AC83B2BD62A5AC62A5AC62A5AC83B2BD +62A5AC62A5AC62A5AC86BEBD62A5AC62A5AC86BEBD62A5AC62A5AC62A5AC86BEBD62A5AC62A5AC +86BEBD62A5AC62A5AC62A5AC86BEBD62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC83BAC562A5AC +62A5AC62A5AC8BBEC562A5AC62A5AC8BBEC562A5AC62A5AC62A5AC8BBEC562A5AC62A5AC62A5AC +62A5AC62A5AC62A5AC8BBEC562A5AC62A5AC62A5AC8BBEC562A5AC62A5AC8BBEC562A5AC62A5AC +62A5AC8BBEC562A5AC62A5AC62A5AC62A5AC62A5AC62A5AC8BBEC562A5AC62A5AC62A5AC94BEC5 +62A5AC62A5AC94C2C562A5AC62A5AC62A5AC94C2C562A5AC62A5AC94C2C562A5AC62A5AC62A5AC +94C2C562A5AC62A5AC62A5AC94C2C562A5AC62A5AC94C2C562A5AC62A5AC62A5AC94C2C562A5AC +62A5AC94C2C562A5AC62A5AC62A5AC94C2C562A5AC62A5AC62A5AC94C2C562A5AC62A5AC94C2C5 +62A5AC62A5AC62A5AC94C2C562A5AC62A5AC94C6CD62A5AC62A5AC62A5AC94C6CD62A5AC62A5AC +62A5AC94C6CD62A5AC62A5AC94C6CD62A5AC62A5AC62A5AC94C6CD62A5AC62A5AC9CC6CD62A5AC +62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC +9CC6CD62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC62A5AC62A5AC +62A5AC9CC6CD62A5AC62A5AC62A5AC9CC6CD62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC9CC6CD +62A5AC62A5AC62A5AC62A5AC62A5AC62A5AC9CC6CD62A5AC62A5AC62A5AC9CC6CD62A5AC62A5AC +9CC6CD62A5AC62A5AC62A5AC9CCACD62A5AC62A5AC9CCACD62A5AC62A5AC62A5AC9CCACD62A5AC +62A5AC62A5AC9CCACD62A5AC62A5ACA0C6C962A5AC62A5AC62A5ACA0C6C962A5AC62A5ACA0C6C9 +62A5AC62A5AC62A5ACA0C6C962A5AC62A5AC62A5ACABCED362A5AC62A5ACA0C6C962A5AC62A5AC +62A5ACA0C6C962A5AC62A5ACA0C6C962A5AC62A5AC314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3000000FFFFFFCDCACDCDCECDCDCECDCDCECDD5D2D5D5D2D5D5D2D5D5D2D5D5D6D5 +D5D6D5D5D6D5D5D6D5DEDADEDEDADEDEDADEDEDEDEDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6 +E6E6E6E6E6E6E6E6E6DEDEDE314C4A62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A462A1A4 +62A1A462A1A462A1A462A1A462A1A462A1A462A1A473AAAC62A1A462A1A473AAAC62A1A462A1A4 +62A1A473AAAC62A1A462A1A462A1A473AAAC62A1A462A1A46AAEB462A1A462A1A462A1A46AAEB4 +62A1A462A1A473AAAC62A1A462A1A462A1A47BB2B462A1A462A1A462A1A462A1A462A1A462A1A4 +7BB2B462A1A462A1A462A1A47BB2B462A1A462A1A47BB2B462A1A462A1A462A1A47BB2B462A1A4 +62A1A462A1A462A1A462A1A462A1A47BB2B462A1A462A1A462A1A47BB2B462A1A462A1A47BB2B4 +62A1A462A1A462A1A481B2B562A1A462A1A462A1A462A1A462A1A462A1A485B6B662A1A462A1A4 +62A1A481B2B562A1A462A1A481B2B562A1A462A1A462A1A483B2BD62A1A462A1A462A1A462A1A4 +62A1A462A1A483B2BD62A1A462A1A462A1A483B2BD62A1A462A1A483B2BD62A1A462A1A462A1A4 +8BBABD62A1A462A1A48BBABD62A1A462A1A462A1A48BBABD62A1A462A1A462A1A48BBABD62A1A4 +62A1A48BBABD62A1A462A1A462A1A48BBABD62A1A462A1A48BBABD62A1A462A1A462A1A48BBABD +62A1A462A1A462A1A48BBABD62A1A462A1A48BBABD62A1A462A1A462A1A48BBABD62A1A462A1A4 +95BEBE62A1A462A1A462A1A495BEBE62A1A462A1A462A1A462A1A462A1A462A1A494BEC562A1A4 +62A1A462A1A494BEC562A1A462A1A494BEC562A1A462A1A462A1A494BEC562A1A462A1A462A1A4 +62A1A462A1A462A1A494BEC562A1A462A1A462A1A494BEC562A1A462A1A494C2C562A1A462A1A4 +62A1A494C2C562A1A462A1A462A1A462A1A462A1A462A1A494C2C562A1A462A1A462A1A494C2C5 +62A1A462A1A494C2C562A1A462A1A462A1A494C2C562A1A462A1A462A1A462A1A462A1A462A1A4 +9CC2C562A1A462A1A462A1A49CC2C562A1A462A1A49CC2C562A1A462A1A462A1A49CC2C562A1A4 +62A1A49CC2C562A1A462A1A462A1A49CC2C562A1A462A1A462A1A49CC2C562A1A462A1A49CC2C5 +62A1A462A1A462A1A49CC2C562A1A462A1A49CC2C562A1A462A1A462A1A49CC2C562A1A462A1A4 +62A1A49CC2C562A1A462A1A49CC2C562A1A462A1A462A1A49CC2C562A1A462A1A49CC2C562A1A4 +62A1A462A1A49CC2C562A1A462A1A462A1A462A1A462A1A462A1A49CC2C562A1A462A1A462A1A4 +9CC6CD62A1A462A1A49CC6CD62A1A462A1A462A1A4A0C6C962A1A462A1A462A1A462A1A462A1A4 +62A1A4A0C6C962A1A462A1A462A1A4A0C6C962A1A462A1A4A0C6C962A1A462A1A462A1A4A0C6C9 +62A1A462A1A462A1A462A1A462A1A462A1A4314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3000000FFFFFFCDCECDCDCECDCDCECDD5D2D5D5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5 +D5D6D5DEDADEDEDADEDEDADEDEDEDEDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E6E6E6E6E6 +E6E6E6E6E6E6DEDEDE314C4A629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA48AB6BD8AB6BD8AB6BD629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4629DA4 +629DA4629DA4629DA4629DA4629DA473AAAC629DA4629DA4629DA462A1A4629DA4629DA473AAAC +629DA4629DA4629DA473AAAC629DA4629DA473AAAC629DA4629DA4629DA473AAAC629DA4629DA4 +629DA462A1A4629DA4629DA47BB2B4629DA4629DA4629DA47BB2B4629DA4629DA47BB2B4629DA4 +629DA4629DA47BB2B4629DA4629DA47BB2B4629DA4629DA4629DA47BB2B4629DA4629DA4629DA4 +7BB2B4629DA4629DA47BB2B4629DA4629DA4629DA47BB2B4629DA4629DA47BB2B4629DA4629DA4 +629DA481B2B5629DA4629DA4629DA481B2B5629DA4629DA481B2B5629DA4629DA4629DA481B2B5 +629DA4629DA481B2B5629DA4629DA4629DA483B2BD629DA4629DA4629DA483B2BD629DA4629DA4 +83B2BD629DA4629DA4629DA483B2BD62A1A4629DA483B2BD62A1A4629DA4629DA483B2BD629DA4 +629DA4629DA4629DA4629DA4629DA48AB6BD629DA4629DA4629DA48AB6BD629DA4629DA48AB6BD +629DA4629DA4629DA48AB6BD629DA4629DA4629DA4629DA4629DA4629DA48BBABD629DA4629DA4 +629DA48BBABD629DA4629DA48BBABD629DA4629DA4629DA48BBABD629DA4629DA4629DA4629DA4 +629DA4629DA494BABD629DA4629DA4629DA494BEC5629DA4629DA494BEC5629DA4629DA4629DA4 +94BEC5629DA4629DA494BEC5629DA4629DA4629DA494BEC5629DA4629DA4629DA494BEC5629DA4 +629DA494BEC5629DA4629DA4629DA494BEC5629DA4629DA494BEC5629DA4629DA4629DA494BEC5 +629DA4629DA4629DA494BEC5629DA4629DA494BEC5629DA4629DA4629DA494BEC5629DA4629DA4 +94BEC5629DA4629DA4629DA494BEC5629DA4629DA4629DA494BEC5629DA4629DA49CC2C5629DA4 +629DA4629DA49CC2C5629DA4629DA49CC2C5629DA4629DA4629DA49CC2C5629DA4629DA4629DA4 +629DA4629DA4629DA49CC2C5629DA4629DA4629DA49CC2C5629DA4629DA49CC2C5629DA4629DA4 +629DA49CC2C5629DA4629DA4629DA4629DA4629DA4629DA49CC2C5629DA4629DA4629DA49CC2C5 +629DA4629DA49CC2C5629DA4629DA4629DA49CC2C5629DA4629DA4629DA4629DA4629DA4629DA4 +9CC2C5629DA4629DA4629DA49CC2C5629DA4629DA49CC2C5629DA4629DA4629DA49CC6CD629DA4 +629DA49CC6CD629DA4629DA4629DA4A0C6C9629DA4629DA4629DA4A0C6C9629DA4629DA4A0C6C9 +629DA4629DA4629DA4A0C6C9629DA4629DA4A0C6C9629DA4629DA4629DA4A0C6C9629DA4629DA4 +629DA4A0C6C9629DA4629DA4A0C6C9314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +000000FFFFFFCDCECDCDCECDCDCECDD5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5D5D6D5DEDADE +DEDADEDEDADEDEDEDEDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6E6E6E6 +EEEAEEDEDEDE314C4A5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C9CC2C5DCE6E6 +F6FAFFF6FAFFDCE6E69CC2C55A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C7BB2B4C9D9DDE6EEEE +F6FAFFFFFFFFFFFFFFEEF6F6DCE6E6C9D6D55A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999CFFFFFFFFFFFFFFFFFF5285835A999C +5A999CFFFFFFFFFFFF5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999CFFFFFFFFFFFF +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C5A999C +5A999CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A999C5A999C +5A999C71A1A45A999C5A999C62A5AC5A999C5A999C5A999C62A5AC5A999C5A999C5A999C62A5AC +5A999C5A999C75A5AC5A999C5A999C5A999C75A5AC5A999C5A999C73AAAC5A999C5A999C5A999C +73AAAC5A999C5A999C5A999C5A999C5A999C5A999C73AAAC5A999C5A999C5A999C73AAAC5A999C +5A999C73AAAC5A999C5A999C5A999C73AAAC5A999C5A999C5A999C5A999C5A999C5A999C7DAAAB +5A999C5A999C5A999C7DAAAB5A999C5A999C7DAAAB5A999C5A999C5A999C7DAAAB5A999C5A999C +5A999C5A999C5A999C5A999C7BB2B45A999C5A999C5A999C7BB2B45A999C5A999C7BB2B45A999C +5A999C5A999C7BB2B45A999C5A999C81B2B55A999C5A999C5A999C81B2B55A999C5A999C5A999C +81B2B55A999C5A999C81B2B55A999C5A999C5A999C81B2B55A999C5A999C81B2B55A999C5A999C +5A999C85B6B65A999C5A999C5A999C85B6B65A999C5A999C85B6B65A999C5A999C5A999C85B6B6 +5A999C5A999C85B6B65A999C5A999C5A999C8AB6BD5A999C5A999C5A999C8AB6BD5A999C5A999C +8AB6BD5A999C5A999C5A999C8BBABD5A999C5A999C8BBABD5A999C5A999C5A999C8BBABD5A999C +5A999C5A999C5A999C5A999C5A999C8BBABD5A999C5A999C5A999C8BBABD5A999C5A999C8BBABD +5A999C5A999C5A999C8BBABD5A999C5A999C5A999C5A999C5A999C5A999C8BBABD5A999C5A999C +5A999C8BBABD5A999C5A999C94BABD5A999C5A999C5A999C94BABD5A999C5A999C5A999C5A999C +5A999C5A999C95BEBE5A999C5A999C5A999C95BEBE5A999C5A999C93BDBE5A999C5A999C5A999C +93BDBE5A999C5A999C93BDBE5A999C5A999C5A999C93BDBE5A999C5A999C5A999C95BEBE5A999C +5A999C95BEBE5A999C5A999C5A999C95BEBE5A999C5A999C95BEBE5A999C5A999C5A999C95BEBE +5A999C5A999C5A999C94BEC55A999C5A999C94BEC55A999C5A999C5A999C94BEC55A999C5A999C +94BEC55A999C5A999C5A999C94BEC55A999C5A999C5A999C94C2C55A999C5A999C9CC2C55A999C +5A999C5A999C9CC2C55A999C5A999C9CC2C55A999C5A999C5A999C9CC2C55A999C5A999C5A999C +5A999C5A999C5A999C9CC2C55A999C5A999C5A999C9CC2C55A999C5A999C9CC2C55A999C5A999C +5A999C9CC2C55A999C5A999C5A999C5A999C5A999C5A999C9CC2C55A999C5A999C5A999C9CC2C5 +5A999C5A999C9CC2C55A999C314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000 +FFFFFFCDCECDD5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5D5D6D5DEDADEDEDADEDEDADEDEDADE +DEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEE +DEDEDE314C4A5A95945A95945A95945A95945A95945A95946D9D9CE1EAEEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFD8E0E16D9D9C5A95945A95945A95945A95945A95945A95945A95945A9594 +5A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A9594 +5A95945A95945A95945A95945A95945A95945A95945A959467999DFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52918B5A95945A95945A95945A95945A95945A95945A9594 +5A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A9594 +5A95945A95945A95945A95945A95945A95945A9594FFFFFFFFFFFFFFFFFF2940415A95945A9594 +FFFFFFFFFFFF2940415A95945A95945A95945A95945A95945A95945A9594FFFFFFFFFFFF294041 +5A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A9594 +5A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A95945A9594 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2944415A959462A1A4 +5A95945A95945A95945A95945A95945A959471A1A45A95945A95945A959471A1A45A95945A9594 +71A1A45A95945A91945A959473A5A45A95945A959473A5A45A95945A95945A959473A5A45A9594 +5A95945A959473A5A45A95945A959473A5A45A95945A95945A959473A5A45A95945A959473A5A4 +5A95945A95945A959473A5A45A95945A95945A959473A5A45A95945A95947BAAA45A95945A9594 +5A95947DAAAB5A95945A95947DAAAB5A95945A95945A95947DAAAB5A95945A95945A95947DAAAB +5A95945A95947DAAAB5A95945A95945A95947DAAAB5A95945A95947DAAAB5A95945A95945A9594 +7DAAAB5A95945A95945A95945A95945A95945A959483AEAC5A95945A95945A959483AEAC5A9594 +5A959483AEAC5A95945A95945A959483AEAC5A95945A95945A95945A95945A95945A959483AEAC +5A95945A95945A959481B2B55A95945A959481B2B55A95945A95945A959481B2B55A95945A9594 +5A95945A95945A95945A95948BB2B45A95945A95945A95948BB6B45A95945A95948BB6B45A9594 +5A95945A95948BB6B45A95945A95948BB6B45A95945A95945A95948BB6B45A95945A95945A9594 +8BB6B45A95945A95948BB6B45A95945A95945A95948BB6B45A95945A95948BB6B45A95945A9594 +5A95948BB6B45A95945A95945A95948BB6B45A95945A95948BB6B45A95945A95945A95948BB6B4 +5A95945A959494B6B45A95945A95945A959494B6B45A95945A95945A959494B6B45A95945A9594 +94B6B45A95945A95945A959494BABD5A95945A959494BABD5A95945A95945A959494BABD5A9594 +5A95945A95945A95945A95945A959494BABD5A95945A95945A959494BABD5A95945A959494BABD +5A95945A95945A959494BABD5A95945A95945A95945A95945A95945A959494BABD5A95945A9594 +5A959495BEBE5A95945A959495BEBE5A95945A95945A959495BEBE5A95945A95945A95945A9594 +5A95945A959495BEBE5A95945A95945A959495BEBE5A95945A959495BEBE5A95945A95945A9594 +9CBEBD5A95945A95949CBEBD5A95945A95945A95949CBEBD5A95945A95945A95949CBEBD5A9594 +5A95949CBEBD5A95945A95945A95949CBEBD5A95945A95949CBEBD5A95945A95945A95949CBEBD +5A95945A95945A95949CBEBD5A95945A95949CBEBD5A95945A95945A95949CBEBD5A95945A9594 +9CBEBD5A95945A9594314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFF +D5D2D5D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5D5D6D5DEDADE414041414041DEDADEDEDEDEDEDEDE +DEDEDEE6E2E6414441414441E6E2E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEDEDADE +314C4A5A91945A91945A91945A91945A91945A9194DCE6E6FFFFFFFFFFFFC3CACD4A61624A6162 +C3CACDFFFFFFFFFFFFC9D6D552898B5A91945A91945A91945A91945A91945A91945A91945A9194 +5A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A9194 +5A91945A91945A91945A91945A91945A91945A9194D8E0E1FFFFFFEEEAEE7B91943E5554294441 +314C4A4A6162728D8DB4BEB452898B5A91945A91945A91945A91945A91945A91945A91945A9194 +5A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A9194 +5A91945A91945A91945A91945A91945A9194FFFFFFFFFFFFFFFFFF2940415A91945A91945A9194 +2940412940415A9194DCE6E6EDF1F5FFFFFF5A91945A91945A91945A91942940412940415A9194 +5A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A9194 +5A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A91945A9194 +294041294041294041FFFFFFFFFFFFFFFFFF2940412940412940412940416F9DA25A91945A9194 +5A91946F9DA25A91945A91946F9DA25A91945A91945A91946F9DA25A91945A919462A1A45A9194 +5A91945A919471A1A45A91945A9194DCE6E6FFFFFF5A91945A919471A1A45A91945A91945A9194 +71A1A45A91945A919471A1A45A91945A91945A919473A5A45A91945A91945A91945A91945A9194 +5A919473A5A45A91945A91945A919473A5A45A91945A91947BAAA45A91945A91945A919480A5AB +5A91945A91945A91945A91945A91945A919480A5AB5A91945A91945A91947DAAAB5A91945A9194 +7DAAAB5A91945A91945A91947DAAAB5A91945A91945A91945A91945A91945A91947DAAAB5A9194 +5A91945A91947DAAAB5A91945A919483AAAC5A91945A91945A919483AEAC5A91945A919483AEAC +5A91945A91945A919483AEAC5A91945A91945A919483AEAC5A91945A919483AEAC5A91945A9194 +5A919481B2B55A91945A919481B2B55A91945A91945A919481B2B55A91945A91945A919481B2B5 +5A91945A91948BB2B45A91945A91945A91948BB2B45A91945A91948BB2B45A91945A91945A9194 +8BB2B45A91945A91945A91945A91945A91945A91948BB2B45A91945A91945A91948BB2B45A9194 +5A91948BB2B45A91945A91945A91948BB6B45A91945A91945A91945A91945A91945A91948BB6B4 +5A91945A91945A91948BB6B45A91945A91948BB6B45A91945A91945A91948BB6B45A91945A9194 +5A91945A91945A91945A919494B6B45A91945A91945A919494B6B45A91945A919494B6B45A9194 +5A91945A919491B6BC5A91945A91945A91945A91945A91945A919491B6BC5A91945A91945A9194 +91B6BC5A91945A919494BABD5A91945A91945A919494BABD5A91945A919494BABD5A91945A9194 +5A919494BABD5A91945A91945A919494BABD5A91945A919494BABD5A91945A91945A919494BABD +5A91945A919494BABD5A91945A91945A919494BABD5A91945A91945A919494BABD5A91945A9194 +94BABD5A91945A91945A919494BABD5A91945A919494BABD5A91945A91945A91949CBEBD5A9194 +5A91945A91945A91945A91945A91949CBEBD5A91945A91945A91949CBEBD5A91945A91949CBEBD +5A91945A91945A91949CBEBD5A91945A91945A91945A91945A91945A91949CBEBD5A91945A9194 +5A91949CBEBD5A91945A91949CBEBD5A91945A91945A91949CBEBD5A91945A91945A91945A9194 +5A91945A9194314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFD5D2D5 +D5D2D5D5D2D5D5D6D5D5D6D5D5D6D5DEDADE414041414041414041414041DEDEDEDEDEDEE6E2E6 +414441414441414441414441E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEEEEEEEDEDADE314C4A +528D8B528D8B528D8B528D8B528D8B8BB6B4FFFFFFFFFFFFDEDEDE29444131595A528D8B4A7D7B +DEE6DEFFFFFFFFFFFF728D8D528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8B8BB2B4FFFFFFEEEEEE3E55542B484A41696A528583528D8B +52898B4A7D7B4171734A7D83528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8BFFFFFFFFFFFFFFFFFF294041528D8B528D8B528D8B528D8B +528D8B528D8BFFFFFFFFFFFFFFFFFF294041528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B528D8B +528D8B679599FFFFFFFFFFFFFFFFFF528D8B528D8B528D8B67999D528D8B528D8B528D8B67999D +528D8B528D8B67999D528D8B528D8B528D8B67999D52918B528D8B528D8B528D8B528D8B528D8B +6D9D9C528D8B528D8B528D8BFFFFFFFFFFFF2940416D9D9C528D8B528D8B528D8B6D9D9C528D8B +528D8B6D9D9C528D8B528D8B528D8B6D9D9C528D8B528D8B528D8B6D9D9C528D8B528D8B6D9D9C +528D8B528D8B528D8B71A1A4528D8B528D8B71A1A4528D8B528D8B528D8B71A1A4528D8B528D8B +528D8B71A1A4528D8B528D8B73A5A4528D8B528D8B528D8B73A5A4528D8B528D8B73A5A4528D8B +528D8B528D8B73A5A4528D8B528D8B528D8B73A5A4528D8B528D8B7BAAA4528D8B528D8B528D8B +7BAAA4528D8B528D8B7BAAA4528D8B528D8B528D8B7BAAA4528D8B528D8B528D8B528D8B528D8B +528D8B7DAAAB528D8B528D8B528D8B7DAAAB528D8B528D8B7DAAAB528D8B528D8B528D8B7DAAAB +528D8B528D8B528D8B528D8B528D8B528D8B83AEAC528D8B528D8B528D8B83AEAC528D8B528D8B +83AEAC528D8B528D8B528D8B83AEAC528D8B528D8B528D8B528D8B528D8B528D8B83AEAC528D8B +528D8B528D8B83AEAC528D8B528D8B83AEAC528D8B528D8B528D8B83AEAC528D8B528D8B83AEAC +528D8B528D8B528D8B83AEAC528D8B528D8B528D8B8BB2B4528D8B528D8B8BB2B4528D8B528D8B +528D8B8BB2B4528D8B528D8B8BB2B4528D8B528D8B528D8B8BB2B4528D8B528D8B528D8B8BB2B4 +528D8B528D8B8BB2B4528D8B528D8B528D8B8BB2B4528D8B528D8B8BB2B4528D8B528D8B528D8B +8BB6B4528D8B528D8B528D8B8BB6B4528D8B528D8B8BB6B4528D8B528D8B528D8B8BB6B4528D8B +528D8B8BB6B4528D8B528D8B528D8B8BB6B4528D8B528D8B528D8B528D8B528D8B528D8B8BB6B4 +528D8B528D8B528D8B8BB6B4528D8B528D8B94B6B4528D8B528D8B528D8B94B6B4528D8B528D8B +528D8B528D8B528D8B528D8B94B6B4528D8B528D8B528D8B94B6B4528D8B528D8B94B6B4528D8B +528D8B528D8B94B6B4528D8B528D8B528D8B528D8B528D8B528D8B94B6B4528D8B528D8B528D8B +94B6B4528D8B528D8B94BABD528D8B528D8B528D8B94BABD528D8B528D8B94BABD528D8B528D8B +528D8B94BABD528D8B528D8B528D8B94BABD528D8B528D8B94BABD528D8B528D8B528D8B94BABD +528D8B528D8B94BABD528D8B528D8B528D8B94BABD528D8B528D8B528D8B94BABD528D8B528D8B +94BABD314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFD5D2D5D5D2D5 +D5D6D5D5D6D5D5D6D5DEDADEDEDADE414041414041414041414041414041E6E2E6414441414441 +414441414441414441E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEEEEEEEEEEDEDADE314C4A52898B +52898B52898B52898B52898BC9D9DDFFFFFFFFFFFF8389832F4C5052898B52898B528D8B94B6B4 +FFFFFFFFFFFFC5C2C541717352898BFFFFFFFFFFFF528D8BA6C2C5EDF1F5FFFFFFDCE6E669999B +52898B52898B52898B69999BC9D6D5F6F6F6FFFFFFEDF1F5ADC6C7528D8B52898B52898B52898B +52898B52898B52898B52898BC9D9DDFFFFFF8391942B484A4A7D8352898B52898B52898B52898B +52898B52898B528D8B52898B528D8B9CBEBDE1EAEEFFFFFFFFFFFFE1EAEE9CBEBD52898B52898B +52898BFFFFFFFFFFFFFFFFFF528D8BA6C2C5EDF1F5DCE6E669999B52898B52898B52898B52898B +679599C9D6D5F6FAFFE6EEEEFFFFFFFFFFFFFFFFFF29404152898B52898BFFFFFFFFFFFF52898B +EEF6F6FFFFFFFFFFFFFFFFFFFFFFFFE3E8EE52898BFFFFFFFFFFFF52898B52898B52898B528D8B +9CBEBDE1EAEEFFFFFFE1EAEE9CBEBD528D8B52898B52898B52898BFFFFFFFFFFFFFFFFFFA6C2C5 +EDF1F5FFFFFFDCE6E669999B52898B52898B52898B52898B52898B52898B52898B52898B5A9594 +52898BFFFFFFFFFFFFFFFFFF52898B52898B67959952898B52898B52898B75A5ACC9D6D5F6F6F6 +EDF1F5ADC6C7528D8B52898B5A999C52898B528D8BA6C2C5E3E8EEFFFFFFFFFAFFEDF1F5C9D9DD +67959952898BF6F6F6FFFFFFFFFFFFFFFFFFE3E8EE52898B528D8BB0CFCFE1EAEEF6FAFFFFFFFF +E6EEEED5DADE5A95946D9D9C52898B52898B52898B6D9D9C52898B52898B6D9D9C528D8B52898B +52898B6F9DA252898B52898B52898B52898B52898B52898B6F9DA252898B52898B52898B71A1A4 +52898B52898B71A1A452898B52898B52898B71A1A452898B52898B52898B52898B52898B52898B +71A1A452898B52898B52898B71A1A452898B52898B71A1A452898B52898B52898B76A1A152898B +52898B7BAAA452898B52898B52898B7BAAA452898B52898B52898B7BAAA452898B52898B80A5AB +52898B52898B52898B80A5AB52898B52898B80A5AB52898B52898B52898B7DAAAB52898B52898B +52898B7DAAAB52898B52898B83AAAC52898B52898B52898B83AAAC52898B52898B83AAAC52898B +52898B52898B83AAAC52898B52898B52898B83AAAC52898B52898B83AEAC52898B52898B52898B +83AEAC52898B52898B83AEAC52898B52898B52898B83AEAC52898B52898B52898B52898B52898B +52898B83AEAC52898B52898B52898B8BAEB452898B52898B8BAEB452898B52898B52898B8BAEB4 +52898B52898B52898B52898B52898B52898B8BAEB452898B52898B52898B8BB2B452898B52898B +8BB2B452898B52898B52898B8BB2B452898B52898B52898B52898B52898B52898B8BB2B452898B +52898B52898B8BB2B452898B52898B8BB2B452898B52898B52898B8BB2B452898B52898B8BB2B4 +52898B52898B52898B8BB2B452898B52898B52898B8BB2B452898B52898B8BB2B452898B52898B +52898B8BB2B452898B52898B8BB2B452898B52898B52898B94B6B452898B52898B52898B94B6B4 +52898B52898B94B6B452898B52898B52898B94B6B452898B52898B94B6B452898B52898B52898B +94B6B452898B52898B52898B94B6B452898B52898B94B6B452898B52898B52898B94B6B452898B +52898B91B6BC52898B52898B52898B91B6BC52898B52898B52898B52898B52898B52898B91B6BC +52898B52898B52898B94BABD52898B52898B94BABD52898B52898B52898B94BABD52898B52898B +52898B52898B52898B52898B94BABD52898B52898B52898B94BABD52898B52898B94BABD52898B +314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFD5D2D5D5D6D5D5D6D5 +D5D6D5DEDADEDEDADEDEDADEDEDADE414041414041414041414041414441414441414441414441 +414441E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEEDEDADE314C4A528583528583 +528583528583528583EDF1F5FFFFFFFFFFFF39595A41696A5285835285835285836A9194FFFFFF +FFFFFFE1EAEE31595A528583FFFFFFFFFFFFC3CACDFFFFFFFFFFFFFFFFFFFFFFFFC9D6D54A7D7B +52858373999CF6FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8BEBD528583528583528583528583 +528583528583528583EDF1F5FFFFFF435D5E41696A528583528583528583528583528583528583 +528583528583528583D8E0E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF528583528583528583 +FFFFFFFFFFFFFFFFFFC3CACDFFFFFFFFFFFFFFFFFFC9D6D54A7D7B5285835285835A898BEDF1F5 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF294041528583528583FFFFFFFFFFFF294041EEF6F6 +FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE314C4AFFFFFFFFFFFF294041528583528583D8E0E1FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFC9D6D5528583528583528583FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFC9D6D54A7D7B5285835285835285835285835285835285836A9194528583528583 +FFFFFFFFFFFFFFFFFF5285835A91945285835285835285837BAAA4F6FAFFFFFFFFFFFFFFFFFFFF +FFFFFFA8BEBD679599528583528583C9D6D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A6D6A +628D8BEEF6F6FFFFFFFFFFFFFFFFFFDEDEDE314C4AC9D9DDFFFFFFFFFAFFFFFFFFFFFFFFFFFFFF +FFFFFF5375734A7D7B52858352858369999B52858352858369999B52858352858352858369999B +52858352858352858373999C52858352858373999C52858352858352858373999C528583528583 +73999C52858352858352858373999C52858352858352858373999C52858352858373999C528583 +52858352858376A1A152858352858376A1A15285835285835285837BA19C528583528583528583 +52818352858352858376A1A152858352858352858376A1A152858352858376A1A1528583528583 +52858376A1A15285835285835285835285835285835285837BAAA45281835285835285837BAAA4 +52818352858383A5A452858352858352858383A5A4528583528583528583528583528583528583 +83A5A452858352858352858383A5A452858352858383AAAC52858352858352858383AAAC528583 +52858383AAAC52858352858352858383AAAC52858352858352858383AAAC52858352858383AAAC +5285835285835285838BAAAC5285835285838BAAAC5285835285835285838BAAAC528583528583 +5285838BAAAC5285835285838BAAAC5285835285835285838BAAAC5285835285838BAAAC528583 +5285835285838BAAAC5285835285835285838BAAAC5285835285838BAAAC528583528583528583 +8BAAAC5285835285838BAAAC5285835285835285838BAAAC528583528583528583528583528583 +52858388B2AD52858352858352858388B2AD52858352858388B2AD52858352858352858388B2AD +52858352858352858352858352858352858394B2B452858352858352858394B2B4528583528583 +94B2B452858352858352858394B2B452858352858352858352858352858352858394B2B4528583 +52858352858394B2B452858352858394B2B452858352858352858394B6B452858352858394B6B4 +52858352858352858394B6B452858352858352858394B6B452858352858394B6B4528583528583 +52858394B6B452858352858394B6B452858352858352858394B6B452858352858352858394B6B4 +52858352858394B6B452858352858352858394B6B452858352858394B6B4528583528583314C4A +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFD5D6D5D5D6D5DEDADEDEDADE +DEDADEDEDEDEDEDEDEDEDEDEDEDEDEE6E2E6414441414441414441414441414441E6E6E6EEEAEE +EEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEEF6F2F6F6F2F6D5D6D5314C4A4A7D834A7D834A7D83 +4A7D834A7D83FFFFFFFFFFFFFFFFFF2944414A7D834A7D834A7D834A7D834A7D83FFFFFFFFFFFF +FFFAFF2940414A7D83FFFFFFFFFFFF435D5E2B484A417173FFFFFFFFFFFFFFFFFF2940414A7D83 +FFFFFFFFFFFFC5C2C52940414171736A9197FFFFFFFFFFFF6981804A7D834A7D834A7D834A7D83 +4A7D834A7D83FFFFFFFFFFFF2944414A7D834A7D834A7D834A7D834A7D834A7D834A7D834A7D83 +4A7D83E1EAEEFFFFFFFFFFFF5C6E6F2F4C504A757B679599FFFFFFD5DADE3961624A7D83FFFFFF +FFFFFFFFFFFF435D5E2B484A417173FFFFFFFFFFFF2940414A7D834A7D83E1EAEEFFFFFFFFFFFF +5861634A7D83FFFFFFFFFFFFFFFFFF2940414A7D834A7D83FFFFFFFFFFFF2940414A7D83FFFFFF +FFFFFFFFFFFF2940414A7D834A7D83FFFFFFFFFFFF2940414A7D83E1EAEEFFFFFFFFFFFF5C6E6F +2F4C50679599FFFFFFFFFFFFD5DADE3961624A7D83FFFFFFFFFFFFFFFFFF2B484A417173FFFFFF +FFFFFFFFFFFF2940414A7D834A7D834A7D834A7D834A7D834A7D834A7D834A7D835A9194FFFFFF +FFFFFFFFFFFF4A7D834A7D834A7D835A898B5A9194FFFFFFFFFFFFC5C2C52940416A9197FFFFFF +FFFFFF6981804A797B5A9194EDF1F5FFFFFFFFFAFF4A757B4A7D834A7D835A898B41696A4A7D83 +4A7D83FFFFFFFFFFFF2940415A91944A7D83EDF1F5FFFFFFFFFFFF929D9C4A757B5A91944A757B +3965624A7D836795994A7D834A7D834A7D836A91974A7D834A7D836A91974A7D834A7D834A7D83 +6A91974A7D834A7D836795994A7D834A7D834A7D836795994A7D834A7D834A7D8369999B4A7D83 +4A7D836795994A7D834A7D834A7D836795994A7D834A7D8369999B4A7D834A7D834A7D8373999C +4A7D834A7D834A7D8373999C4A7D834A7D8373999C4A7D834A7D834A7D8373999C4A7D834A7D83 +6F9DA24A7D834A7D834A7D836F9DA24A7D834A7D834A7D834A7D834A7D834A7D836F9DA24A7D83 +4A7D834A7D836F9DA24A7D834A7D836F9DA24A7D834A7D834A7D8376A1A14A7D834A7D834A7D83 +4A7D834A7D834A7D8376A1A14A7D834A7D834A7D8376A1A14A7D834A7D8376A1A14A7D834A7D83 +4A7D8376A1A14A7D834A7D834A7D834A7D834A7D834A7D8380A5AB4A7D834A7D834A7D8380A5AB +4A7D834A7D8380A5AB4A7D834A7D834A7D8380A5AB4A7D834A7D8380A5AB4A7D834A7D834A7D83 +80A5AB4A7D834A7D834A7D8380A5AB4A7D834A7D8380A5AB4A7D834A7D834A7D8380A5AB4A7D83 +4A7D8380A5AB4A7D834A7D834A7D8380A5AB4A7D834A7D834A7D8380A5AB4A7D834A7D8380A5AB +4A7D834A7D834A7D8383AAAC4A7D834A7D8383AAAC4A7D834A7D834A7D8383AAAC4A7D834A7D83 +4A7D8383AAAC4A7D834A7D8383AAAC4A7D834A7D834A7D838BAAAC4A7D834A7D838BAAAC4A7D83 +4A7D834A7D838BAAAC4A7D834A7D834A7D834A7D834A7D834A7D838BAAAC4A7D834A7D834A7D83 +8BAAAC4A7D834A7D838BAEB44A7D834A7D834A7D838BAEB44A7D834A7D834A7D834A7D834A7D83 +4A7D838BAEB44A7D834A7D834A7D838BAEB44A7D834A7D838BAEB44A7D834A7D834A7D838BAEB4 +4A7D834A7D834A7D834A7D834A7D834A7D838BAEB44A7D834A7D834A7D838BAEB44A7D834A7D83 +8BAEB44A7D834A7D834A7D8394B2B44A7D834A7D8394B2B44A7D834A7D834A7D8394B2B44A7D83 +4A7D834A7D8394B2B44A7D834A7D8394B2B44A7D834A7D834A7D8394B2B44A7D834A7D8394B2B4 +4A7D834A7D834A7D8394B2B44A7D834A7D834A7D8394B2B44A7D834A7D8394B2B4314C4AB3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFD5D6D5DEDADEDEDADEDEDADEDEDEDE +DEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6414441414441414441E6E6E6EEEAEEEEEAEEEEEAEE +EEEAEEEEEEEEEEEEEEEEEEEEF6F2F6F6F2F6F6F2F6D5D6D5314C4A4A797B4A797B4A797B4A797B +4A797BEDF1F5FFFFFFFFFFFF3E55544A797B4A797B4A797B4A797B628D8BFFFFFFFFFFFFE3E8EE +2940414A797BFFFFFFFFFFFF2940414171734A797BFFFFFFFFFFFFFFFFFF2940414A797BFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F9F9C4A797B4A797B4A797B4A797B4A797B +4A797BEDF1F5FFFFFF41615A4A797B4A797B4A797B4A797B4A797B4A797B4A797B4A797B4A797B +FFFFFFFFFFFFFFFFFF2D444A41696A4A797B528183FFFFFFFFFAFF2B484A4A797BFFFFFFFFFFFF +FFFFFF2940414171734A797BFFFFFFFFFFFF2940414A797B4A797BFFFAFFFFFFFFFFFFFF2D444A +4A797BFFFFFFFFFFFFFFFFFF2940414A797B4A797BFFFFFFFFFFFF2940414A797BFFFFFFFFFFFF +FFFFFF2940414A797B4A797BFFFFFFFFFFFF2940414A797BFFFFFFFFFFFFFFFFFF2D444A41696A +528183FFFFFFFFFFFFFFFAFF2B484A4A797BFFFFFFFFFFFFFFFFFF4171734A797BFFFFFFFFFFFF +FFFFFF2940414A797B4A797B4A797B4A797B4A797B4A797B4A797B5A898B4A757BFFFFFFFFFFFF +FFFFFF4A797B4A797B5A898B4A797B839DA4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +8F9F9C5375734A757B6A9194D5DADEFFFFFFFFFAFFC9D6D594B2B44A797B4A797B4A797B65898A +FFFFFFFFFFFF2940414A797B4A797B6A9194D5DADEFFFFFFFFFFFFFFFAFF83A1A44A7D7B4A797B +5A91944A757B4A797B4A797B5A91944D757B4A797B6A91974A797B4A797B4A797B6A91944A797B +4A797B4A797B4A797B4A797B4A797B6A91944A797B4A797B4A797B6A91944A797B4A797B6A9194 +4A797B4A797B4A797B6A91944A797B4A797B4A797B4A797B4A797B4A797B7095944A797B4A797B +4A797B7095944A797B4A797B7095944A797B4A797B4A797B73959C4A797B4A797B73959C4A797B +4A797B4A797B73999C4D757B4A797B4A797B73999C4A797B4A797B73999C4A797B4A797B4A797B +73999C4A797B4A797B73999C4A797B4A797B4A797B7B999C4A797B4A797B4A797B7B9D9C4A797B +4A797B7B9D9C4A797B4A797B4A797B7B9D9C4A797B4A797B7B9D9C4A797B4A797B4A797B76A1A1 +4D757B4A797B4A797B76A1A14A797B4A797B76A1A14A797B4A797B4A797B83A1A44A797B4A797B +83A1A44A797B4A797B4A797B83A1A44A797B4A797B4A797B4A797B4A797B4A797B83A1A44A797B +4A797B4A797B83A1A44A797B4A797B83A1A44A797B4A797B4A797B83A1A44A797B4A797B4A797B +4A797B4A797B4A797B83A5A44A797B4A797B4A797B83A5A44A797B4A797B83A5A44A797B4A797B +4A797B83A5A44A797B4A797B4A797B4A797B4A797B4A797B83A5A44A797B4A797B4A797B83A5A4 +4A797B4A797B80A5AB4A797B4A797B4A797B8BA5AC4A797B4A797B8BA5AC4A797B4A797B4A797B +8BA5AC4A797B4A797B4A797B8BA5AC4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B +4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B8BAAAC +4A797B4A797B4A797B8BAAAC4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B +4A797B8BAAAC4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B8BAAAC4A797B +4A797B4A797B8BAAAC4A797B4A797B4A797B4A797B4A797B4A797B94AEAC4A797B4A797B4A797B +94AEAC4A797B4A797B94AEAC4A797B4A797B4A797B94AEAC4A797B4A797B4A797B4A797B4A797B +4A797B94B2B44A797B4A797B4A797B94B2B44A797B4A797B94B2B44A797B314C4AB3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFDEDADEDEDADEDEDADEDEDEDEDEDEDEDEDEDE +DEDEDEE6E2E6E6E2E6E6E2E6E6E2E6E6E6E6414441E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEEEEEEE +EEEEEEEEEEEEF6F2F6F6F2F6F6F2F6F6F2F6D5D2D5314C4A4A797B4A797B4A797B4A797B4A797B +C9D6D5FFFFFFFFFFFF6B89854171734A797B4A797B4A797B8BAAACFFFFFFFFFFFFC5C2C52B484A +4A797BFFFFFFFFFFFF2940414A797B4A797BFFFFFFFFFFFFFFFFFF2940414A797BFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FAEAC4A797B4A797B4A797B4A797B4A797B4A797B +C9D6D5FFFFFF8A95954171734A797B4A797B4A797B4A797B4A797B4A797B4A797B4A797BFFFFFF +FFFFFFFFFFFF2D444A4A757B4A797B528183FFFFFFFFFAFF2940414A797BFFFFFFFFFFFFFFFFFF +2940414A797B4A797BFFFFFFFFFFFF2940414A797B4A797BFFFFFFFFFFFFFFFFFF2944414A797B +FFFFFFFFFFFFFFFFFF2940414A797B4A797BFFFFFFFFFFFF2940414A797BFFFFFFFFFFFFFFFFFF +2940414A797B4A797BFFFFFFFFFFFF2940414A797BFFFFFFFFFFFFFFFFFF2D444A4A757B528183 +FFFFFFFFFFFFFFFAFF2940414A797BFFFFFFFFFFFFFFFFFF4A797B4A797BFFFFFFFFFFFFFFFFFF +2940414A797B4A797B4A797B4A797B4A797B4A797B5A898B4A797B4A797BFFFFFFFFFFFFFFFFFF +4A797B5A898B4A797B4A797B76A1A1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94AAAC +3961624A797B4A797B55797A5C6E6FEEEAEEFFFFFFFFFFFFEEEAEE73999C628D8B4A797BFFFFFF +FFFFFF2940414A797B4A797B628D8B4171735C6E6F9FAEACEEEAEEFFFFFFEEEEEE8BAAAC4A797B +4A797B4A797B6A91944A797B4A797B6A91944A797B4A797B4A797B6A91944A797B4A797B4A797B +6A91944A797B4A797B6A91944A797B4A797B4A797B6A91944A797B4A797B6A91944A797B4A797B +4A797B6A91944A797B4A797B4A797B6A91944A797B4A797B6A91944A797B4A797B4A797B709594 +4A797B4A797B7095944A797B4A797B4A797B73959C4A797B4A797B4A797B4A797B4A797B4A797B +73999C4A797B4A797B4A797B73999C4A797B4A797B73999C4A797B4A797B4A797B73999C4A797B +4A797B4A797B4A797B4A797B4A797B7B999C4A797B4A797B4A797B7B9D9C4A797B4A797B7B9D9C +4A797B4A797B4A797B7B9D9C4A797B4A797B4A797B4A797B4A797B4A797B839DA44A797B4A797B +4A797B839DA44A797B4A797B83A1A44A797B4A797B4A797B83A1A44A797B4A797B83A1A44A797B +4A797B4A797B83A1A44A797B4A797B4A797B83A1A44A797B4A797B83A1A44A797B4A797B4A797B +83A1A44A797B4A797B83A1A44A797B4A797B4A797B83A1A44A797B4A797B4A797B83A5A44A797B +4A797B83A5A44A797B4A797B4A797B83A5A44A797B4A797B83A5A44A797B4A797B4A797B83A5A4 +4A797B4A797B4A797B83A5A44A797B4A797B83A5A44A797B4A797B4A797B83A5A44A797B4A797B +80A5AB4A797B4A797B4A797B80A5AB4A797B4A797B4A797B4A797B4A797B4A797B8BA5AC4A797B +4A797B4A797B8BA5AC4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B4A797B +4A797B4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B8BAAAC4A797B4A797B +4A797B8BAAAC4A797B4A797B4A797B4A797B4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC +4A797B4A797B8BAAAC4A797B4A797B4A797B8BAAAC4A797B4A797B88B2AD4A797B4A797B4A797B +88B2AD4A797B4A797B4A797B94AEAC4A797B4A797B94AEAC4A797B4A797B4A797B94AEAC4A797B +4A797B94AEAC4A797B4A797B4A797B94AEAC4A797B4A797B4A797B94B2B44A797B4A797B94B2B4 +4A797B4A797B4A797B94B2B44A797B4A797B94B2B44A797B4A797B314C4AB3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFFDEDADEDEDADEDEDADEDEDEDEDEDEDEDEDEDEE6E2E6 +E6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEE +F6F2F6F6F2F6F6F2F6F6F2F6F6F6F6D5D2D5314C4A4A757B4A757B4A757B4A757B4A757B83A1A4 +FFFFFFFFFFFFD5DADE3965624A757B4A757B4A797BDCE6E6FFFFFFFFFFFF697D7F2F4C504A757B +FFFFFFFFFFFF2940414A757B4A757BFFFFFFFFFFFFFFFFFF2940414A757BFFFFFFFFFFFFC3CACD +2940412940412940412940412940412940414A757B4A757B4A757B4A757B4A757B4A757B839DA4 +FFFFFFEDF1F54D757B4D757B4A757B4A757B4A757B4A757B4A757B4A757B4A757BDCE6E6FFFFFF +FFFFFF5C6E6F4A757B4A757B73959CFFFFFFD5DADE2940414A757BFFFFFFFFFFFFFFFFFF294041 +4A757B4A757BFFFFFFFFFFFF2940414A757B4A757BEDF1F5FFFFFFFFFFFF3E5554528183FFFFFF +FFFFFFFFFFFF2940414A757B4A757BFFFFFFFFFFFF2940414A757BFFFFFFFFFFFFFFFFFF294041 +4A757B4A757BFFFFFFFFFFFF2940414A757BDCE6E6FFFFFFFFFFFF5C6E6F4A757B73959CFFFFFF +FFFFFFD5DADE2940414A757BFFFFFFFFFFFFFFFFFF4A757B4A757BFFFFFFFFFFFFFFFFFF294041 +4A757B4A757B4A757B4A757B4A757B4A757B4A757B4A757B4A757BFFFFFFFFFFFFFFFFFF5A898B +4A757B4A757B4A757B73999CFFFFFFFFFFFFC3CACD29404129404129404129404129404139595A +4A757B6285874D757B4A757B416162839194FFFFFFFFFFFFEEEEEE41696A4A757BFFFFFFFFFFFF +2940414A757B65898A4A757B4A757B4A757B55797A39595AFFFFFFFFFFFFEEEAEE41696A4A757B +628D8B4A757B4A757B4A757B4A757B4A757B4A757B6A91944A757B4A757B4A757B6A91944A757B +4A757B6A91944A757B4A757B4A757B6A91944A757B4A757B4A757B4A757B4A757B4A757B6A9194 +4A757B4A757B4A757B6A91944A757B4A757B6A91944A757B4A757B4A757B7391944A757B4A757B +4A757B4D757B4A757B4A757B73959C4A757B4A757B4A757B73959C4A757B4A757B73959C4A757B +4A757B4A757B73959C4A757B4A757B73959C4A757B4A757B4A757B73959C4A757B4A757B4A757B +73959C4A757B4A757B7B999C4A757B4A757B4A757B7B999C4A757B4A757B7B999C4A757B4A757B +4A757B7B999C4A757B4A757B4A757B7B999C4A757B4A757B7B999C4A757B4A757B4A757B76A1A1 +4A757B4A757B76A1A14A757B4A757B4A757B76A1A14D757B4A757B4A757B4A757B4A757B4A757B +839DA44A757B4A757B4A757B839DA44A757B4A757B839DA44A757B4A757B4A757B83A1A44A757B +4A757B4A757B4A757B4A757B4A757B83A1A44A757B4A757B4A757B83A1A44A757B4A757B83A1A4 +4A757B4A757B4A757B83A1A44A757B4A757B4A757B4A757B4A757B4A757B83A1A44A757B4A757B +4A757B83A1A44A757B4A757B83A1A44A757B4A757B4A757B83A1A44A757B4A757B4A757B4A757B +4A757B4A757B80A5AB4D757B4A757B4A757B8BA5AC4A757B4A757B8BA5AC4A757B4A757B4A757B +8BA5AC4A757B4A757B8BA5AC4A757B4A757B4A757B8BA5AC4A757B4A757B4A757B8BA5AC4A757B +4A757B8BA5AC4A757B4A757B4A757B8BA5AC4A757B4A757B8BA5AC4A757B4A757B4A757B8BA5AC +4A757B4A757B4A757B8BA5AC4A757B4A757B8BAAAC4A757B4A757B4A757B8BAAAC4A757B4A757B +8BAAAC4A757B4A757B4A757B8BAAAC4A757B4A757B4A757B4A757B4A757B4A757B8BAAAC4A757B +4A757B4A757B94AAAC4A757B4A757B94AAAC4A757B4A757B4A757B94AAAC4A757B4A757B4A757B +4A757B4A757B4A757B94AAAC4A757B4A757B4A757B94AEAC4A757B4A757B94B2B44A757B4A757B +4A757B94B2B44A757B4A757B4A757B4A757B4A757B4A757B314C4AB3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3000000FFFFFFDEDADEDEDADEDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6 +E6E2E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEF6F2F6 +F6F2F6F6F2F6F6F6F6F6F6F6D5D2D5314C4A4A75734A75734A75734A75734A75734A7573D5DADE +FFFFFFFFFFFFC3CACD65898A6B8D8EC9D6D5FFFFFFFFFFFFC9D6D52940413965624A7573FFFFFF +FFFFFF2940414A75734A7573FFFFFFFFFFFFFFFFFF2940414A7573D5DADEFFFFFFFFFFFF9FAEAC +5C81824A757355797A6B8D8E7391944A75734A75734A75734A75734A75734A7573487174C9D6D5 +FFFFFFEDF1F594AEAC6285874A75734A75735C818283A1A4C9D6D54A757394B2B4FFFFFFFFFFFF +D5D6D555797A5C8182DCE6E6FFFFFF8A95952B484A4A7573FFFFFFFFFFFFFFFFFF2940414A7573 +4A7573FFFFFFFFFFFF2940414A75734A7573C9D6D5FFFFFFFFFFFF9CA5A4C9D6D5FFFFFFFFFFFF +FFFFFF2940414A75734A7573FFFFFFFFFFFF2940414A7573F6FAFFFFFFFFFFFFFF314C4A4A7573 +4A7573FFFFFFFFFFFF2940414A757394B2B4FFFFFFFFFFFFD5D6D54D757BDCE6E6FFFFFFFFFFFF +8A95952B484A4A7573FFFFFFFFFFFFFFFFFF4A75734A7573FFFFFFFFFFFFFFFFFF2940414A7573 +4A75734A75734A75734A75734A75734A75734A75735C8182FFFFFFFFFFFFFFFFFF4A71734A7573 +4A75735C81824A7573D5DADEFFFFFFFFFFFF9FAEAC4A7573628D8B6B8D8E7391944A7573628587 +ADC6C77B9D9C5C818255797A8BA5A4FFFFFFFFFFFFF6F6F62944414A7573FFFAFFFFFFFF314C4A +6285874A7573ADC6C77B9D9C73959C4A757355797AFFFFFFFFFFFFF6F6F629444165898A4A757B +4A71734A75736B8D8E4A75734A75736A898C4A75734A75734A75736A898C4A75734A75736A898C +4A75734A75734A75736A898C4A75734A75734A75736B8D8E4A75734A75736B8D8E4A75734A7573 +4A75736B8D8E4A75734A75736A91944A75734A75734A75737391944A75734A75734A7573739194 +4A75734A75737391944A75734A75734A75737095944A75734A75737095944A75734A75734A7573 +7095944A75734A75734A75734A75734A75734A75737095944A75734A75734A75737095944A7573 +4A75737399944A75734A75734A75737B99944A75734A75734A75734A75734A75734A75737B999C +4A75734A75734A75737B999C4A75734A75737B999C4A75734A75734A75737B9D9C4A71734A7573 +4A75734A75734A75734A75737B9D9C4A75734A75734A7573839D9C4A75734A7573839D9C4A7573 +4A75734A7573839D9C4A75734A7573839D9C4A75734A75734A7573839D9C4A75734A75734A7573 +839D9C4A75734A7573839D9C4A75734A75734A7573839D9C4A75734A7573839D9C4A75734A7573 +4A757383A1A44A75734A75734A757383A1A44A75734A757383A1A44A75734A75734A757383A1A4 +4A75734A757383A1A44A75734A75734A757383A1A44A75734A75734A757383A1A44A75734A7573 +83A5A44A75734A75734A75738BA5A44A75734A75738BA5A44A75734A75734A75738BA5A44A7573 +4A75734A75734A75734A75734A75738BA5A44A75734A75734A75738BA5A44A75734A75738BA5A4 +4A75734A75734A75738BA5A44A75734A75734A75734A75734A75734A75738BA5A44A75734A7573 +4A75738BA5A44A75734A75738BA5A44A75734A75734A75738BA5A44A75734A75734A75734A7573 +4A75734A75738BAAAC4A75734A75734A75738BAAAC4A75734A75738BAAAC4A75734A75734A7573 +94AAAC4A75734A757394AAAC4A75734A75734A757394AAAC4A75734A75734A757394AAAC4A7573 +4A757394AAAC4A75734A75734A757394AEAC4A75734A757394AEAC4A75734A71734A757394AEAC +4A71734A75734A717394AEAC4A75734A757394AEAC314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3000000FFFFFFDEDADEDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E2E6E6E6E6 +E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEF6F2F6F6F2F6F6F2F6 +F6F6F6F6F6F6F6F6F6D5D2D5314C4A4A71734A71734A71734A71734A71734A71735C7D80D5DADE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5DADE3E5554314C4A4A71734A7173FFFFFFFFFFFF +2940414A71734A7173FFFFFFFFFFFFFFFFFF2940414A7173628587EEEEEEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFA8BEBD4A71734A71734A71734A71734A71734A71734A71734D757BFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4165624A7573D5D2D5FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF29444139595A4A7173FFFFFFFFFFFFFFFFFF2940414A71734A7173 +FFFFFFFFFFFF2940414A71734A7173709594FFFFFFFFFFFFFFFFFFD5DADEFFFFFFFFFFFFFFFFFF +2940414A71734A7173FFFFFFFFFFFF2940414A7173C9D6D5FFFFFFFFFFFFD5DADEC3CACD4A7173 +FFFFFFFFFFFF2940414A71734A7573D5D2D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3CACD294441 +39595A4A7173FFFFFFFFFFFFFFFFFF4A71734A7173FFFFFFFFFFFFFFFFFF2940414A71734A7173 +4A71734A71734A71734A71734A71735C7D80487174FFFFFFFFFFFFFFFFFF4A71734A71735C8182 +4871744A7173628587EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8BEBD537573537573FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF929D9C294041628587C9D6D5FFFFFFD5DADEC3CACD +537573FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF929D9C2944414A71734A71734A7173 +65898A4A71734A71736A898C4A71734A71734A71736A898C4A71734A71734A71734A71734A7173 +4A71736A898C4A71734A71734A71736B8D8E4A71734A71736B8D8E4A71734A71734A71736B8D8E +4A71734A71734A71734A71734A71734A7173738D944A71734A71734A7173738D944A71734A7173 +7391944A71734A71734A71737391944A71734A71737391944A71734A71734A71737391944A7173 +4A71734A71737391944A71734A71737095944A71734A71734A71737095944A71734A7173709594 +4A71734A71734A71737D95954A71734A71734A71737B959C4A71734A71737B959C4A71734A7173 +4A71737B959C4A71734A71737B999C4A71734A71734A71737B999C4A71734A71734A71737B999C +4A71734A71737B999C4A71734A71734A717383999C4A71734A717383999C4A71734A71734A7173 +839D9C4A71734A71734A71734A71734A71734A7173839D9C4A71734A71734A7173839D9C4A7173 +4A7173839D9C4A71734A71734A7173839D9C4A71734A71734A71734A71734A71734A7173839D9C +4A71734A71734A7173839DA44A71734A7173839DA44A71734A71734A7173839DA44A71734A7173 +4A71734A71734A71734A717383A1A44A71734A71734A717383A1A44A71734A717383A1A44A7173 +4A71734A71738BA1A44A71734A71738BA1A44A71734A71734A71738BA1A44A71734A71734A7173 +8BA1A44A71734A71738BA1A44A71734A71734A71738BA1A44A71734A71738BA1A44A71734A7173 +4A71738BA5A44A71734A71734A71738BA5A44A71734A71738BA5A44A71734A71734A71738BA5A4 +4A71734A71738BA5A44A71734A71734A71738BA5A44A71734A71734A71738BA5A44A71734A7173 +8BA5AC4A71734A71734A71738BA5AC4A71734A71738BA5AC4A71734A71734A71738BA5AC4A7173 +4A71734A71734A71734A71734A717394AAAC4A71734A71734A717394AAAC4A71734A717394AAAC +4A71734A71734A717394AAAC4A71734A71734A71734A71734A71734A717394AAAC4A71734A7173 +4A717394AAAC4A71734A717394AAAC4A7173314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3000000FFFFFFDEDEDEDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6E6E6E6 +EEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEF6F2F6F6F2F6F6F2F6F6F6F6F6F6F6F6F6F6 +F6F6F6FFFAFFD5D2D5314C4A4A71734A71734A71734A71734A71734A71734A71734D716A839194 +C9D6D5F6F6F6F6F2F6CDCECD728D8D2944412D444A4A6D6A4A71734A7173FFFFFFFFFFFF294041 +4A71734A7173FFFFFFFFFFFFFFFFFF2940414A71734A71735375739CA5A4DCE6E6FFFAFFFFFFFF +EEEEEECDCACD5C72704A71734A71734A71734A71734A71734A71734A71734A7173637E7FBDBABD +E6E6E6FFFAFFFFFFFFFFFAFFE6E6E6C5C2C5728D8D4165624A71734A75738F9F9CDEDEDEFFFFFF +FFFAFFDEDEDE8A9595314C4A4A71734A7173FFFFFFFFFFFFFFFFFF2940414A71734A7173FFFFFF +FFFFFF2940414A71734A71734A71738F9F9CEEEAEEF6FAFF314C4AFFFFFFFFFFFFFFFFFF294041 +4A71734A7173FFFFFFFFFFFF2940414A71735C7D80C3CACDF6FAFFFFFFFFD5DADE2F4C50FFFFFF +FFFFFF2940414A71734A71734A75738F9F9CDEDEDEFFFFFFDEDEDE8A9595294441314C4A4A7173 +4A7173FFFFFFFFFFFFFFFFFF4A71734A7173FFFFFFFFFFFFFFFFFF2940414A71734A71734A7173 +4A71734A71734A71735C7D804A71734A7173FFFFFFFFFFFFFFFFFF4A71735C81824A71734A7173 +4A71735C81825375739CA5A4DCE6E6FFFFFFEEEEEECDCACD5C727031595A487174A7BABACDCECD +EEEEEEFFFFFFEEEEEEC5C6C568797D2940414165624A71735C7D80F6FAFFFFFFFFD8E0E12F4C50 +ADC6C7CDCECDEEEEEEFFFFFFFFFFFFC5C6C568797D29404139595A4A71734A7173628D8B4A7173 +4A71736A898C4A71734A71734A71736A898C4A71734A71734A71736A898C4A71734A71736A898C +4A71734A71734A71736A898C4A71734A71736B8D8E4A71734A71734A71736B8D8E4A71734A7173 +4A71736B8D8E4A71734A71736A91944A71734A71734A7173738D944A71734A71737391944A7173 +4A71734A71737391944A71734A71734A71734A71734A71734A71737391944A71734A71734A7173 +7391944A71734A71737391944A71734A71734A71737095944A71734A71734A71734A71734A7173 +4A71737D95954A71734A71734A71737D95954A71734A71737B959C4A71734A71734A71737B959C +4A71734A71734A71734A71734A71734A71737B999C4A71734A71734A71737B999C4A71734A7173 +7B999C4A71734A71734A717383999C4A71734A717383999C4A71734A71734A7173839D9C4A7173 +4A71734A7173839D9C4A71734A7173839D9C4A71734A71734A7173839D9C4A71734A7173839D9C +4A71734A71734A7173839D9C4A71734A71734A7173839D9C4A71734A7173839D9C4A71734A7173 +4A7173839DA44A71734A7173839DA44A71734A71734A7173839DA44A71734A71734A717383A1A4 +4A71734A717383A1A44A71734A71734A717383A1A44A71734A717383A1A44A71734A71734A7173 +83A1A44A71734A71734A71734A71734A71734A71738BA1A44A71734A71734A71738BA1A44A7173 +4A71738BA1A44A71734A71734A71738BA1A44A71734A71734A71734A71734A71734A71738BA5A4 +4A71734A71734A71738BA5A44A71734A71738BA5A44A71734A71734A71738BA5A44A71734A7173 +4A71734A71734A71734A71738BA5A44A71734A71734A71738BA5A44A71734A71738BA5A44A7173 +4A71734A71738BA5AC4A71734A71738BA5AC4A71734A71734A71738BA5AC4A71734A71734A7173 +94AAAC4A71734A717394AAAC4A71734A71734A717394AAAC4A71734A717394AAAC4A71734A7173 +4A717394AAAC4A71734A71734A717394AAAC4A71734A717394AAAC4A71734A71734A717394AAAC +4A71734A717394AAAC4A71734A7173314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +000000FFFFFFDEDEDEDEDEDEE6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEE +EEEAEEEEEEEEEEEEEEEEEEEEEEEEEEF6F2F6F6F2F6F6F2F6F6F2F6F6F6F6F6F6F6F6F6F6FFFAFF +FFFAFFCDCECD314C4A4A6D734A6D734A6D734A6D734A6D734A6D734A6D734A6D734A6D7339595A +314C4A294041294441314C4A39595A4A71734A6D734A6D734A6D734A6D732940412940414A6D73 +4A6D734A6D732940412940412940414A6D734A6D734A6D7341696A39595A2B484A294041294041 +2944412F4C504A6D734A6D734A6D734A6D734A6D734A6D734A6D734A6D734A6D734161622F4C50 +2B484A2940412940412940412B484A2F4C504A6D734A6D734A6D734A6D7339595A2B484A294041 +2940412B484A4A6D734A6D734A6D734A6D732940412940412940414A6D734A6D73294041294041 +2940414A6D734A6D734A6D734A6D733961622944412F4C504A6D732940412940412940414A6D73 +4A6D734A6D732940412940414A6D734A6D7341696A2F4C50294041294041314C4A4A6D73294041 +2940414A6D734A6D734A6D734A6D7339595A2B484A2940412B484A39595A4A6D734A6D734A6D73 +4A6D732940412940414A6D734A6D734A6D732940412940412940414A6D734A6D734A6D734A6D73 +4A6D734A6D734A6D734A6D734A6D735C7D802940412940415C7D804A6D734A6D734A6D735C7D80 +4A6D734A6D7341696A435D5E2940412940412B484A2F4C504161624A6D73637E7F39595A2F4C50 +2940412940412944412F4C504A6D734A6D734A6D734A6D732F4C502940412940412F4C504A6D73 +39595A314C4A2B484A29404129444139595A4161624A6D734A6D736285874A6D734A6D734A6D73 +4A6D734A6D734A6D736A898C4A6D734A6D734A6D736A898C4A6D734A6D736A898C4A6D734A6D73 +4A6D736A898C4A6D734A6D734A6D734A6D734A6D734A6D736A898C4A6D734A6D734A6D736A898C +4A6D734A6D736B8D8E4A6D734A6D734A6D73738D944A6D734A6D734A6D734A6D734A6D734A6D73 +738D944A6D734A6D734A6D73738D944A6D734A6D73738D944A6D734A6D734A6D73738D944A6D73 +4A6D737391944A6D734A6D734A6D737391944A6D734A6D734A6D737391944A6D734A6D737B9194 +4A6D734A6D734A6D737B91944A6D734A6D737B959C4A6D734A6D734A6D737B959C4A6D734A6D73 +4A6D737B959C4A6D734A6D737B959C4A6D734A6D734A6D737B959C4A6D734A6D737B959C4A6D73 +4A6D734A6D737B999C4A6D734A6D734A6D734A6D734A6D734A6D7383999C4A6D734A6D734A6D73 +83999C4A6D734A6D7383999C4A6D734A6D734A6D7383999C4A6D734A6D734A6D734A6D734A6D73 +4A6D7383999C4A6D734A6D734A6D7383999C4A6D734A6D7383999C4A6D734A6D734A6D73839DA4 +4A6D734A6D734A6D734A6D734A6D734A6D73839DA44A6D734A6D734A6D73839DA44A6D734A6D73 +839DA44A6D734A6D734A6D73839DA44A6D734A6D734A6D734A6D734A6D734A6D73839DA44A6D73 +4A6D734A6D738B9DA44A6D734A6D738B9DA44A6D734A6D734A6D738B9DA44A6D734A6D738BA1A4 +4A6D734A6D734A6D738BA1A44A6D734A6D734A6D738BA1A44A6D734A6D738BA1A44A6D734A6D73 +4A6D738BA1A44A6D734A6D738BA1A44A6D734A6D734A6D738BA1A44A6D734A6D734A6D738BA1A4 +4A6D734A6D738BA1A44A6D734A6D734A6D738BA1A44A6D734A6D738BA1A44A6D734A6D734A6D73 +8BA5AC4A6D734A6D734A6D734A6D734A6D734A6D738BA5AC4A6D734A6D734A6D7394AAAC4A6D73 +4A6D7394AAAC4A6D734A6D734A6D7394AAAC4A6D734A6D734A6D734A6D734A6D734A6D7394AAAC +4A6D734A6D734A6D7394AAAC4A6D734A6D7394AAAC4A6D734A6D734A6D7394AAAC4A6D734A6D73 +4A6D734A6D734A6D734A6D73314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000 +FFFFFFDEDEDEE6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEE +EEEEEEEEEEEEEEEEEEF6F2F6F6F2F6F6F2F6F6F2F6F6F6F6F6F6F6F6F6F6FFFAFFFFFAFFFFFAFF +CDCECD314C4A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A55797A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A5C7D804A6D6A4A6D6A +4A6D6A5C7D804A6D6A4A6D6A5C7D804A6D6A4A6D6A4A6D6A637E7F4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A637E7F4A6D6A4A6D6A4A6D6A637E7F4A6D6A4A6D6A637E7F4A6D6A4A6D6A4A6D6A +637E7F4A6D6A4A6D6A637E7F4A6D6A4A6D6A4A6D6A6285874A6D6A4A6D6A4A6D6A6985834A6D6A +4A6D6A6985834A6D6A4A6D6A4A6D6A6985834A6D6A4A6D6A6985834A6D6A4A6D6A4A6D6A6B8985 +4A6D6A4A6D6A4A6D6A6B89854A6D6A4A6D6A6B89854A6D6A4A6D6A4A6D6A6A898C4A6D6A4A6D6A +6A898C4A6D6A4A6D6A4A6D6A728D8D4A6D6A4A6D6A4A6D6A728D8D4A6D6A4A6D6A728D8D4A6D6A +4A6D6A4A6D6A728D8D4A6D6A4A6D6A728D8D4A6D6A4A6D6A4A6D6A728D8D4A6D6A4A6D6A4A6D6A +4A6D6A4A6D6A4A6D6A71918B4A6D6A4A6D6A4A6D6A7391944A6D6A4A6D6A7391944A6D6A4A6D6A +4A6D6A7B91944A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A7D95954A6D6A4A6D6A4A6D6A7D9595 +4A6D6A4A6D6A7D95954A6D6A4A6D6A4A6D6A7D95954A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +7D95954A6D6A4A6D6A4A6D6A7D95954A6D6A4A6D6A7D95954A6D6A4A6D6A4A6D6A83999C4A6D6A +4A6D6A83999C4A6D6A4A6D6A4A6D6A83999C4A6D6A4A6D6A4A6D6A83999C4A6D6A4A6D6A83999C +4A6D6A4A6D6A4A6D6A83999C4A6D6A4A6D6A83999C4A6D6A4A6D6A4A6D6A839D9C4A6D6A4A6D6A +4A6D6A839D9C4A6D6A4A6D6A839D9C4A6D6A4A6D6A4A6D6A839D9C4A6D6A4A6D6A839D9C4A6D6A +4A6D6A4A6D6A839D9C4A6D6A4A6D6A4A6D6A839D9C4A6D6A4A6D6A839D9C4A6D6A4A6D6A4A6D6A +8F9F9C4A6D6A4A6D6A8F9F9C4A6D6A4A6D6A4A6D6A8F9F9C4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A +4A6D6A8F9F9C4A6D6A4A6D6A4A6D6A8F9F9C4A6D6A4A6D6A8BA1A44A6D6A4A6D6A4A6D6A8BA1A4 +4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A8BA1A44A6D6A4A6D6A4A6D6A8BA1A44A6D6A4A6D6A +8BA1A44A6D6A4A6D6A4A6D6A8BA1A44A6D6A4A6D6A4A6D6A4A6D6A4A6D6A4A6D6A8BA5A44A6D6A +4A6D6A4A6D6A8BA5A44A6D6A4A6D6A8BA5A44A6D6A4A6D6A4A6D6A94A5A44A6D6A4A6D6A94A5A4 +4A6D6A4A6D6A4A6D6A94A5A44A6D6A4A6D6A4A6D6A94A5A44A6D6A4A6D6A94A5A44A6D6A4A6D6A +4A6D6A94A5A44A6D6A4A6D6A94A5A44A6D6A4A6D6A4A6D6A94A5A44A6D6A4A6D6A4A6D6A94A5A4 +4A6D6A4A6D6A94A5A4314C4AB3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 +B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3000000FFFFFF +E6E2E6E6E2E6E6E2E6E6E6E6E6E6E6E6E6E6EEEAEEEEEAEEEEEAEEEEEAEEEEEEEEEEEEEEEEEEEE +F6F2F6F6F2F6F6F2F6F6F2F6F6F6F6F6F6F6F6F6F6FFFAFFFFFAFFFFFAFFFFFAFFFFFFFFCDCACD +314C4A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A41656A +4D757B41656A41656A41656A4D757B41656A41656A4D757B41656A41656A41656A4D757B41656A +41656A41656A41656A41656A41656A55797A41656A41656A41656A55797A41656A41656A55797A +41656A41656A41656A55797A41656A41656A5C7D8041656A41656A41656A5C7D8041656A41656A +41656A5C7D8041656A41656A637E7F41656A41656A41656A637E7F41656A41656A637E7F41656A +41656A41656A637E7F41656A41656A41656A637E7F41656A41656A637E7F41656A41656A41656A +637E7F41656A41656A637E7F41656A41656A41656A62858741656A41656A41656A6A898C41656A +41656A6A898C41656A41656A41656A6A898C41656A41656A6A898C41656A41656A41656A6A898C +41656A41656A41656A41656A41656A41656A6A898C41656A41656A41656A6A898C41656A41656A +6A898C41656A41656A41656A728D8D41656A41656A41656A41656A41656A41656A738D9441656A +41656A41656A738D9441656A41656A738D9441656A41656A41656A738D9441656A41656A41656A +41656A41656A41656A73919441656A41656A41656A7B919441656A41656A7B919441656A41656A +41656A7B919441656A41656A7B919441656A41656A41656A7B959C41656A41656A41656A7B959C +41656A41656A7B959C41656A41656A41656A7B959C41656A41656A7B959C41656A41656A41656A +7B959C41656A41656A41656A7B959C41656A41656A7B959C41656A41656A41656A7B959C41656A +41656A83999C41656A41656A41656A83999C41656A41656A41656A83999C41656A41656A83999C +41656A41656A41656A83999C41656A41656A83999C41656A41656A41656A83999C41656A41656A +41656A41656A41656A41656A83999C41656A41656A41656A83999C41656A41656A83999C41656A @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <mlivingstone@us...>  20090706 03:05:28

Revision: 4 http://salstat.svn.sourceforge.net/salstat/?rev=4&view=rev Author: mlivingstone Date: 20090706 03:05:22 +0000 (Mon, 06 Jul 2009) Log Message:  More minor changes Added Paths:  manual/manual.lyx Added: manual/manual.lyx ===================================================================  manual/manual.lyx (rev 0) +++ manual/manual.lyx 20090706 03:05:22 UTC (rev 4) @@ 0,0 +1,4731 @@ +#LyX 1.6.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 345 +\begin_document +\begin_header +\textclass book +\begin_preamble +\makeatother +\end_preamble +\use_default_options false +\language english +\inputencoding latin1 +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_amsmath 0 +\use_esint 0 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\secnumdepth 5 +\tocdepth 3 +\paragraph_separation skip +\defskip medskip +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\author "" +\author "" +\end_header + +\begin_body + +\begin_layout Title +SalStat Statistics Package  Users Manual +\end_layout + +\begin_layout Standard +\begin_inset CommandInset toc +LatexCommand tableofcontents + +\end_inset + + +\end_layout + +\begin_layout Author +© 2002 Alan James Salmoni +\end_layout + +\begin_layout Author +© 2009 Mark Livingstone +\end_layout + +\begin_layout Chapter +Introduction +\end_layout + +\begin_layout Standard +SalStat statistics is a small application designed for the rapid analysis + of scientific data. + There is a special emphasis upon the sciences like psychology. +\end_layout + +\begin_layout Standard +It is available under the terms of the GNU General Public License (the +\begin_inset Quotes eld +\end_inset + +GPL +\begin_inset Quotes erd +\end_inset + +), and a copy is present both with the program code, and in the program + itself (use the menu, click on +\begin_inset Quotes eld +\end_inset + +help +\begin_inset Quotes erd +\end_inset + +, then +\begin_inset Quotes eld +\end_inset + +about +\begin_inset Quotes erd +\end_inset + +, and click on the tab marked +\begin_inset Quotes eld +\end_inset + +license +\begin_inset Quotes erd +\end_inset + +. + There is also a copy in the appendix of this document). + In short this means that you can do what you want with the source code +  change it, sell it, give it away for free, but you must also make the + source code available for anyone upon request should you distribute your + changes, or change the license. + By the way, it costs you nothing unless you want to pay! +\end_layout + +\begin_layout Standard +If you have ever used a statistics package before (like SPSS or StatView), + you may be able to just start the program and be productive in a short + space of time: It has been designed to be as simple as possible. + Noone claims that statistics is a simple subject, but I wrote this program + to be as transparent as possible to the user. +\end_layout + +\begin_layout Standard +In case you are interested, it is written in the Python computer language + (http://www.python.org) which is very easy to learn and yet very powerful. + The GUI widgets (the things you see on the screen) were created using the + wxPython toolkit (http://www.wxpython.org), one of the coolest GUI toolkits + around. + Thanks to everyone who helped make Python and wxPython what they are (see + the appendices for more information). +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename graphics/main.png not found! + width 100text% + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +SalStat in action on GNU/Linux +\shape default + +\end_layout + +\begin_layout Chapter +History of SalStat +\end_layout + +\begin_layout Standard +The idea for SalStat began forming in my mind a number of years ago when + I realised that SPSS would not run on my computer (it was a small one with + a small memory by todays standards). + Over time, I got a more powerful computer that could run SPSS, but I couldn't + afford it. + Later on, I actually taught psychology undergraduates how to use SPSS for + basic statistical analysis (up to multifactorial analysis of variance). + Every time I taught, the same problems came up again and again. + For example, the data entry was confusing and varied according to whether + you were performing a within or between subjects test. + This was confusing to people who weren't familiar with SPSS or even statistics, + and I felt that it got in the way of how productive the students were. + In addition, my colleagues and I relied greatly upon the top commercial + packages and found them all lacking in some way or other, which gave me + an +\begin_inset Quotes eld +\end_inset + +itch +\begin_inset Quotes erd +\end_inset + + that I had to scratch. +\end_layout + +\begin_layout Standard +Therefore, I saw that there was a need for a simple and easy to use statistics + package available on as many different operating systems as possible which + could be used by virtually anyone with a little bit of statistical knowledge. + This created a few problems in itself. + Obviously, in order to be easy to use, it had to have a graphical user + interface (GUI) as many people find the command line interface intimidating. + Besides, there are already good packages available with the command line + interface (such as R or lispstat  see appendix C for more details). + GUI programming is difficult to do across different platforms, as they + all do things in different ways. + This meant either that I had to write a new version of SalStat for each + platform (which was difficult as I didn't have a Macintosh to work on), + or I had to use a language that offered crossplatform capabilities with + a powerful yet simple way to do a GUI interface. + For example, Visual Basic would allow me to do the program on Windows easily, + but it would not be available for Unix, Linux or the Macintosh. +\end_layout + +\begin_layout Standard +I considered many languages. + My first choice was Ada, a language commissioned by the US Department of + Defense. + It was crossplatform, was compiled (which makes the program faster), and + was a rocksolid language in terms of reliability (it is used in things + like avionics and missile guidance systems). + However, GUI programming was difficult as the only truly crossplatform + interface was the Tk toolkit which didn't offer all that I wanted from + a GUI. + My next consideration was Object Pascal, a version of Pascal by Borland, + but that ran only on Windows (Delphi) and Linux (Kylix) which meant no + program for the other Unices and Macintosh. + I also briefly considered C or C++, but programmers on these languages + seemed to spend most of their time debugging memory problems than anything, + and I wanted a working package more than a programming challenge. +\end_layout + +\begin_layout Standard +Finally, I settled on the Python language. + Python is a modern object oriented language that had a reputation for being + easy to use. + Its syntax was clear and interpreters were available for most platforms + around. + Not only did it offer the possibility of running programs on Unix, Linux, + Macintosh and Windows, but it also had good crossplatform GUI toolkits. + The standard was called Tkinter, based upon Tk, but I decided not to use + that due to the nonstandard widgets (widgets are things like buttons and + edit boxes). + The best option left to me was a toolkit called wxPython. + At the time, it wasn't available for the Macintosh, but work was progressing + on it, and I hoped that it would be ready by the time SalStat was finished. + wxPython offered me all the GUI widgets that I needed (and then some!), + along with native look and feel, and a simple object oriented way of programmin +g them. +\end_layout + +\begin_layout Standard +My decision to use the GNU General Public License (the +\begin_inset Quotes eld +\end_inset + +GPL +\begin_inset Quotes erd +\end_inset + +) for this work was for pragmatic reasons. + If had had released it under a commercial/proprietary license, I would + have to offer support and do some marketing which is not something I am + interested in. + My objective was not to make money, but rather to make the best statistics + package that I could, and the GPL offered me protection of my intellectual + property in a way that no other license did. + In addition, being open source, I was more likely to get people involved + in contributing towards the project which would enable the code to be made + more solid over time. +\end_layout + +\begin_layout Standard +Since then, SalStat has come along in leaps and bounds. + I have had some feedback from a number of kind people all around the world, + and I find it heartening that folk from so many different countries find + my work useful. +\end_layout + +\begin_layout Standard +To date, I have heard from people in the UK, Ireland, US, Canada, Slovakia, + France, Germany, Switzerland, the Philippines, Australia, Brazil, and Mexico. + I am interested in hearing how many people use it, so drop me an email + if you can. +\end_layout + +\begin_layout Chapter +What Does SalStat Do? +\end_layout + +\begin_layout Standard +SalStat can analyse data. + It is not intended to be a fully functional complete and heavyweight alternativ +e to packages like SAS, R or SPlus. + It was designed to allow quick analysis of data for people not too familiar + with computers, or those who just do not have access to the commercial + packages. + As such, it is not as powerful as many other packages (for more information, + see the SalStat website at http://salstat.com for alternatives), though + with future development, this may change. +\end_layout + +\begin_layout Section +Descriptive Statistics +\end_layout + +\begin_layout Standard +(Parametric and nonparametric are mixed here) N (count), sum, mean, variance, + standard deviation, standard error, sum of squares, sum of squared deviations, + coefficient of variation, minimum, maximum, range, number of missing cells, + geometric mean, harmonic mean, skewness, kurtosis, median, median absolute + deviation, mode, interquartile range, number of unique levels of data. +\end_layout + +\begin_layout Section +Inferential Statistics +\end_layout + +\begin_layout Standard +t test (1 sample) +\end_layout + +\begin_layout Standard +t test (paired) +\end_layout + +\begin_layout Standard +t test (unpaired) +\end_layout + +\begin_layout Standard +1 sample sign test +\end_layout + +\begin_layout Standard +2 sample sign test +\end_layout + +\begin_layout Standard +F test for variance ratio +\end_layout + +\begin_layout Standard +Wilcoxon Ranked Sums test +\end_layout + +\begin_layout Standard +MannWhitney U test +\end_layout + +\begin_layout Standard +KolmogorovSmirnov test +\end_layout + +\begin_layout Standard +Paired permutation test +\end_layout + +\begin_layout Standard +Pearsons correlation +\end_layout + +\begin_layout Standard +Spearmans rho correlation +\end_layout + +\begin_layout Standard +Kendalls tau correlation +\end_layout + +\begin_layout Standard +Point biserial r correlation +\end_layout + +\begin_layout Standard +Linear regression +\end_layout + +\begin_layout Standard +single factor analysis of variance (between subjects) +\end_layout + +\begin_layout Standard +single factor analysis of variance (within subjects) +\end_layout + +\begin_layout Standard +KruskalWallis H +\end_layout + +\begin_layout Standard +Friedman test +\begin_inset space ~ +\end_inset + + +\end_layout + +\begin_layout Chapter +Getting SalStat +\end_layout + +\begin_layout Standard +SalStat is available for download from the world wide web. + Being a Python program, it is available in source code (as Python is interprete +d  don't worry if you don't know what this means), and the best place to + get it is from its home site: http://salstat.com . + This is where all the latest and greatest releases are located, as well + as additional tests that can be downloaded and added. + The download edition is fully functional (in other words, it is not savedisabl +ed or limited to only a certain number of conditions), and will cost nothing. + You can pay if you want (rather I should say that donations to ensure continuin +g development are most welcome!), but there is absolutely no obligation + to do so. +\end_layout + +\begin_layout Standard +There are essentially 2 versions available. + The first is much bigger and contains every file you need to run SalStat. + Just download this, run the installer and run SalStat! This is only available + for Linux and Windows however. +\end_layout + +\begin_layout Standard +Otherwise, you will have to download Python and wxPython before you can + run SalStat. +\end_layout + +\begin_layout Standard +If you are using Linux or a version of Unix, then you could well have Python + already installed. + Again, the website has the best instructions for you, so go there and head + for the +\begin_inset Quotes eld +\end_inset + +download +\begin_inset Quotes erd +\end_inset + + page! +\end_layout + +\begin_layout Chapter +Installing SalStat +\end_layout + +\begin_layout Standard +Installation varies according to which platform you are using. +\end_layout + +\begin_layout Section +General +\end_layout + +\begin_layout Standard +There are two ways to install SalStat onto a computer. + The first, and simplest, is to get the allinclusive file from the download + page. + This contains everything needed to run SalStat, but it is only available + for Windows and Linux. +\end_layout + +\begin_layout Standard +The other alternative is to download the much smaller SalStat code package, + and also get Python and wxPython. +\end_layout + +\begin_layout Section +Linux +\end_layout + +\begin_layout Standard +At the SalStat website, there is a single downloadable file which will contain + all the necessary files to run SalStat. + It includes a Python interpreter and all the GUI stuff needed, and will + not interfere with any existing Python installation. +\end_layout + +\begin_layout Standard +Most Linux users will already have Python installed. + If not, they will need to get it from http://www.python.org. + The next thing needed is wxPython which can be had from http://www.wxpython.org, + and once those are installed, SalStat can be run. +\end_layout + +\begin_layout Section +Windows +\end_layout + +\begin_layout Standard +Like Linux, there is a single downloadable which has all the files necessary + to run SalStat. + However, for potential developers or people who already have Python and + wxPython installed, the source code alone can be downloaded and used. +\end_layout + +\begin_layout Section +Macintosh OS X +\end_layout + +\begin_layout Standard +I shall be honest here. + I don't have a Mac or access to OS X. + This isn't because I don't want it (believe me, I would love a Mac!), but + it does mean that I cannot develop a single file like I can for Windows + and Linux. + However, Ludger Humbert who does have a nice new Mac wrote to me with the + following guide (apologies for any mistakes as they are my fault  like + I said I don't have a Mac, and most of it is Greek to me): +\end_layout + +\begin_layout Standard +First of all, install an Xserver onto the Mac (this may be complicated, + but it allows access to the plethora of applications developed for the + XWindowing system), and I think Orobor was mentioned (http://wrench.et.ic.ac.uk/ad +rian/software/oroborosx/), and Ludger recommends installing the software + with fink (http://fink.sourceforge.net). + Orobor integrates well with Aqua, though I should point out that there + are important differences (such as the menu appearing at the top of the + window frame and not at the top of the screen). +\end_layout + +\begin_layout Standard +Once all this is done, get Python and wxPython (see just above for where + to get them), and once they are installed, get the SalStat source code, + unpack it somewhere, and run salstat.py. +\end_layout + +\begin_layout Section +Unix +\end_layout + +\begin_layout Standard +Like OS X, I have little or no experience of the Unices, but Python is available + for virtually all of them, as I believe is wxPython. + Get those 2 first, then get SalStat, and run salstat.py from a terminal. + You may encounter problems as I think you may need to compile wxPython + for your platform. + If you do get it to succeed, let me know as I am interested in knowing + what platforms it runs on. +\end_layout + +\begin_layout Chapter +Using SalStat  Entering Data +\end_layout + +\begin_layout Standard +When SalStat is running, you will see 2 different windows on your screen. + One has a grid like pattern on it, and the other is mostly blank. + Both have menus. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/grid.eps not found! + width 100col% + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +The data grid, where you can enter data +\end_layout + +\begin_layout Standard +The window with the grid on is where you can enter your data. + It works like a spreadsheet (although there are no functions available + currently). + Each cell contains a single datum, and you can actually input anything + you want  either a number or a string of letters. + The grid will be called the data grid from now on. + The window with the blank sheet is called the output sheet  once you have + done some data analysis, this is where your results will appear. +\end_layout + +\begin_layout Standard +Most popular statistics packages demand that (for between subjects designs + at least) the data are entered in a particular way. + SalStat has been designed to be intuitive, and differs in that each condition + is entered into its own column. + In other words, if you have an experiment with one variable that has 3 + levels (say, amount of alcohol  2 units, 4 units or 6 units), then you + will need to enter your data into three columns: one column for each condition. +\end_layout + +\begin_layout Standard +The data grid can be customised to your liking. + If you find the cells too large or small they can easily be changed: if + you go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Preferences +\begin_inset Quotes erd +\end_inset + + > +\begin_inset Quotes eld +\end_inset + +Change Cell Size... +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/cellsize.png not found! + width 40text% + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +Changing the cell size on the grid +\end_layout + +\begin_layout Standard +A small dialog box will come up that has 2 buttons on the bottom (marked + +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + and +\begin_inset Quotes eld +\end_inset + +Cancel +\begin_inset Quotes erd +\end_inset + +), and a couple of what are called +\begin_inset Quotes eld +\end_inset + +spin controls +\begin_inset Quotes erd +\end_inset + +. + Next to the box with a number in it are 2 small arrows pointing up and + down. + Click on these to change the values. + The top box number refers to how wide the columns are, and the lower box + is how high the rows are. + Try changing the values of both, then click on +\begin_inset Quotes eld +\end_inset + +okay +\begin_inset Quotes erd +\end_inset + +, and you will see that the data grid has changed all of the cells sizes. + If you only want to change the size of one column or row, put the mouse + point over the line next to the column or row you want to change. + You will see that the mouse cursor changes from the normal arrow into a + line with an arrow at each end. + This means you can press the left button and drag the line (with the button + held down) to where you want. +\end_layout + +\begin_layout Standard +As each column in SalStat refers to a different condition, each column heading + can also be changed: These may be referred to as variable names. + Of course, you can keep the default headings of A, B, C and so on, but + it may be easier when you read your results to have headings more meaningful + to yourself. + Using the above example of 3 levels of alcohol, you could use headings + of +\begin_inset Quotes eld +\end_inset + +2 units +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes eld +\end_inset + +4 units +\begin_inset Quotes erd +\end_inset + +, and +\begin_inset Quotes eld +\end_inset + +6 units +\begin_inset Quotes erd +\end_inset + +. + To change the headings, just go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Preferences +\begin_inset Quotes erd +\end_inset + + > +\begin_inset Quotes eld +\end_inset + +Variables... +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/variables.eps not found! + width 90text% + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +Making variable names +\end_layout + +\begin_layout Standard +A new window will appear, and in this there is another grid, but this time + smaller. + Here, you can put whatever variable names you want into the top row. + If you have missing data (data where you were not able to collect a value), + you can also enter what you want your missing data to be. + By default, the value is 99.999, but if you have some real data of this + value, you would want to change the missing value to something more suitable. +\end_layout + +\begin_layout Standard +If you have some data saved on disk, it can be loaded. + Currently, SalStat only loads ASCII data  this means simply plain text, + and with no variable names. + This is done by going to the menu and clicking on +\begin_inset Quotes eld +\end_inset + +Menu > Open... +\begin_inset Quotes erd +\end_inset + +, and a standard dialog will appear allowing you to select the file you + want to load. + If your data are too big for the grid, don't worry because SalStat will + automatically adjust its size to fit the data. +\end_layout + +\begin_layout Standard +Saving data is done the same way. + From the menu, click on +\begin_inset Quotes eld +\end_inset + +File > Save As... +\begin_inset Quotes erd +\end_inset + +, and you will get a dialog where you can enter the file name. +\end_layout + +\begin_layout Standard +If you need to add an extra column or row to the grid, go to the menu, click + on +\begin_inset Quotes eld +\end_inset + +Edit +\begin_inset Quotes erd +\end_inset + + > +\begin_inset Quotes eld +\end_inset + +Add Columns and Rows... +\begin_inset Quotes erd +\end_inset + +, and a dialog will appear where you can enter the number of rows or columns + you want to add. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/gridsize.eps not found! + width 40text% + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +Changing the size of the grid +\end_layout + +\begin_layout Standard +From the same place, you can also delete rows or columns. + The column or row deleted will be the one with the +\begin_inset Quotes eld +\end_inset + +focus +\begin_inset Quotes erd +\end_inset + + (this is the cell where you are currently entering data). +\end_layout + +\begin_layout Chapter +Using SalStat  Dealing With The Output +\end_layout + +\begin_layout Standard +The output is in HTML format  this is the format used for web pages, and + your results can be opened in any web browser and most word processors + to be edited. + It is displayed in the output sheet  the window with the large space saying + +\begin_inset Quotes eld +\end_inset + +SalStat Statistics +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/output.eps not found! + width 4in + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +The output of SalStat +\end_layout + +\begin_layout Standard +When you have done some analysis, the results will all be appended there. + If you wish to save the results, click on the menu +\begin_inset Quotes eld +\end_inset + +File +\begin_inset Quotes erd +\end_inset + + > +\begin_inset Quotes eld +\end_inset + +Save As... +\begin_inset Quotes erd +\end_inset + +, and a dialog will appear allowing you to enter a filename. +\end_layout + +\begin_layout Chapter +Descriptive Statistics +\end_layout + +\begin_layout Standard +The first stage of analysis once the data have been entered is usually to + get some descriptive statistics. + In SalStat, this is a very easy process. + Once the data are entered into the grid (remember, each condition goes + into its own column), go to the menu bar, click on +\begin_inset Quotes eld +\end_inset + +Describe +\begin_inset Quotes erd +\end_inset + + and select +\begin_inset Quotes eld +\end_inset + +Continuous... +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/descriptives.eps not found! + width 4in + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape slanted +Descriptive Statistics +\end_layout + +\begin_layout Standard +A dialog box will appear. + On each side, there are two large boxes, and underneath these, there are + four buttons (marked +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes eld +\end_inset + +Cancel +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes eld +\end_inset + +Select All +\begin_inset Quotes erd +\end_inset + +, and +\begin_inset Quotes eld +\end_inset + +Select None +\begin_inset Quotes erd +\end_inset + + from left to right). + The big box on the left holds a list of columns. + However, it only shows columns that contain data. + This is because there is no point in getting descriptive statistics for + an empty data set (I can tell you that the N, sum, mean, sample variance + and so on will be zero!). + If you want descriptive statistics for a column, just click on the small + box next to it to select it. + Next, you will need to select which descriptive statistics you want. + This is where the big box on the right hand side comes in, for it contains + a list of statistics that you may want. + Of course, it is a long list, and may grow as SalStat develops even further, + so to save you time, there are two buttons underneath one of which you + can click on to select the lot, the other of which you can click on to + deselect them all. +\end_layout + +\begin_layout Standard +Once all this is done, just click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button, and the descriptive statistics will appear in the output window, + all in a nice table ready for you to read. +\end_layout + +\begin_layout Chapter +Transforming Data +\end_layout + +\begin_layout Standard +If you find that your data is skewed or kurtotic, you may wish to transform + the data. + There may indeed be other reasons for transforming data too. + This is quite a simple process in SalStat. + Just go to the top menu, click on +\begin_inset Quotes eld +\end_inset + +Prepare" and then the +\begin_inset Quotes eld +\end_inset + +Transform..." option. + A Dialog box will appear just like below. +\end_layout + +\begin_layout Standard +On the left hand side of the dialog box is a list of columns, just like + you would see if you wanted some descriptive statistics. + This list only contains grid columns that actually contain data (because + there's no point in transforming nothing!) Just click on the small box + to the left of each column name if you wish to change it. +\end_layout + +\begin_layout Standard +To the right hand side, there are four buttons, and beneath them a nice + little box where you can type text in. + The text will show the function that you wish to apply to your data, and + you can type in your own functions. +\end_layout + +\begin_layout Standard +However, there are a set of functions that are commonly used in transforming + data. + SalStat has four of these built in, and clicking on one of the four buttons + will show the function in the text box. +\end_layout + +\begin_layout Standard +The functions are: square root, square, logarithm, and the reciprocal. + When SalStat is transforming data, it takes the data from the columns that + you indicated, applies the function to each cell in the column and puts + the new data into the first empty cell it can find. +\end_layout + +\begin_layout Standard +You will also find that the column heading (the variable name) also changes. + If you used one of the prepared function buttons, the name of the function + will appear along with the column originally used. + If you typed your own function, then that function will be used for the + variable name. +\end_layout + +\begin_layout Section +Python Functions +\end_layout + +\begin_layout Standard +As mentioned earlier, you can type in your own functions. + Because SalStat is a Python application, the syntax is basic Python. + The functions use the term 'x' to denote the cell. +\end_layout + +\begin_layout Subsection +Examples +\end_layout + +\begin_layout Standard +If you wish to add 2 to each column, the function would be 'x + 2' or '2 + + x'. + If you wished to get the cubed root, you would type 'x * x * x' or 'x ** + 3'. + There are a range of functions available if you use the 'math' module. + Just remember to type 'math.' before the function, and you can type in things + like: 'math.atan(x)' to get the arc tangent, 'math.cos(x)' to get the cosine, + 'math.exp(x)' to get the exponential and so on. + Consult the Python documentation for further details (http://www.python.org) +\end_layout + +\begin_layout Chapter +Analysing 1 Sample Tests +\end_layout + +\begin_layout Standard +SalStat is very easy to use to analyse a single sample test (one sample + tests are when you only have a single data set that you wish to compare + against a mean). + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, then +\begin_inset Quotes eld +\end_inset + +1 Sample Tests... +\begin_inset Quotes erd +\end_inset + +, and a dialog box will appear. +\end_layout + +\begin_layout Standard +At the top left hand side of this box, there is a dropdown box. + Clicking the arrow on the right hand side of the box will display a list + of nonempty columns. + Of course, if you have entered no data, then no columns will appear, so + get rid of the box and enter some data! (but you knew that already, didn't + you?) +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/1cond.eps not found! + width 4in + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape italic +One Sample Tests +\end_layout + +\begin_layout Standard +Underneath this is a checklist box like the two used when you got the descriptiv +e statistics. + To select a test, you will need to click on the small box to the left of + the test, and it will be used to analyse your data. +\end_layout + +\begin_layout Standard +If you only want the test result, there are two more things to do. + The first is to select the tail of the hypothesis (more information in + the chapter on analysing 2 sample tests). + The 2tailed hypothesis is kindly selected for you by default, and this + seems to work for most analyses, although you can select a onetailed hypothesi +s if you are lucky enough to have evidence to support a claim for a directional + hypothesis. +\end_layout + +\begin_layout Standard +One sample tests differ from most others in that you are only looking at + one data set. + This leads to a problem of what are they being compared against, and the + way to do this with SalStat is to enter what is termed a +\begin_inset Quotes eld +\end_inset + +User Hypothesised Mean +\begin_inset Quotes erd +\end_inset + + in the little text box underneath where you indicate the tail of your hypothesi +s. + What this value is depends upon what you think the population mean is, + and it is really up to you to decide what to use. +\end_layout + +\begin_layout Standard +Once this is done, you can click the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button, and the results will dutifully appear in the output window ready + for your inspection! Simple, eh? +\end_layout + +\begin_layout Standard +Of course, many people want to find out more information than just test + statistics (and pvalue). + On the right hand side of the window, there is a list of descriptive statistics + (just like the one when you were getting descriptive statistics), but with + both parametric and nonparametric tests present. + Again, you can select which tests you want, or you can be completely greedy + and get the lot by clicking on the button marked +\begin_inset Quotes eld +\end_inset + +Select All +\begin_inset Quotes erd +\end_inset + + at the bottom of the screen. + When you are ready, click on +\begin_inset Quotes eld +\end_inset + +okay +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Section +Parametric Comparisons +\end_layout + +\begin_layout Subsection +One Sample ttest +\end_layout + +\begin_layout Standard +The one sample ttest is a parametric test on one sample of data which calculate +s the mean of the sample and compares it to a hypothesised mean. + It is like a 2 sample ttest, but the user must provide the mean to which + the data are compared. + This comparison is to check whether the means differ significantly, and + this is shown in the p value. +\end_layout + +\begin_layout Standard +To perform a one sample ttest, enter the data into a single column on the + data grid. + Go to the menu bar and click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + > +\begin_inset Quotes eld +\end_inset + +One Sample Tests... +\begin_inset Quotes erd +\end_inset + +. + A dialog box will appear. + Using the dropdown box at the top of the dialog box, select the column + which contains the data. + Check +\begin_inset Quotes eld +\end_inset + +ttest +\begin_inset Quotes erd +\end_inset + +, and enter the hypothesised mean into the box marked +\begin_inset Quotes eld +\end_inset + +User Hypothesised Mean +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (twotailed is selected by default), + and click the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of the user hypothesised mean, the degrees of freedom (in + brackets), the t statistic, and the approximate p value. +\end_layout + +\begin_layout Section +NonParametric Comparisons +\end_layout + +\begin_layout Subsection +One Sample Sign Test +\end_layout + +\begin_layout Standard +The one sample sign test is a nonparametric test which does much the same + thing as the one sample ttest but with nonparametric data, therefore + comparing the median against the hypothesised value. + It is not very robust, and should be used with caution. + Again, the user must provide a hypothesised mean against which the data + will be compared like the one sample ttest. +\end_layout + +\begin_layout Standard +Enter the data into a single column on the data grid. + Go to the menu bar and click on "Analyse" > "One Sample Tests...". + A dialog box will appear. + Using the dropdown box at the top of the dialog box, select the column + which contains the data. + Check +\begin_inset Quotes eld +\end_inset + +sign test +\begin_inset Quotes erd +\end_inset + +, enter the hypothesised mean into the box marked +\begin_inset Quotes eld +\end_inset + +User Hypothesised Mean +\begin_inset Quotes erd +\end_inset + +, select a one or twotailed hypothesis (twotailed is selected by default), + and click the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of the user hypothesised mean, the value for N, the value + for z and the p value. +\end_layout + +\begin_layout Subsection +Chi Square Test for Variance +\end_layout + +\begin_layout Chapter +Analysing 2 Sample Tests +\end_layout + +\begin_layout Standard +Analysing tests that have 2 samples is almost as easy as doing the onesample + tests  maybe even easier! Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + and then +\begin_inset Quotes eld +\end_inset + +2 sample tests... +\begin_inset Quotes erd +\end_inset + +, and the following dialog box will appear. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/2cond.eps not found! + width 4in + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape italic +Two Sample Tests +\end_layout + +\begin_layout Standard +This dialog has 2 dropdown boxes at the top. + These are what you use to specify which columns of data are to be used + in the analysis. + Just like the one conditions tests dialog, on the right hand side is a + list of descriptive statistics that you can select if you wish. + The major difference for this dialog though is that there are a lot more + tests available, and they have been split up into parametric and nonparametric + tests. + Of course, if you want to, SalStat will not stop you from performing both + parametric and nonparametric tests on your data if you so wish! +\end_layout + +\begin_layout Standard +Just select the tests you want, and check the right tail of hypothesis for + the experiment and click okay. + The results will appear on the output window. +\end_layout + +\begin_layout Standard + +\series bold +NOTE: +\series default + The Ftest for variance ratios need to have a user hypothesised variance + entered, and this is done in the little text box just above the +\begin_inset Quotes eld +\end_inset + +Cancel +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Section +Parametric Comparisons +\end_layout + +\begin_layout Subsection +Unpaired ttest +\end_layout + +\begin_layout Standard +The unpaired ttest is a parametric test that analyses 2 samples of data, + and examines whether the means of each sample differ by chance or due to + experimental manipulation. + The unpaired test differs from the paired test in that participants must + only be subjected to one condition and not both. + If participants are subjected to both conditions, use the paired ttest. +\end_layout + +\begin_layout Standard +Enter the data for each condition into its own column (in other words, one + column for one condition). + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + then +\begin_inset Quotes eld +\end_inset + +2 Condition Tests... +\begin_inset Quotes erd +\end_inset + + and a new window will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check +\begin_inset Quotes eld +\end_inset + +ttest unpaired +\begin_inset Quotes erd +\end_inset + + from the list in the box marked +\begin_inset Quotes eld +\end_inset + +Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default), + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of the degree of freedom (in brackets), the t statistic + and the pvalue which gives the likelihood that the 2 samples differ by + chance. +\end_layout + +\begin_layout Subsection +Paired ttest +\end_layout + +\begin_layout Standard +The paired ttest is a parametric test which compares 2 samples of data + and tests whether they differ significantly. + It differs from the unpaired ttest in that the paired ttest insists that + participants take part in both conditions. + If participants took part in only one condition, use the unpaired ttest. +\end_layout + +\begin_layout Standard +Enter the data for each condition into its own column (in other words, one + column for one condition). + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + then +\begin_inset Quotes eld +\end_inset + +2 Condition Tests... +\begin_inset Quotes erd +\end_inset + + and a new window will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check +\begin_inset Quotes eld +\end_inset + +ttest paired +\begin_inset Quotes erd +\end_inset + + from the list in the box marked +\begin_inset Quotes eld +\end_inset + +Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default), + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of the degree of freedom (in brackets), the t statistic + and the pvalue which gives the likelihood that the 2 samples differ by + chance. +\end_layout + +\begin_layout Subsection +F test for Variance Ratio +\end_layout + +\begin_layout Standard +The Ftest is a parametric test for 2 samples of data and it compares the + variances of each sample to see if they differ. + It can be used to check whether the assumptions of the ttest have been + violated or not, and shows whether the variances of the 2 samples are the + same or whether one group is larger or smaller than the other. +\end_layout + +\begin_layout Standard +Enter the data for each condition into its own column (in other words, one + column for one condition). + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check "Ftest" from the list in the box marked "Parametric Tests", select + a one or two tailed hypothesis (two tailed is selected by default), enter + the user hypothesised ratio into the box marked +\begin_inset Quotes eld +\end_inset + +User Hypothesised Ratio +\begin_inset Quotes erd +\end_inset + + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of the 2 degrees of freedom (in brackets), a value for F + and the pvalue which gives the likelihood that the 2 samples' variances + differ by chance. +\end_layout + +\begin_layout Section +Nonparametric Comparisons +\end_layout + +\begin_layout Subsection +Paired Sign Test +\end_layout + +\begin_layout Standard +The paired sign test is a nonparametric test that compares 2 samples to + see if they differ due to chance or not. + The samples must be within subjects (participants did both conditions), + and is useful because it makes few assumptions about the data, but is not + a very powerful test. + The Wilcoxon signed rank test may be used if greater power is needed. +\end_layout + +\begin_layout Standard +Enter the data into 2 columns, each sample having its own column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check +\begin_inset Quotes eld +\end_inset + +Paired sign +\begin_inset Quotes erd +\end_inset + + from the list in the box marked +\begin_inset Quotes eld +\end_inset + +Non Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default) + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of a value for N, a value for z, and the p value. +\end_layout + +\begin_layout Subsection +Wilcoxon Signed Ranks Test +\end_layout + +\begin_layout Standard +The Wilcoxon signed ranks test is a nonparametric test for within subjects + designs (participants must take part in both conditions) that tests 2 samples + of data. + It analyses the same type of data as the paired sign test, but is more + powerful. + This test first ranks the data, and takes the difference between the ranks + of each pair. +\end_layout + +\begin_layout Standard +Enter the data into 2 columns, each sample having its own column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check +\begin_inset Quotes eld +\end_inset + +Wilcoxon Signed Ranks +\begin_inset Quotes erd +\end_inset + + from the list in the box marked +\begin_inset Quotes eld +\end_inset + +Non Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default) + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of a value for z, a value for t and a p value. +\end_layout + +\begin_layout Subsection +Wilcoxon RankSums Test +\end_layout + +\begin_layout Standard +This test is a nonparametric test designed to analyse 2 samples of data + that are unrelated (in other words, participants took part in only one + condition). + For this test, the observations of both conditions are combined and then + ranked, and then each condition is summed. + If they are equal, either sum may be used, else the smaller of the two + is used. +\end_layout + +\begin_layout Standard +Enter the data into 2 columns, each sample having its own column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check "Wilcoxon Ranks Sum" from the list in the box marked "Non Parametric + Tests", select a one or two tailed hypothesis (two tailed is selected by + default) and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of a value for t and a p value. +\end_layout + +\begin_layout Subsection +MannWhitney U Test +\end_layout + +\begin_layout Standard +The MannWhitney U test is a nonparametric test to analyse 2 samples of + data that are unrelated (participants therefore only took part in one condition +). + Both samples must be continuous, and compares the ranks rather than the + observations like the ttest does. + Because ranks are used, it is resistant to outliers. +\end_layout + +\begin_layout Standard +Enter the data into 2 columns, each sample having its own column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check "MannWhitney U" from the list in the box marked "Non Parametric + Tests", select a one or two tailed hypothesis (two tailed is selected by + default) and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Output consists of a value for z, a small value for U, a big value for U + and a p value. +\end_layout + +\begin_layout Subsection +KolmogorovSmirnov Test +\end_layout + +\begin_layout Standard +The Kolmogorov Smirnov test is a nonparametric test that analyses 2 unrelated + samples (participants only did one condition), and the data must be continuous. + Because of the way it compares the distributions, it may be influenced + by outliers and should be used cautiously if they are suspected. +\end_layout + +\begin_layout Standard +Enter the data into 2 columns, each sample having its own column. + Go to the menu, click on "Analyse" then "2 Condition Tests..." and a new window + will appear. + Select the 2 columns which contain the data using the 2 drop down boxes + at the top of the window. + Check "KolmogorovSmirnov" from the list in the box marked "Non Parametric + Tests", select a one or two tailed hypothesis (two tailed is selected by + default) and click on the "Okay" button. +\end_layout + +\begin_layout Standard +Output consists of a value for D, and a p value. +\end_layout + +\begin_layout Section +Correlations (Parametric and NonParametric) +\end_layout + +\begin_layout Standard +Correlations are used to see how well 2 sets of data are correlated with + each other. + Correlations vary from 1.0 to +1.0. + The closer the correlation is to 0.0, the less the correlation is. + Correlations closer to 1.0 or +1.0 show a high correlation  in other words, + as one varies, the other varies with it. + Note that correlations are only for observational data, and a high correlation + does not imply a causal link, rather an association of some kind between + the samples. + Positive correlations reflect a situation whereby both increase and decrease + with each other, whereas negative values show that as one sample increases, + the other decreases and vice versa. +\end_layout + +\begin_layout Subsection +Pearsons Correlation Coefficient +\end_layout + +\begin_layout Standard +Pearsons correlation is a parametric correlation which uses the distributions + of the data, and therefore the data must be continuous. + Obviously, it uses 2 samples of data, but because it uses parametric data, + it should be used with caution when outliers are suspected. +\end_layout + +\begin_layout Standard +Data are entered in one column for each sample. + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + and then +\begin_inset Quotes eld +\end_inset + +2 Condition Tests... +\begin_inset Quotes erd +\end_inset + + and a new window will appear. + Using the 2 drop down boxes at the top of the window, select which columns + contain the data, check +\begin_inset Quotes eld +\end_inset + +Pearsons Correlation +\begin_inset Quotes erd +\end_inset + + from the box marked +\begin_inset Quotes eld +\end_inset + +Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default), + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +The output consists of the degrees of freedom (in brackets), a value for + r (which shows the correlation direction and strength), and a p value. +\end_layout + +\begin_layout Subsection +Spearmans Rank Correlation +\end_layout + +\begin_layout Standard +Spearmans rho is a correlation for nonparametric data which unlike Pearsons + correlation uses the rank ordering of the data, and is therefore not susceptibl +e to outliers in the data. +\end_layout + +\begin_layout Standard +Data are entered in one column for each sample. + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + and then +\begin_inset Quotes eld +\end_inset + +2 Condition Tests... +\begin_inset Quotes erd +\end_inset + + and a new window will appear. + Using the 2 drop down boxes at the top of the window, select which columns + contain the data, check +\begin_inset Quotes eld +\end_inset + +Spearmans Correlation +\begin_inset Quotes erd +\end_inset + + from the box marked +\begin_inset Quotes eld +\end_inset + +Non Parametric Tests +\begin_inset Quotes erd +\end_inset + +, select a one or two tailed hypothesis (two tailed is selected by default), + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +The output consists of the degrees of freedom (in brackets), a value for + rho (which shows the correlation direction and strength), and a p value. +\end_layout + +\begin_layout Subsection +Kendalls Coefficient of Rank +\end_layout + +\begin_layout Standard +Kendalls tau is another nonparametric correlation, is very similar to the + Spearmans rho correlation and is resistant to outliers. +\end_layout + +\begin_layout Standard +Data are entered in one column for each sample. + Go to the menu, click on "Analyse" and then "2 Condition Tests..." and a new + window will appear. + Using the 2 drop down boxes at the top of the window, select which columns + contain the data, check "Kendalls tau Correlation" from the box marked + "Non Parametric Tests", select a one or two tailed hypothesis (two tailed + is selected by default), and click on the "Okay" button. +\end_layout + +\begin_layout Standard +The output consists of a value for tau (which shows the correlation direction + and strength), and a p value. +\end_layout + +\begin_layout Subsection +Point Biserial r Correlation +\end_layout + +\begin_layout Standard +The point biserial r correlation is for nonparametric data, but the first + sample must contain dichotomous data (which means that there should only + be 2 categories like male and female). +\end_layout + +\begin_layout Standard +Data are entered in one column for each sample, one of which must contain + dichotmous data. + Go to the menu, click on "Analyse" and then "2 Condition Tests..." and a new + window will appear. + Using the 2 drop down boxes at the top of the window, select which columns + contain the data, with the dichotmous data being the first column selected. + Check "Point Biserial r" from the box marked "Non Parametric Tests", select + a one or two tailed hypothesis (two tailed is selected by default), and + click on the "Okay" button. +\end_layout + +\begin_layout Standard +The output consists of the degrees of freedom (in brackets), a value for + r (which gives the correlation direction and strength), and the p value. +\end_layout + +\begin_layout Subsection +Linear Regression +\end_layout + +\begin_layout Standard +Linear regressions are useful when you have 2 variables (one independent + and one dependent) and wish to examine the relationship between them more + closely. + Linear regressions can be used to predict one variable from another, and + it uses 2 samples of data. +\end_layout + +\begin_layout Standard +Data are entered with one column on the data grid for each sample. + Go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, then +\begin_inset Quotes eld +\end_inset + +2 Condition Tests... +\begin_inset Quotes erd +\end_inset + + and a new window will appear. + Select the columns of data to be analysed using the 2 drop down boxes at + the top of the window. + The independent variable must be selected using the first (left hand) box, + and the dependent variable using the second (right hand) box. + Select +\begin_inset Quotes eld +\end_inset + +Linear Regression +\begin_inset Quotes erd +\end_inset + + from the box marked +\begin_inset Quotes eld +\end_inset + +Non Parametric Tests +\begin_inset Quotes erd +\end_inset + +, choose a one or two tailed hypothesis (two tailed is selected by default), + and click on the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +The output consists of the slope, the intercept, a value for r, the p value, + and the estimated standard error. +\end_layout + +\begin_layout Chapter +Analysing 3 Sample Tests +\end_layout + +\begin_layout Standard +3 or more sample tests are used when you have 3 or more samples  quite + simple really! For example, we could expand the above experiment with alcohol + and reaction time by having more than 2 different levels of alcohol  let's + say the first level would be no alcohol (zero units), the second would + be 2 units and the third would be 4 units. + This means that there would be three conditions in the experiment. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/3cond.eps not found! + width 4in + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape italic +Three or more Sample Tests +\end_layout + +\begin_layout Standard +To analyse this kind of experimental design, you might consider using a + t test, firstly to compare 0 units against 2 units, then 2 units against + 4 units, then again to compare 0 units to 4 units. + That way you would be comparing all the conditions against each other. +\end_layout + +\begin_layout Standard +However, in reality you would not be able to do this because you would be + analysing the same set of data three times. + Because statistics is based upon, well, statistics, the chance of your + getting a significant result increases each time you analyse a set of data, + which increases the likelihood of there being a Type I error  when a significa +nt result is found (and the null hypothesis rejected) when there wasn't + really a significant result in the first place. +\end_layout + +\begin_layout Standard +When you have more than 3 conditions, you need to use other tests, and probably + the most famous (and in the authors experience, the most used) test is + the +\begin_inset Quotes eld +\end_inset + +analysis of variance +\begin_inset Quotes erd +\end_inset + + (or ANOVA for short). + This test will allow you to compare a large number of conditions with each + other, and tell you whether any of them differ significantly. +\end_layout + +\begin_layout Standard +The problem with the Anova test is that it doesn't actually tell you where + the significant difference is, it only tells you whether one exists. + There are ways to find out where the difference lies (but that will be + explained later in the section.) +\end_layout + +\begin_layout Standard +The ANOVA is for parametric data. + If you have nonparametric data, there are equivalents that you can use + with SalStat: The KruskalWallis H test, and the Friedman Chi Square, both + of which act like a nonparametric ANOVA, but SalStat deals with them in + the same way. + The KruskalWallis H test is for between subjects designs and the Friedman + test is for within subjects designs. +\end_layout + +\begin_layout Standard +Once you have entered your data, click on the +\begin_inset Quotes eld +\end_inset + +analyse +\begin_inset Quotes erd +\end_inset + + menu, then select +\begin_inset Quotes eld +\end_inset + +3+ Sample Tests... +\begin_inset Quotes erd +\end_inset + + for the appropriate dialog to appear. + This dialog is a bit different from the other 2 test dialogs that you have + encountered (assuming that you have followed this book in a linear order + of course), but the main difference is that you will not select which columns + you want to analyse by using drop down boxes  this is because there may + be more than 2 columns you want to analyse. + Instead, you have a check list to select your columns, rather like the + dialog box that appeared when you wanted to get a set of descriptive statistics. + Only columns with data will appear there, and to select one, all you have + to do is click on the box to the columns left and it will be selected (click + again to deselect it). +\end_layout + +\begin_layout Standard +Like the other test dialogs, there is a list of descriptive statistics to + the right hand side and you can select whichever ones you want (if you + want any of course  which is usually a good idea). + The next thing to do is to select which test you want  again using a check + list box, and finally select which hypothesis you want. +\end_layout + +\begin_layout Standard +SalStat differs from other statistics packages by allowing you to choose + mutually exclusive tests: You can choose an ANOVA for within or between + subjects, and get the nonparametric equivalents at the same time. + This might not be orthodox operation for statistics packages, but let's + face it  if you wanted to analyse the same set of data using different + tests, you could do so anyway, but it would just take longer. + SalStat allows you to cheat in a more efficient manner, and leaves the + decisions up to you. +\end_layout + +\begin_layout Standard +Okay, so you have done all you need to do: Selected the columns you want + to analyse (necessary), chosen the test (not necessary, but if you don't, + there will be no results to look at), and chosen the hypothesis (one or + two tailed). + Optionally, you have a list of descriptive statistics to choose from, but + that's your choice. + The next thing to do is click on the +\begin_inset Quotes eld +\end_inset + +okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +Wait a short while (depending upon how large your set of data is), and the + results should appear in the output window. + The results for an ANOVA differ slightly from the other tests in that they + show a lot more information. + You should be shown a table where the first column lists the factor you + are analysing, the error, and the total. + The next column shows the Sum of Squares (SS) for each factor, then the + degrees of freedom (df) followed by the Mean Square (MS). + These are of interest, but the main thing for you to look at now are the + last 2 columns. + The first of these is titled +\begin_inset Quotes eld +\end_inset + +F +\begin_inset Quotes erd +\end_inset + +, and this is your test statistics. + If it is less than 1.0, then it will not be significant no matter what your + data look like. + The final column lists the pvalue, and you should be aiming for a p of + less than 0.05 (or 5%) which means you have a significant result. +\end_layout + +\begin_layout Standard +The Friedman and KruskalWallis H tests do not have as much detail as the + ANOVA which shows a table with the degrees of freedom, sums of squares + and so on. +\end_layout + +\begin_layout Section +Parametric Comparisons +\end_layout + +\begin_layout Subsection +Analysis of Variance (ANOVA) +\end_layout + +\begin_layout Standard +The analysis of variance (or ANOVA) is a parametric test that compares samples + of data much like a ttest but can simultaneously compare 2 or more conditions. + For example, if you have 3 conditions, you could use a series of ttests + to analyse the data, but this repeated analysis would increase the likelihood + of committing a Type I error (when the null hypothesis is rejected but + should have been accepted). + The ANOVA gets around this neatly, and can analyse between subjects or + within subjects designs. + Obviously, being a parametric tests, it is susceptible to outliers and + the data should be checked beforehand to ensure that they have been dealt + with adaquately. + A significant result indicates only that a significant difference exists + somewhere. + It doesn't say exactly where, and further testing is required to ascertain + this. +\end_layout + +\begin_layout Subsubsection +Between Subjects ANOVA +\end_layout + +\begin_layout Standard +The between subjects ANOVA is for experimental designs in which each participant + only does one condition. + If the participants do more than one condition, then use the within subjects + ANOVA (below). +\end_layout + +\begin_layout Standard +Each condition must be entered into a separate column on the data grid. + When that is done, go to the menu and click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, and then +\begin_inset Quotes eld +\end_inset + +3+ Condition Tests... +\begin_inset Quotes erd +\end_inset + +, and a new window will appear. + From the list in the top left hand window, select which columns you wish + to analyse, and then select +\begin_inset Quotes eld +\end_inset + +ANOVA between subjects +\begin_inset Quotes erd +\end_inset + + from the list of tests below. + Choose a one or two tailed hypothesis (two tailed is selected by default), + and click on the button marked +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +The ANOVA differ from other tests in that a table of information is provided. + The first column contains the sources of the information  in this case, + the factor, the error and the total. + The next column in the table contains the sum of squares for the sources, + then the degrees of freedom followed the mean square for the factor and + the error term are provided (there is no mean square for the total). + The penultimate column contains the fratio (the test statistics) just + for the factor, and the final column contains the p value which reports + the probability that the fratio is significant. +\end_layout + +\begin_layout Standard +Further analysis using posthoc tests are not yet available in SalStat. +\end_layout + +\begin_layout Subsubsection +Within Subjects ANOVA +\end_layout + +\begin_layout Standard +The within subjects ANOVA operates in a similar way to the between subjects + ANOVA, but has the requirement that participants must participate in all + conditions. +\end_layout + +\begin_layout Standard +The data are entered as one column for each condition, and they must be + matched (i.e., each row must contain the data for a single participant). + When that is done, go to the menu and click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, and then +\begin_inset Quotes eld +\end_inset + +3+ Condition Tests... +\begin_inset Quotes erd +\end_inset + +, and a new window will appear. + From the list in the top left hand window, select which columns you wish + to analyse, and then select +\begin_inset Quotes eld +\end_inset + +ANOVA within subjects +\begin_inset Quotes erd +\end_inset + + from the list of tests below. + Choose a one or two tailed hypothesis (two tailed is selected by default), + and click on the button marked +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +The output of a within subjects ANOVA is a little bit more complicated that + the between subjects ANOVA. + Again, the data are in a table, but there is an extra factor, the +\begin_inset Quotes eld +\end_inset + +within subjects variance +\begin_inset Quotes erd +\end_inset + + which shows how much variance each participant had between the conditions. +\end_layout + +\begin_layout Standard +As for the table itself, the first column contains the source, the second + the degrees of freedom, the third the mean square, the fourth the fratio, + and the fifth column contains the p value. +\end_layout + +\begin_layout Standard +Not yet available in SalStat. +\end_layout + +\begin_layout Section +Nonparametric Comparisons +\end_layout + +\begin_layout Standard +The nonparametric comparisons may be used when the data are parametric. + As they rely upon ranking, they are not as susceptible to outliers as the + ANOVA are. + Like ANOVA, they can compare data from 2 or more conditions without increasing + the chance of a Type I error. +\end_layout + +\begin_layout Subsection +KruskalWallis H +\end_layout + +\begin_layout Standard +The KruskalWallis H test is a nonparametric between subjects test  participant +s must have taken part in one condition only. +\end_layout + +\begin_layout Standard +Enter the data like the between subjects ANOVA  each column must contain + the data for each condition. + Go to the menu and click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, and then +\begin_inset Quotes eld +\end_inset + +3+ Condition Tests... +\begin_inset Quotes erd +\end_inset + +, and a new window will appear. + From the list in the top left hand window, select which columns you wish + to analyse, and then select +\begin_inset Quotes eld +\end_inset + +KruskalWallis +\begin_inset Quotes erd +\end_inset + + from the list of tests below. + Choose a one or two tailed hypothesis (two tailed is selected by default), + and click on the button marked +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +This is a lot simpler than the ANOVA. + The output simply consists of the degrees of freedom (in brackets), a value + for H (the test statistic), and the p value. +\end_layout + +\begin_layout Subsection +Friedmans Test +\end_layout + +\begin_layout Standard +Freidmans test is like a nonparametric ANOVA for within subjects designs. + It can compare more than 2 conditions and is robust against outliers. + Participants must have taken part in all conditions, and must be matched + on the data grid (each participants data is entered on a single row). +\end_layout + +\begin_layout Standard +Enter the data like the between subjects ANOVA  each column must contain + the data for each condition. + Go to the menu and click on +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + +, and then +\begin_inset Quotes eld +\end_inset + +3+ Condition Tests... +\begin_inset Quotes erd +\end_inset + +, and a new window will appear. + From the list in the top left hand window, select which columns you wish + to analyse, and then select +\begin_inset Quotes eld +\end_inset + +Friedman test +\begin_inset Quotes erd +\end_inset + + from the list of tests below. + Choose a one or two tailed hypothesis (two tailed is selected by default), + and click on the button marked +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +The output of the Friedman test, like the KruskalWallis test, is a lot + simpler than the ANOVA. + Reported statistics are the degrees of freedom (in brackets), the value + for chi (the test statistic) and the p value. +\end_layout + +\begin_layout Subsection +Cochranes Q Test +\end_layout + +\begin_layout Standard +The Cochranes Q test is a nonparametric test designed to examine whether + there are differences between three or more matched samples, much like + a nonparametric repeatedmeasures analysis of variance. + The Cochranes Q test differs from the Friedmans test in that it deals only + with dichtomous data (there can only be 2 categories, such as male / female, + or old / young.) If you try to analyse data in more than 2 categories, SalStat + will give results that cannot be relied upon. +\end_layout + +\begin_layout Standard +To perform this test, enter the data with each column contining the data + from one condition. + Then go to the menu and select +\begin_inset Quotes eld +\end_inset + +3+ Condition Tests... +\begin_inset Quotes erd +\end_inset + +, and the test dialog window will appear. + From this, select +\begin_inset Quotes eld +\end_inset + +Cochranes Q +\begin_inset Quotes erd +\end_inset + + from the test selection box, and choose an appropriate hypothesis. + Click the +\begin_inset Quotes eld +\end_inset + +Okay +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Standard +The output returns a value for Q (the test statistic,) the degrees of freedom, + and the probability value. +\end_layout + +\begin_layout Chapter +Scripting SalStat and Making Your Own Tests +\end_layout + +\begin_layout Standard +One of the exciting developments of SalStat has been the ability for users + to write their own scripts. + These scripts can access the internals of SalStat quite easily, and allow + the user to automate almost anything that they want, from loading a file, + getting a set of descriptives, writing a new test using these descriptives + as well as performing an ANOVA, then putting the results into a webpage. +\end_layout + +\begin_layout Standard +Sadly, there is support for only one language  Python, which is the language + in which SalStat is written. + The good news is that Python is easy to learn, has lots of online free + documentation available, and has a remarkably clear syntax. +\end_layout + +\begin_layout Standard +In case you think Python is not suitable, remember that it is used by Google®, + NASA®, Honeywell®, Industrial Light and Magic®, AstraZeneca®, Philips®, + Rackspace®, and many others (including SalStat!) +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/scripting.eps not found! + width 100text% + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape italic +The Scripting Window +\end_layout + +\begin_layout Standard +In this chapter, there will be an introduction to scripting. + Sadly, this will assume a basic knowledge of Python (knowing what variables + are, what functions are and so on), but if you know another computer language, + it will be easy to pick up. + In the appendices, there is a full reference of commands especially for + SalStat. + If you are using the single executable, then the range of commands will + be relatively limited. + If, however, you have Python installed (and it's usually worth it!), you + will have an enormous amount of tools available, with everything from modules + that can control web browsers, send emails, query databases, draw complex + graphics, make sounds and much more. + See the Python website for more details: http://www.python.org/documentation.html +\end_layout + +\begin_layout Section +Starting Scripting +\end_layout + +\begin_layout Standard +To get started on scripting, you will need to open the scripting window. + This is done by clicking on the +\begin_inset Quotes eld +\end_inset + +Analyse +\begin_inset Quotes erd +\end_inset + + menu, and selecting +\begin_inset Quotes eld +\end_inset + +Open Script Window... +\begin_inset Quotes erd +\end_inset + +. + A new window frame will appear, with a toolbar at the top, and most of + the window will be taken up by an edit box. + This edit box will accept typing (try it...), cut, copy, paste (the toolbar + allows access to these functions, but you can use <ctrlx> to cut, <ctrolc> + to copy and <ctrlv> to paste text. + There are also buttons for saving and loading scripts to file. +\end_layout + +\begin_layout Standard +The one new button is the first on the toolbar. + This is the +\begin_inset Quotes eld +\end_inset + +run script +\begin_inset Quotes erd +\end_inset + + button, and pressing it will execute the script using the builtin Python + interpreter. +\end_layout + +\begin_layout Subsection +Manipulating Data +\end_layout + +\begin_layout Standard +To start with, type in +\end_layout + +\begin_layout Standard + +\family typewriter +display ( +\begin_inset Quotes eld +\end_inset + +This is SalStat Scripting +\begin_inset Quotes erd +\end_inset + +) +\end_layout + +\begin_layout Standard + only type in what's between the diagonal brackets, not the brackets themselves + (and don't forget the quotation marks!). + Once that is done, click on the +\begin_inset Quotes eld +\end_inset + +Go +\begin_inset Quotes erd +\end_inset + + button (marked with an arrow), and look at the output window. + You should see +\begin_inset Quotes eld +\end_inset + +This is SalStat Scripting +\begin_inset Quotes erd +\end_inset + + written somewhere. +\end_layout + +\begin_layout Standard +What is happening is this. + Writing +\family typewriter +display +\family default + tells the computer that you want to display something on the html window. + What you want on there is in the open brackets, but because you want to + print a string, the words will need to be in quotation marks. +\end_layout + +\begin_layout Standard +Delete everything you've typed and type in: +\series bold + +\begin_inset Formula $ $ +\end_inset + + +\end_layout + +\begin_layout Standard + +\family typewriter +a = 'This is a Python script' +\end_layout + +\begin_layout Standard + +\family typewriter +display(a) +\end_layout + +\begin_layout Standard +Then press the Go button. + Hopefully, the words +\family typewriter + +\begin_inset Quotes eld +\end_inset + +This is a Python script +\begin_inset Quotes erd +\end_inset + + +\family default + will be printed in the html window. + What you have done is made a variable (called ' +\family typewriter +a +\family default +'), and assigned to it the words +\begin_inset Quotes eld +\end_inset + + +\family typewriter +This is a Python script +\family default + +\begin_inset Quotes erd +\end_inset + +. + The next line says that you want to display what is in the variable ' +\family typewriter +a +\family default +'. +\end_layout + +\begin_layout Standard +Of course, all of this doesn't mean very much. + Other functions can be called too. + If you have some data on the grid and you want to put it into a variable, + the +\family typewriter +\shape italic +GetData +\family default +\shape default + function is used (PLEASE NOTE: Python is casesensitive. + +\family typewriter +GetData +\family default + is different from +\family typewriter +getdata +\family default + or +\family typewriter +Getdata +\family default +  make sure you use the capitals in the right place). + Just use +\family typewriter +\shape italic +variable = +\shape default + GetData( +\shape italic +column +\shape default +) +\family default +\shape italic +, +\shape default + and the variable will be given a list of the data from the column specified. + Example: +\end_layout + +\begin_layout Standard + +\family typewriter +a = GetData(0) +\end_layout + +\begin_layout Standard +This generates the variable called +\family typewriter +\shape italic +a +\family default +\shape default +, and asks that the contents of column 0 be copied into this variable from + the grid (ANOTHER NOTE: in SalStat, the grid columns start at +\family typewriter +0 +\family default +, not +\family typewriter +1 +\family default +). + Type some data into the grid and try it out. + Of course, to see what +\family typewriter +\shape italic +a +\family default +\shape default + contains, write: +\end_layout + +\begin_layout Standard + +\family typewriter +display(a) +\end_layout + +\begin_layout Standard +afterwards, and you will see the contents of the first column there. + Data can also be put back into the grid with the +\family typewriter +PutData +\family default + command, but you have to specify the column where the data are going to + inserted, and the data itself. + Try: +\end_layout + +\begin_layout Standard + +\family typewriter +PutData(1, a) +\end_layout + +\begin_layout Standard +and the data from the first column that you just got will be copied to the + second column (column number 1). +\end_layout + +\begin_layout Standard +Of course, these commands can be mixed if you want, so typing: +\end_layout + +\begin_layout Standard + +\family typewriter +PutData(4, GetData(0)) +\end_layout + +\begin_layout Standard +is valid  it makes a copy of column 0's data, and puts it into column 4. +\end_layout + +\begin_layout Subsection +Descriptive Statistics +\end_layout + +\begin_layout Standard +Now, how about doing something statistical with all of this? Simple. + To start with, let's get the descriptive statistics for column 0. + This is slightly more complex than the previous commands, but is still + quite straightforward. + Type in: +\end_layout + +\begin_layout Standard + +\family typewriter +x = Describe(a) +\end_layout + +\begin_layout Standard +What this does is retrieve a complete set of descriptive statistics for + you, and puts them into the variable +\family typewriter +\shape italic +x +\family default +\shape default +. + However, if you typed in +\family typewriter +\shape italic +display(x) +\family default +\shape default + underneath, you probably didn't get what you expected! This is because + you need to specify which descriptives you want before you can access them. + This is just as easy; to access them, type the variable you had (the +\family typewriter +\shape italic +x +\family default +\shape default + in the current example, then type a full stop (period) after it, then the + descriptive name. + So to show the sum, the mean and the variance, you would type: +\end_layout + +\begin_layout Standard + +\family typewriter +display(x.sum) +\end_layout + +\begin_layout Standard + +\family typewriter +display(x.mean) +\end_layout + +\begin_layout Standard + +\family typewriter +display(x.variance) +\end_layout + +\begin_layout Standard +A full list of the descriptive statistics available is in the appendices. +\end_layout + +\begin_layout Standard +Obviously, there are mathematical operators available, so you can type in: +\end_layout + +\begin_layout Standard + +\family typewriter +y = x.mean + x.variance +\end_layout + +\begin_layout Subsection +Analysis +\end_layout + +\begin_layout Standard +To get the results of a test using scripts is a little bit more complicated. + Let's look at how to do a paired ttest: +\end_layout + +\begin_layout Standard + +\family typewriter +t, df, p = DoPairedTTest(col1, col2, 2) +\end_layout + +\begin_layout Standard +First of all, the +\family typewriter +\shape italic +DoPairedTTest +\family default +\shape default + bit just tells SalStat what test you want. + The first 2 items in the brackets are the data. + These can be lists of data, or, if they are single whole numbers, the data + from the relevant column will be retrieved. + Of course, you can pass one list and one column number if you want to! + The third number is the tail. + 2 refers to a 2 tailed test, whereas 1 refers to... + well, a 1 tailed test. + No other numbers are valid for that bit. +\end_layout + +\begin_layout Standard +However, what does the +\family typewriter +\shape italic +t, df, p +\family default +\shape default + bit mean? Well, doing a ttest will result in 3 bits of data: the +\family typewriter +t +\family default + statistic, the +\family typewriter +df +\family default + or degrees of freedom, and the +\family typewriter +p +\family default + or probability. + When you call a +\family typewriter +DoPairedTTest +\family default + function, three data items are returned in the order t, df, probability. + To make it simple, the above example puts the results into very similarly + known variables, but you can use what you want. + For example, if you really wanted to, you could type: +\end_layout + +\begin_layout Standard + +\family typewriter +df, prob, t = PairedTTest(x,y) +\end_layout + +\begin_layout Standard +This could be confusing, because the test will always return +\family typewriter +t +\family default + first, then the +\family typewriter +df +\family default +, then the +\family typewriter +probability +\family default +, so your +\family typewriter +t +\family default + statistic will be in a variable named +\family typewriter +\shape italic +df +\family default +\shape default +, the +\family typewriter +df +\family default + will be in a variable named +\family typewriter + +\shape italic +prob +\family default +\shape default +, and the +\family typewriter +probability +\family default + will be in a variable called +\family typewriter +\shape italic +t +\family default +\shape default +. + All very confusing, so remember to use variable names that aren't confusing + to you. +\end_layout + +\begin_layout Standard +(Notice that no tail was indicated just above, only variable names. + This is because if you don't specify a tail, the test defaults to a 2 tailed + test). +\end_layout + +\begin_layout Standard +Scripting is a very powerful addition to SalStat. + If you have the algorithms for a test that isn't in SalStat, you can write + your own version of it quite easily. + Of course, you could do this with Python on its own anyway, but with SalStat, + you get the benefit of access to a good structure of descriptive statistics + that are easily accessible, and a GUI to look at your data. + Alternatively, you can get tests off other people and use them if you want, + or extend existing tests. + Scripting is also useful for batch processing: If you have a lot of data + sets that have to be analysed in exactly the same way, you can use scripting + to automate the entire process. +\end_layout + +\begin_layout Standard +If you wish, you can have access to the +\begin_inset Quotes eld +\end_inset + +raw +\begin_inset Quotes erd +\end_inset + + functions and classes in the statistics module using Python. + To do this, you will need to put a copy of the +\shape italic +salstat_stats.py +\shape default + module in the sitepackages directory, and call +\end_layout + +\begin_layout Standard + +\family typewriter +import salstat_stats +\family default + +\end_layout + +\begin_layout Standard +in your program, and all the classes and functions contained therein will + be available. +\end_layout + +\begin_layout Chapter +Getting Help +\end_layout + +\begin_layout Standard +SalStat has an integrated help system. + If you go to the menu, click on +\begin_inset Quotes eld +\end_inset + +Help +\begin_inset Quotes erd +\end_inset + + and choose one of the options below, a new window will appear. + There are 3 buttons, one with a left arrow (the +\begin_inset Quotes eld +\end_inset + +back +\begin_inset Quotes erd +\end_inset + + button), one with a right arrow (the +\begin_inset Quotes eld +\end_inset + +forward +\begin_inset Quotes erd +\end_inset + + button), and a third with a house on it (the +\begin_inset Quotes eld +\end_inset + +home +\begin_inset Quotes erd +\end_inset + + button). + The help is a basic hypertext system, and you can browse it just like you + would with a web browser, using the home button to go back to where you + started, and the back and forward buttons to move through your history. + Underneath this there are 4 tabs with titles on them, and you can click + on these tabs to bring up a different aspect of the help system. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename /home/alan/graphics/help.eps not found! + width 100text% + keepAspectRatio + draft + BoundingBox 0 0 200 100 + special type=eps + +\end_inset + + +\end_layout + +\begin_layout Standard + +\shape italic +The Help Box +\end_layout + +\begin_layout Standard +The first tab is titled +\begin_inset Quotes eld +\end_inset + +Help choosing a test +\begin_inset Quotes erd +\end_inset + +. + This interactive help system will ask you a series of questions until it + finally suggests a test that you can perform with details about the test + and how to get it working. +\end_layout + +\begin_layout Standard +The second tab is titled +\begin_inset Quotes eld +\end_inset + +Topics +\begin_inset Quotes erd +\end_inset + + and details general help about SalStat  in other words, how to enter data, + get descriptive statistics and how to analyse. + There are also pages about each test that is offered and what is needed + to do the test. +\end_layout + +\begin_layout Standard +The third tab is titled +\begin_inset Quotes eld +\end_inset + +License +\begin_inset Quotes erd +\end_inset + + and contains the license under which SalStat is offered in full. + This license is called the GNU General Public License ( +\begin_inset Quotes eld +\end_inset + +GPL +\begin_inset Quotes erd +\end_inset + + for short), and is very popular for open source software. + In short it entitles you to use the software for any purpose (within the + law of course), and you may inspect the source code to check I am not downloadi +ng files from your computer. + You can even change the source code to your liking if you wish with the + only proviso being that if you distribute the changes, you must make the + source available. +\end_layout + +\begin_layout Standard +The fourth tab is titled +\begin_inset Quotes eld +\end_inset + +Peeps +\begin_inset Quotes erd +\end_inset + + (thank you Harry Enfield & Co!), and has a brief list of all the people + who have been involved in or help with SalStat over the course of its developme +nt. +\end_layout + +\begin_layout Standard +Most of the help offered is also contained in this document, but sometimes + it is useful to have help immediately on hand, and other times it is useful + to have a paper document available for perusal. +\end_layout + +\begin_layout Chapter +Advanced Guide for Programmers +\end_layout + +\begin_layout Standard +The beauty of SalStat is that it is a free program. + This doesn't just mean that you can have it for no money, but it means + mostly that you can do lots of interesting things with it if you have the + time, skills and inclination. +\end_layout + +\begin_layout Standard +SalStat is +\shape italic +open source +\shape default +. + What this means is that the source code to the program is available, and + you don't have to sign any nondisclosure agreements to see it, or even + use it. + The license that the program comes under (the GNU General Public License) + specifies that you can access the code if you want, make any modifications + you want, or give it away or sell it to other people if you want. + Get more information from the Free Software Foundation (http://www.fsf.org). +\end_layout + +\begin_layout Standard +Because the source code is freely available and modifiable, anyone with + the skills can tailor SalStat to their own needs. + If you want to write a new function, it can be done easily. + If you don't like parts of the GUI, you can change them to suit yourself. +\end_layout + +\begin_layout Standard +This section is designed to illustrate the internal architecture of SalStat + in order to make reprogramming it less of a chore. + First of all, I shall specify the overall build of the program, and then + expand on the classes and functions contained within each module. +\end_layout + +\begin_layout Chapter* +Appendix A  Technical Details +\end_layout + +\begin_layout Standard +SalStat was written using the Python language (http://www.python.org) and + wxPython to construct the GUI (http://www.wxpython.org). + The terminal (character) based version (still to be released) uses the + curses module of Python. + Python was chosen for a number of reasons: Firstly, it is easy to read + and write which made the initial coding and the subsequent maintenance + of the program a simpler business. + Secondly, any code written in Python can be released under any license + desired. + Thirdly, Python is a truly crossplatform language with ports to all major + platforms. + Fourthly, due to its open source background, Python is also a surprisingly + mature language, and any rare bugs that exist tend to be fixed very quickly. + Fifthly, the community around Python is very dynamic and supportive. + Sixthly, being easy to learn, it is easier for people to modify the code + for their purposes if they so wish. + Seventhly, it is a +\begin_inset Quotes eld +\end_inset + +free +\begin_inset Quotes erd +\end_inset + + language and not under proprietary control. +\end_layout + +\begin_layout Standard +Development was done on an Intel workstation running noname components. + The operating system was Mandrake Linux 8.0 to 8.2, but it was also tested + occasionally on a Windows 98 and NT workstation to test whether it was + truly crossplatform. +\end_layout + +\begin_layout Standard +The design of SalStat is modular. + The module with the statistics test relies heavily upon the +\begin_inset Quotes eld +\end_inset + + +\family typewriter +stats.py +\family default + +\begin_inset Quotes erd +\end_inset + + and +\begin_inset Quotes eld +\end_inset + + +\family typewriter +pstat.py +\family default + +\begin_inset Quotes erd +\end_inset + + modules written by Gary Strangman of Harvard University (http://www.nmr.mgh.harvar +d.edu/Neural_Systems_Group/strang/) and released under the GPL. + Because of this, SalStat also has to be released under the full GPL (not + the LGPL). + The IDE used was initially Emacs (http://www.emacs.org) and then the wonderful + SciTE editor (http://www.scintilla.org), a newer generation editor that is + fast, flexible, and works superbly for editing Python code. +\end_layout + +\begin_layout Chapter* +Appendix B  Other Statistics Packages +\end_layout + +\begin_layout Section* +Free/Libre/Open Source packages +\end_layout + +\begin_layout Standard +R  R is a free version of the SPlus language that is particularly suited + to heavy duty statistical manipulation. +\end_layout + +\begin_layout Standard +Lispstat  this is a mature project by Luke Tierney and is again a language + suitable for statistical manipulation. + It also has a GUI called Vista. +\end_layout + +\begin_layout Standard +MacANOVA  This project is well suited to analysis of variance, but despite + the name, it is not solely for that purpose. +\end_layout + +\begin_layout Standard +Statist and StatistX +\end_layout + +\begin_layout Section* +Commercial Packages +\end_layout + +\begin_layout Standard +SPSS™ +\end_layout + +\begin_layout Standard +StatView™ +\end_layout + +\begin_layout Standard +SAS™ +\end_layout + +\begin_layout Standard +Minitab™ +\end_layout + +\begin_layout Standard +Statistica™ +\end_layout + +\begin_layout Chapter* +Appendix C  API details for Scripting +\end_layout + +\begin_layout Standard +These functions can be called instantly from the scripting window. + They are called by clicking on the +\begin_inset Quotes eld +\end_inset + + +\family typewriter +Go +\family default + +\begin_inset Quotes erd +\end_inset + + button on the toolbar (the first button on the left with a circular red + arrow). + Please note that Python is casesensitive  the letter ' +\family typewriter +A +\family default +' is different from ' +\family typewriter +a +\family default +', so make sure that you use the correct case. + The following functions have the syntax and a brief description of what + they do. + If you use a scripting window, you can mix and match any number of functions + (and even write your own tests.) +\end_layout + +\begin_layout Section +Data Access Functions +\end_layout + +\begin_layout Standard +In order to perform some analysis, you first of all need data to analyse. + To enter data, you can either type them into the grid and retrieve them + from there, or you can enter them into a variable at the scripting window + (and even put them into the grid it you wish). +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +function GetData( +\shape italic +datasource +\shape default +) +\end_layout + +\begin_layout Standard +the datasource can be a list or an integer. + If it is a list, then the list will be used as the data. + Passing an integer will retrieve the specified column of data from the + datagrid. + +\shape italic +NOTE +\shape default +: When calling this, remember that in SalStat, the first column of data + is column 0, not 1. + Example: +\family typewriter +GetData(1) +\family default + will get data from column 1 on the grid. +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +function PutData( +\shape italic +datasource +\shape default +, +\family default +\series default + +\family typewriter +\series bold +\shape italic +data +\shape default +) +\end_layout + +\begin_layout Standard +this puts the data contained the in variable +\shape italic +data +\shape default + into the grid at column +\shape italic +datasource +\shape default +. + Example: +\family typewriter +PutData(0, [ +\begin_inset Quotes erd +\end_inset + +3 +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes erd +\end_inset + +5.67 +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes erd +\end_inset + +7.89 +\begin_inset Quotes erd +\end_inset + +]) +\family default + will put the numbers +\family typewriter +3, 5.67 +\family default + and +\family typewriter +7.89 +\family default + into the first column of the grid. +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +function display( +\shape italic +data +\shape default +) +\end_layout + +\begin_layout Standard +this takes whatever is contained in +\shape italic +data +\shape default + and shows it in the output window. + Example: +\family typewriter +display( +\begin_inset Quotes eld +\end_inset + +Hi +\begin_inset Quotes erd +\end_inset + +) +\family default + will write +\begin_inset Quotes eld +\end_inset + + +\family typewriter +Hi +\family default + +\begin_inset Quotes erd +\end_inset + + to the output window. + Each new entry is automatically started on a new line (i.e., it has a base + level of html formatting), but other html can be included if needed. +\end_layout + +\begin_layout Section +Descriptive Statistics +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +class Describe( +\shape italic +datasource +\shape default +) +\family default +\series default +  This class will get all the descriptive statistics for +\shape italic +datasource +\shape default +. + Each individual statistic is accessed as an attribute of this class. + +\shape italic +datasource +\shape default + may be a list of data, or an integer to represent the column on the data + grid. + Example: +\family typewriter +a = Describe(1) +\family default + will get descriptive statistics for column 1 on the grid and store them + in the variable +\family typewriter +\shape italic +a +\family default +\shape default +. +\end_layout + +\begin_layout Standard +Available statistics: +\end_layout + +\begin_layout Standard + +\family typewriter +Name +\family default +  the variable name (the column heading) +\end_layout + +\begin_layout Standard + +\family typewriter +N +\family default +  number of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +sum +\family default +  the sum of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +mean +\family default +  the mean of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +samplevar +\family default +  the variance of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +stddev +\family default +  the standard deviation of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +stderr +\family default +  the standard error of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +sumsquares +\family default +  the sum of squares of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +ssdevs +\family default +  the sum of squared deviations of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +coeffvar +\family default +  the coefficient of variation of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +minimum +\family default +  the minimum value of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +maximum +\family default +  the maximum value of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +range +\family default +  the range of the data (maximum  minimum); +\end_layout + +\begin_layout Standard + +\family typewriter +numbermissing +\family default +  the number of missing data; +\end_layout + +\begin_layout Standard + +\family typewriter +geomean +\family default +  the geometric mean of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +harmmean +\family default +  the harmonic mean of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +skewness +\family default +  the skewness of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +kurtosis +\family default +  the kurtosis of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +median +\family default +  the median of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +mad +\family default +  the median absolute deviation of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +mode +\family default +  the mode of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +interquartilerrange +\family default +  the interquartile range of the data; +\end_layout + +\begin_layout Standard + +\family typewriter +uniques +\family default +  the number of unique levels (i.e., nonoccuring values) of the data; +\end_layout + +\begin_layout Standard +To those unfamiliar with objectoriented approaches, access to these might + be a little but unusual at first, but it is quite easy. + Simply add the descriptive after the variable name (with a dot in between!) + and they can be used. + Example: +\end_layout + +\begin_layout Standard + +\family typewriter +a = Describe(0) +\family default +  gets the descriptives for the data in the first grid column; +\end_layout + +\begin_layout Standard + +\family typewriter +display(a.N) +\family default +  shows on the output sheet how many nonmissing data there are; +\end_layout + +\begin_layout Standard + +\family typewriter +a.samplevar * a.samplevar +\family default +  the sample variance is squared here. +\end_layout + +\begin_layout Standard + +\family typewriter +MyOwnRange = a.maximum  a.minimum +\family default +  this works out the range (which is already calculated and accessed as + +\family typewriter +a.range +\family default +). +\end_layout + +\begin_layout Section +Inferential Statistics +\end_layout + +\begin_layout Standard +These perform the actual tests. + Each test returns more than one value (for example, the ttest returns + the value of t, the degrees of freedom, and the associated probability). + The way to script these are as follows: +\end_layout + +\begin_layout Standard + +\family typewriter +t, df, p = DoUnpairedTTest(0,1) +\end_layout + +\begin_layout Standard +This will perform an unpaired t test. + Obviously, the variable t will hold the value of t, the df will hold the + degrees of freedom and so on. + Like the descriptive statistics, you will need to specify the data source, + and this is done in the brackets. + You can form a list of data and send those, or you can specify a column + from the grid. + In the above example, the data from columns 0 and 1 will be retrieved and + used. +\end_layout + +\begin_layout Standard +All these tests assume a 2tailed hypothesis. + If that is what you want, then you don't need to specify anything else, + but if you want a one tailed test, just add a '1' after the data sources + like so: +\end_layout + +\begin_layout Standard + +\family typewriter +t, df, p = DoUnpairedTTest(0, 1, 1) +\end_layout + +\begin_layout Standard +Remember that you can call these variables anything you want, but the order + in which they are returned is fixed. + The following is acceptable: +\end_layout + +\begin_layout Standard + +\family typewriter +p, t, df = DoUnpairedTTest(0, 1) +\end_layout + +\begin_layout Standard @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 