DDUX^I"@[Mgic@  !$ (-.048<@DHpTTT^^DFCC4D[<2! ,I(L]$$ ]Run_ChangedRun@nd(U]$@.]} RunNumberArrayHiers?$ ]Run_ChangedRun@](qDFWL4D   Pul  DFCC4D[=2! ,I(L]$$ ]Run_ChangedRun@nd(U]$@.]} RunNumberArrayHiers?$ ]Run_ChangedRun@](qDFCC4D[>2! ,I(L]$$ ]Run_ChangedRun@nd(U]$@.]} RunNumberArrayHiers?$ ]Run_ChangedRun@](qDFPA4Dn,հ].恮|q恮.T6^.݁KʭO[X.맣ɸzTsG恮oʯ̼Z쁮ߜE7恮.>.Z}_KK'[cQ.ʩ X9~QG1 X9.恮DFPA4Dn.DFListGmwn8^0 / ${p!P(\1 / ${p!P(\2 / ${p!P(\3 / ${p!P(\4 / ${p!P(\5 / ${p!P(\6 / ${p!P(\DFListbYmwn8^Ocean Flux Errors{p!P(\heOcean Flux Errors{p!P(\he?Some of the files needed to process the run could not be found., The run folder is missing.P(\he, The run folder is missing.P(\he!, The ocean flux file is missing., The run folder is missing.P(\he", The ocean basin file is missing., The rsf file is missing.g.P(\he, The rsf file is missing.g.P(\he&, There are no valid years to process., The rsf file is missing.g.P(\heG, You cannot process years that are beyond the current simulation date., The rsf file is missing.g.P(\he , The first oda file is missing., The rsf file is missing.g.P(\heDFList epLb has no trend ${p!P(\po uses data file "^0"p!P(\po uses a step function ofp!P(\po has a constant change of !P(\po has a constant change of !P(\po linearly changes by ^0 per year has a constant change of !P(\po, exponentialy changes by ^0 percent per yearDFListBmwn8^ Delete errors ${p!P(\ cDelete errors ${p!P(\ c$You cannot delete these simulations:, has a folder.${p!P(\ c, is archived..${p!P(\ c, is a master scenario.p!P(\ cDFList{RunNumberArrayHierSample_Control_Run{̿p!P(\Solar_Decrease_Run{̿p!P(\ Modern_1958ase_Run{̿p!P(\Global_Warming_01n{̿p!P(\ 58mya_test_01g_01n{̿p!P(\ Ice_Age_21kyag_01n{̿p!P(\SnowballEarth_580Ma̿p!P(\ newobservered_580Ma̿p!P(\ ObservedOcean_010Ma̿p!P(\DFList](.w8contains ${p!P(\ starts with ${p!P(\ ends withth ${p!P(\isds withth ${p!P(\DFListz6mwn8^Title / ${|p!P(\ eJournal ID ${|p!P(\Authoral ID ${|p!P(\DFListKmw8^ Setup errors ${ 8p!P(\heSetup errors ${ 8p!P(\he=Some of the files needed to start the run could not be found:Setup errors ${ 8p!P(\he8, The ground initial conditions file could not be found.Setup errors ${ 8p!P(\he*, The ocean input file could not be found.Setup errors ${ 8p!P(\he5, The drag coefficient input file could not be found.Setup errors ${ 8p!P(\he/, The radiation file, RTAU, could not be found.Setup errors ${ 8p!P(\he/, The radiation file, RPLK, could not be found.Setup errors ${ 8p!P(\he/, The vegatation input file could not be found.Setup errors ${ 8p!P(\he/, The topography input file could not be found.rrors ${ 8p!P(\herrors ${ 8p!P(\he<, The atmosphere initial conditions file could not be found.rrors ${ 8p!P(\heF, The ocean file for predicted SSTs (Qflux OTSPEC) could not be found.rrors ${ 8p!P(\he;, The Max. Mixed Layer Depth file (MLD) could not be found.rrors ${ 8p!P(\he4, The deep ocean input file (ED) could not be found.rrors ${ 8p!P(\he8, The ocean basins file is needed to collect ocean flux.rrors ${ 8p!P(\heDFList|(.n8mII2test01sC9_ANN1901-1911!P(\mII2test01sC9_JUL1901-1911!P(\DFListmwn8^None / ${пp!P(\ Data File ${пp!P(\ Step (ppm) ${пp!P(\Constant (ppm) ${пp!P(\ Linear (ppm)m) ${пp!P(\Exponential (%)${пp!P(\DFListQ"mw8^Setup critical errorsp!P(\heSetup critical errorsp!P(\heYou need to fix a few things before you can every try to setup this run. You are missing the following critical pieces of information:ritical errorsp!P(\heritical errorsp!P(\he+, The default input folder cannot be found.ritical errorsp!P(\he*, The custom input folder cannot be found.ritical errorsp!P(\he$, The output folder cannot be found.ritical errorsp!P(\he , The run folder already exists.DFListhmw8^ / ${ܿp!P(\rrSThis is a list of folders that can be pointed to by path manager. The first name is / ${ܿp!P(\rr3the constand the second name is the filesystem namekEdGCM;p!P(\rrkDatabase;P(\rrkDatabase;P(\rr/kCurrentRun;kOutput;Output PM_Database>P(\rr kInput;Inputut PM_Database>P(\rrDFList!(j8jpeg / ${ Xp!P(\jpgg / ${ Xp!P(\jp2g / ${ Xp!P(\pict / ${ Xp!P(\pctt / ${ Xp!P(\pict / ${ Xp!P(\tiff / ${ Xp!P(\tiff / ${ Xp!P(\giff / ${ Xp!P(\giff / ${ Xp!P(\8bps / ${ Xp!P(\8bim / ${ Xp!P(\psdm / ${ Xp!P(\pngf / ${ Xp!P(\pngf / ${ Xp!P(\pdff / ${ Xp!P(\pdff / ${ Xp!P(\bmpf / ${ Xp!P(\DFListdamwn8^1 / ${ dp!P(\2 / ${ dp!P(\3 / ${ dp!P(\4 / ${ dp!P(\5 / ${ dp!P(\6 / ${ dp!P(\7 / ${ dp!P(\8 / ${ dp!P(\9 / ${ dp!P(\10 / ${ dp!P(\11 / ${ dp!P(\12 / ${ dp!P(\13 / ${ dp!P(\14 / ${ dp!P(\15 / ${ dp!P(\16 / ${ dp!P(\17 / ${ dp!P(\18 / ${ dp!P(\19 / ${ dp!P(\20 / ${ dp!P(\DFListw=Messages UAM_Messages9` 0% /p_Mes(\s('UAM 1.0d2 (User Authentication Manager)Login9` 0% /p_Mes(\s(login window title[(ZPLogin9` 0% /p_Mes(\s(EEdGCM requires that you enter your username and password to continue.login window message(ZP Authenticate% /p_Mes(\s(authentication window titlePAuthenticate% /p_Mes(\s(>EdGCM requires an administrative user to complete this action.  auth messageon window titlePDFListmwn8^Run ID / ${Կp!P(\LabelD / ${Կp!P(\OceanD / ${Կp!P(\DatenD / ${Կp!P(\OwnerD / ${Կp!P(\DFList+ m{w8bInfo / ${ Lp!P(\Init / ${ Lp!P(\Ocen / ${ Lp!P(\Diag / ${ Lp!P(\Forc / ${ Lp!P(\CO2c / ${ Lp!P(\N2Oc / ${ Lp!P(\CH4c / ${ Lp!P(\CFC11 / ${ Lp!P(\CFC12 / ${ Lp!P(\Sol12 / ${ Lp!P(\Pow12 / ${ Lp!P(\Dev12 / ${ Lp!P(\DFList6}m{T08b0 / ${ hp!P(\A 31 / ${ hp!P(\A 59 / ${ hp!P(\A 90 / ${ hp!P(\A 120 / ${ hp!P(\A 151 / ${ hp!P(\A 181 / ${ hp!P(\A 212 / ${ hp!P(\A 243 / ${ hp!P(\A 273 / ${ hp!P(\A 304 / ${ hp!P(\A 334 / ${ hp!P(\A 365 / ${ hp!P(\A 365 / ${ hp!P(\A 365 / ${ hp!P(\A 0These are the days for each month from the model365 / ${ hp!P(\A :DATA JDOFM/0,31,59,90,120,151,181,212,243,273,304,334,365/365 / ${ hp!P(\A DFList0`mwĄ=^Run ID / ${p!P(\ Creation Date ${p!P(\DFList5#`$8rsf_ / ${ |p!P(\grnd / ${ |p!P(\obsr / ${ |p!P(\topo / ${ |p!P(\vegt / ${ |p!P(\drag / ${ |p!P(\rtau / ${ |p!P(\rplk / ${ |p!P(\ocen / ${ |p!P(\mmld / ${ |p!P(\basn / ${ |p!P(\difu / ${ |p!P(\sprg / ${ |p!P(\pbtb / ${ |p!P(\pbso / ${ |p!P(\pbuo / ${ |p!P(\pbsi / ${ |p!P(\pbui / ${ |p!P(\pbsl / ${ |p!P(\pbul / ${ |p!P(\DFList=mw8^0 / ${ Pp!P(\1 / ${ Pp!P(\2 / ${ Pp!P(\3 / ${ Pp!P(\4 / ${ Pp!P(\5 / ${ Pp!P(\6 / ${ Pp!P(\7 / ${ Pp!P(\8 / ${ Pp!P(\9 / ${ Pp!P(\10 / ${ Pp!P(\11 / ${ Pp!P(\DFListUm{8@$8b Import errors ${ȿp!P(\ sImport errors ${ȿp!P(\ snThe simulation "^0" cannot import ^1 fields because EdGCM could not find them in this version of the database.P(\ sDFList mw8^315.0 / ${ Tp!P(\ar0.295 / ${ Tp!P(\ar1.400 / ${ Tp!P(\ar0.008 / ${ Tp!P(\ar0.025 / ${ Tp!P(\ar1367.0 / ${ Tp!P(\ar1367.0 / ${ Tp!P(\ar1c ** Here are the original lines from R83ZAmacC91367.0 / ${ Tp!P(\arMC H2O CO2 O3 O2 NO2 N2O CH4 CCL3F1 CCL2F2 4211.1367.0 / ${ Tp!P(\arMC DATA FULGAS/1.0, 1.0,1.0, 1.0,1.0, 1.0, 1.0, 1.0, 1.0/4212.1367.0 / ${ Tp!P(\arMc DATA PPMV58/0.0,315.0,0.0,210000.,0.0,0.295,1.400,8.00E-6,25.0E-6/4213.1367.0 / ${ Tp!P(\arGsolar is derived from a different dataset, but the 1958 value is 1367.0DFListGm{T08b 7.826x10x9 ${ lt: : alues from year: 0maDFList9 Trend orbitdSim Trend orbit嵔None9 00%Op /m Tr'or Calculate 00%Op /m Tr'or Use Data File%Op /m Tr'orDFListE]Page&_\Td PostPage4Td019 `%OpTd 0tPag'29 `%OpTd 0tPag'39 `%OpTd 0tPag'49 `%OpTd 0tPag'59 `%OpTd 0tPag'DFListE%LhtmlV` , ,Р ,pl'< ,pl'���������������<html><head><title> ,pl'���7



,pl'��������������</body></html> tle> ,pl'���������������</body></html> tle> ,pl'���,<!-- Support for an image: image, x, y -- 6>����������<p align=center>le> ,pl'��������������<p align=center><img src=l'��������������></p>ign=center><img src=l'��������������</p> ign=center><img src=l'���������������</p> ign=center><img src=l'��� <!-- Support a text block -- 11>����������<p>> ign=center><img src=l'��������������</p> ign=center><img src=l'��������������<small>n=center><img src=l'��������������</small>=center><img src=l'���������������</small>=center><img src=l'��� <!-- Javascript goes here -- 16>����������<p align=center><A href="l'�������������� "><IMG SRC="ter><A href="l'�������������� "></A></p>="ter><A href="l'��������������<!--Table for images-- 20>'���������������<!--Table for images-- 20>'���1<small><table align=center summary="Figures"><tr>�����������<!--Table for images-- 20>'���#<td align="center" valign="bottom">����������</td>able for images-- 20>'��������������<td width="15%"></td>- 20>'��������������</tr></table></small>- 20>'��������������</tr></table></small>- 20>'��������������<td align="left" valign="top">'��������������<td align="right" valign="top">'���������������<td align="right" valign="top">'���$</td> <td align="left" valign="top">����������<!--Logo-- 30>ht" valign="top">'���������������<!--Logo-- 30>ht" valign="top">'���Q<p align="center"><img src="Images/Logo.jpg" alt="EdGCM Logo" align="middle"></p>���������������DFListg�n modes��� Ocean modes����V�������������������� Specified SST����d.an m.��������������Mixed-Layer Ocean (Qflux)an m.��������������Mixed-Layer + Deep Diffusionm.��������������Observed SST (1871-2002)sionm.�������������� Dynamic Ocean(1871-2002)sionm.������������DFListF2�n modes shortcean modes shortV�������������������� Specified SST����/pan m. s�������������� Mixed-LayerST����/pan m. s��������������Mixed-Layer Deep�/pan m. s��������������Observedyer Deep�/pan m. s��������������Dynamicdyer Deep�/pan m. s������������DFListO�ts�%L���Alerts�������V����������������������` 7Q 7P����œ` 7OprtsL.���GReplace eJournal?;Are you sure you want to overwrite the eJournal "^0"?������������` 7Q 7P����œ` 7OprtsL.���9Save error;Can't save simulation "^0" because it is busy.������������` 7Q 7P����œ` 7OprtsL.���7Save error;Can't save eJournal "^0" because it is busy.������������` 7Q 7P����œ` 7OprtsL.���dThis eJournal has no title;You cannot convert this eJournal to a web page without giving it a title.������������` 7Q 7P����œ` 7OprtsL.���]Can't import image;You need to pick a valid name to import the image and a valid folder name.������������` 7Q 7P����œ` 7OprtsL.���Can't import image;The image could not be imported because file "^0" already exists. You can import the image again with a different name.������������` 7Q 7P����œ` 7OprtsL.���TCannot save pasted image;The image "^0" could not be saved because an error occured.������������` 7Q 7P����œ` 7OprtsL.���VCannot paste image;Images pasted into eJournals must be copied from the image browser.������������` 7Q 7P����œ` 7OprtsL.���FNothing to show;You can't list the simulations because there are none.����������10` 7Q 7P����œ` 7OprtsL.���������������10` 7Q 7P����œ` 7OprtsL.���DNothing to show;You can't list the eJournals because there are none.�����������10` 7Q 7P����œ` 7OprtsL.���lCan't create scenario;You cannot make a scenario from this simulation. First run "^0" for at least one hour.�����������10` 7Q 7P����œ` 7OprtsL.���<Can't clean up ^0;There is no run folder for ^0 to clean up.�����������10` 7Q 7P����œ` 7OprtsL.���XCan't clean up ^0;You have not selected a range or years to clean up or a month to keep.�����������10` 7Q 7P����œ` 7OprtsL.���Really clean up ^0?;Cleaning up will delete files. You cannot undo this operation. Cleaning up will free up about ^1 of disk space?�����������10` 7Q 7P����œ` 7OprtsL.���Really clean up ocean folder for ^0?;All files in the ocean folder will be deleted regardless of the date range you select. Are you sure you want to do this?�����������10` 7Q 7P����œ` 7OprtsL.���dMissing Picture;The picture could not be read because it is missing or is not in a supported format.�����������10` 7Q 7P����œ` 7OprtsL.���You have extended the run "^0" to "^1";If the simulation was running previously you need to restart it for the new end date to take effect.�����������10` 7Q 7P����œ` 7OprtsL.���Can only extend run "^0" to "^1". A simulation can only be extended to the end of your longest trend. Do you want to extend "^0" to "^1".����������20` 7Q 7P����œ` 7OprtsL.���������������20` 7Q 7P����œ` 7OprtsL.���Missing solar correction file;The solar correction file in folder "^0" is missing. You will need to fill out the solar correction value manually.�����������20` 7Q 7P����œ` 7OprtsL.���Break instructor scenario?;If you break the instructor scenario "^0" it will no longer run in scenario mode. Links between this instructor scenario and its student scenarios may be broken and no more student scenarios will be allowed for this run.�����������20` 7Q 7P����œ` 7OprtsL.���yMark run as archived?;Marking run "^0" as archived will prevent you from running it. Archived runs can only be processed.�����������20` 7Q 7P����œ` 7OprtsL.���\Can't delete run;You cannot delete run "^0" because it is archived or a instructor scenario.�����������20` 7Q 7P����œ` 7OprtsL.���qCan't delete run;Run "^0" has a run folder in output and cannot be deleted. You must delete the run folder first.�����������20` 7Q 7P����œ` 7OprtsL.���FDelete run?;Are you sure that you want to delete run "^0" permanently?�����������20` 7Q 7P����œ` 7OprtsL.���<No runs left;You have no runs left, please create a new run.�����������20` 7Q 7P����œ` 7OprtsL.���RCan't delete run "^0";Deleting the first record is not currently allowed in EdGCM.�����������20` 7Q 7P����œ` 7OprtsL.���VCan't import;This file cannot be imported because it does not contain any simulations.����������30` 7Q 7P����œ` 7OprtsL.���������������30` 7Q 7P����œ` 7OprtsL.���\Can't import;The simulation "^0" you want to import is a duplicate of an existing simulation�����������30` 7Q 7P����œ` 7OprtsL.���UCan't import;The simulation "^0" you want to import is from a newer version of EdGCM.�����������30` 7Q 7P����œ` 7OprtsL.���Incomplete import;When simulation "^0" was imported ^1 fields could not be matched. The simulation may be incomplete and you should check it.�����������30` 7Q 7P����œ` 7OprtsL.���vNo diagnostic files found.;To view simulation output you must first create diagnostics using the Analyze Output tools.�����������30` 7Q 7P����œ` 7OprtsL.���SNo time period;You must pick at least one time period to average over for the Maps.�����������30` 7Q 7P����œ` 7OprtsL.���bDelete section?;Deleting a section cannot be undone. Are you sure you want to delete this section?�����������30` 7Q 7P����œ` 7OprtsL.���HCan't delete section;You cannot delete the only section in the eJournal.�����������30` 7Q 7P����œ` 7OprtsL.���Ocean flux problems;The ocean basin file cannot be found. You will still collect ocean fluxes but cannot process them without some help.�����������30` 7Q 7P����œ` 7OprtsL.���DDelete simulations?;Are you sure you want to delete ^0 simulation^1?����������40` 7Q 7P����œ` 7OprtsL.���������������40` 7Q 7P����œ` 7OprtsL.���The file "^0" contains ^1 simulations with ^2 duplicates of run IDs already in your database. To overwrite the duplicates (except for those marked old-model), choose Import. Don't Replace will not import duplicates.�����������40` 7Q 7P����œ` 7OprtsL.���Too few years (bug);You have selected less than 9 years to process for the simulation "^0". Due to a bug in PlotShop too few years doesn't work, sorry.�����������40` 7Q 7P����œ` 7OprtsL.���Replace existing maps?;The file "^0" already exists. If you create new maps you will replace any variables you selected in the past with the current selection.�����������40` 7Q 7P����œ` 7OprtsL.���iNo images found;No images were found durring the update. Probably your images folder is missing or empty.�����������40` 7Q 7P����œ` 7OprtsL.���jNot avalible;The file "^0" cannot be viewed because the PC version of SuSpect is not avalible in EdGCM ^1.�����������40` 7Q 7P����œ` 7OprtsL.���mMissing topography file;You cannot create tables because the topography file is missing from your simulation.�����������40` 7Q 7P����œ` 7OprtsL.���YMissing topography file;You cannot analyze output because the topography file is missing �����������40` 7Q 7P����œ` 7OprtsL.���Locked database file;You cannot run EdGCM because the database file is locked. Either permissions are wrong or you are trying to run EdGCM off a CD.�����������40` 7Q 7P����œ` 7OprtsL.���GMissing folder;You cannot run EdGCM because the folder "^0" is missing.����������50` 7Q 7P����œ` 7OprtsL.���������������50` 7Q 7P����œ` 7OprtsL.���\Can't create set;You cannot create set "^0" because a set with the same name already exists.�����������50` 7Q 7P����œ` 7OprtsL.���oDuplicate scenario?;You cannot start a scenario directly. Would you like to create a duplicate of "^0" instead?�����������50` 7Q 7P����œ` 7OprtsL.���HCan't start;You cannot start the simulation "^0" because it is archived.�����������50` 7Q 7P����œ` 7OprtsL.���SOutdated set;Oops, set "^0" is outdated and cannot be used. Please delete this set.�����������50` 7Q 7P����œ` 7OprtsL.���[Duplicate set name;You can't create set "^0" because there is already a set with that name.�����������50` 7Q 7P����œ` 7OprtsL.���KDelete eJournal?;Are you sure you want to delete eJournal "^0" permanently?�����������50` 7Q 7P����œ` 7OprtsL.���[Duplicate set name;You can't rename set "^0" because there is already a set with that name.�����������50` 7Q 7P����œ` 7OprtsL.���[Can't extend simulation. Simulation "^0" cannot be extened beyond the length of the trends.�����������50` 7Q 7P����œ` 7OprtsL.���sErase simulation and start over?;Delete all previous output from simulation "^0" and start over from the beginning?����������60` 7Q 7P����œ` 7OprtsL.���������������60` 7Q 7P����œ` 7OprtsL.���?No trend files;There are no trend files available to pick from.�����������60` 7Q 7P����œ` 7OprtsL.���Missing default simulation;The default simulation "Sample_Control_Run" is missing, you cannot create new runs, though duplicate will still work.�����������60` 7Q 7P����œ` 7OprtsL.���SImport complete;EdGCM 4D works best if you restart after importing. Quit EdGCM now?�����������60` 7Q 7P����œ` 7OprtsL.���=Invalid search;No run ids contained the search criteria "^0".�����������60` 7Q 7P����œ` 7OprtsL.���iCan't create scenario;You cannot create a new scenario from "^0" because it is already a parent scenario.�����������60` 7Q 7P����œ` 7OprtsL.���fCan't create scenario copy;You cannot create scenario copy "^0" because that run id is already in use.�����������60` 7Q 7P����œ` 7OprtsL.���`Abstract is too long;Your abstract is ^0 words, and eJournal abstracts are limited to 300 words.����������60` 7Q 7P����œ` 7OprtsL.���tBefore observations;Greenhouse gas values are available from 1850 to 2050. The 1958 control run values will be used.����������60` 7Q 7P����œ` 7OprtsL.���wAfter projected trends;Greenhouse gas values are available from 1850 to 2050. The 1958 control run values will be used.���������70` 7Q 7P����œ` 7OprtsL.��������������70` 7Q 7P����œ` 7OprtsL.���zBefore observations;The solar values extend back to 1500, no telescope, no trend. The 1958 control run value will be used.����������70` 7Q 7P����œ` 7OprtsL.���cAfter observations;The solar trend data goes through 1998. The 1958 control run value will be used.����������70` 7Q 7P����œ` 7OprtsL.���Scale large image?;The image "^0" is larger than 800 by 800 pixels. You should scale this image, unless you need the fine details from the original.����������70` 7Q 7P����œ` 7OprtsL.���CSorry you entered an invalid username or password;Please try again.����������70` 7Q 7P����œ` 7OprtsL.���UCan't change permissions;You cannot remove yourself from the list of owners of a run.�������� ��70` 7Q 7P����œ` 7OprtsL.���4Not supported;You cannot start a simulation from ^0.�������� ��70` 7Q 7P����œ` 7OprtsL.���2Can't ^1 simulation;You cannot ^1 simulation "^0".�������� ��70` 7Q 7P����œ` 7OprtsL.���}Can't ^1 running simulation;You cannot ^1 simulation "^0" because it is currently running. Please pause the simulation first.�������� ��70` 7Q 7P����œ` 7OprtsL.���fNo blank run IDs;You cannot have a blank run ID so the name of this run had been changed back to "^0".�������� �80` 7Q 7P����œ` 7OprtsL.��������������80` 7Q 7P����œ` 7OprtsL.���QInvalid password;The passwords you have entered do not match, please retype them.����������80` 7Q 7P����œ` 7OprtsL.���{Can't delete Admin;You cannot delete the Admin user from EdGCM because you need an administrator to access the User Editor.����������80` 7Q 7P����œ` 7OprtsL.���KNo password;You should assign a password for user "^0" for better security.����������80` 7Q 7P����œ` 7OprtsL.���eCan't delete eJournal;You can't delete an eJournal that is currently selected in the eJournal window.����������80` 7Q 7P����œ` 7OprtsL.���@Delete eJournals?;Are you sure you want to delete ^0 eJournal^1?����������80` 7Q 7P����œ` 7OprtsL.���uNo blank eJournal IDs;You cannot have a blank eJournal ID so the name of this eJournal had been changed back to "^0".����������80` 7Q 7P����œ` 7OprtsL.���jDuplicate eJournal ID;The name you picked already exists, the eJournal name has been changed back to "^0".����������80` 7Q 7P����œ` 7OprtsL.���cDuplicate run ID;The name you picked already exists, the run ID name has been changed back to "^0".����������80` 7Q 7P����œ` 7OprtsL.���9Can't clean up runs;There are no run folders to clean up.���������90` 7Q 7P����œ` 7OprtsL.��������������90` 7Q 7P����œ` 7OprtsL.���mImported old run;Run "^0" is from EdGCM 2.1 and cannot be run directly. Please review "^0" before you use it.����������90` 7Q 7P����œ` 7OprtsL.���|Can't redo simulation;Simulation "^0" is locked and cannot be modified. You must unlock "^0" before you redo the simulation.����������90` 7Q 7P����œ` 7OprtsL.���Cancel processing?;A Fortran program is processing output from the model. If you cancel this operation you may need to quit EdGCM.����������90` 7Q 7P����œ` 7OprtsL.���Time Series uses all years when processing;You cannot select a sub-range of years when processing Time Series data because the calculations are always performed on all available years. To plot a subset of the years, change the axis scale in EVA instead.����������90` 7Q 7P����œ` 7OprtsL.���sDuplicate assignment;You already have an assignment named "^0". Please choose a different name for your assignment.����������90` 7Q 7P����œ` 7OprtsL.���<File not found;The file for assignment "^0" cannot be found.����������90` 7Q 7P����œ` 7OprtsL.���OUnknown assignment;The assignment is of some unknown type and cannot be viewed.�������� ��90` 7Q 7P����œ` 7OprtsL.���.No name;You must give every assignment a name.��������!��90` 7Q 7P����œ` 7OprtsL.���(Delete user;Should user "^0" be deleted?��������"�100` 7Q 7P����œ` 7OprtsL.������������#��100` 7Q 7P����œ` 7OprtsL.���^Reset orbit;The orbit for the simulation "^0" has been reset to the modern orbital parameters.��������$��100` 7Q 7P����œ` 7OprtsL.���eExtend simulation "^0";When would you like simulation "^0" to end? The new end year must be after ^1.��������%��100` 7Q 7P����œ` 7OprtsL.���aSimulation already complete;The simulation "^0" has already complete and cannot be started again.��������&��100` 7Q 7P����œ` 7OprtsL.���CNo simulations selected;You must selection at least one simulation.������������������������������������������������DFList�and Mail�� Web and Mail���V����������������������` - -�����H -p and.l���GThis contains the list of weblinks and email messages to auto generate.������������` - -�����H -p and.l���+Lines are paired with purpose and then link����������Homepage -�����H -p and.l��������������http://edgcm.columbia.edu and.l�������������� Contact Mark.columbia.edu and.l���������������Contact Mark.columbia.edu and.l���2http://edgcm.columbia.edu/contact_us/contacts.html����������Email UsMark.columbia.edu and.l���������������Email UsMark.columbia.edu and.l���2http://edgcm.columbia.edu/contact_us/contacts.html����������Email Bug Reportumbia.edu and.l���������������Email Bug Reportumbia.edu and.l���'http://dev.edgcm.columbia.edu/newticket����������Science Forumsrtumbia.edu and.l���������������Science Forumsrtumbia.edu and.l��� http://forums.edgcm.columbia.edu����������Simulation Exchangeia.edu and.l��������������NAmulation Exchangeia.edu and.l��������������eJournal Exchangegeia.edu and.l��������������NAournal Exchangegeia.edu and.l��������������Updates Exchangegeia.edu and.l���������������Updates Exchangegeia.edu and.l���"http://edgcm.columbia.edu/download����������Support Exchangegeia.edu and.l���������������Support Exchangegeia.edu and.l��� http://forums.edgcm.columbia.edu���������Aboutrt Exchangegeia.edu and.l�������������http://edgcm.columbia.edu/about.l�������������FAQp://edgcm.columbia.edu/about.l��������������FAQp://edgcm.columbia.edu/about.l���9http://forums.edgcm.columbia.edu/faq.php?faq=new_faq_item���������Registerdgcm.columbia.edu/about.l��������������Registerdgcm.columbia.edu/about.l���-http://forums.edgcm.columbia.edu/register.php�����������������������������������������������������DFList�eck ErrorsxRundeck Errors<`��������������������Simulation errors:deck&Tor���������������Simulation errors:deck&Tor���Your simulation contains some errors and cannot be converted to a rundeck. Here are some of your errors so that you may correct them:����������, There is no run number.deck&Tor��������������, There is no start date.deck&Tor��������������, There is no end date.e.deck&Tor��������������, There is no owner.te.e.deck&Tor��������������, There is no comment..e.deck&Tor��������������, There is no label.t..e.deck&Tor���������������, There is no label.t..e.deck&Tor���', TAUP is not set to a realistic value.�����������, There is no label.t..e.deck&Tor���;, Ocean flux collection doesn't support absolute dates yet.�����������, There is no label.t..e.deck&Tor���), CO2 must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���), NO2 must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���3, CH4 (Methane) must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���0, F11 (CFCs) must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���0, F12 (CFCs) must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���+, Solar must be greater than or equal to 0.�����������, There is no label.t..e.deck&Tor���*, Reference year is later than start date.����������, There is no label.t..e.deck&Tor���5, Reference year must be 1871 for the observed ocean.����������, There is no label.t..e.deck&Tor���7, End date is after the end of the observed ocean file.����������, There is no label.t..e.deck&Tor���8, Ocean flux collection date is earlier than start date.����������, There is no label.t..e.deck&Tor���., OmegaT must be between -360 and 360 degrees.����������, There is no label.t..e.deck&Tor���0, Axial tilt must be between -90 and 90 degrees.����������, There is no label.t..e.deck&Tor���', Eccentricity must be between 0 and 1.������DFLE4D���4���Rundeck Errorsc�h�e�.�o�r�g�/�x dSim Scenario���������2 ����G Flux Errors,0���T���4��m��bYRundeck Summary Trend*, Referen Rundeck Summary�le "^0"�������W% Delete Errors�����������������B CM_Folders���������������yRunNumberArrayHier�������� I{dFind SearchType������ r.� ��]Alerts������������B����OdFind FieldToSearch eList����z6 Setup Errors�����ete eJournalK hier_listentl��d.vious outp��|dSim Trend ppm�������������Setup Critical Errors�L@Q" PM_Folders������wbhPostPage�. �������&E] CM_ImageTypes��v(� ��! dText Count������ 4da UAM_Messages8�����M w=dFind FieldToSearch@�@��Group_Name_ListF��YdH�+ Months JDOFML�������Q6} dTool runlist\�U����0`html`�����h��d�$E Input Typesh���0��@5 Start_Monthsp������= Import Errors��Z|�@��UPPMV58�׀����< Ocean modes short�,@������F2 Model Grids��������������������GInput Types OTSpec�������������R Ocean modes��������������������gPostProcessing Errors����������pdSim Trend W/ms^2��������������BSimulation_Period_Dating�������PPMV58 Revisted����������������wIPostOHT������������������������F Web and Mail������������������� Model Names��������������������| dPost Tabs���������������������ZToolbar������������������������'* dTool Sort������������������dSim Trend ppboButton1������Startup_Folders���������������� Months Fullmary����������������XSetup Folder Errorsnd����������*MonthsberArrayHier�������������1 dSim IStarts���p��������Q] Model Apps@ a Model Apps Bin���� �dSim Trend orbit���������������9����������DFBA4D������.�a�p��������������������������������������������DFBA4DxD������gpJ�͔�v�PK�����������DFBA4DQ������e J=jNMdT+\vBg(PKBg8Bg8��DFBA4D"������q:J����\OPCp<vBg(PKBg8Bg8��DFBA4Dz������$`J�w¸YA~LvPKDFl��{�-�!������������������������������������������������DFBA4Dx������q�JTlTTdvTPKTTT��DFBA4Dx�������J��������@v� @PK� H� H��DFBA4DM�����.�a�pL}LLvLPKLLL��������DFBA4D"r�����.�a�pJ�� m~v� PK�,����DFBA4DL�����.�a�pJj,tvPK��DFMEN4J�:79,1d��`������ Close Window/Wq��Generic_CloseWindoww�qa���W����������������(-it2Z ����Do_Quittabase���w�qa��� ���������������User Editor...ryp�������������UAM_Editor_Open�� ����������9����������������(-port Records���Do_Quittabase���w�qa��� ����������������Quit2Z ���Do_Quittabase���w�qa���Q��������������Quit2Z ���Do_Quittabase���w�qa���Q��������������Quit2Z ���Do_Quittabase���w�qa��Q��������������Quit2Z ���Do_Quittabase���w�qa��Q��������������Quit2Z ���Do_Quittabase���w�qa��Q��������������Quit2Z ���Do_Quittabase���w�qa��Q��������������99n��t�dlefthtoprighttop��tt@����������6BC-������������������������������������������������������������������������������������������������ ����name���������bheight����d0� Scen��5{��������v(͝nԎE���� �ZS�������� (10DKN$E:)�������������������������������������������������������33������������"?��I8@g]l?:@*@?������>p]@3@w@���������@L@w@x�����x��������������������������������g;����g@���k"������������@��A0��@�����������g����������������������������������������������������������������������������=��$������������������������������������������������������������������������������zwwwwwwwwwsssssssssssssssssssssssssssssssssssss��Іg_����j`wwwwwwwwwwwwwwwwwwwwwwwwwwwww����������������������������������������������������������������������������������������������������������������������������������������������������������������������������ӡӡӡӡӡӡӡӡӡӡ��{���������������;�����5���������G�����5�������������K��� ��5����f�������������`�����5���������a��� ��5����f�������������~�����5������������ ��5����f������������������5������������ ��5����f������������������5�����������������������������������{��������������������������������������������������������������������������������������������������������������������� ��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++������������W`��������++���������������������������������������������������������������������������������������������������������������������������������������������������������������������� ?{���� ������������W`��������++���������������W`��������++���������������W`��������++���������������W����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c��DFMEN4� :79,5�� U������:131,18����9����VpVp������X������������UpmEx ?X���Z������������'(-V������`W�NAM#/����6�9.W����� ���� ����������������:131,20�V������PY`������������V����������������Wp���X������������':131,21V�������PY`�����������Clipboard_Copypy�,W�������C������������':131,22���`Y`�����������V�Clipboard_Pastete�����������������V������������':131,23Y`V�������PY`��������macsV����������������Q����� ������������'G:131,24All����`Y`��������macs�Post_Processing_FillQ�����������A������������'6(-�������'�V������`Z�� �'� ��VY ����� ����� ����������������Preferences...trols��a����? Pref_Openn_Temp_CreateKeywords����,���������������� Preferencessontrols��a����? Pref_Openn_Temp_CreateKeywords����,����������������:131,25re`������QdQ`������Q_������������Q_�����������Y�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��(-31,27rssQ`������PQdp��DFl��3�;/4������Q_Qa��������������������Enable DFCC4Dj�,�gS����������������AboutBoxA����?�� ��Y��DF#GRPU��(�<�F��-��X�+��%�''�O��K~�,^�<b�:� �x`�M�i>� �b��� ����������������+���2���@��/���������/����������������������������������������������������������������������������������DFl���,� ������������������������������������������������DFl��j�,�gS��acOS������������������������������������������DFCC4DM�,�gS��������������������������������������efauDFCC4DI�,�gS����������������6027</integer> <key>DeviDFCC4DxN�x� �<���*��^�� ^��� (WebAndMailLauncher}1(�@�������11���`���acce����@���������������������������DFCC4Dj�R�:�������������d�d��*������������d�d�$��pc�������������d�d���������������d�d����������������������������������������������������������DFCC4Dxh�R�:�������������d�d��*������������d�d�$��pc�������������d�d���������������d�d����x���������������������������������������������������������������������������������������������������������DFMEN4v� Go�����������������EdGCM 4D Folder^A�������]��Go_EdGCM�]��F��������]����� ���������������� Output Folder������������(�� Go_Output��������A���A����������� ���������������� Input FolderFoldero��������Go_Input�������?��������������������������������(-n Folders Foldero���������Go_Run���������?��������������� ���������������� Run Folders Foldero��������Go_Run���������?��������������� ����������������Diagnostics Folder�������������Go_Diag��������������������������� ����������������(-������������n������������s�����JݠU0])3����� ���������������� Data Folder Foldero��������Go_Data��������?��������������������������������Documentation Folderolder����wGo_Docsications5{����������������� ���������������� Images Folder��g0qgp����qiGo_Image���K���%� ^����d4��� ����������������Diagnostics Folder�������������Go_Diag��������������������������� ����������������Diagnostics Folder�������������Go_Diag��������������������������� ����������������Diagnostics Folder�������������Go_Diag��������������������������� ������������������v��������������������������������������������������������������������������r. P�(?�<es��������������������������������������������������������������������������������"|��5{����������������������������������������������������������������������x��������������������������������������������������������������������������������������������������������������������������������9����11��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� wxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n������������������������������������������������������DFMEN4PK�Web��P�����������EdGCM Homepage^A������������sGo_WebHomepage])3����� ����������������FAQCM SupportBD^B������������s Go_WebFAQportport3����������������������Support ForumsD^B������������s Go_WebSupportport3����� ����������������Registerrter^BD^B������������sGo_WebRegisterort3����������������������Registerrter^BD^B������������sGo_WebRegisterort3����������������������Registerrter^BD^B������������sGo_WebRegisterort3����������������������Registerrter^BD^B������������sGo_WebRegisterort3����������������������Registerrter^BD^B������������sGo_WebRegisterort3����������������������(-g Reporter^BD^B������������s�Go_EmailBugReport3����� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:FFFFFFFFFFFFFF.{.{FFFFFFFFFFFFFF:���������))������))������))������))������))������))������))������))����5{��������ӡӡӡӡӡӡ����������������DFMEN4� Windowons������Setup Simulationsh����������Simulation_Open�������������������1����������������Simulation Library������������� List_Openssing_Open���������������2���������������� Setup Oceansontrols��a����? Flux_Openn_Temp_CreateKeywords����3����������������(-alyze Output������������������PostProcessing_Open��������������� ����������������Analyze Output�����������������PostProcessing_Open���������������4����������������(-age Browser  ���������������Info_iPhoto_Open������������������ ���������������� Image Browser  ��������������Info_iPhoto_Open������������������5����������������eJournalk Cleanup������������� InfoText_Open� �� ����������6����������������eJournal Libraryp������������� eList_Openen3� �� ����������7����������������(-ournal Libraryp��������������eList_Openen3� �� ��������������������������� Assignmentsionsyp������������� Assign_Openegions ����������8����������������Special Regionsyp�������������Go_SpecialRegions ��������������������������������������� f(�G;<������������������:131,26���������������������������������������v���ȯ��������������d����������������������������&������������ ������������������������W��������������W��������������W��������������W��������������W���������"��V�U ����������B�����������ᎆ�����������V������������V�e������x��A0��A���A@���5{������������7K75 ���.׮������������A���@��A�����������������������������������������������������{D��k�������!kk!��������JJ����������!1)11)111111)1)111)11)1111))����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{{{{{����k{{{{{{{{{{{{{{{{{{{{s���R{{{{{{{{{{{{{{{R���!k{{{{{{an addition ��~����������������������������������S������,@��D@�� ������%�����������ԃo�?{uDU@��P��l^������f����?0�����?0�����HH=# =# ���� *j��p|`p|%  ������ �� d|U ����|`p�������������������� ����������������������������������� փ_|U ����|`p�������������������� ��������������������������������������������������� ,Y|U ����|`p�������������������� ����������������������������������� T|U ����|`p�������������������� ����������������������������������� ؃O|U ����|`p�������������������� ��������������������������������������������������� .G|U ����|`p�������������������� ����������������������������������� B|U ����|`p�������������������� ����������������������������������� ڃ=|U ����|`p�������������������� ��������������������������������������������������� 07|U ����|`p�������������������� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� -k55999999999999911999999999999955-k%)������������%)-k55999999999999911999999999������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������DFMEN4j� Edit�|@������Undo�����������������T��������"Nl����� ����������Z����������������(-|����|���n�����f�f��������n=j��� ����������������Cuty�����"�"�i"�i@"��5{�Info_iPhoto_Copyht�""h���������X����������������Copy�����"�"�i"�i@"��5{Info_iPhoto_Copyht�""h���������C���������������Paste����������� '59+ ������Info_iPhoto_Paste�����������������V���������������Clear������p������������������������������������������������������ ���������������� Select All�p�����������������Select All������������������������� ����������������(-p'����p�����������������Select All������������������������ ���������������� Preferencesard��������������� Pref_Openl������������������������,������������������p'����p���������������� Select All������������������������A����������������A@��A ��t��������������������������������������������������������������������������������������������������������������������������DFMEN4Md� Image Browser������First�������������������Info_iPhoto_MFirstumb� ����������{����������������Previous����n����������������Info_iPhoto_MPrev�����������������[����������������Next�����^N>,^N>,^N>,^N>,Info_iPhoto_MNext=B����p���]����������������Last$������������A���A���AInfo_iPhoto_MLast���������������}����������������(-date�����p��t�j����������ձj��������t��8����������� ����������������Update�����p��t�j��������Info_iPhoto_Sync��8�����������U���������������� Import...��5{������������������Info_iPhoto_ImportImage����������I����������������zO`����r��Ι00o����������{����������͝��������������f>����������}��������������������������������������������������DFMEN4\� Edit�;4@���y������Undo���A���A���A����� ��� �� �Y( �����8�����������������������Z���������������(-������������nitemb"�"�i"�i�@""�"5��� ����*���������d��� ����������������Cuti���������@NP��������������p������������N���������X���������������Copy����������������������������Copy������������������������������C���������������Paste������p������������������InfoText_Paste��������������������V���������������Clear����������������������������������������������������������� ��������������� Select All������������������������������������������������������A���������������(-�������rarName""itemb"�"�i"�i@""�">,���������+������ ���������������� Preferencesard,^��� Pref_Open��O9nFd&���� &V���,�����������������������������d"3H9code to open/close sections in the toolbar, and show/hide����������DFMEN4C� eJournal����?������New������?��?����������A ��InfoText_NewRecord����P_���N���������������� Duplicate���n�� ����������InfoText_DuplicateRecord������D����������������Delete��Ā �|`����?��InfoText_DeleteRecord�������������R���������������� Permissions���p׬�����������InfoText_Permissions��������������P����������������(-ndrmation���p׬������������InfoText_FindDialog��������������������������������Find...tion���p׬����������� InfoText_FindDialog���������������F���������������� Find Againn���p׬�����������InfoText_FindAgaing���������������G����������������(-formation���p׬������������InfoText_InfoDialog��������������������������������Preview for Web...����������� InfoText_HTML���������������������J����������������Export for Webions�����Y���BInfoText_HTMLPathmg������Y���2���M����������������(-nk to Simulations�����Y���B�InfoText_LinkToSimg������Y���2��������������������Link to Simulations�����Y���BInfoText_LinkToSimg������Y���2���L���������������� View Links������������������InfoText_LinkOpen��5{�����������K��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������DFMEN4Qe�Mode2u@����������� Make Archive ������������������Simulation_MakeArchive������������ ���������������� Clear Status����n���������������Simulation_ClearCurrentDate������������������������ Clear Date������n��������������Simulation_ClearCurrentDate��������������������������] � windowProci��#�Simulation_ProcessID2�� p � windowProci��#�Run��������DFMEN4Y� Simulation$1p��������Newk\Unlockk/W!e<I�����5{����Simulation_FakeCreate �������N���������������� Duplicateckk/W!e<I�����5{����Simulation_Duplicatek �������D����������������Deletenlockk/W!e<I�����5{����Simulation_Deletelock �������\����������������Simulation Summary����5{����Simulation_ViewRundeck �������R����������������(-mulation Summary����5{�����Simulation_ViewRundeck ������������������������Open All SectionsI�����5{����Simulation_OpenAllSections�������]����������������Close All Sections�����5{����Simulation_CloseAllSections�������[����������������(-mulation Summary����5{�����Simulation_ViewRundeck ������������������������Link to eJournals�����5{����Simulation_LinkUnlock �������L���������������� View Linksk/W!e<I�����5{���� eList_Open_LockUnlock �������K����������������(-eak ScenarionH����������Simulation_MakeChiro���������� ���������������� Make ScenarioW!e<I�����5{����Simulation_MakeSennario �������M����������������Break ScenarionH���������Simulation_MakeChiro�������A���$����������������(-rmissionssions�q�������UAM_Perm_Dialog�q�������������������������������Permissions...ns�q������UAM_Perm_Dialog�q��������������p���������������� Lock\Unlockk/W!e<I�����5{����Simulation_LockUnlock �������U����������������(-port Test�I�q�������XML_Export��;R�q�������������� ����������������ImportRecord����������������� XML_Import������������������������I����������������ExportRecord�q������ XML_Exportt��;R�q��������������G����������������^��w�� ��,����b)��ӡӡӡӡӡӡӡP������w��w��,��I ���������ӡӡӡӡӡӡӡ����������`��I ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{����������5��@���<�����5��@��D��Y���E�����5��@���F������J�����5��@���K�����5��@��D��]���T�����5��@���U������Y�����5��@���Z�����5��@��D��f���c�����5��@���d������h�����5��@���i�����5��@��D��c���r�����5��@���s������w�����5��@���x�����5��@��D����������5��@��������������N��h��b����������b����������������N����m����������������N��s��~����������~����������������N����V����������N�������������� �����7а�Toolbar_Disclosure���N� ���7����7а��q�������itemhtnNumEnd���#�RunNumberArray@��N�#�Run_RunNumStart�#�Run_RunNumStatusd�#� RunDate��7����7а��NumScenMasts�#�Run_RunNumRunning�#� RunIDArrayR�#�Run_RunNumOnDis� JListl���������4Vx4Vx���������{M�����PSH����������������������������������������������������������������������������������������������������������������DFMEN4�Analyze��ePaste������Clear��������:l�����������?PostProcessing_Clear��������� ���D����������������Fill���������������������������PostProcessing_Fill�4Y+���������F����������������Extract������������������������PostProcessing_Create�������������E����������������Viewct Last 10 Years�����������PostProcessing_ViewastNYearss�����O����������������(-ew���������������������������PostProcessing_View�4Y+��������� ����������������Show Set���p��]�������� Sets_Open�����������$<�����S����������������Show Set���p��]�������� Sets_Open�����������$<�����S����������������Show Set���p��]�������� Sets_Open�����������$<�����S����������������fvp���acce���fvP���acce���fw���acce���fw`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ 9TrۍB ����������i] ������������������������������������������������������������������������������������������������RY`gnu| &/8AKT]gqz��������������������������������������������������������������������������������������!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8������������������������������������������DFMEN4� Library`� ������Find�������������������List_Find_MenuButton�� ����������F����������������Show All�c0���n�� List_ShowAll���������?�����������J����������������(-������������ ����������������Delete �?��f����0@ List_Deletee0���������������D���������������� Cleanup...s��p������! List_Cleanupions!������!���K����������������Permissions...p������!List_Permissions!������!���P����������������(-����������p������!�!������!!������!��� ����������������ImportRecord����������������� List_Import�����������������������I����������������ExportRecord����������������� XML_Exportt�����������������������G����������������������������������������������������������������������������������������������������������DFMEN4L}�File���jl������ Close Window��Generic_CloseWindoww�qa���W����������������(-it2Z ����Do_Quittabase���w�qa��������������������User Editor...��UAM_Editor_Open�w�qa���9����������������(-it2Z ����Do_Quittabase���w�qa��������������������Quit2Z ���Do_Quittabase���w�qa���Q���������������Quit2Z ���Do_Quittabase���w�qa���Q���������������Quit2Z ���Do_Quittabase���w�qa��Q���������������Quit2Z ���Do_Quittabase���w�qa��Q���������������Quit2Z ���Do_Quittabase���w�qa��Q�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{���������������N������e����������w���������������������������������������/���������������������������+�������C��/�������C��E����L�������C��Q�����i�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������k��������!cc!���������J{{J����������������������������������������������������������������������������������������������������������������������������������DFMEN4ZK�:79,6��Q_�������:131,27re`������QdQ`������Q_������������Q_�����������Y���������������:131,28tion�`Qdp��������MEN4Q�QaP�� ���p�X��������������U���������������:131,29rssQ`������PQdp������������Q`����Q_Qa��I�������������������Q`�������PQdp���������Q`���������������������������������������������DFMEN4m�Users p ��������New User...��N�����bAdUAM_Editor_NewRecord����6��N���N���������������� Delete Users...�n��������������UAM_Editor_DeleteRecord�����������D���������������� Save User�������2���������UAM_Editor_SaveRecord����� ���s��������������������"3H(the second sets the mode, the modes are:""��ce����������<���������d�d��������p��������������������������������������������������������������������������������������������������������������������DFMEN4�LibraryR� �$ ������Find����������������������bAd eList_Find�������������� �?�����F����������������Show All��������n���4���������� eList_ShowAllisclosurec��S���J����������������(- `�����5��@���i�����5��@��D��o���s������� ��������������������Delete]Run_UpdateList@# �R eList_DeleteHiera�ڡӡӡ���D����������������Permissions...pN��֔�������eList_Permissions7d$show/hide s���P����������������owsN�������������������������������������������������������������������������������������������������������DFMEN4A�Trend m����������CO2�������������������bAdSimulation_TrendCO2��������4��������������������N2O�����s���n_ProcessID�Simulation_TrendN2O�����������������������������CH4<P�����������������������Simulation_TrendCH4��������������������������������CFC11�7d9code to open/close seSimulation_TrendCFC11 and show/ ��������������������CFC12�� ��p^����Simulation_TrendCFC12�����������������������������Solar������������������������Simulation_TrendSolar��������������������������������������������������������������������������������������������������������������������������DFLIBA��� xDQ"zxxM"rL����������������������������������DFCC4DN� <�F���4��'��&��b$.Show about box for EdGCM through a dialog box.$���������������b$������� �����������b$ input ���� �����������b$ none p_���� ��������0001b$ output00���� ��������EMakb$ none r��.�����������TAT  @width�@heightD� S�J���8�������� @% @�@�������� @ 4D_versionD� @ EdGCM_version�12��������������������"�����������TAT b$ set stringsD �&����������� @ vs4Dversion@23���������������� @ 4D_versionDw�4th Dimension ��@�  @�  @�  @ vs4Dversion�@�?��������@�@�������������w�.��@ vs4Dversion!@�@��������"��w�.��@ vs4Dversion!@�@�������"�H���6��������� @ EdGCM_versionw� EdGCM 4D ��#@VersionOfEdGCM�����������������������������������������$���������������b$ setup window���8���&������������@�7 @������w�AboutBox�������H���6������������@width @��@�@���������@�@�����������J���8��������-� @height� @��@�@���������@�@�����������~���l�����������@� @width�@height��@width��@�@��������@height���@�@�������$@�"��w�About����.��������������@� w�About EdGCM 4D����������������������$���������������b$ do the dialog���2��� ������������@�( @������w�AboutBox��������������������@����0���������������@ @OK�8@�?�����������&��������������� @��@�?�������������������������@���&��������������� @��@�����������������������������@���������������������sID����,��������������@#@Pref_ProcessIDzDFCC4D9�E9h�b���P��'��&��b$JDisplays an alert and returns the OK value. This loads the appriate dialogum�^���L����"����b$Gand does all the string replacement to set the message. Remember to set���d���R�������b$Lthe ParamText if you want dynamic messages. Note that two buttons are always@���f���T��������scalb$Nshown for alter types 1-3 while the others may vary. A future version of EdGCM�d���R����P����b$Lcould show or hide buttons as the number of AlterButtons is specified almost@E�$�����������TAT b$ all the time. ������������TAT b$�IM���� �������� b$ inputk_�z���h��������0001b$Q AlertType, 1=Note, 2=Caution, 3=Stop, 4=Scale, 5=Lock (UAM), 6=Quit (XML), 7=Exb$ tend (Setup) 00�8���&��������EMakb$! AlertNum, error message to load04�z���h������������b$Q AlertButtons (optional parameter), 1=OK/Cancel, 2=OK, 3=Cancel/OK, 4=OK Cancel b$ (no default)n������ ���������t�)b$ output�`�J���8���������T�ib$2 OK?, returns the ok value as a longint (1 is ok) �a�F���4����������} @��� @�� @��@ AlertType�@AlertNum$���.������������"�@ @�8@�@���������� �0���������������@ @��@ AlertButtonsl����(������������t�i@ AlertButtonsl @��t������������� � @� �6���$����������@% @�@��������@AlertStr$��� ������������e�r@ @pos���$���������������@ AlertType @����$������������t�)@AlertNum$ @��u��������������T�i�t�&�������������}b$Get the strings��P���>���������"�@AlertStr$ @GetListItemStr #@ AlertList�@AlertNum$���6���$������������@pos@� w�;�@AlertStr$����`���N������������#@ AlertTitleA@�  @AlertStr$�@�?��������@pos�P@�?�����������N���<������������#@ AlertText@�  @AlertStr$�@pos��@�?������������������������������*���������������b$do the subsitutionH���h���V������������#@ AlertTitleA@� #@ AlertTitleA�w�^0�#@AlertParamText�@�?�����������d���R������������#@ AlertText@� #@ AlertText�w�^0�#@AlertParamText�@�?�����������h���V������������#@ AlertTitleA@� #@ AlertTitleA�w�^1�#@AlertParamText�@�@������������d���R������������#@ AlertText@� #@ AlertText�w�^1�#@AlertParamText�@�@������������h���V������������#@ AlertTitleA@� #@ AlertTitleA�w�^2�#@AlertParamText�@�@������������d���R������������#@ AlertText@� #@ AlertText�w�^2�#@AlertParamText�@�@������������h���V������������#@ AlertTitleA@� #@ AlertTitleA�w�^3�#@AlertParamText�@�@�����������d���R������������#@ AlertText@� #@ AlertText�w�^3�#@AlertParamText�@�@������������������������������$���������������b$ do the dialog������������������@� @��@�@���������P@�@��������@��@�@���������P@�@��������@��@�@����������@�@��������@��@�@����������@�@��������$@�'��w���wX Open a modal window������������������@���@���.������������@ @ AlertType�8@�?��������wXnote���2��� ������������@�( @������w� AlertNote����B���0������������@ @ AlertType�8@�@���������wXcaution���6���$������������@�( @������w� AlertCaution����@���.������������@ @ AlertType�8@�@���������wXstop���2��� ������������@�( @������w� AlertStop����@���.������������@ @ AlertType�8@�@��������wXscale���4���"������������@�( @������w� AlertScale�����F���4������������@ @ AlertType�8@�@��������wX lock (UAM)T���2��� ������������@�( @������w� AlertUser����F���4������������@ @ AlertType�8@�@��������wX quit (XML)T���2��� ������������@�( @������w� AlertQuit����F���4������������@ @ AlertType�8@�@��������wX quit (XML)T���4���"������������@�( @������w� NewEndDate��������������������@���2��� ������������@�( @������w� AlertNote�������������������@���<���*������������@��� No longer need the modal window������� ������������ @�� @OK��ache manager now starts in it'DFCC4D 6�,r�6���$��'��&��b$Setup the alert manager package��P���>����l�scalb$8This package emulates the features of the System 7/8/9/Xke�V���D��������scalb$>dialog manager so that I can show better alerts. Like the realw�X���F�����������b$@manager I replace ^0..^3 with the strings set in the param text.����f���T����F����b$OThe errors are stored in the list "Alerts" as <title>;<text> with ^0..^3 placedD�6���$�����������b$for dynamic string replacement.������������������b$������� ��������TAT b$ input MM���� �������� b$ none k_���� ��������kZo{b$ output���� ��������TAT b$ none MM�(����������� # AlertTitleAw��0 �&�����������#@ AlertTextw���>���,��������#@AlertParamTextz�@�?�������w��)�>���,��������kZkZ#@AlertParamTextz�@�@��������w��J�>���,��������111#@AlertParamTextz�@�@��������w���>���,��������#@AlertParamTextz�@�@�������w����4���"�����������#@ AlertList@ w�Alerts����PostDefaultSetzw�lDefault Variables��� ���DFl��0l���Q�eEva������������������@��������������DFl��L�w���������@������������������@���L���:����DFl��<�w���@�@���������@error�@�@��������DFl��x�7���@#������������������@����������������DFCC4D�,, ����������(]������������������������DFCC4D@����������������������������������������������������DFCC4D�OK*�V���D��'&��&&��gS>Scan through the images folder and see how to adjust the cacheB�V���D��������#��S>to match what's on disk. This code collects more info than the���V���D�����������S?images or output scan code to match the information avalible in���T���B������������S=the image browser. The CM_Image table store the info since it���Z���H�����������SBis different. A second table CM_Fat stores the thumbnails to speedI�0��������������Sloading a sorting records���(�����������OS 1, set semaphore^�P���>���������S9 2, scan folder and determine which files are image files���X���F��������SA 3, delete records for files in the database that are not on disk��V���D���������S> 4, add records for files on disk that are not in the database���D���2���������S, 5, add thumbnails to CM_Fat for the images ���*������������S 6, clear semaphore���L���:����������%@�@�������� @imagesFolderPath�@tempPath$�P(�D���2��������@@imagesFoldersCountc�@imagesFileCount����J���8���������@�@�@�������� @ imagesFolders�@���������������H���6��������� @�@�@�������� @ imagesFiles�@���������������������������H4���(���������������Sset the semaphore���8���&��������@���@worksc@�w�l$CM_ImagesScan��������������������@����� ������������Ssetupf�H���6��������� @imagesFolderPathc @ PM_FindFolderw�lImages���@���.�����������@ @imagesFolderPath� @ imagesFolders���B���0�����������@imagesFoldersCountcc@ @ imagesFolders����@���.������������@@imagesFoldersCountc�c@����������������������������������:���(������������S"remove records for deleted folders���V���D������������ @CM_ImagesInvalidate� @ imagesFolders��@��� ����@�� ������V���D������������ @CM_ImagesInvalidate� @ imagesFolders��@��� ����@�� ������������������� ���*��������������Sprocess each folder���D���2�����������@@i�@�?��������@imagesFoldersCountc����f���T������������@tempPath$c @ PM_MakePath @imagesFolderPath8� @ imagesFolders�@i�@�����N���<������������@ @PM_DocumentList�@tempPath$�� @ imagesFiles�����p���^������������ @CM_ImagesScanFolder� @ imagesFolders�@i�� @ imagesFiles�� @imagesFolderPathd�������������������@������������������@������������������@����������������������@���.������������S(cleanup, update toolbar, clear semaphore���4���"������������#@CM_UpdateImagesc@�?����������.���������������#@CM_Priv_ScanImagescc@����.���������������@�w�l$CM_ImagesScan����.�����������@I#@Toolbar_ProcessID��@���.��������@#@InfoPict_ProcessIDc�c@���������������B���0���������%@@J#@InfoPict_ProcessIDc����$@� ��34�4���"������������#@InfoPict_Buttonc@�@����������0���������������@I#@InfoPict_ProcessIDc�������������������@������������������@����������������������DFCC4D�t�q� ��������� List_Open���.�����������I~#List_ProcessID~~������������������������������DFCC4Ds4"�H���6����+��"0/Convert a click on the LinksList into a search "������������������*���������������]]]�]@$]��]]�8���&����������] LinksList�]@]�����������]]���D���2������������ SearchWord�] ] LinksListWord] ] LinksList]]���D���2����������� FieldList] ]LinksListField] ] LinksList]]e �D���2������������ SearchType�] ] LinksListType] ] LinksList]]ou�*�������OP��� InfoText_LinkSearchp��������OP������������OP����������������������������������������������������������DFCC4DR�,�bK�V���D�������8<Copy an image to the clipboard with the special info I need \��(�������@�����-� selection���&�������������curRecl���*�������"����\� clipCustomcp���������������B ]�<���*������������8"check that it's a valid selection ����&��������������� selection�����<���*�������'� selection�@$��� ���V���D���������8=same code as InfoText_DragAndDrop treat like start of a drag �sk�8���&��������#�DragTransferPict� selection���R���@���������89to find the current selected record I have to be smarter ����0������������curRecl������ ��]�<���*������������������ ��#�PictInfoToolbarRec���H���6��������ff#�DragTransferFilename��?���������� ������H���6����X�����#�DragTransferFilename��@����������� ����&�������X�����value��� ���ch�@���.����X����� foundPreviewo���� ���value ��@���.����X������ foundPreviewo�@�@��?�������w �6���$����X���������� ��� foundPreviewo o�4���"����X����#�DragTransferCaption��� ����H��������X������t �4���"����X�����#�DragTransferCaption��� ����F��������X�e co��er�0�������X�2��������� ���curRecl��������������f��ho�@���.���������8'setup the blob to put in the clipboard ����J���8���������^� clipCustomc��@���������������������������������3333ho�,������������8set the clipboard ^�E@�*���������������� � selection f�6���$������������\�4Dim� clipCustomc��������������������il������������������������������DFCC4D�,�z�`���N��&\��%\��gSIDuplicate a record in the database and add it into the list. This versionfn�^���L��������SGuses the revised rules described by Mark on 3/25/5 to replace the older���b���P������������SKrules. The rules are as follows, with lowers rules having higher precidence�����������������S�o��<���*�����������S%Duplicate all field values by default�������������aaaaS��$���������������S RunID field:���D���2��������0001S,1)On NEW or DUPLICATE: Enter uniq"RunID5092"14������������EMakS�ia�(���������������SRun label field:����4���"���������� S2)On NEW Run label should be:�e�L���:��������� �aS4"YOU MUST TYPE A SHORT DESCRIPTION OF YOUR RUN HERE">��b���P����������SJ3)On DUPLICATE add"Copy of:"to front of Run Label(remove last 8 characters�a�$������������i�aS if necessary)�����������������S����&������������� SComments field:�a�8���&��������� �aS!4)On NEW blank the field entirely�u�:���(����������S"5)On DUPLICATE place"Copy of Run:"� �������������i�aS��s�h���V������������SQThis version now uses semaphores to ensure that the arrays don't change under it.�@������������� �S��[���� ���������)�S input�r�f���T����������)SO (optional) boolean, is the code running in new mode instead of duplicate mode�l�D���2����������S- (optional) string, default name for new run� ���� ���������a�b1 @���s�>���,����������E@%@�@�������� @��@ inRunNumber��B�"������������a�n@1@isNew��n�.���������������@@�>@���������������$������������l�iS C_BOOLEAN($1)�f� ������������n�N@isNew> @���������������:�=@�� ������������e�w@isNew>@��e��������������@�[�.������������s�t@@�>@�?���������d�4���"���������l� SC_STRING(19;$2;$inRunNumber)� �&�������������@ inRunNumber> @�� �������������� @��&������������ �a@@ArrayNum$��t�L���:����������@%@�@��������@ NewRunNumbere�@ OldRunNumberl��c�6���$���������i�a@%@�@��������@OldLabel$��`�"�������������`@@dummy��f�:���(���������o�d@� @ modelandgridd�@�@����������a���������������:�=���� ������������Ssetup�(�����������>� @Run_Critical_Begin> ������������������&���������������Slocate in array���0���������������@ArrayNum$>@�@���������,���������������@ OldRunNumberl>@�������(���������������@OldLabel$>@�������:���(������������@@ArrayNum$�>�>`@�?�����������D���2������������@ArrayNum$>@�#@ RunIDArrayR�@ArrayNum$�����������������������.���������������Scleanup existing record���*����������� @Simulation_SaveRecord�0�����������SRunArray_ChangeRunNumber ))��������������0�����������Sduplicate and update name��"���������������@�@���������"���������������@�@����������������������������:���(������������S"if passed a run number then use it���.���������������@@�>@�?�����������2��� ������������@ NewRunNumbere>@ inRunNumber������������������@���.���������������Screate a new run number���\���J������������@ NewRunNumbere>w�lRunID�>�@� @�@�������wO8 use sequence>������������������@���X���F������������SAgenerate unique run number if I can't use the name I've generated���f���T������������@@�#@RunNumberArrayz�@ NewRunNumbere�@�?���������>@���������������x���f��������.@ NewRunNumbere>@�@ NewRunNumbere�@�@��������@�@���������>�@� @�@�������..�������������� @�$�,���������������@����>@ NewRunNumbere����������������������$���������������S update status���*���������������@�m���>@�������������� ���������������@����>@�����������������������2��� ������������Supdate other random fields���4���"������������@����>@�fw�l 00/00/0000����� ���������������@�v���>@�!���"���������������@����>w�l�>����������������������&���������������Sactions for new��� ���������������@@isNew����&���������������Sactions for new���T���B������������@����>w�l2YOU MUST TYPE A SHORT DESCRIPTION OF YOUR RUN HERE���"���������������@�|���>w�l�>������������������@���,���������������Sactions for duplicate���b���P������������SK[Model Variables]Label:="Copy of : "+Substring([Model Variables]Label;1;51)������x������������SQ[Model Variables]Description:=[Model Variables]Description+Char(Carriage return )S+$OldRunNumber+": "+$OldLabel���`���N������������@����>w�l Copy of : ��>�@� @�����@�?��������@�@�����������"���������������@�|���>w�l�>������������������@����������������������:���(������������S#update model & grid (don't do this)���:���(������������ @GetModelAndGrid @ modelandgridd���� ���������������@@isNew����t���b������������SQIf (modelandgrid{1}<4)`force model to be 1.0.7 if is it is older, and set grid Sto 8x10���b���P������������@����> @GetListItemStr>#@ ModelNamesRef�@�@��������wO8 model 1.0.7���b���P������������@����> @GetListItemStr>#@ ModelGridsRef�@�@���������wO8 grid 8x10x9������������������@����������������������N���<������������S7change subrecords so that the current user is the owner���"���������������@�m@��������:���(������������@@�@������>@���������������"���������������@�`@��������"���������������@�m@�����������������������@���"���������������@�H@��������*���������������@����>#@UAM_User����������������������@���.������������S)update the run list using the Run Manager���D���2������������S-Run_ID_To_Select passes the run ID to select���*��������������� @Simulation_SaveRecord���&���������������#@ Run_CheckDB>@����(���������������#@ Run_DirtySets>@����8���&������������#@Run_ID_To_Select>@�@���������:���(������������#@RunListReinitToolbar8>@�?����������2��� ������������ @Simulation_LockUnlock@������������������������>���,������������S'update the library if it is open (list)���8���&������������#@InfoText_ProcessID>>@��������������,���������������@I#@List_ProcessIDz�����������������������*���������������Supdate the details~���N���<������������@�w�lSetup Simulation, Run ID: 8�>�@ NewRunNumbere����,���������������@I�>`@�?�����������.��������������@I#@Toolbar_ProcessID�������������������@������������������������� ������������Scleanup���&��������������� @Run_Critical_End��������DFCC4Dk �#�d���R��&"��%"��gSMSetup the model to run for the currently selected run. This involves a lot of���d���R���������SMcopying files from input folders into the run folder and a rundeck. This code���b���P����x�scalSJreplaces the setup script used on Unix, except for the compile part. Since/�`���N��������TAT SIthe model is staticly compiled in EdGCM there is no need to interact withdy�b���P�����������SJPro Fortran. This version of the code uses Cache Manager to find the files�N���<��������0001S7and improves error checking and cross platform support.00������������EMakS�ia���� ������������S input������ �������S none� ���� ������h� S output��J���8�������S2 true if everything worked and false if it didn't�r����������i�nS��P�����������Svar�l���� ����������1 @������T���B��������@%@�@��������@ outputPatho�@ inputPath�@filePath$������� ���������@- @��ap�&��������� @@ error_num����$������������@2@docrefn����:���(�����d@%@�@�������� @ RundeckTitlen�e�8���&���������@%@�@�������� @ RundeckDesc���J���8���������@�@�@�������� @ RundeckErrors�@�@�����������(������������@@listRef� @s���$������������@@listLen����(���������L@@ listItemRef����(������������@1@ allFoldersa�� �H���6���������@�@�@�������� @ folderNames�@�@������������P���>���������@�@�@�������� @folderSpecialNames>�@�@������������6���$���������@� @ modelgrid�@�@����������������������������"��������� S basic setup���.������������@ error_num>@��������������@���.��������@listRef>@w�lSetup Critical Errors���0��������KK�@listLen>@|@listRef���V���D��������@z@listRef�@�?��������@ listItemRef� @ RundeckTitlen����T���B���������@z@listRef�@�@���������@ listItemRef� @ RundeckDesc��������������������(������������Scheck model/grid����6���$��������� @GetModelAndGrid @ modelgrid��������������������B���0���������@ outputPatho> @ PM_FindFolderw�lOutput����>���,���������@ inputPath> @ PM_FindFolderw�lInput����4���"���������@@�����w�l All Folders����&������������@ allFoldersa>@����>���,���������@@��� ���@�� ���@�?�����������2��� ���������@S@�� ��� @ folderNames������������@�&�������� ))@ allFoldersa>@�))�@���.������6 @ folderNames�@�?�������C>w�lDefault+%�<���*��������� @ folderNames�@�@��������C>@�������������������@�������������������d���R���������@@ @ PM_MakePath@ inputPath�w�lDefault�@������@���������������>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@������p���������@@ @ PM_MakePath@ inputPath�@�����@������@��������������@ allFoldersa�@�����>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@���@���.���������@@@ outputPatho����@���������������>���,���������@ error_num>@�?��������>�@ error_num���|���j�����9 @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�������� �������������@���b���P���������@@ @ PM_MakePath@ outputPatho�@�����@����@���������������>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@�������������������6���$���������@@ error_num�>@���������������$������������S report errors���j���X���������@� @ RundeckErrors�@ error_num�>�@�?��������@�@��������>`@ error_num����&������������Serror dialog ���>���,���������@�7@������w�lRundeck Errors������������������@�@��>`@�@��������� @�@���������@��>`@�@��������� @�@����������>`@�?���������>`@�?���������>`@�@ �������w�l�>����8���&���������@�(@������w�lRundeck Errors����������������@������� ��������� @��>@��������������������������������@���D���2���������S-if there are no critical errors then continue���.������������@ error_num>@��������������������������������� ���������Ssetup���$������������@y@listRef����>���,���������@listRef>@w�lSetup Folder Errors����0������������@listLen>@|@listRef����V���D���������@z@listRef�@�?��������@ listItemRef� @ RundeckTitlen����T���B���������@z@listRef�@�@���������@ listItemRef� @ RundeckDesc��������������������*������������Screate run folder ���B���0���������@ outputPatho> @ PM_FindFolderw�lCurRun����(������������@@ outputPatho����F���4���������@ outputPatho> @ PM_FindFolderw�l CurrentRun�����:���(���������@@@ outputPatho����$@������>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@���0������������Sthis creates the rundeck��������������������>���,���������S&save a namelist file (FOR110.DAT file) ���J���8���������@position$>@�w�lLabel and Namelist:�@��������6���$���������@@position$�@���������������>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@���R���@���������@position$>@position$�>�@�w�lLabel and Namelist: >����D���2���������@temp_name_listz>@� @�����@position$����V���D���������@filePath$> @ PM_MakePath@ outputPatho�w�lfort.110��@�����2��� ���������@docrefP>@ @filePath$����0������������@ @OKl���@�?�����������>���,���������@ error_num>@�?��������>�@ error_num���|���j��������� @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@�����������������������@���2��� ���������@@filePath$�w�lR*ch����2��� ���������@#@ PM_Platform�$@������j���X���������@temp_name_listz>@�@temp_name_list>�@�Z$@��&��@�Z@�@������������������������@���@���.���������@temp_name_listz>@@temp_name_list>����������������@���8���&���������@�g@docrefa�@temp_name_listz����$������������@ @docrefa��������������������2��� ���������Ssave a regular rundeck file���\���J���������@filePath$> @ PM_MakePath@ outputPatho�@�����>�w�l.R@�@�����2��� ���������@docrefP>@ @filePath$����2��� ���������@@filePath$�w�lR*ch����2��� ���������@#@ PM_Platform�$@������.������������@�g@docreft�@��������������������@���6���$���������@�g@docreft�@@���������������������@���$������������@ @docreft��������������������@���.���������S(save the rundeck for the rest of the run���2��� ��������� @Rundeck_Createz@��@�����.������������@temp_name_listz>@�������Z���H���������@filePath$> @ PM_MakePath@ outputPatho�w�l fort.110full>�@�����2��� ���������@docrefP>@ @filePath$����2��� ���������@@filePath$�w�lR*ch����2��� ���������@#@ PM_Platform�$@������j���X���������@temp_name_listz>@�@temp_name_list>�@�Z$@��&��@�Z@�@������������������������@���@���.���������@temp_name_listz>@@temp_name_list>����������������@���8���&���������@�g@docrefa�@temp_name_listz����$������������@ @docrefa��������������������2��� ���������S creates the output folders���J���8���������@ @ PM_MakePath@ outputPatho�w�lacc�@������L���:���������@ @ PM_MakePath@ outputPatho�w�locean�@������J���8���������@ @ PM_MakePath@ outputPatho�w�lprt�@������J���8���������@ @ PM_MakePath@ outputPatho�w�lrsf�@����������������������4���"���������Screate the diagnostic folders���f���T���������@filePath$> @ PM_MakePath@ outputPatho�w�l diagnostics_>�>�@�����@�����&������������@@filePath$����X���F���������@ @ PM_MakePath@filePath$�w�ltables_�>�@�����@������V���D���������@ @ PM_MakePath@filePath$�w�lmaps_�>�@�����@������X���F���������@ @ PM_MakePath@filePath$�w�lplots_`�>�@�����@������Z���H���������@ @ PM_MakePath@filePath$�w�l vertical_�>�@�����@����������������������.���������������Scopy the actualy model���F���4������������@ inputPath> @ PM_FindFolderw�l Applications>����P���>������������@ inputPath> @ PM_MakePath@ inputPath�w�lModel�@�������������������������������������������`���N������������SIcopy the model requested, check if using version 1.0.7 of the model first���z���h������������@ @ modelgrid�@�?�������C� @�@��������wO8-model version 1.0.7 and later start different���H���6������������ @Setup_RunLunarz@ outputPatho�@ inputPath�������������������@����������������������@���.���������@#@ PM_Platform�$@���wO8 Mac model���^���L���������@filePath$> @ PM_MakePath@ outputPatho�@�����>�w�l.app�@���H���6��������� @Setup_RunModelMac@filePath$�@ inputPath�����������������@�"������������S error check��H���6���������@@@filePath$����$@���wO8 package app�>�>���,������������@ error_num>@�?��������>�@ error_num���|���j������������ @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@��������������������������@ e�"���������������@�� PC model>��^���L������������@filePath$> @ PM_MakePath@ outputPatho�@�����>�w�l.exe�@�����N���<������������S6$filePath:=PM_MakePath ($outputPath;"model.exe";False)0������������������@ @ PM_MakePath@ inputPath� @GetListItemStrz#@ ModelAppsRefo� @ modelgrid�@�@��������C��>�w�l.exe�@���@filePath$���������������������"���������������S error checkEr�L���:������������@@@filePath$����$@���wO8single file app���>���,���������� @ error_num>@�?��������>�@ error_num�a�|���j���������h�" @ RundeckErrors�@ error_numC>@� @ error_num��>� @GetListItemStr>@listRef�@�@����������������������V�a@ i�������������e�c@��������������`@ a�������������e�v@�������������A�R@S������������9@99���������������&@�&���������������Sdisplay results?�6���$������������@@ error_num�@��������������(���������������Severything worked������ ������������ @��>@�������������������@�,���������������Ssomething went wrong>���*���������������Scleanup array listor�j���X������������@� @ RundeckErrors�@ error_num�>�@�?��������@�@��������>`@ error_num����&������������h�eSerror dialog ke�>���,������������@�7@������w�lRundeck Errors���������������������@�@��>`@�@��������� @�@���������@��>`@�@��������� @�@����������>`@�?���������>`@�?���������>`@�@ �������w�lAlert���� ���������������@�w�l�>����8���&������������@�(@������w�lRundeck Errors����0���������������Sdelete the failed folder����F���4������������@ outputPatho> @ PM_FindFolderw�l CurrentRun�����:���(������������ @PM_RecursiveDelete>@ outputPatho������� ������������ @��>@�������������������@������������������@������������������������� ������������Scleanup���$���������������@y@listRef����*���������������@�Y @ RundeckErrors����*���������������@�Y @ RundeckTitlen����(���������������@�Y @ RundeckDesc�������������������������������������������������DFCC4D1�~�\���J�� �� ���7dCLoad an image from the thumbnail folder based on the current record��F���4������������7d-and the item in the ItemName array pointed to�� ������������7d input���D���2���������7d* item in the ItemName array to use, 1..80����&��������������\ ����k��um���� ���� z�����\k ������������������������������*������������������� 4D:��>���,������������7d%check that there is something to load����H���6�������� 4D:\�� �ItemNameI�k����?������������@���.������������7d'get the image from the preview database���2��� ��������????\value �ItemNameI�k�@���.��������@\ foundPreviewo���� ����value���<�@���.����T�����\� foundPreviewo������?����������6�6���$��������4_li\����� ���� foundPreviewo�����4���"������������ \ItemPictI�k}��� ����������������\\�8���&���������L�7dblanks for unused pictures �����F���4���������\5�� White Missing� �ItemPictI�k}���������������\\����������������\\�0����������������7dblank for no record �rN�B���0������������\5�� White 128� �ItemPictI�k}��-������������� 2\\������������DFCC4D'�r!�N���<����������85find the list of folders in the input folder for the ����N���<����������84popup menu of potential input folders. Then set all x����R���@�������������89the related menus which really hang off the input folder ��� ������������8menu. ���������������������� ���������8var �����>���,�������������%x��@�������x�input_pathnamexxx���"���������������x�lenxxB�L���:�����������x��@�������x � inputFolderspx������������xxw������������==x���>���,�������������8%use cache manager to get folder list ����@���.�������������x���� ��x��� ���x@��?�������xxq�6���$��������{{�Sx��� ��x � inputFolderspxx����������������x���*����������������8add extra items x��F���4������������lenx�x � inputFolderspx�x�@��?�����������D���2��������www��x � inputFolderspx�lenx��@��������xx�6���$����������� � inputFolderspx�lenxx\�-\���R���@�������� � inputFolderspx�len�x�@��?�������xx\� All Folders\���V���D��������prin � inputFolderspx�len�x�@��@��������xx\�Update Folders\������������ <\�,�������<��=�8setup other menus ^�?p�4���"����<���$ �Simulation_InputMenuSetOthers���������������������������������������������������DFCC4D�,�B���0�� �� �� �7d*handle all the form events for the Journalpt�(��������������[� info_button�������������������M������������o:Pa[al�(������������)�[���$�����n�"�������������; [ InfoText_Load� �(�����������[���$�������:���(���������� [InfoText_SaveRecord��������������o�(������������)�[���$��� ��n�4���"����ʺ�����[ info_buttonB#�InfoText_Button��4���"����ʺ�����#[InfoText_ButtonB����������������������ʺ�����[�D���2����ʺ�����[� info_button����?��������create���(�������������� [InfoText_NewRecordd��F���4������������[� info_button����@��������� duplicate���.�������������� [InfoText_DuplicateRecord����D���2������������[� info_button����@���������delete���*��������������� [InfoText_DeleteRecord��J���8�����������[� info_button����@�������� html previewu���"��������������� [ InfoText_HTMLon�B���0�����������[� info_button����@��������infoB���(��������������� [InfoText_InfoDialog��F���4����r����[� info_button����@��������sections���$�������r� [InfoText_Count@���H���6����r�[� info_button����@�������� edit links��R���@����r� [InfoText_LinkDialog��?�����������������������H���6����r�[� info_button����@�������� view links�&�������r� [InfoText_LinkOpen�L���:����r��5[� info_button����@��������export for web`�=�(������������7dInfoText_WebListB��*����������� [ InfoText_HTML�(l���L���:��������????[� info_button����@��������full page view`77������������[���F���4��������[� info_button����@�������� safe save�N���<��������Yk:k[����$SafeSaveInfoText���@�������������R�:���(�������� [InfoText_SaveRecord��������������0�����������%)[���$SafeSaveInfoText��������������[A�H���6�������� [Alert_ParamText����������������������B���0������� [ Alert_Alert��@�����������@����������e����������)�[��������������E�n[�*����������� [InfoText_ChangeRecord�������������,M[���������������[I��������DFCC4D; r�4���"��'&��&&��gSHandle the input folder menu���`���N�����������SIthis does all the work of loading the input files for all the other menus������������������M�"���������������@item�nu��������������0������������EMak@ S�(���������������@@�$@������.��������������� @Simulation_InputMenuInit���(��������aaaa@@�$@����H���6���������@@������� @ inputFoldersp� @ inputFolderspX����.���������������Supdate the folder list���T���B������������@ @ inputFoldersp� @ inputFolderspX�w�lUpdate Folders����8���&������������ @ CM_Rescan@��@��@�������.��������������� @Simulation_InputMenuInit���>���,������������@itemlc@� @ inputFoldersp�@��������6���$����������@@item���c`@�?��������_�2��� ������������ @ inputFolderspc@�����������������������������@���,�������������� @ inputFolderspc@itemt������������������@��������������4@���<���*������������S%update the file list and the databaseI�@���.��������@���@����c @ inputFoldersp� @ inputFolderspX���2��� ������������ @Simulation_InputMenuSetOthers������������������@��������������� @������������������@��������������������������������������DFCC4DJb�R�*�����'A��&A��gScreate a new recordT#���� ��������@i��_���������n�����:���(������������ @InfoText_SaveRecord@�?�����������"��������������@�D@���������*��������������@����@�?����������2��� ������������SnfoText]Title:="Untitled"���2��� ���������� S[InfoText]Author:="Author"� �F���4���������8�0@����w�leJournal���@� @�@���������<���*���������l�L@@i�@�?��������@�@���������o�6���$������������ @ItemListI�@i@�����������������������������@��<���*������������@@i�@�?��������@�@����������.�������������� @ItemNameI�@iw�l���0��������������� @ ItemCaption�@iw�l���������������� @���(���������������@�Y @ SearchListe����&�����������d@�Y @ LinksList��*���������������@�Y @ LinksListType����.���������������@�Y @LinksListFieldNum����.���������������@�Y @LinksListTableNum����H���6������������@�@�@�������� @ SearchListe�@������������� �F���4���������L@�@�@�������� @ LinksList�@���������������:���(������������@� @ LinksListType�@���������������>���,������������@� @LinksListFieldNum�@���������������>���,������������@� @LinksListTableNum�@���������������J���8������������@�@�@�������� @ LinksListWord�@���������������~���l������������ @Store_Variable_Blob@����� @CurrentItemVers� @ItemListI� @ItemNameI� @ ItemCaption���������������� @Store_Variable_Blob@����� @CurrentLinksVersl� @ LinksList� @ LinksListType� @LinksListFieldr� @ LinksListWord�w �"���������������@�H@�!������*��������������@�!���#@UAM_User���"��������������@�5@���������,�������������� @InfoText_JournalListAdd���(��������������� @InfoText_LoadRecord������������������������������������������������DFCC4D(�I�S�`���N������������8FAdd records to the database for files that are not already contained. ����\���J������������8CRemove records in database where there is no file. Create previews ����d���R���������8Kfor new files and import descriptions if the exist. This code is different �mN�b���P���������8Ifrom the old image browser cache which left the previews in file format. ��d���R���������8JI'm going to trade database size for speed. Each file is checked for type ��in�2��� ������������8and against the database �� ���������������8 input �ks�0���������������8 ptr to folder name ���.�����������3333�8 ptr to file names ����.���������������8 ptr to folder path ����l���Z������������- �� �� ��� folderPtr�filesPtr$� folderPathPtr� fileTypesPtri�F���4����������cmCount� fileCount�fPosC�pos�J���8����������������@�������� cmFilenames�������������L���:����������������@������� � fullFilenames������������@�>���,���������������cmRecordNumbers���������������4���"�������������%��@��������value�*����������������� foundImagef�&���������������� folderPtr �����&����������������filesPtr$ ����*���������������� folderPathPtr �����������������������<���*���������������filesPtr$ � fullFilenamesFo�t���b������������� fileTypesPtri �CM_InputScanFilenameToType��filesPtr$� folderPtr� folderPathPtr ��L���:������������ �CM_ImagesScanQTType�filesPtr$� fileTypesPtriې�P���>���������������filesPtr$� fileTypesPtri � fullFilenames�L�������������������$����������������8 do queries �/�@���.����������������� ����� ���@� folderPtr���0����������������cmCount��L���� ��th�8���&������������� fileCount��filesPtr$ld������������������.����������������8scan for duplicates ����6���$��������������cmCount�@��������������������������������(����������������8build and sort �v�R���@���������������� ��� cmFilenames���� ���cmRecordNumbers�N�>���,��������������� cmFilenames�cmRecordNumbers���P���>���������������filesPtr$� fileTypesPtri � fullFilenameser�,����������������fPos��?�����������������������������^���L�������������8Escan both arrays, move the mark down as files are matched to records ����:���(��������������i��?��������cmCount���V���D�������������pos�� � fullFilenames� cmFilenames�i�fPosl�2��� ��������������pos�@��������������*����������������8mark found files �dd�4���"�������������filesPtr$�pos\�~\���6���$�������������fPos�pos��@��?��������th�,����������������8mark found records ����2��� ������������� cmFilenames�i\�~\���"����������������8 breakout �st�2��� ��������������fPos�@� fileCount���6���$�������������i�cmCount��@��?���������������������������v������������������������������������������������������������������������������0����������������8add records & previews ����<���*��������������i��?�������� fileCount ��:���(��������������filesPtr$�i�@\�~����������������� �CM_ImagesScanAdd�filesPtr$�i � fullFilenames�i� fileTypesPtri�i� folderPtr� folderPathPtrrd������������������d������������������������������������+�P���>�������������86delete unmatched records in CM_Images and CM_Previews ����:���(��������������i��?��������cmCount��:���(�������������� cmFilenames�i�@\�~��@���.������������������ ���cmRecordNumbers�i��&����������������value��� ���le�>���,������������� foundImagef���� ���value���>���,�������������� foundImagef�@�@��?���������� ����������������8delete �?�4���"������������������ ��� foundImagefe��$�����������������:���� ����������������������$�����������������:���� �����������������������������������������������������������,�����������������Y � fullFilenames�������������������DFCC4DkA)�t���b�����FQHandle deleting a section when a user clicks delete (which triggers an info changFe). l���b���P���������FHA special variable handles the fact the info is marked as changed twice �st� �����������s{F input ad�.�������ѐ����F number of section -���,�����������F number of image ^�0��������������-- -�-- sectionNum�--��.�����������-- -�--imageNum@--���(�����������- sectionNum�- -�-x�&�����������,Ge-imageNum@- -�-���������������-�,�����������-- -ItemDeleteBlock--���:���(����������1F second change should be blocked l���,��������Yj -ItemDeleteBlock--�-Q���������--���B���0�����,GeF(first change should be used, and marked ����>���,�������� -InfoText_AddSub-- sectionNum�--�--���,����������� -ItemDeleteBlock--�-Q�������������--"����������������DFCC4D;��~�H���6�������7d/set the other menus dependent on the input menu����d���R��������ers:�7dKwhile this is the wrong location I also set the ocean transports menu here,�ha�`���N�����������7dGI know that this is wrong, but there are problems doing this other ways�������������������"���������������7d local var���2��� ��������[�i��start��end���*�����������[1� useDefaultu�����&�����������[-�foldPtr�����:���(��������[%��@�������� � AllFoldersl�����8���&��������[ �menuPtrAm���@������������6���$��������jo`[ �curPtrA���@�����������������������jrl�-���� ��������jtp�7dclear����(�����������jv@[�Y � rsf_files����,�����������jxt[�Y � ground_fileso��Q�.�����������jz|[�Y �observed_files@�����*������������[�Y � topo_fileso��-�(���������������[�Y � veg_files��es�*���������������[�Y � drag_filesr���*���������������[�Y � rtau_filest���*������������I[�Y � rplk_filesp���*������������[�Y � ocen_filesc����4���"����������7dCLEAR VARIABLE(otsp_files)0�-�*��������������[�Y � mmld_filesm���*�����������[�Y � basn_filesa���*�����������[�Y � difu_filesi�����4���"���������7dCLEAR VARIABLE(a23sp_files)�an�.������������I[�Y �pbl_table_files�����0�����������111[�Y �pbl_socean_files@���,�0�����������[�Y �pbl_uocean_files@��lo�.���������� [�Y �pbl_sice_files@�����.�������������[�Y �pbl_uice_files@�����.�������������[�Y �pbl_sland_files�����.�������������0[�Y �pbl_uland_files����������������������� ����������{�7dvar��H���6����������[���@�������� � rsf_files���������������P�L���:���������s�t[���@�������� � ground_fileso����������������N���<����������2[���@�������� �observed_files@������������������J���8���������� [���@�������� � topo_fileso����������������H���6����������[���@�������� � veg_files��������������� �J���8����������[���@�������� � drag_filesr����������������J���8����������0[���@�������� � rtau_filest����������������J���8����������[���@�������� � rplk_filesp����������������J���8����������{[���@�������� � ocen_filesc����������������6���$�����������7dARRAY STRING(80;otsp_files;0)����J���8���������s�t[���@�������� � mmld_filesm������������������J���8��������� �[���@�������� � basn_filesa���������������ws�J���8������� [���@�������� � difu_filesi����������������8���&�����������7dARRAY STRING(80;a23sp_files;0)��ag�N���<����������[���@�������� �pbl_table_files������������������P���>����������0[���@�������� �pbl_socean_files@���������������er�P���>����������[���@�������� �pbl_uocean_files@����������������N���<����������{[���@�������� �pbl_sice_files@������������������N���<����������[���@�������� �pbl_uice_files@������������������N���<���������s�t[���@�������� �pbl_sland_files������������������N���<���������n�d[���@�������� �pbl_uland_files����������������������������������.������������� �7dset up pointer arrays����B���0���������� [menuPtrAmj��?�������}}� � rsf_files� f�F���4���������� [menuPtrAmj��@��������}}� � ground_fileso��H���6����������0 [menuPtrAmj��@��������}}� �observed_files@�il�D���2���������� [menuPtrAmj��@�������}}� � topo_fileso�8�B���0����������{ [menuPtrAmj��@�������}}� � veg_files�o �D���2���������� [menuPtrAmj��@�������}}� � drag_filesr� n�D���2���������s�t [menuPtrAmj��@�������}}� � rtau_filest��D���2���������2�3 [menuPtrAmj��@�������}}� � rplk_filesp��D���2��������MUTX [menuPtrAmj��@�������}}� � ocen_filesc� a�4���"������������7dmenuPtrA{10}:=->otsp_files0��:�D���2����������� [menuPtrAmj��@�������}}� � mmld_filesm���D���2����������� [menuPtrAmj��@�������}}� � basn_filesa����D���2����������� [menuPtrAmj��@�������}}� � difu_filesi����4���"�������������7dmenuPtrA{13}:=->a23sp_files����H���6������������ [menuPtrAmj��@�������}}� �pbl_table_files����J���8������������ [menuPtrAmj��@�������}}� �pbl_socean_files@����J���8������������ [menuPtrAmj��@�������}}� �pbl_uocean_files@����H���6������������ [menuPtrAmj��@�������}}� �pbl_sice_files@� ��H���6������������ [menuPtrAmj��@�������}}� �pbl_uice_files@�ub�H���6������������ [menuPtrAmj��@�������}}� �pbl_sland_files����H���6������������ [menuPtrAmj��@�������}}� �pbl_uland_files� ��<���*������������ [curPtrAj��?�������}}���o������<���*������������ [curPtrAj��@��������}}���������<���*������������ [curPtrAj��@��������}}���k������<���*������������ [curPtrAj��@�������}}�������et�<���*������������ [curPtrAj��@�������}}�������CK�<���*������������ [curPtrAj��@�������}}���~���� (�<���*������������ [curPtrAj��@�������}}������� (�<���*������������ [curPtrAj��@�������}}�������AN�<���*������������ [curPtrAj��@�������}}�������un�N���<�������������7d4curPtrA{10}:=->[Model Variables]Qflux Boundry OTSPEC�����<���*������������ [curPtrAj��@�������}}���������<���*������������ [curPtrAj��@�������}}���n������<���*������������ [curPtrAj��@�������}}����������R���@�������������7d8curPtrA{13}:=->[Model Variables]Special Regions Boundary��(�<���*������������ [curPtrAj��@�������}}�������un�<���*������������ [curPtrAj��@�������}}���������<���*������������ [curPtrAj��@�������}}���������<���*������������ [curPtrAj��@�������}}���������<���*������������ [curPtrAj��@�������}}�������ng�<���*������������ [curPtrAj��@�������}}��������<���*������������ [curPtrAj��@�������}}�������ES�����������������u �������������������h���V�������������7dOcheck if all input folders should be checked or only the currently selected one� (�*���������������[foldPtr}�������ss�,���������������[start}��?��������]�*���������������[end}��?�����������<���*������������[ � inputFoldersp������������������(���������������[ useDefaultu}���TE����������������[[�R���@������������[ � inputFolderspj � inputFoldersp}���� All Folders����(���������������[ useDefaultu}���IS�,���������������[start}��?�����������F���4������������[end}� � inputFoldersp��}P��@��������������������������[[��(���������������[ useDefaultu}���ES����������������[[d����������������[[������������������[��^���L�������������7dEloop over all the input folders, do only once for normal menu choices����z���h������������ [FileListByType@�� Input Types�� useDefaultu�����foldPtr�� �menuPtrAm�� �curPtrA��ND�������������������F���4�������������7d-list ocean folders into ocean transports menu�(�@���.������������ [Simulation_OcnTransMenuSet���������SS�������������������P���>�������������7d7list special region files and pick right item, plus new���*���������������[�Y � a23sp_files����J���8������������[���@�������� � a23sp_files���������������LI�Z���H������������ [FileListSpecialRegions�� � a23sp_files����������sprg������������������������������������DFCC4D.��?�~���l��&��%��gSQCopy all the input files into the run folder so that the run can start. The modelS itself is copied~�v���d�����������SQin Setup_RunFolder as is the rundeck. This code does all the other input files anS d returns��r���`�����������SQmeaningful errors if things go wrong. Fixed bug where solar trend was not writtenS out.V����������������S������� �������� ADOS input���D���2��������4S, none (implicitly folderNames has been set)������ ������������S output���4���"��������@���S boolean, sucess or failure�������������������@�����������������Svar���� ���������� 1 @�����j���X������������@%@�@�������� @ outputPathu� @ inputPath� @inputSpecialPath�@filePath$����&���������������@@ error_num����:���(������������@%@�@�������� @ RundeckTitlen����8���&������������@%@�@�������� @ RundeckDesc����J���8������������@�@�@�������� @ RundeckErrors�@�@�����������$���������������@@listRef����$������������� @@listLen����(�����������KK�@@ listItemRef���(��������������@@ folderCount���������������������"��������dS basic setupap�.���������������@ error_num%@��������������8���&��������@���@listRef%@w�l Setup Errors%����0���������������@listLen%@|@listRef���V���D������������@z@listRef�@�?��������@ listItemRef� @ RundeckTitlen����T���B���������� @z@listRef�@�@���������@ listItemRef� @ RundeckDesc�����������������������"���������������S path setup8���>���,������������ @ inputPath% @ PM_FindFolderw�lInput����N���<������������ @inputSpecialPath% @ PM_FindFolderw�l Input Special����F���4������������ @ outputPathu% @ PM_FindFolderw�l CurrentRun�����H���6��������� @folderSpecialNames%�@�?�������4%w�lDefault���F���4��������� @folderSpecialNames%�@�@��������4%w�lUser4�������������������6���$���������Sfiles needed to start the model�����������������0������������Sground data file, unit 7�������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.grnd�@�@�����������*������������� @@copied����@���=�>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@���������������������������@����������������0����������� Socean data file, unit 15� �J���8�������� ))@@�����@�@���������wO8observed ocean mode����~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.obsr�@�@�����������6���$���������� @�� sst, qflux or deep ocean mode�t����~�����������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.ocen�@�@������������������������ @�$�*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������.���������������Sdrag data file, unit 19������~����������0@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�~����%�w�l.drag�@�@���������/�*������������� @@copied����@���=�>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������8���&������������S!radiation rtau data file, unit 21������~��������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.rtau�@�@���������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������8���&������������S!radiation rplk data file, unit 22������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.rplk�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������4���"������������Svegetation data file, unit 23������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.vegt�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������4���"������������Stopography data file, unit 26������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.topo�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������D���2������������S-special regions data file (optional), unit 29���4���"������������Suses a different input folder������������������@copied�% @Setup_CopyFiles28) @folderSpecialNames��) @inputSpecialPathe�) @ outputPathu�@�����%�w�l.sprg�@�@������������������������������2��� ������������Srestart data file, unit 109������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�o����%�w�l.rsf_�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������.���������������Sfiles needed for qflux���2��� ������������@@�����%@���������������,���������������Sotspec file, unit 17%������������������SQotspec files are an exception and are loaded from a special location, the alternaS'te folders are never used for this file���N���<������������@filePath$% @FindOTSpecFolder8)@�����)@��������6���$������������@filename$%@�����%�w�l.otsp���^���L������������@@ @ PM_MakePath@filePath$�@filename$�@������$@������>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@������v������������ @PM_CopyFortranz@�?��������@filename$�@filePath$�@������������ @ outputPathu�@�@��������@��������������������@����������������������D���2������������S-max mixed layer depth file data file, unit 25������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.mmld�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������2��� ������������Sfiles needed for deep ocean���2��� ������������@@�����%@�?�����������>���,������������S'deep ocean diffusion data file, unit 62������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.difu�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@������������������@������������������@���v���d������������SQif you want to collect ocean fluxes for qflux then you need the mixed layer dept,S unit 25a��� ���������������@@�����������~������������@copied�% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�����%�w�l.mmld�@�@�����������*���������������@@copied����@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@������������������@������������������@����������������������F���4������������S.basin file for processing ocean flux, optional���,���������������@filename$%w�lkBasin ���@���.������������ @ outputPathu% @ PM_FindFolderw�locean�������������������@copiedd% @Setup_CopyFiles28) @ folderNames�) @ inputPath�) @ outputPathu�@�n����%�w�l.basn�@������������@filename$����*���������������@@copiedm���@�����>���,������������@ error_num%@�?��������%�@ error_num���|���j������������ @ RundeckErrors�@ error_num4%@� @ error_num��%� @GetListItemStr%@listRef�@�@��������������������������@����������������������>���,������������S&create forcings files, if requested to ������������������SCO2���\���J������������@@�U����x @�����x @�����x @�'����x @�1����x @�C�������2��� ������������@#@ PM_Platform�$@��������������������� @ trendSetter_I @ PM_FindFolderw�l CurrentRun����� @ PM_FindFolderw�l diagnostics����@��@�����%�w�l trends�������������������@������~������������ @ trendSetter_I @ PM_FindFolderw�l CurrentRun��� @ PM_FindFolderw�l diagnostics��@��@�����%�w�l trends�������������������@������������������@����������������������h���V������������SPexport run as xml file for later reimport, surpress error messages just for thiso���6���$������������@@ error_num�@���������������2��� ������������@@#@Simulation_ProcessID(����6���$������������#@Simulation_Button%@�@����������2��� ������������@I#@Simulation_ProcessID(�������������������@����������������������&���������������Sdisplay results���6���$������������@@ error_num�@���������������(���������������Severything worked������ ������������ @��%@�������������������@���,���������������Ssomething went wrong%���*���������������Scleanup array list���j���X������������@� @ RundeckErrors�@ error_num�%�@�?��������@�@��������%`@ error_num����&���������������Serror dialog ���>���,������������@�7@������w�lRundeck Errors���������������������@�@��%`@�@��������� @�@���������@��%`@�@��������� @�@����������%`@�?���������%`@�?���������%`@�@ �������w�lAlert���� ���������������@�w�l�%����8���&������������@�(@������w�lRundeck Errors�������������������@����0���������������Sdelete the failed folder����F���4������������@ outputPatho% @ PM_FindFolderw�l CurrentRun�����:���(������������ @PM_RecursiveDelete%@ outputPatho������� ������������ @��%@�������������������@������������������������� ������������Scleanup���$���������������@y@listRef����*���������������@�Y @ RundeckErrors����*���������������@�Y @ RundeckTitlen����(���������������@�Y @ RundeckDesc����(���������������@�Y @ folderNames���������������������������������������������������������������DFCC4D&v�qH�*�������\����"0startup journal ?"�t���b������������ Generic_OpenReopen???#InfoText_ProcessID??x�InfoText Window?x�InfoText_Process???������������DFCC4Dv�,P�2��� ��&\��%\��gSRespond to a paste commandDT���������.������� �������������gS temp codeo �&��������������-@ selection����$�����������0001@@selType�06�&�����������EMak@\@fromClip$��f� ���������������@@pos����>���,����ݢ��� @@startSel$�@endSele�@offsete�� �������������� �(@�J���8��������� �S3check that it's a valid selection & valid clipboard�e�$�������������@ selection~@��:���(����������@@'@ selection���$@�� �� �6���$������������@@w�l4Dim����$@���on�2��� ��������Ƞd@w�l4Dimd�@fromClip$����0���������������@ @OKo�@�?�����������"�����������@���S find image8��<���*������������@pos~@� @ItemPictI�@ selection����0���������������@@pos�~@��������������(�����������>� @ @ selection�� ���������������SQItemName{$pos}:=PM_MakePath (PM_MakePath (DragTransferFilename{1};"Thumbnails";TS$rue);DragTransferFilename{2};False)P�������������Ȝ4 @ItemNameI�@posa~#@DragTransferFilename=�@�@��������a�~�#@DragTransferFilename+�@�?�������awO8=FileFolderKey���B���0������������ @ ItemCaption�@posa~#@DragTransferCaption���T���B��������@���S=ItemPictLabel{$pos}->:=DragTransferCaption `(don't set this)�����������������@������������������@��������������>� @���B���0����������� @ Alert_Alert@�?��������@�@������������������j�����@ s����������������@o�����������������@�N���<������������S6try to impliment a normal text paste for text sections0���D���2������������S,this is harder than it looks to get it right���:���(�����������@@'@ selection���$@������4���"������������@@$@������$@������&���������������Sfind selection���B���0������������@�@ selection��@startSel$�@endSele����d���R������������SMinsert pasted text into selection & the set selection to the end of the paste������������������@ selection�~@� @ selection��@�?��������@startSel$�~`@�?���������~�@ �~�@� @ selection��@endSeli����*���������������@offseti~@�@ ����`���N������������@�@ selection��@startSel$�~�@offsete�@startSel$�~�@offsete�������������������@S����������������@S����������������������DFCC4DQ:�>���,����������"0%remove a link from the list of links "���"�������l%���]elm]]oc��������mː����]�8���&������������] LinksList�]@]�����������]]���(��������������elm] ] LinksList]D�0���������������] LinksList]elm]]��4���"�������������] LinksListType]elm]]�6���$�������������] LinksListField^]elm]] L�4���"������������] LinksListWord]elm]] ]�������������������������������������������������DFCC4D �.�IC�\���J�� �� ���7dBAdd a record to the database for a new image and add a preview and��Z���H������������7dAprewritten description text. Files that are not in jpg format are��\���J������������7dCconverted to jpg format and the original file is deleted!! This is �te�b���P�������������7dHa change in behavior from the old versions, but everything was converted��te�P���>����������7d7to jpg for the web anyway so what's the big difference?�Se�������������� �7d�w��^���L���������t�n�7dDThis version supports multiple files with identical names except forr����`���N����������$�7dFthe endings, eg: moof.tiff, moof.jpg, moof.pdf. 4D 2003.3 fixes the 31�na�R���@���������s�e�7d9character filename bug so files can be 80 characters now.���� ������������(��7d input�) �*�������Ͷ��� �7d short filenamer���(������������t�n�7d long filename�D�$�������������$�7d filetype���2��� ���������s�e�7d ptr to the folder name���0������������(��7d ptr to the file path��er�^���L���������� [%��@�������� ��� ���� shortname��longname$��oldname�����N���<���������d� [%��@�������� ����filetype$�� fileendingf�����J���8����������-[- ��� ���� folderNamePtr�� folderPathPtr���B���0���������t�h[1� DocLocked�� DocVisibleD��move���F���4��������MUTX[3�DocCreationDate��DocModificationDate����F���4����������[2�DocCreationTime��DocModificationTime���B���0��������[� CreationStamp��ModificationStamp���L�F���4��������RRR[%��@��������� imagePath��textPath$�����(��������������[� imageText��D�*�����������[� sourcePicts��ys�l���Z�����������[�state�C0=cancel (can't convert image),1=continue,2=image already in memory�&�����������[ shortnames ����&������������l�d[longname$s ����&������������T�E[filetype$s ����*������������o�c[ folderNamePtrs ����*������������ �[ folderPathPtrs ������������������1� ��,������������E�l�7dget more file info���`���N���������_�P[ imagePaths � PM_MakePath� folderPathPtr�� folderNamePtr�������������������N�[� imagePath�r�`�longname$�� DocLocked�� DocVisibleD��DocCreationDate��DocCreationTime��DocModificationDate��DocModificationTime�����`���N����0��� [ CreationStamps � CM_TimeStamp_�DocCreationDate��DocCreationTime����l���Z����0��t�n[ModificationStamps � CM_TimeStamp_�DocModificationDate��DocModificationTime����������0���$��8���&����0��s�e�7dlook for description text file����`���N����0��(�[textPath$s � PM_MakePath� folderPathPtr�� folderNamePtr������b���P����0���[textPath$s � PM_MakePath�textPath$�� shortname�r�`��.txt������`�@���.����0���[��textPath$�����?���������t �&�������0��1� �7d read the file�R�4���"����0��E�l[fileRefs��textPath$���.�������0��_�P[lens��fileRef�����<���*����0� `[�h�fileRef�� imageText��len�����&�������0����[ �fileRef����������0�[[�B���0����0�[ imageTexts �PM_Name�longname$�����li��������0�[[P��������0�����[��B���0����0�111�7d(convert image to jpg if it's not already��23�2��� ����0�[�filetype$����jpg���$�������0������7d read image���H���6����0�����[� imagePath�r�`�longname$�� sourcePicts��or�X���F����0������7d>if the image loads then compress it, otherwise stop the import ����2��� ����0�����[ �OKs����?������������>���,����0�����[states��@��������uh image loaded@u���$�������0������7d name fixes��, �,�������0�����[oldnames�longname$�\����p����0�����[longname$s�� � shortname���?����������@���������r�`��.jpg�80 char field in database�j���X����0������7dPcheck for duplicate files where moof.jpg, moof.gif, and moof all become moof.jpg���^���L����0������7dDprevously this just overwrote the file, should automatically rename.r����,�������0�����[counts��?��������\�J���8����0�����[�� imagePath�r�`�longname$���$����� o�x���f����0�����[longname$s�� � shortname���?����������@���������r�`�� �count��r�`��.jpg��bl�8���&����0�����[counts�count�r�`��?������������������0�����[[�(�������0������7dwrite & delete����v���d����0�����[� imagePath�r�`�longname$�� sourcePicts���JPEG��4D 2003.3 fixes 31 char limit���2��� ����0�����[ �OKs����?�����������0����������������7dnow the image is a jpeg����d���R������������[� imagePath�r�`�longname$���prvw��have preview open document4���R���@������������[�� imagePath�r�`�oldname�remove the old doc!!!!lm����������������[[�*����������������7dconversion failed��4���"������������[states������������uhbadu�����������������[[����������������[[�4���"������������[states������������uhbadu����������������[[ew���������������H[[��F���4���������[states��?�������uhok, image not loaded�u �������������[[�F������������[1�H���6��������[�state�sP�������������continue if ok`��$������������7d add record��"�$�����������[�D���� ����on�0��������������[�� ��s� folderNamePtr�|�*��������������D[�� ��s�longname$�yF�.������������[�� ��s� CreationStamp����2��� ����������[�� ��s�ModificationStamp�ni�*��������������J[�� ��s� imageText��=�,���������������[�� ��s��������������@���.����������[�� ��s�longname$�r�`� folderNamePtr��$�����������[�5���� ����un���������������D��.�����������ww�7dpreview & description����$������������[�D���� ������0�����������[�� ��s� folderNamePtr�.�*������������P�[�� ��s�longname$��=�*��������������J[�� ��s� imageText��=�@���.�����������J[�� ��s�longname$�r�`� folderNamePtr�.�R���@�����������H[�state����?��������load image if nececessary��H���6��������̻@[� imagePath�r�`�longname$�� sourcePicts��Fi���������������H[[S�h���V���������t[� sourcePicts���� �����@����������@��������$����$��!������$��������������[�5���� ������������������o[[��������������������������������������DFCC4DM �,�:i�h���V�� ]�� ]���8NWARNING, this code is disabled, kbasin copying is not required at the moment! d�������������������[�j���X������������8QThis is special setup code to work around the case where a user wants to collect ����x���f������������8Qocean fluxes on a run after they have already started it. This violates the gener�8al rule u�eP�X���F������������8?that the intput files are not changed after the run is started ���Z���H�����������(% (�@������� ( kBasinPath� ( inputPath ( alternatePath  ���&�����������(1 (allFold  ��P���>���������(� (�@������� (alternate_folders (�����������  rm����������� [�X���F����������8?only check if they're actually interested in collecting fluxes �me�"������������( (����  ge������������� �&�������������8 create path ��e$�H���6��������( kBasinPath� ( PM_FindFolder �� CurrentRun$  ��V���D���������( kBasinPath� ( PM_MakePath ( kBasinPathh  �Ocean (�  t ������������� 1�0��������7����8check for file in run ���h���V���������( ( ( PM_MakePath ( kBasinPathh  �kBasinP (�  � @(�?�������  s�$�������������8 add paths <���@���.���������( inputPath ( PM_FindFolder �� Input  ��2��� ���������( alternatePath ( inputPath(�T���B���������( inputPath ( PM_MakePath ( inputPath  �Default (�  es������������� t �*�������������8copy kbasin file �7�6���$���������( (����� @�� All Folders  ���$������������(allFold (�(Te�B���0���������( ( alternatePath (alternate_folders  ��6���$���������( alternatePath  � All Folders ���������������((�F�$������������(allFold (�(am�X���F���������( alternatePath ( PM_MakePath ( alternatePath (���� (�  nv�������������((�������������([��������������8QIf (Setup_CopyFiles ($inputPath;$kBasinPath;[Model Variables]kBasin Boundary;"kBa�89sin";$alternatePath;$allFold;->alternate_folders)=False) ����D���2��������� ( Alert_Alert (�@�������� (�@�������  �"�������������8End if l���0������������(�Y (alternate_folders  ��������������((ew�������������([�������������((������������������DFCC4DM ��P���>�������86PM_WebLaunch opens a local web page on the Mac or PC. �te�X���F����P�����8>The complexity is that the PC version has to know where IE is ,���.���������������8or nothing launches ��������������������8 �� ����������������8 input ���6���$�������������8 string, path to html file Z����<���*�������������%��@������� ���webPage���6���$�������������%��@��������iePath����$����������������webPage ���Te�����������������[�����������������(�4���"�������������#� PM_Platform�@$������� �������������8Mac �����B���0�������������err�.��webPage������������ �������������������F���� �������������8PC ��$����������������iePathl��il�>���,�������������iePathl � PM_UpOneLevel�iePathn���V���D�������������iePathl � PM_MakePath�iePathe\� Program Files�����Z���H�������������iePathl � PM_MakePath�iePathe\�Internet Explorer��?�R���@�������������iePathl � PM_MakePath�iePathe\�IEXPLORE��� �Z���H�������������err�.��iePathl��@\� ��@�webPage��?��������������������������������������������������������������DFCC4D�Q,[���� ��&\��%\��gSsetup>�8���&��������%r�� @ViewModeV�wO8 1=icon, 2=cold����������������L���:����^����S5wait for Cache Manager to finish scanning image filess��4���"������������@@w�l$CM_ImagesScan�����.�������j�����@C@B�@�@����������������������d@ �����������������b���P�����������SJfigure out how far over the new window can go, guess out width of eJournal���x���f������������@@J#@InfoText_ProcessID~��$@� ���x @J#@InfoText_ProcessID���$@� �����B���0�����������@leftPos~#@ Toolbar_Width��next to toolbar���������������@���F���4�����������S.to the right of the InfoText_ProcessID window���4���"���������@leftPos~@��~`@�@����������B���0�����������@rightPos$~#@ Toolbar_Width�~�@�@����������2��� ��������aaaa@@leftPos�~@rightPos$���<���*������������@leftPos~@rightPos$�~�@�@���������������������0001@02������������EMak@ S�������������΀��&���������������Ssave menu item���*�������������;@�Cw�l Info_iPhoto��F�.��������d @ViewModeV~@�?����������6���$���������@�7@������w�liPhoto��������������@��� @myWind�~@�@leftPos�@�@���������~`@�?���������~`@�?��������$@�"� �w�l Image Browser�w�l Generic_Close� ��������������@����� ���������@F@B� �$��������>� @ @myWind���������������������&������������Sdefault record������ ���������@������"���������������@�@���������:���(���������L@@�S@������� �@�������������"���������������@�D@������.�(���������������@����~w�lDefault���&���������������@����~w�lMoof���*���������������@����~@�@����������&���������������@����~w�lMoof���&������������ @����~w�lMoof���*�����������aaaa@����~@�������������*�����������@����~@������������*������������@� ���~@��������������"������������@�5@���������������������@�������������������$������������S order records���"������������@�/@���������"������������@�/@��� ������2��� �������&@�1@��� ���@�� ����~���"������������@�2@��� ����������������������������������@���"������������@�9@���������L���:���������@@left��@top�@right�@bottom�� @myWind�����$���������������@� @myWind��������������������@���6���$������������@ @ViewModeV�@�?�����������6���$������������@�7@������w�liPhoto���������~������������ @myWind�~@�@leftn�@top��~`@�?���������~`@�?��������$@�"� �w�l Image Browser�w�l Generic_Close����6���$������������@ @ViewModeV�@�@������������0���������������@�7@������w�lColumn������������������� @myWind�~@�@leftn�@top�@leftn�~�@�@��������@��~`@�@��������$@�"� �w�l Image Browser�w�l Generic_Close�������������������@���$�������$�����@ @myWind�������� ����$�����SACCEPT������ ����$�����SOK:=1���0�������$����� @ @OKW�@�����������������������$��������V���D������������S? The close box associated with this window pauses the process. ���Z���H������������SB The window stays ready for use throughout the use of the program.����������������������b���P������������#@InfoPict_ProcessID~~@������������� $ Reset process ID tracking variable.~����������������������*�����������S End of procedure.I��������������������������������������������������DFCC4DU�{�t���b��$}��#}��LQPlay on a scenario actually performs a duplicate, but the name of the run is changed ton���F���4����������.match what the user types in in the dialog box���(�����������^ � FolderTexto����(������������^ � Foldernameo����,��������^1�done(��good(� ��"���������������^�found����������������&&����� ��������setup�*����������� ^ Foldernameo������B���0�������� ^ FolderTexto�Please pick a unique name:D�G� �����������RRR^done(����� ��������������^good(��׭�"�����������^simWind�������������������J���8����b����2do dialog, repeat until valid name or they give up(���������b�^���&�������b�display dialogh��������b�^������@���������P��@�������������@���������P��@�������������@������������@�������������@������������@��������$��'���Name Scenario Copy�y@ Open a modal window��<���*����b���^�(��������PastePICTNewFolder��r��������b�111^���0�������b�^ �OK���?���������*�������b�check for uniquness�D�X���F����b� ^ Foldernameo��  � Foldernameo���?����������@�����������<���*����b�^found������� � Foldernameo��2��� ����b�^�found� ��������������� �����������????^good(��==� �����������)�^done(��������������^U�N���<������������ ^Alert_ParamText � Foldernameo�������������B���0������������ ^ Alert_Alert��?����������@��������������������������^������������������^��� ���������������^done(��������������������^������ ������������ ^^done(������������000100�4���"�����EMakdo the duplicate if requestedke���� ���������^^good(���B���0��������� ^Simulation_Duplicatep��� � Foldernameo�_n�X���F���������^��Setup Simulation, Run ID: D�� � Foldernameo��simWind����������������^������������������������DFCC4DYd�~�H�V���D��'A��&A��gS?Create makeNetCDF.I file to convert the maps into NetCDF formatB�h���V����������SP!!warning this program uses a mach-o (Cocoa) application and Unix line endings!!d�\���J�����������SE!!the NetCDF library works for Classic and Cocoa but not for Carbon!!���\���J�����������SD!!makeNetCDF can create files with names longer than 31 characters!!D�"��������������@diag,�nu�"�����������KK�@@diag2����6���$��������@%@�@��������@ diag_path�;;�6���$������������@%@�@��������@filename$����(������������@2@ docref_full�� ��������������@@pos����"�����������D@@iteme�e�������������d���*���������������Screate the .I file ���>���,��������@���@diage@������@�Z@�@�����������d���R������������SMset the paths which is a little tricky because the existing file can push the���4���"������������Smaximum file length under HFS��d���R��������O� @filename$@������w�l_��@� @�������w�l-��@� @�����L�<���*���������� S%$diag_path:=Run_Path +":diagnostics:"�s�j���X������������@ diag_pathw�l ../../Output/��@������w�l /diagnostics_��@������w�l/�P���>���������� @ diag_path@ diag_path��w�lmaps_��@������w�l/�t�^���L������������@diag�@diag���@ diag_path��@filename$��@�Z@�@����������>���,���������L@@�@filename$��@�@�����������T���B������������@filename$@�@filename$�@�@��������@�@���������������������������@���8���&������������@filename$@filename$��w�l.nc���^���L������������@diagn@diagn��@ diag_path��@filename$��@�Z@�@�����������0���������������Sset intervals to average���� ������������ @@��������.���������������@diag�@diag���w�lt�����������������@���.���������������@diag�@diag���w�lf��������������KK�@++� ��������������@@�������.���������������@diag�@diag���w�lt������������������@���.���������������@diag�@diag���w�lf������������������@��� ���������������@@��������.���������������@diag�@diag���w�lt������������������@���.���������������@diag�@diag���w�lf������������������@��� ���������������@@��������.�����������@diag�@diag���w�lt������������@�.����������� ))@diag�@diag���w�lf �������������6@5�>���,������������@diag�@diag���@�Z@�@������������������������������T���B������������S=set the var, these should match those for the last processing����������������������8���&������������@K@������w�loldAJKselection����8���&������������@@������@�����@��������"���������������@�2@���������@���.������������@@item��@�?��������@�@�����������"���������������S add value ��� ���������������@@��������.���������������@diag�@diag���w�lt������������������@���.���������������@diag�@diag���w�lf��������������9@99�&���������������Sadvance record���"���������������@�3@������������������������@���>���,������������@diag�@diag���@�Z@�@�����������>���,������������@diag�@diag���@�Z@�@�����������0���������������SVaranger.A01 (run number)���4���"������������SVaranger.A01_1901-1910 (src)���&���������������Stest.nc (dest)���&���������������Stttt (seasons)���<���*������������S%ttttttttttttttttttttttttttttttt (var)����������������������0���������������Srestore the old selection���.���������������@Lw�loldAJKselection�����������������������,���������������Swrite out the .I file���H���6������������@ diag_path @ PM_FindFolderw�lDiagnosticsApps����L���:������������@ docref_full@ @ diag_path��w�l makeNetCDF.I����2��� ������������@�g@ docref_full�@diage����(���������������@ @ docref_full����H���6������������@@ diag_path��w�l makeNetCDF.I�w�lR*ch�����������������������D���2������������S,create the .I Diag file and the .I Name file���0���������������Snot currently implimented����������������������*���������������Srun the application���^���L������������@errCode@.�@ diag_path��w�lmakeNetCDFX.app�@����������������������������������DFCC4D �<�T���B��&��%��gS<This code extends a current run to go longer. The run should����R���@�����������S:be stopped already or the results are unpredictable. Trend���.��������������Sruns cannot be extened������������������M�&�����������00011@extendIt$�00�$�����������@1@relockI��$���������������@@myState����2��� ������������@%@�@��������@temp�����$���������������@extendIt$>@���"���������������@relock�>@����������������������� �������������S setup db �"���������������@�@��������(�������������� @Run_Critical_Begin>���0�����������4@)��force immediate write���b���P������������@tempC>#@RunNumberArray>�#@RunNumberArray>)wO8this gets the run's name����H���6��������@���@�@������#@ RunIDArrayR�#@RunNumberArrayz)����&��������������� @Run_Critical_End����������������������$������������� S check trends���8���&������������@@�����x @�����x @�U�������$�������������@extendIt$>@������������������@���8���&������������@@�'����x @�1����x @�C�������$��������������A@extendIt$>@�������������������@���������������������"���������������S extend run8��$��������������@@extendIt$����"���������������S setup alert���2��� ������������ @ NewEndDatee>@�@��������l���Z������������ @Alert_ParamText@�����@� @�@������>�@�?���������w�l�>�w�l�>����R���@���������� @ Alert_Alert@�@��������@�@��������@�?���������a��������������������`���N������������SHchange the date, via simulation process if it exists, otherwise directly���t���b������������@ @OK�@�?����������5 @ NewEndDatee�>@�@������>�@�?�������������0�������������#@ NewEndDateN> @ NewEndDatee�O�>���,������������@myState>@J#@Simulation_ProcessID(����`���N��������99@@myState�wl@�@�����������5@myState�>�>`@�?����������6���$������������#@Simulation_Button>@�@����������2��� ������������@I#@Simulation_ProcessID(���������������@�*����������� )) @Simulation_ExtendRun8�$������������6 @Setup_PauseGCMz(�����������������������������������@������������������@������������������@���H���6������������ @Alert_ParamText@�����w�l�>�w�l�>�w�l�>����B���0������������ @ Alert_Alert@�?��������@�@��������������������������@����������������������4���"������������#@Setup_ProcessID>@�������������������������DFCC4DQ3�T���B����0�����F;Returns the path to the current run, now uses Path Manager  ���������Z^���:���(�����s{ �� PM_FindFolderY�pCurRunP��������DFCC4D�,�`�r���`�� L�� L����8QCreate the trendSetter.I Name file with the names of the tab delinated text files�8. e��N�p���^���������8QThe basic names come from the PPMV58 revisited list (from the famed array in R83)�8 ����8���&������������8and filled out from run info. ���������������� ������:���(�����������(%e(�@�������e( trend_path�ee���(���������������(e( trendNameee���4���"��������4d(e(listRefe(listItem�ee� �������������(e(iee��*�����������JRF1(2e( docref_fullee������������wwe���&�������������8 list loader ��]�<���*��������["(listRefe(ee�PPMV58 Revistedee���0��������������(listItem�e(�?�������(����������������(���2��� ����"������8setup names, six trends �����(�������"�����( trendNameee��ee���>���,����"�����(e(ie(�?�������e(�@�������ee���t���b����"����( trendNamee( trendName�e�@ (GetListItemStr�e(listRefe(listItemte�e�@(�Ze$(��&ee A��������"����( trendNamee( trendName�e�@ (GetListItemStr�e(listRefe(listItemt�e�@(�?�������e�e�@e� for �e�@(�����e�@(�Ze$(��&ee(����t����"�MUTX( trendNamee( trendName�e�@ (GetListItemStr�e(listRefe(listItemt�e�@(�@��������e�e�@(�Ze$(��&ee����t����"�� ��( trendNamee( trendName�e�@ (GetListItemStr�e(listRefe(listItemt�e�@(�@��������e�e�@(�Ze$(��&eeet�@���.����"�5���(listItem�e(listItem��e�@(�@�������(GC��������"�7���((d��������"�����(8�4���"����"�6����8write out the .I Name file ����F���4����"�����( trend_path�e ( PM_FindFoldere�� TrendAppsee�V���D����"�����( docref_fulle( e( trend_pathl�e�@e�trendSetter.I Nameee�@�4���"����"�����(e#( PM_Platform�e@$(��ee߻����p����"�����(�ge( docref_fulle(�e(�e( trendNamee(�Ze$(��&ee(�Ze(�@�������eee��:e��/eee����������"�����((�@���.����"�����(�ge( docref_fulle(e( trendNameeee���������"�����((ew�*�������"�����( e( docref_fullee���R���@����"�����(e( trend_path��e�@e�trendSetter.I Nameee�R*cheee����������"�����e(�"�������"������8cleanup l���&�������"�����(ye(listRefee������������������������������������������������DFCC4D|�,j%�^���L��&��%��gSGchange the end date on a run, this requires the semaphore since the runN�J���8����Z����S3list could try to access the info at the same time.���$���������������1@relockD����������������000100���� ��������EMakSstartze�(��������������� @Run_Critical_Begin>�����������r������ ����r�����Sunlock���(�������r�����@@�@�������Bd�"�������r�����@relocki>@����"�������r�����@�@���������"�������r�����@�@���������"�������r���@�4@����������������r�����@���"�������r�����@relock�>@����������r����@�����������r�>4���"�������r�����S change var8���^���L����r�@���@����>@��������#@ NewEndDateN�@�@��������@�@�����������"�������r�����@�5@������ra���������r����������� ����r��� Srelock��"�������r�����@@relock�����"�������r�����@�@���������"�������r�����@�@���������"�������r�����@�4@����������������r����A@�����������r����������� ����r����Sunlock���&�������r����� @Run_Critical_End�����������r��������,�������r����Supdate end date field���V���D����r����� @Simulation_Date_Convert> @Info_v_EndYeare�>@������������������r��������(�������r�����Supdate toolbar ����.�������r�����@I#@Toolbar_ProcessID������������r�����������������������������������������������������������DFCC4D�t�q�T���B��������W�� InfoText_LinkDialog~�?�������~~�����~~����~~w������������������������DFCC4D��:i�^���L��%5��$5��gSGstart process to start GCM, this gets around the dialog locking problemN�,���������������^#�Setup_ProcessID�������������������M�$��������������S update window��(�������������� ^Safe_SaveSimulation����������������������2��� ��������Sstart process to run model�d���R�����������#^Setup_ProcessID�=�Setup_ExtendGCM�#� StackSize�� Setup_Process�����������������DFCC4D@u)X�N���<��%��$��gS7Create doesn't really create anymore but duplicates the�J���8��������S2first run in the database, this avoids the problem���B���0�����������S*where truly new runs are too hard to setup���T���B����l����S<has to wait for update so the duplicate code is called later������� ���������� S input�e�6���$���������� S (optional) called from button� ���� ����������S output�r���� ��������0001S none04�������������EMaker�4���"��������Sfind the first record by name�(�������������� �Run_Critical_Begin,���P���>������������found,@�#@RunNumberArray,�w�lSample_Control_Run����2��� �����������@@found�,@��������������P���>��������#@RunNumberArrayz�@�����������,w�lSample_Control_Run���.�����������#@RunNumberArrayz,@found�&����������� @Run_Critical_End��������������&�����������Schange records�6���$�������� @Run_Simulationz@�?���������6���$�����������SRunArray_ManageRundeckWindow(1)��������������\���J��������SEhack to change records and then duplicate, used when called from menu���.�����������@@�@��������������6���$��������#@Simulation_Button,@�@�������zz�2��� ������������@I#@Simulation_ProcessID(�������������������@������������������@���&��������������� @Run_Critical_End���B���0������������ @ Alert_Alert@�@���������@�@�����������L���:������������#@Simulation_Button,@������������� block next action������������������@����������DFCC4D7u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q #@Setup_ProcessID�ns�����DFCC4DIu�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q= w�Setup_StartGCM�#@ StaDF#GRPEb��w)�I]���[��h�2c�L�C����������DFCC4DZ�.�KD�\���J�� �����7dCCreate a ssw stop gcm file if it doesn't already exist to pause the�op� ���������������7dmodel.�le�������������������� �������������7dvar�Z�>���,��������uler[%��@���������output_pathname�����&���������������[2�docref��on��������������$������������7d setup path���L���:��������[output_pathname � PM_FindFolder�� CurrentRun��`��������������2��� ������������7dtest that the run exists���@���.������������[��output_pathname���$��������d���R������������[output_pathname � PM_MakePath�output_pathname��� SSW.STOPGCM�������F���4���������l�o�7d,create the stop ssw file if it doesn't exist��or�@���.���������e�n[��output_pathname��~�$�����@�:���(������������[docref�� �output_pathname�����:���(������������[�output_pathname���R*ch������N���<������������[�g�docref�������no translation necessary���&���������������[ �docref���������������[[d�������������[[���������������������������������������������DFCC4Dzb�,w0�J���8�� �� �� �7d0load all the sundry parts of the infotext window����:���(����P�kZkZ]%��@�������� � thumbFolder����� ��������������]�i��h��������������[�T���B����������7d;explicitly define all the pictures in the compiled database����(��������on:4�7dsection images��t���b�����kZo{] �Pict1� �Pict2� �Pict3� �Pict4� �Pict5� �Pict6� �Pict7� �Pict8� �Pict9�����������kZkZ] �Pict10.� �Pict11.� �Pict12.� �Pict13.� �Pict14.� �Pict15.� �Pict16.� �Pict17.� �Pict18.� �Pict19.��nt�����������] �Pict20.� �Pict21.� �Pict22.� �Pict23.� �Pict24.� �Pict25.� �Pict26.� �Pict27.� �Pict28.� �Pict29.���������������] �Pict30.� �Pict31.� �Pict32.� �Pict33.� �Pict34.� �Pict35.� �Pict36.� �Pict37.� �Pict38.� �Pict39.�������������] �Pict40.� �Pict41.� �Pict42.� �Pict43.� �Pict44.� �Pict45.� �Pict46.� �Pict47.� �Pict48.� �Pict49.��������������] �Pict50.� �Pict51.� �Pict52.� �Pict53.� �Pict54.� �Pict55.� �Pict56.� �Pict57.� �Pict58.� �Pict59.���������������] �Pict60.� �Pict61.� �Pict62.� �Pict63.� �Pict64.� �Pict65.� �Pict66.� �Pict67.� �Pict68.� �Pict69.��������������] �Pict70.� �Pict71.� �Pict72.� �Pict73.� �Pict74.� �Pict75.� �Pict76.� �Pict77.� �Pict78.� �Pict79.�����&����������] �Pict80.�����������kZo{���$��������o{kZ�7d setup paths����D���2�����o{kZ ] thumbFolder. � PM_FindFolder��Images�������������kZkZ�[�*���������7dsetup arrays .��(��������kZkZ] �TextPictT����>���,��������]�i���?����������@������������L���:����������� ]ItemPictI�i..�0��Pict��.��� �i���`�P���>�������� ] ItemPictLabel�i..�0��Title�.��� �i�����������������)))%]]���8���&���������7dsetup list of pointers to text�����>���,������������ ]ItemTextI������������..�� �������>���,������������ ]ItemTextI��?�������..���������>���,������������ ]ItemTextI��@��������..���������>���,����������� ]ItemTextI��@��������..���������>���,�����e ]ItemTextI��@�������..���������>���,�����\ ]ItemTextI��@�������..�� �������>���,�����on:4 ]ItemTextI��@�������..�� �������>���,������� ]ItemTextI��@�������..�� �������>���,�����*} ]ItemTextI��@�������..�� �������>���,��������� ]ItemTextI��@�������..�� �������>���,������� ]ItemTextI��@�������..���������>���,������� ]ItemTextI��@�������..���������>���,������l�t ]ItemTextI��@�������..���������>���,������� ]ItemTextI��@�������..���������>���,������n�i ]ItemTextI��@�������..���������>���,���������l�t ]ItemTextI��@�������..���������>���,������������ ]ItemTextI��@�������..���������>���,���������� ]ItemTextI��@�������..���������>���,��������MUTX ]ItemTextI��@�������..���������>���,���������c�t ]ItemTextI��@�������..���������>���,������������ ]ItemTextI��@�������..���������\���J�������� ]ItemListI������������..������������wset abstract to text�w���������������w�H���6������������7d/load first record to set everything up for real����*�������������� ]InfoText_LoadRecord]he��������j��Z��]7d������������������������������������DFCC4D<�@�H�.������������d�d Caps project method����4���"���������d�d Caps ( String ) -> String\�J���8���������d�d0 Caps ( Any text or string ) -> Capitalized text���&������������d�d ��� ��(������������d�dlen� ���2��� ���������d�dlen�ll�����������J���8���������d�d ��!�?�������"�  ��!�?�������"�2��� ���������d�dlen�ll?��������6���$���������d�dii?�������len�L���:���������d�d ��!i�ii?�������"�i�Z$��*`�6���$���������d�d ��!i"�  ��!i"�������������d�d���������������d�dv�������������d�d���������������d�d��������������������������DFCC4D �N���<��'��&��b$6Allow a user to delete an existing run and start over. ��������������������������������b$var���<���*��������% @�@��������@output_pathname�������������� ADO� �"�����������b$ setup pathP�2��� �������� @output_pathname @Run_PathR ��������������kToo�0�����������b$test that the run exists�D��D���2��������kZo{@ @ @output_pathname��8@������������kZ�H���6������������ @Alert_ParamText @�����w���w���w������B���0��������TAT @ Alert_Alert @�@���������@�@��������ch�0����������� ?? @ @OKM�8@�?��������8 �>���,�������� @PM_RecursiveDelete @output_pathname��L���:��������@output_pathname @ PM_UpOneLevel @output_pathname��L���:��������@errCode@.� @output_pathname�@���������������� �������� @Sim_PlayS������������@���������������@������ �������� @Sim_PlayS������������@�������������� ����DFCC4DF�1�H���6��'A��&A��gS0configure the info text window when it is loaded�DO�2��� �����������@i�@j�@k�@len��M�,��������������@ @LoadedLinksVers��"�����������@ @zzTop�����������������������*��������������� @ Text Counte^@�������.���������������#@EJournal_Countz^@�������|���j��������0001 @Retrieve_Variable_Blob^^@�����^ @ItemVersI�^ @ItemListI�^ @ItemNameI�^ @ ItemCaption�28�������������� @Retrieve_Variable_Blob^^@�����^ @LoadedLinksVers�^ @ LinksList�^ @ LinksListType�^ @LinksListFields�^ @ LinksListWord��m�`���N��������aaaa@ @LoadedLinksVers��� @CurrentLinksVers�wO8mismatched links version^�(��������������� @InfoText_LinkClear^������������������@���:���(��������*d@ @ItemVersI� @CurrentItemVers����$���������������S load labels ��.�����������@��� @InfoText_UpdateFigLabels �$���������������S load images w �<���*������������@@i�@�?��������@�@�����������>���,��������� @ @ItemListI�@i�^@���������������B���0�����������@@j�@�?�������� @ItemListI�@i���L���:��������D@k^@i�^`@�?���������@�@��������^�@j�0��������������� @InfoText_LoadThumb^@k�������������������@�����������������@w ����������������@O�������������� ���*���������������Sshow/hide interface���<���*������������@@i�@�?��������@�@�����������2��� ������������@@i�^#@EJournal_Count^����>���,������������ @InfoText_ShowHide@i�@�@���������������������������@���>���,��������� @InfoText_ShowHide@i�@�?�������������������������@�����������������@���������������������X���F������������S@go to top of form and put cursor at the end of the eJournal name����<���*������������@len^@�@������^�@�?����������2��� ������������@�@�����@len�@len�������������������@���.���������������Sthis is bad, very bad ������������������@�������������������@�������������������@�����������������@#������������������@������������������������������������DFCC4DXy� O�b���P��&j��%j��gSKhandle events for lock button, locks/unlocks record, locks/unlock interfaceum�h���V����.�>��SQincludes special hack for the sample_control_run to prevent it from being changedd���� ���������S input���J���8����O����S2 change_lock (optional default is to change lock)���������������scalli�.�������OJ����1 @��@ changeLockc��.���������������@@�^@���������������&���������������@ changeLockc^ @��H���������������@���&�������RB��� @ changeLockc^@�� �������������b�l@�L��������������� ��,������������b�lSset lock if requested��L���:��������0001@@ changeLockc���+@�m����@�������������16�6���$��������EMak@ @Simulation_UnbreakableLock��r��,���������������SAlert_Alert (1;72;2)^�����������������@���*�����������Rd@�m���^@�?����������&���������������@ changeLockc^@���������������@���@������������������@����������������������H���6��������>� S0update the state of the record (locked/unlocked)���6���$������������@ @Simulation_UnbreakableLock����:���(������������@[��w�lzLockInterface2�@��������������������@���:���(������������@[��w�lzLockInterface2�@��ra�,������������LSrun normal lock check���T���B������������@@�m����^@��������������+@ changeLockc���@������:���(������������@[��w�lzLockInterface�@�����4���"������������@���w�lzLockInterface�������������������@���:���(������������@[��w�lzLockInterface�@����������������� @������������������@����������������������*���������������Sunlock if requested���L���:������������@@ changeLockc���+@�m����wl@�@�������������*���������������@�m���^@�����������������������������@����������������������:���(������������S#change button graphic to match mode���,��������������� @Simulation_MatchStatus^��������������������DFCC4Df2��D�`���N�� b��b���7dGUAM_Encrypt converts a string into an encrypted blob using the built in�Pr�r���`������������7dQset of keys. The intention of this call is to encrypt passwords and other sensiti�7dvet�ro�d���R������������7dKcommands so that reading the database file or sniffing the network will not�es�0����������������7dreveal the information.���������������7d�x���� �����������kZo{�7d input�oc�(�����������kZkZ�7d ptr to string����J���8����������7d1 ptr to blob to use (local blobs are a bad idea)���� ����������������7d output����0�������������7d none (encrypted blob)��� �����������\- ������,���������������\- ����blobPtr����&������������\\�tmpBlob��re�6���$������������\%��@���������passStr�����&������������\passStr ��rd�$���������������\blobPtr �����������������k�2��� �������������7dcopy to blob and encrypt�����j���X��������\���passStr���������������T&make sure there is a string to encrypt��2��� ��������\�passStr��tmpBlob�����:���(��������ccc\�tmpBlob�#�UAM_PrivateKey@��j�h���V��������\.�tmpBlob��blobPtr����������������������������]�tmpBlob����� ���������������7ddebug!!��J���8���������7d1$passStr:=BLOB to text($tmpBlob;Pascal string ;0)�C�6���$��������\v'blank out the password blobv��8���&��������\^�blobPtr�����������������������������\\����������������������������������������������������DFCC4DF��^���L��'��&��b$FHand in the format you want and this converts the wacky model dates to V�V���D�����scalb$>wacky model style year strings, ex 1/1/1901 to JAN1901. Unused����� �����scalb$ Input:D:�8���&������������b$! format, 1 = 3 char month + year�?�$�������H����b$ date, date��� �������~�����b$ Output:��� �����������b$ string������������������������� �������� @���$�����������TAT @ @formatD� ���� �����TAT @3 @��MM�"����������� @3 @datea�p �0�����������TAT @% @�@��������@str�<s�.����������� @% @�@�������� @��� S�$�������l�0001@ @listRef�06�(�����������EMak@ @ listItemRef�4D���������8�aaaa����� ������������b$setup���"��������@formate @��� ���������������@datea @����2��� ��������0001@listRef@ w�Months���������������EMak @�&�����������TAT b$create date str ������������ @06�4���"��������@ @format��8@�?���������N���<�����������@z @listRef�@� @dateR��@ listItemRef�@str��<���*�����������@str@str��@�  @� @dateI����������������@����������������� �����������b$cleanup��$�����������@y @listRef����� �������� @��@strFyFFlistRefDFl��F�����d F��FFstrFTH������������������������DFCC4D-Y�1�"U�X���F������������8?This converts names into types and modifies the incoming names � �Z���H������������8Ato exists without their types. WARNING incoming data is modified �C�T���B�������������8;by this meathod. The way of converting a name to a type is �i�P���>�������������861, last five characters of the name, eg snowball.jpeg � C�N���<��������ff�852, last four characters of the name, eg snowball.jpg ����L���:�������������833, last three characters of the name, eg source.cc �)�F���4�������������8,4, last character of the name, eg rundeck.R \�C�J���8�������������815, internal type of the file (Mac type), eg TEXT ������������������8 ��=�X���F�������������8>WARNING type mapping from Win to Mac is not implimented yet!! ,�de�����������������8 ��;� ����������������8 input ��8���&�������������8 ptr to a list of file names �s �������������������"����������������8 output l�ng�8���&�������������8 ptr to a list of file types ���J���8�������������80 ptr to a list of file names has been changed! �D�d���R�������������- ��� �� �� ��� filenamesPtri� folderPtr� folderPathPtr��H���6����������������@������� � Filetypes������������er�B���0��������������count�i�len�len1t�j��(����������������1� foundType��:���(�������������%��@�������� folderPathfC�8���&�������������%��@��������filename$hi�*���������������� filenamesPtri ������&���������������� folderPtr ����*���������������� folderPathPtr ��� �^���L������������� folderPathf � PM_MakePath� folderPathPtr� folderPtr����������������������4���"�������������8reset the Filetypes array ��>�8���&�������������count�� filenamesPtriou�(�����������������Y � Filetypes�H���6����������������@������� � Filetypes������������ld�B���0�������������� � Filetypes��?��������count�����������������me�2��� �������������8loop over the filenames ��na�8���&��������������i��?��������count���&���������������� foundType���������������������(����������������8get string len ��>���,�������������len��� filenamesPtri�i���2��� ��������������len�@��?����������6���$�������������len1�len�@��@����������4���"��������������len1�@��?����������,����������������len1��?��������ZZ���������������������<���*�������������filename$� filenamesPtri�i��������������������*����������������8check for ending �@�V���D��������������j�len�@��?��������len1��@��?��������8���&��������������filename$!�j"�@\�.���t���b������������ � Filetypes�i�� � filenamesPtri�i�j��@��?���������@�������fo�h���V������������� filenamesPtri�i��� filenamesPtri�i�j��@����������(����������������j���������������&���������������� foundType���Pt������������������ge���������������������8���&�������������8get Mac type if all else fails ����.����������������� foundType�@�����t���b������������ � Filetypes�i� � PM_MakePath� folderPathf� filenamesPtri�i��ؐ������������������ p������������������um�<���*�������������8"what to do with 1 char filenames? ��������������������������������������������������������������"����������������8cleanup l�ab�(��������������� ��� � Filetypes�����������������������DFCC4D)�@yo�(�����'+��&+��gSbreaks a scenarioTX������������������(��������������[@�����@�����H���6����������� @Alert_ParamText@�����w�l�>�w�l�>�w�l�>����Z���H������������@ @ Alert_Alert@�@���������@�@���������@�?�����������������������������(���������������Schange to normal���� ���������������@����>@���� �����������O@����>@�]�6���$���������@�m���>@������������� unlockNG�2��� �������� @Simulation_LockUnlock@��������������������&������������Ssave and notify���*������������ @Simulation_SaveRecord���,������������@I�>`@�?����������:���(��������#@RunListReinitToolbar8>@�?����������.������������@I#@Toolbar_ProcessID������������� @���������������@������DFCC4DP�6��4���"��'+��&+��gSlift characters off the page������������������R���@��������S;This makes a run into a scenario. Actually this marks a run���N���<����6����S6as a master scenario from which scenarios can be made.0�V���D�����������S>Locked runs can be turned into scenarios, and master scenarios�`���N���������� SHbecome locked runs by default. The special lock code came from ExtendRun�`��������������e�l� �$������������� �3@runDate�� �"������������i�t@1@valid���������������000100�J���8��������EMakS3check that the run is not already a master scenarioie� ���������������@@��������H���6��������Td @Alert_ParamText@�����w�l�>�w�l�>�w�l�>����B���0������������ @ Alert_Alert@�?��������@�@����������������������@���@���@���.������������S)validate rundeck before creating scenario���,���������������@ @Rundeck_Validate�O(�������������� ���*��������������Schange to scenario��� ������������@����>@��� ��������d@����>@�}�$������������@����>@����������������������� ���������Slock>���2��� ���������@@�m����>@�?�����������2��� ������L @Simulation_LockUnlock@���������������@���2��� ��������� @Simulation_LockUnlock@�����������������@���������������������� ���������Ssave>���*��������� @Simulation_SaveRecord���������������������� ��������Supdates���,��������������@I�>`@�?�����������:���(�����������#@RunListReinitToolbar8>@�?����������.���������������@I#@Toolbar_ProcessID���������������@������������@����������������������DFCC4D*c�f���T�� �����7dMCreate a public and private key for encrypted communication between databases����:���(�����������[\� BPublicKeyB�� BPrivateKey��������������������:���(���������h[� BPrivateKey�� BPublicKeyB�� l�>���,�����������[�� PublicKey.txt�� BPublicKeyB�����:���(������������[�� PublicKey.txt���R*ch������@���.������������[��PrivateKey.txt �� BPrivateKey��11�<���*������������[��PrivateKey.txt ���R*ch���lu������������������������������������������������������������DFCC4Dx���,�������������"0 PAUSE_PROCESS () ^"`��������Rd@��2"0 "���D���2��������;�P"0* Typically used as a close box procedure. �"0�F���4������������"0,Adds in support for proper record handling. z"������������(ip"�$�����������5 ��� ��  � ��������������D B  je� ���������������? B  ���������(K`���� �,�����������"0 End of procedure.^"��������������������DFCC4D/R�B�b���P��'��&��b$JThis is an alternate way of starting cleanup if it is used as a dialog boxum�b���P��������b$Kinstead of standalone. The dialog box version comes from the Sim Library so���f���T�����scalb$Nit handles multiple runs instead of a single run. This code must resepect the ���B���0����l�scalb$*current selection used by the Sim Library.R������������������b$������� �����������b$ input���� ��������TAT b$ noneMM���� ��������90 b$ output:0���� ������������b$ none���@���.��������TAT � @top�@left��@bottomD�@right�un�������������90 ??� ����������� b$do setupte�.�����������0.01 @ Cleanup_Setup $@�"��.5��������������,�����������RRRb$setup dialog and show���F���4�����������@top @��P@�@���������@�?��������H���6��������@left� @��P@�@���������@�?��������6���$�����������@bottom�@top��@�@�������R�6���$��������@right@leftt��@�@��������d���R��������)� @myWind�@� @leftn�@top�@right�@bottom��$@�"��w�Cleanup����6���$��������@�( @��� ���w� Cleanup List����������������@������������������������� ������������b$cleanupde�(���������������@�Y @ CleanupRuns����"���������������@� @��� ���nd�"���������������@�/ @��� �����run folder exists�X��DFCC4Df_�2�L���:��'��&��b$4Calculate the size of various folders inside the run��P���>��������Sy��b$9The calculation is done by checking the size of the first'�R���@�����������b$;avalible file and assuming that that is the average size of���V���D�����������b$>files in the folder. This estimate should be accurate and much �T���B�����������b$=faster than the finder. The .DS_Store file is eliminated from�:���(������������b$#the list to make things work better��������������TAT b$�IM���� ��������92 b$ input:0�,����������� b$ string, folder path? ���� ��������0.01b$ outputp1�,�����������b$ string, folder size����������������.����������� @���@ FolderSizeF��>���,��������@% @�@�������� @��@ FolderPathF��F���4��������@� @�@��������@FileList$�@��������������,�����������@ @DS_StoreMustDie��&��������������@ FolderPathF @��0�����������@ FolderSizeF@���������������������������@���.�����������@ @ @ FolderPathF��8@���������������"�����������b$ get files J�6���$��������@ @ FolderPathF�@FileList$��,�����������b$delete DS_Store file�J���8��������@DS_StoreMustDie@� @FileList$�w� .DS_Store��<���*��������@ @DS_StoreMustDie�@�������������:���(�����������@� @FileList$�@DS_StoreMustDie��������������@�0�����������b$file size * # of files ��>���,������������@ @ @FileList$��@���������������������������..@�p���^������������@ FolderSizeF@ @ PM_MakePath @ FolderPathF�@FileList$�@�?��������@������H���6������������@ FolderSizeF@ FolderSizeF�@ @FileList$���������������@ ������������@ S��������������%@�&��������������� @��@ FolderSizeF���� ������H���6���������SDFCC4DIi�v@��V���D��'��&��b$?Basic cleanup "for dummies" that uses useful defaults to removeJ�Z���H�����������b$Bfolders that most users will not miss. Only the acc files are kept���T���B�����������b$<by the basic cleanup since thoses are the only files used by����&��������������b$Analyze Output.�����������������b$������� ��������TAT b$ inputMM���� ��������09 b$ none:0���� �������� b$ outputno���� �������� 1:0b$ nonell�,�����������29.8b$setup useful defaults46� ����������������� ��@�rS� ��������������@�� ��@���� ���������������@�� ��@���� ���������������@�� ��@�Te� ���������������@�� ��@� A�@���.������������@�� ��@�  @Years�@ @Years�����,��������������� @Years@ @Years����*���������������@� � ��@�?����������,��������������� @Subject@�?�������g �,��������������� @Keepers@�@����������*���������������@� � ��@�@�����������*���������������@� � ��@�@����������,��������������� @Months�@�@����������"�����������.@�5 @��� ���.��������������������&���������������b$do the cleanup$ar�,��������������� @Cleanup_Deletez ��s_��������������������������n�����@�����������n������*DFl��f�2��N�lose progress bar_�(�������n����@IDFl��o � ��n���������n����@��������n����@��DFl��P*�e����� /can't delete runs without a valid year orDFCC4DI[+��b���P��'��&��b$Jset permissions via dialog, the dialog is the same used for the SimLibraryum��������\�scalb$� n���� �����scalb$ inputD:���� ���������b$ none������ ���������b$ output������ �����scalb$ noneD:�f���T������� List_Permissions< 7@�!����7@�!����7@������ @eList_SortFieldPtr�b����������scaln�EEE @ Alert_Alert@�?��������@�@�������DFl��f~�w��5P�@�B���0����n� @ Alert_Alert@�DFl��V�~PH��= ������K��������n�@��������DFl��>�~PH��t�������������������������������������������DFCC4DP��pp�^���L��E��E���7dEThis returns a string from a list item. You probably want to use this����R���@������������7d9code when you want a string return instead of a procedure���� ���������������7dinput:���$�������������7d list item�ry� ���������������7doutput:���"����������������7d string��("������������������� ���������������[ ����+�(�����������ww[�listItem$���4�*������������[� listItemRef��B�:���(���������[%��@��������� listItemStr�����0�����������[%��@�������� ������������������������� ���������7dsetup����&��������������[listItem$ ���@�������������� ������������7dget it��{�X���F��������[z#� UAM_ListRef��listItem$�� listItemRef�� listItemStr�����(����������� [��� listItemStr�ؠ����������������������DFCC4D>�~PH�V���D��'��&��b$>Make sure that the fluxes used have at least one year selected�J���������b$������� ���������b$ input������ ���������b$ none������ ���������b$ output������ ����Ɯ�����b$ none����������"���������(�������\������ @�8$@������4���"���������@�� ��@�  @End� @End����*������������@ @End��$ @Start��"������������ @Start @End���4���"���������@�� ��@�  @End� @End����������������@����������^�����@�������������������DFCC4D�Uv�R���@��'��&��b$;Check that the start date is ok because fools are so cleverDE�R���@�����b$:If people pick a start date after the end date then fix it4������������� b$��`���� ���������b$ input������ ���������b$ none� ���� ���������b$ outputE���� ����\�����b$ none$��������"��������(�������Ɯ������ @�8$@������8���&���������@�� ��@�  @Start� @Start����*������������@ @Start� @End��"������������ @End @Start���8���&���������@�� ��@�  @Start� @Start����������������@b$���������@b$��@ pathToOpenp^ @ PM_MakePath@ pathToOpenp� @��@�DFl��k6h ���SA$pathToOpen:=go_back_one_level (go_baDFl��Rh ��@�e))+$1���������������L@�������������DFl��ro�;sj���������S:new 4D command to show a folder, DFl��2(� ���ode���2��� ������������@#@ PM_PlatformDFl��� ��S�������������@@ pathToOpenp�����DFl���s=��`��6���$��������� @@ pathToOpenp��DFl��T�s=�������������@������������������������������DFCC4DE��R���@��"R��!R��,�2:delete all the files in a folder, exceptions are supported�DE�<���*������������2%to preserve one month per year, & etc���� ������������2 input���4���"�������������2 folder to delete files from������ ���������e�t�2 keep?�e���� ���������e� �2 output�t�.�����������0001�2 failure if it happens00�������������EMaker�>���,������������^%��@�������� ���� FolderPathF����(������������ � ^1 ����Keep(���F���4�������^���@���������FileList$��������������� �.���������v�e^� FileListLen��i�� �&���������e�t^�FileYear$��e�$��������^�listRef��0��������^%��@����������Mon��0�����������^%��@���������Yr��,�����������^�DS_StoreMustDie��&�����������4th ^� keep_skip��)�&����������� ADO^ FolderPathF ��4D� �������������^Keep( ���m��������������D�S�_�0������������T�R�2month to keep & how often��2��� ���������D�S^listRef���Months��D�D���2���������K�e^Mon �GetListItemStrA�listRef��� � ����C�$�������������^y�listRef��e��������������^"d�2��� ����B����^�� � ������?����������.�������B����^ keep_skip��?�������M_�2��� ����B����^�� � ������@�����������.�������B����^ keep_skip��@��������2��� ����B����^�� � ������@���������nd�.�������B�^ keep_skip��@���������������B�^���������B�^�B���0����B��2*delete files if possible, leave exceptionson�@���.����B�^�� FolderPathF������������������"�������B��2 get files ��6���$����B�^� FolderPathF��FileList$���0�������B��2remove the .DS_Store file�J���8����B�^DS_StoreMustDie���FileList$��� .DS_Store��<���*����B�^�DS_StoreMustDie�!����������������:���(����B����^��FileList$��DS_StoreMustDie�����������B����^���6���$����B����^ FileListLen��FileList$���8���&����B�����2!remove files from the delete list5�<���*����B����^�i���?��������� FileListLen����,�������B�����2figure out the year ���V���D����B�����^Yr�� �FileList$��i���@����������@�����������8���&����B����^���Yr��!�������������5�.�������B����^FileYear$�� �Yr���H���6�������������21remove files from the list from the years to keep���.������������2either through or after�������������^�FileYear$�!��� ���� �� � ������?���������� h�FileYear$�+ $��� ���� �� � ������@������������R���@���������2;It's cheaper to relace the first char with a special marker�V���D���������2>than to delete lots of elements of an array out of order ��.�����������^FileList$��i��*������������^���D���2���������2-remove files for the right month and decade ��>��,��������^�Keep(�� ��b�FileYear$�� keep_skip����������������� �Mon!��?�������"���FileList$��i!��?�������"�� �Mon!��@��������"���FileList$��i!��@��������"�� �Mon!��@��������"���FileList$��i!��@��������"���.�����=�����^FileList$��i��*������������^�I���������^������������^��������������^�����������������$������������2 delete files��<���*��������^�i���?��������� FileListLen��6���$��������^�FileList$��i�h��*�S�V���D��������^� � PM_MakePath� FolderPathF��FileList$��i�����������������^��������������^�����������������^��������DFCC4Dp�M,�6���$��%n��$n��g�7��������Toobar�����H���6�����������S1does this help, makes the whole toolbar read only������ �����������^������"���������������^�/���� ������&�����������^�C�Toolbar�%�2��� ��������</re^#� PM_Platform� $����ke�*�����������striS$windowType:=-1987ag�:���(��������prin^ windowTypew�`$��"��`$��"� pp�b���P�������� <^��� MacOS X 10.3�#�PM_PlatformName��p�������������y@10.3ke�6���$������������^ windowTop�����@�������������������#^�b���P������������^��� MacOS X 10.2�#�PM_PlatformName��p�������������y@10.2)�6���$������������^ windowTop�����@��������&�����������)^Ap 10.4, 10.5??����6���$��������)^ windowTop�����@�������������������)^������������)^������������)^�:���(��������)S"$windowType:=-1987`Plain window �:���(��������_inf^ windowTypew�`$��"��`$��"� pr�.�����������trin^ windowTop��@�������/s������������/rea^ ��������������������&���������������Ssetup run list������ ������������ ^ Run_Init2����������������������2��� ������������Shack window to fix quit bug������������������^��`��@ @��������`��@ @��������`��@ ��������`��@ �������$��"���test�� Generic_Close�����������������������D���2������������S-mac only hack to create an always open window���&��������������� ^ToolbarLogo_Open����������������������$���������������S open toolbar���|���j������������SQOpen window(0;$windowTop;Toolbar_Width-3;Screen height-2;$windowType;"Toolbar";"SGeneric_Close")���&���������������^�C�Toolbar����>���,������������^<�About EdGCM 4D��AboutBox��������~������������^��������������� windowTop�#� Toolbar_Width�`��@������������`��@���������� windowTypew��Toolbar����N���<������������^��EdGCM ��#�VersionOfEdGCMA��� Toolbar�����2��� ������������ ^ ViewerNamei� View Tables���:���(������������#^RunListReinitToolbarL���������������0���������������^�(��������Toolbar���������������������������DFCC4D^�`�T���B���������8:Handle the ocean transports menu, remember that this menu ����b���P�������������8Inow represents folders not files. Need to load srcor value from file now ��������������������8���&���������%x��@�������x� srcorPathxx���:���(�������������%x��@�������x� srcor_valuexx���$���������������x�srcorxx��*����������������2x� docref_fullxx������������������x�����������������������*�����������p�x��x@$���xx�$����������������8 set record �{�>���,�����������������x � otsp_filestx � otsp_filestxx���@���.�����������������x � otsp_folderssx � otsp_filestxx��,��������������������x����������������(����������������8set srcor path �O�d���R������������� srcorPathx �FindOTSpecFolderxx�����xx�����x�x�@\� SRCOR.value\60�*���������������� srcor_valuex\��x\���$����������������8 read file T�ef�@���.�������������x�x� srcorPathx�x@��?�������xx��8���&������������� docref_fullx�x� srcorPathxx���2��� �������������x �OK��x@��?�������xx���L���:��������������hx� docref_fullx� srcor_valuex��Zx$���&xxx�*���������������� x� docref_fullxx���4���"�������������srcorx�� x� srcor_valuexx�4���"�������������x�srcor�x@������������xx�&��������������������x�srcor�O��������������������������������������������������������O�J���8������������ �Alert_ParamTextx�����x\��xx\��xx\��xxx�D���2������������ � Alert_Alertx��?�������x��@�������xxd������������������BT������������������ s�����������������5{��������������������������������������DFCC4D ��"�����'��&��b$ DEPRECIATEDrf�$��������������b$ open controlsEP�(����������� �Run_Critical_Begin���\���J�����scal� #@ControlRunNumberArray�wX$special spot to pass RunNumberArrayve�>���,����V�����#@ControlRunNumberArray#@RunNumberArray���&�������������� @Run_Critical_End<ha�������������M�n���\��������)))% @Generic_OpenReopen 7#@Control_ProcessID�w�Control Window�w�Control_Process���ss���� ���������@ @��ss�&��������DFl��vt�s=��Ԑ��ss�(������������@ @ listItemRefDFl��9x�s=��m�@% @�@�������� @���@�8���&����DFl��c{�s=��mP������@ listItemStr�e ������������DFl��c8�����b$setupe �"�������^�scal@listRef @DFl��5*���30�@listItem$ @�to����������������DFCC4D:�O�C �L���:��������Yd4setup everything for the User Authentication Manager|���\���J��C ���YdEonly one user can log in a time, but you can change users mid session��`���N_��YdI(though you will need to close windows). Some operations can also require33�b���P�����YdJan admin user to enter their password. If the only user in the database is���d���R����������YdLcalled Admin and has no password then run the database in password-less mode@���>���,������ Yd&where all authentications always pass.�o�.������ ���1#@UAM_UsePasswords<�(�&������ �%�U@1#@UAM_Auth��&���������F@1#@ UAM_Admin�i�6���$��������@%@�@�������#@UAM_User�(�����ntrolDae@#@ UAM_ListRef 0�4���"�� ?? S @1#@UAM_privateOneTimeAuth| S�,�������������@\#@UAM_PrivateKeyz���:���(��@#@UAM_Editor_NoPasswordWarning��������&�����Ydsetup databaseD�"�����@�/@������"�����@�2@��������������������&������������A @ KDM_RegisterM��������������������4���"���������Ydcheck for password-less model���:���(����������@@�S@�������X@�@�����������*�������������Ydpassword-less mode�H�>���,���������#@UAM_UsePasswords<|@��� no passwords@���<���*����������#@UAM_Auth|@��� is a user logged in���F���4����������#@UAM_User|w�AdminwXwho is the current user���B���0����������#@ UAM_Admin|@��� are they an administrator����������������@���$�������������Yd password mode���:���(����������#@UAM_UsePasswords<|@��� passwords���<���*����������#@UAM_Auth|@��� is a user logged in���B���0����������#@UAM_User|w��|wXwho is the current user���B���0����������#@ UAM_Admin|@��� are they an administrator����������������@������������������&�������������Ydsetup other var���T���B��#@UAM_privateOneTimeAuth||@��� one time admin authorization����V���D��#@ UAM_ListRef|@w� UAM_Messages|wXlist of UAM messages|���`���N�������%#@UAM_Editor_NoPasswordWarning|@������������� warning about no passwordQR������������������$�������������Yd load rsa keys���B���0����������@ w�PrivateKey.txt#@UAM_PrivateKeyz��������������������"�������������Yd cleanup db����"�������������@�@����������������������S load rsa keys���B���0������������@ w�lPrivateKey.txt�#@UAM_PrivateKeyz����������������"�����������S cleanup db8�"�����������@�@��������������������������������DFCC4DTP�^w� �����$}��#}��L UAM_Loginbp�x���f����������Qplaces up a login window and watches what happens. Unlike all other windows the l ogin window������n�����������Qis program modal and should block all other actions until the user completes it. Once this succedesn���z���h������������QUAM_User is set to the user and UAM_Auth is set to true and UAM_Admin is set t o if the user���P���>���������8is an admin. In password less mode this code is bypassedt��������������� ���� ��������� input����� ��������� none����� ������  output��L���:��������4 none (see the OK field and the <>UAM_Auth variable��������������,�����������^#�UAM_UsePasswords��6���$��������password mode, do login screen�������������^����P��@�����������@������������P��@�����������@���������������@�����������@���������������@�����������@���������$��"���>���,����������^� �UAM_GetListItem��@������������F���4��������#^ UAM_Message �UAM_GetListItem��@����������2��� ��������#^UAM_privateOneTimeAuth����.�����������^�(��������Login����������b����^����������b�^�,�������b�no password, no login�2��� ����b�#^UAM_privateOneTimeAuth�����������b�^������������������DFCC4D,�,�b���P��'��&��`DJCreate makeNetCDFjl.I file to convert slices into NetCDF form for Panoply.um�:���(�����������`D"This code builds on Jean's new PD.������������������`D������� �����������`D#file �.��������������`D#read by: makeNetCDFjl�����������������`D����0���������������`D#Example Order of inputs����D���2������������`D,B8x10_3pdC9 #run ID���T���B������������`D<JAN1902-1904.avgB8x10_3pdC9_LatByP #name of first acc file����H���6�����d`D0/u/cmrun/B8x10_3pdC9/ACC/ #input path����H���6���������`D1/u/cmrun/B8x10_3pdC9/ACC/ #output path���^���L�����@���`DGtftt #monthlies;quarters;seasons;annual���|���j������������`DQtttttttTTttttttttttttttttttttttttttttttttttttttttttttttTTTTTTTTTttttttttttttttttt`DTTTTttttttttttt������������������`D����|���j��������� `DQ.........1.........2.........3.........4.........5.........6.........7.........8.`D........9......��F���4�����������`D/#above is the variables to process from 1 to 96��"�����������D @diag@�e�6���$�����������@% @�@��������@ diag_path�����������������������*��������������`Dcreate the .I fileH���8���&������������@diag_@������@�Z $@��&����p���^����X�4@diag&@diag&��w�JAN��@�  @�������w�-��@�  @�������w�.avg���T���B����X�����@diag�@diag���@������w�_LatByP��@�Z $@��&��B���0����X�@���@ #@ PM_Platform�$@���wX Unix pathsT��x���f����X�����@diag@diag�� @PostProcessing_SubFolderPath w�average�@���X���@�Z $@��&����b���P����X�����@diag&@diag&�� @ PM_FindFolder w�slicesp��X���@�Z $@��&����"�������X�� @�� PC paths���r���`����X�����@diag&@diag&�� @PostProcessing_SubFolderPath w�average�@����@�Z $@��&����\���J����X�����@diag&@diag&�� @ PM_FindFolder w�slicesp���@�Z $@��&�����������X�����@�����������X��������8���&����X����A`D!monthlies;quarters;seasons;annual� �������X�����@ @������ �.�������X�����@diag�@diag���w�t����������X�����@���.�������X�����@diag�@diag���w�f����������X�����@��� �������X�����@ @��������.�������X�����@diag�@diag���w�t����������X�����@���.�������X�����@diag�@diag���w�f����������X�����@��� �������X�@ @������.�������X�@diag�@diag���w�t))��������X�@�.�������X�����@diag�@diag���w�f����������X�����@��� �������X�����@ @��������.�������X�����@diag�@diag���w�t����������X�����@���.�������X�����@diag�@diag���w�f����������X�����@���8���&����X�����@diag�@diag���@�Z $@��&������������X��������T���B����X�����`D=set the var, these should match those for the last processing���8���&����X�����@K @������w�oldAJLselection����8���&����X�����@ @������@�����@��������"�������X�����@�2 @���������,�������X�����@counter@��������������@���.����X�����@ @item��@�?��������@�@�����������"�������X�`D add value � �������X�@ @��������.�������X�@diag�@diag���w�t�:���(����X�@counter@counter��@�?���������������X�! @..�.�������X�@diag�@diag���w�f��������X���E@�&�������X��`Dadvance record�"�������X�T@�3 @��������������X�<@���8���&����X�l@diag�@diag���@�Z $@��&������������X����0�������X�֤`Drestore the old selection�.�������X�h@L w�oldAJLselection����������X�ڌ���,�������X�T`Dno geometry switch!!!�����������X�T���,�������X�<`Dwrite out the .I file���H���6����X�l@ diag_path @ PM_FindFolder w�DiagnosticsApps��N���<����X�OP@ docref_full@  @ diag_path��w�makeNetCDFjl.I����2��� ����X�Od@ #@ PM_Platform�$@���O�|���j����X�OD@�g @ docref_full�@� @� @diage�@�Z $@��&��@�Z @�@����������w�:�w�/�����������������@�:���(������������@�g @ docref_full�@ @diage��������������������@��(���������������@  @ docref_full����J���8�����������@ @ diag_path��w�makeNetCDFjl.I�w�R*ch��������������������.���������������`Dwrite out metadata file���\���J�������� @makeNetCDF_mdiz w�Vertical��w�makeNetCDFjl.I_mdi�@counter�����������������,�����������`Ddelete the stop file�R���@����*�����@ @ @ diag_path��w�makeNetCDFjl.stop��$@������@���.����*����@� @ diag_path��w�makeNetCDFjl.stop����������*����@�����������*�������*�������*�����`Drun the application���D���2����*����� @ PM_Launch @ diag_path��w� makeNetCDFjl������������*��������(�������*�����`Dstart timer here!������������DFCC4D[�7�J�`���N�������������8FAdd records to the database for files that are not already contained. ��L�L���:������������82Remove records in database where there is no file h��P���>����0�����87Each file is checked for type and against the database ��L� �������0������8 input ���*�������0������8 folder number ����0�������0������8 ptr to folder name ���.�������0������8 ptr to file names ����.�������0������8 ptr to folder path ����2��� ����0������ ��� folderNumbero�l���Z����0������- �� �� ��� folderPtr�filesPtr$� folderPathPtr� fileTypesPtri0�F���4����0�������cmCount� fileCount�fPosC�pos���J���8����0���������@�������� cmFilenames������������ a�>���,���������������cmRecordNumbers���������������*���������������� folderNumbero ������&���������������� folderPtr ������&����������������filesPtr$ �����*���������������� folderPathPtr ���B�����������������\�t���b������������� fileTypesPtri �CM_InputScanFilenameToType��filesPtr$� folderPtr� folderPathPtr������������������\�$���������������8 do queries �ef�B���0����������������� ����� ���@� folderNumberoD��@���.�������������U���� ����� ���@� folderPtrop�0����������������cmCount��L���� ����8���&������������� fileCount��filesPtr$������������������\�.����������������8scan for duplicates ����6���$��������������cmCount�@������������ ����������������\�(����������������8build and sort ����R���@���������������� ��� cmFilenames���� ���cmRecordNumbersrm�>���,��������������� cmFilenames�cmRecordNumbers���>���,���������������filesPtr$� fileTypesPtri���,����������������fPos��?���������������������������ct�^���L�������������8Escan both arrays, move the mark down as files are matched to records ����:���(��������������i��?��������cmCount..�T���B�������������pos���filesPtr$� cmFilenames�i�fPoslTT�2��� ��������������pos�@������������..�4���"�������������filesPtr$�pos\�:\ll�6���$�������������fPos�pos��@��?����������2��� ������������� cmFilenames�i\�:\pr�2��� ��������������fPos�@� fileCountrm�6���$�������������i�cmCount��@��?����������������������������������������������������������������P�����������������������������������(�&����������������8 add records �����<���*��������������i��?�������� fileCountg �:���(��������������filesPtr$�i�@\�:��$�����������������D���� �����.������������������ ��� folderNumbero����,������������������ ��� folderPtr���4���"��������������� ���filesPtr$�i�8���&��������������� ��� fileTypesPtri�i_�$�����������������5���� ��������������������������������������������������������2��� �������������8delete unmatched records ����:���(��������������i��?��������cmCount���:���(�������������� cmFilenames�i�@\�:���@���.������������������ ���cmRecordNumbers�i���$�����������������:���� ��wo��������������������������������������v����������������������������������������������DFCC4D�^w�<���*��$}��#}��L$Open list of web pages and view them����4���"����������^%��@���������webPath������������������������� ������������path���@���.��������^webPath � PM_FindFolder� eJournals�����������������������$�������� copy to list�&�����������^�Y � file_list���F���4��������^���@�������� � file_list����������������2��� ��������^�webPath� � file_list������������ ��F���4��������/dialog only shows if there are files to process�>���,��������^� � file_list����������������&�����������display dialogh��4���"��������^height������@��������ss������������^������@���������P��@�������������@���������P�height������@������������@�������������@�����������height�$��"� �� View Output�y@ Open a modal window��8���&����������^�(��������DiagnosticsList��S������������111^���������������� ����������� open file�0�������b����^ �OK���?�����������x���f����b�^�� � file_list� � file_list����@���������y@%check that they picked something real�^���L����b�^webPath � PM_MakePath�webPath� � file_list� � file_list�����P���>����b�^webPath � PM_MakePath�webPath�� index.htm���������������b��0�������b� ^ PM_WebLaunch_�webPath�������������^�(������������^������������^L�B���0�������� ^ Alert_Alert��?����������@��������������������^������������������������������������������������������DFCC4D}�{�@���.��$}��#}��L(Handle the menu in the SaveAs dialog, do�KO�R���@�����������:the new folder dialog if the user picks the last menu itemX���(�����������^ � OldMenuItem������������������������������^���(�����������^��$�������B���0���������*insert divider and "New Folder" menu items���@���.��������^� � ImageFoldersa� �ImageFoldersMenu��6���$��������^len� �ImageFoldersMenu��X���F��������^� �ImageFoldersMenu��len����?����������@����������J���8�������� ^ImageFoldersMenu��len����?��������-�T���B�������� ^ImageFoldersMenu��len����@��������� New Folder��6���$����������� ^ImageFoldersMenu��?��������0����������� ^ OldMenuItem��?����������(�����������^��$�����b���P��������Jif the last item in the menu is picked need to create a new folder instead���,�������b����of selecting the item���L���:����b�^ �ImageFoldersMenu�� �ImageFoldersMenu����������b�^������@���������P��@�������������@���������P��@�������������@������������@�������������@������������@��������$��'��� New Folder��y@ Open a modal window�:���(����b� ^ FolderTexto�Name of new folder:�0�������b� ^ Foldernameo�Untitled����<���*����b�^�(��������PastePICTNewFolder�������������)))%^����@���.��������^ �OK���?��������y@ add to menu�*��������������add new folder item��J���8�����������^� � ImageFoldersa���?����������?����������D���2�������� ^ ImageFoldersa���?������� � Foldernameo���*��������������^� � ImageFoldersa���"����������� reset menu�@���.��������^� � ImageFoldersa� �ImageFoldersMenu��6���$��������^len� �ImageFoldersMenu��X���F�������L^� �ImageFoldersMenu��len����?����������@���������LP�J���8�������� ^ImageFoldersMenu��len����?��������-���T���B��������� ^ImageFoldersMenu��len����@��������� New Folder����$�������� get back item�T���B������� ^ImageFoldersMenu�� �ImageFoldersMenu� � Foldernameo��y�H���6�����^Ap/restore old menu item if new folder is canceled�(�������� ^ Foldernameo��vi�6���$��������� ^ImageFoldersMenu � OldMenuItem����������|��^ N�������������^m�6���$�������� ^ OldMenuItem �ImageFoldersMenu�����������d^S��������DFCC4D0�j�:���(������������"0 open tables for post-processing "������t����ap���i Generic_OpenReopen???#PostProcessing_ProcessID@?x�PostProcessing Window?x�PostProcessing_Process??��������������������������������������������DFCC4DXrM�P���>���������d�d�7convert a 4D longint into a 4 digit integer for fortrance� ������������d�d� inputt�"������������d�d� longint� ������������d�d� output �"������������d�d� stringtyP� ������������d�d �d �$������������d�dyears�0������������d�d%%@������� ����2��� ���������d�d%%@�������str�4���"���������d�d%%@�������temp��"������������d�dyear� � ��������������d�dwr�2��� ���������d�d�convert longint to string�.������������d�dtempn� yearn���f���T���������d�dstr�Z$��*�@���������temp���ttemp��������������d�d � ������������d�dtreturn� � ������������d�d ��str�������������DFCC4Dn�(�b���P��&\��%\��gSKthis code takes in the field to sort and the name of the text to change theum�B���0��������S*sort order and undeline the collumn header������ �����������Sinput*�$�������H�0001S ->[db]field06�.�����������EMakS name of collumn headerta�L���:������������S4 optional (run anyway without requiring form event)-���������������000100�*�����������EMak�- @��@field_p� I�8���&������������@%@�@��������@ fieldName_s����"�����������aaaa@field_p- @���&���������������@ fieldName_s- @��������������������������������D@�B���0����v�dS+order based on what has been clicked on .�J���8����v�����@@�$@����x @�@�@�������������6���$����v�@���@�1@������@field_p���-����:���(����v�����@���w�l FieldLabel@�$@������X���F����v�����@���w�l FieldLabel_�-�@ fieldName_s�$@���-�$@������&�������v�>� Ssave sort info��4���"����v����� @eList_SortNamez-@ fieldName_s��4���"����v����� @eList_SortFieldPtr--@field_pP(��������v�����@��������������DFCC4D2%�>���,��'&��&&��gS&Setup cache manager and update caches, ��\���J��������1��SEshould work concurrently now through semaphores, now the process does��h���V�����������SPnot exit but is paused at the end of each loop so that it can be triggered again_���H���6�����������S1if it is useful for part of the program to do so.���������������������(���������������Ssetup process id����(�������p�0001# CM_ProcessIDMU@B07���������p�EMaker�N���<����p�����S6setup semphores, these are released by the subroutiens0���8���&����p�����S!$set:=Semaphore("$CM_OutputScan")���4���"����p�����@setU@�w�l $CM_InputScan����6���$����p�����@setU@�w�l$CM_ImagesScan������������p����ra���� ����p�����SinitU����� ����p�� @CM_Init�����������p�ͨ4���X���F����p�����S@loop over scans, since this code pauses at the end of every loop�4�H���6����p�@���S1you can reactivate the process to rerun the scans����������p�����@������ ����p�����Sscans�,�������p�� @#@CM_Priv_ScanInput����"�������p����� @ CM_InputScan_����������p�����@���.�������p�����@#@CM_Priv_ScanOutputU����&�������p�����SCM_OutputScan ���.�������p����A#@CM_Priv_ScanOutputUU@�����������p�����@���.�������p����@#@CM_Priv_ScanImagesU����"�������p����� @ CM_ImagesScan����������p�����@�����������p�������&�������p�����Sflush and pause����������p�����@)���*�������p�����@?#@ CM_ProcessIDM����8���&����p����� @@�?��������@�@�������������DFCC4D �+rZ�X���F��'��&��b$AOpen the cleanup window iff you are an admin. Normal users cannotLP�8���&��������^��b$ use cleanup and will be blocked.'���������������b$������� ������������b$ input������ ��������b$ none�M���� ��������TAT b$ outputMM���� ��������09 b$ none:0��������������������4���"����������b$you must be an admin to enter���,�������:�TAT  @UAM_Authenticate<�? ���������:�09 ??�T���B����:� b$<mark all tables as read only, then set one table as readable� ���� ����:� 1:0@� ��ll���������:�������� �������:�����b$do setup���.�������:����� @ Cleanup_Setup $@�"� ������������:��������(�������:�����b$setup the windowz���&�������:�����@�C w�Default����8���&����:�����@�7 @��� ���w�Clean up��������������:����� @myWind�@� #@ Toolbar_Width�@�@���������P@�?���������P@�?��������$@�"� �w�Cleanup�w� Cleanup_Close������������:�������� ����:�����@F @B����$�������:�����@ @myWind�������������:���������������:�����@���"�������:�����@�9 @��� ������0�������:����� @ @OK �8@���������������"�������:�����@�5 @��� ��������������:���������������:�����@�����������:��������6���$����:�����#@Cleanup_ProcessID@�������������eList$��DS_StoreMustDie����������DFCC4DC��R���@��'��&��b$;Show all the eJournals if some have been hidden by a searchDE���������scalb$�dG���� ����Ɯ�cb$ input������ ����"�scalb$ noneD:���� ����\�scalb$ outputD:���� �����scalb$ nonest�"��������������/ @���������2��� ���������@�1 @������@�������d ����^��������������^����������������&����������� ^��� FolderSizeF�����������DFCC4De\�d�,�����"��!��,�7dUAM_PasswordKeydowns���r���`����D�����7dQgeneric code to handle password field you need to set vActualValue to the passwor�7dd and���z���h��������D��7dQvPswd to a string of # equal to the length of the password plus vlastPosition to �7d the length of���"���������������7d the string.�������������������������������]���(������������P�o]���$������D���2������������]� tempStringt� �vPswd� � vActualValuec��*�����������] � vlastPosition���(���������������] tempStringt����!!�\���J�������� ]vPswd����5 The user will only see the content of this variable.�Z���H�������� ] vActualValuec����* The actual text value that user typed in.��2��� ��������ccc ] vlastPosition������������c�(�����������]���$�����&�������:����] tempStringt���B���0��������]��� tempStringt�� � vlastPosition��:���(�������� ] vlastPosition��� tempStringt��"����������� ]vPswd�����>���,��������]�i���?�������� � vlastPosition��^���L�������� ]vPswd �vPswd����+probably want to make a platform check here������������]�:���(��������????] � vlastPosition���?����������l���Z��������)�] tempStringt��� tempStringt���?�������� � vlastPosition�����?��������))������������]U�F���4�������� ] vActualValuec � vActualValuec��� tempStringt��(��������������]wclear on delete2@�"����������� ]vPswd������*����������� ] vActualValuec����Th�2��� �������� ] vlastPosition������������e ������������]v������������111]DFCC4D]�r�B���0��&\��%\��gS*add to or subtract from the list of imagespt���� ������S input���*���������S number of section���8���&������������S! add or subtract (true or false)���:���(����^����� @��@num�@oldCount$�@k����*�����������TAT @1 @��@addsubn� ?���� �����������@num~ @��"�����������0001@addsub�~ @�00�������������EMaker�"������������� @@addsub������� ����������Sadd ��@���.���������� @ @ItemListI�@num�wl@�?���������f�.�������������@oldCount$~@������������ �8���&��������aaaa @ItemListI�@num~@�?�������||����������������@���@���.������������@ @ItemListI�@num�wl@�@�����������6���$������������@oldCount$~ @ItemListI�@num���R���@������������ @ItemListI�@num~ @ItemListI�@num�~�@�?������������������������@���.�������������@oldCount$~@�@�������������������������@�����������������@���"��������������S subtract 8���@���.�����L4@ @ItemListI�@num�~@�?�����������R���@��������� @ItemListI�@num~ @ItemListI�@num�~`@�?������� ���������@���@���������������@�������������������@���.�����>� @InfoText_ShowHide@num�@�?��������������������������>���,���������S'load image another image has been added���L���:���������@@addsub����&@oldCount$�wl@�@������������`���N���������@k~@num�~`@�?���������@�@��������~� @ItemListI�@num���0�����������A @InfoText_LoadThumb~@k����������������@������������������0������������Sreset the figure captions���.����������� @InfoText_UpdateFigLabels������������������������������������DFCC4D�V�.�����&\��%\��gSopen up a progress bar����� ����������S input�{�2��� �����������S message for progress bar������ �����������S output�J���8��������0001S2 progress bar process (use call process to close)00�.�����������EMak<%@�@�������� @��ta���� ������������@ @������"���������������@@proc������������������������*���������������#@ProgressMessage^ @���`���N�����������@procr^@=w�lProgress_Process�#@ StackSize�w�lProgress_Process���� ��������������� @��^@prockpl�������������� ����������������������������������������������������DFCC4D }�b���P��'��&��b$K Typically used as a close box procedure. This code hides the windows ownedum�b���P�����scalb$Kby a process and the pauses the process. It is important to remember that a1�h���V����*��� b$Ppaused process can still hold on to a record in the database and prevent another�g�F���4������� b$.process from modifying or deleting the record.$�l���������scalb$�dG���� ���������b$ inputup�`���N���������b$H optional process to effect, if nothing is passed uses current process������ ����\�����b$ outputnt���� ����"�����b$ noneti�,�������Ɯ����� @��@ processID����������������.������������@ @�8@�?�����������$������������@ processID @����&������������@D @ processID�ta�&��������scal@? @ processID�at���������scal@b$���� �����scal@D @B� d���� ����������@? @B� b��������4����@�������������� �������ra��������������������:���(��������>� DFCC4D8 }�T���B��'��&��b$<Close any window by finding it's process and then closing it�����������*�b$������� �������b$ input�o���� �����scalb$ nonero���� ���������b$ outputss���� ���������b$ none��"�������\������ @wind����(�������"�����@ @ windProcess�����������Ɯ�����@� ������������@windP@��2��� ���������@ @windP�@���������������2��� ���������@ windProcess@ @windP����8���&���������@ @ windProcess�@���������������4���"������� @ Generic_Close @ windProcess��d���������@b$��������^���@b$������������������������������������������������������DFCC4Dn��F���4����Œ����F-Convert an array to a tab delinated text var ��� ���������������F input ��(�������(����F ptr to array ���.�����������F string, array name ���(�����������F array level �"�����������F output l�;� ���������������F text ��.�����������}- �arrayPtr@���>���,�������� $%�@������� � xml_array���.����������� � xml_level���B���0������������ ��texttempxml_name@�I�2��� ������������ilentypeߠ�&�����������|varrayPtr@ ����&�����������v� xml_array ����&������������d xml_level ���������������������(�����������$DOFget array len 0�2��� ��������lenarrayPtr@������������k�(��������������Fget array type ���4���"������������type'arrayPtr@[����������������߀�$���������������F start xml \;�`���N������������text XML_TagBegin� xml_array xml_level��@�Z$��&��@���.������������ xml_level xml_level��@�?��������������������������@���.������������F'convert elements to text based on type �6���$������������i�?�������len�������������������.���������������type:�@$�����0���������������arrayPtr@i��(���������������tempY�pTrueY�������������������(���������������tempY�pFalseY�������������������,���������������xml_name@Y�pboolY���N���<������������type:�@$��� @typep�@$�����<���*������������temp� arrayPtr@iߴ�*���������������xml_name@Y�pintY���.���������������type:�@$�����<���*������������temp� arrayPtr@i[�,���������������xml_name@Y�prealY���N���<������������type:�@$��� @typep�@$�����4���"������������temparrayPtr@iv�.���������������xml_name@Y�pstringPY�������������������<���*������������temp� arrayPtr@i�������������������<����������������texttext��@ XML_TagBegin�xml_name@ xml_level��@templ��@ XML_TagEnd�xml_name@���������������������������������������������� ���������������Freturn ��@���.������������ xml_level xml_level�@�?���������V���D������������texttext��@ XML_TagEnd� xml_array xml_level�"��������������� ��text����DFCC4D_r�, �>���,��'&��&&��gS&code to enable buttons in toolbar, all ��D���2�����(S,work is done here or in procedures from here�������������������T���B���������S<make sure that the toolbar info section is saved and blanked����4���"����ȶ����� Info_iPhoto_UpdateInfoc@�����6���$����\�����Sdo buttons pressed from toolbar���������������@� �F���4����ļ�����@#@InfoPict_Button�@�?��������wO8prevc���@���.��������� @Info_iPhoto_LoadThumb�c`@�?�����������F���4����\�����@#@InfoPict_Button�@�@���������wO8next ���<���*����@����� @Info_iPhoto_LoadThumb@�?�����������F���4����p�����@#@InfoPict_Button�@�@���������wO8first���@���.����`����� @Info_iPhoto_LoadThumb�c`@�@������������F���4������������@#@InfoPict_Button�@�@��������wO8lastc���<���*�������� @Info_iPhoto_LoadThumb@�@������������J���8�����TAT @#@InfoPict_Button�@�@��������wO8 import 6 �&��������TAT @Info_iPhoto_Sync �f���T���� �TAT @#@InfoPict_Button�@�@��������wO8$sort, update internal values as wellcc_�6���$����<�����@�1@��� ���#@ InfoPict_Ptrn�����\���J����J�����@foundc@� @IBC_SortI�#@DragTransferFilename;�@�?��������K�6���$����������Schange menu from external call���2��� ������������@@found�c@������������6��(�������������� @IBC_SortIc@found���������P�����@���@���.������������ @Info_iPhoto_LoadThumb�c`@�@������������F���4������������@#@InfoPict_Button�@�@��������wO8query���V���D������������@@��� ���@�� ���w�l@�c�#@ InfoPict_Ptrn��c�w�l@����2��� ����@�����@�1@��� ���@�� ����c����@���.��������d @Info_iPhoto_LoadThumb�c`@�@���������\O�f���T����(�����@#@InfoPict_Button�@�@��������wO8$view, update internal values as wellcaa�6���$�����������@#@ InfoPict_Ptrn��w�lAll����"������������@�/@��� �����>���,�����������@�1@��� ���@�� ����c�wO8reset??����������"�aaaa@�B���0������������@@��� ���@�� ���#@ InfoPict_Ptrn����>���,���������@�1@��� ���@�� ����c�wO8reset??�����������������@���6���$��������aaaaSchange menu from external call||�D���2������������@foundc@� @IBC_ViewI�#@ InfoPict_Ptrn�����2��� ��������0001@@found�c@������������00�(�����������EMak @IBC_ViewIc@found4D�.�����������TAT @IBC_SortIc@�?������� S������������S @ 0�@���.���������� @Info_iPhoto_LoadThumb�c`@�@���������� �H���6��������d@#@InfoPict_Button�@�@��������wO8delete���(��������������� @Info_iPhoto_Deletec���N���<��������@���@#@InfoPict_Button�@�@��������wO8 import imagec���(��������������� @Info_iPhoto_Importc��N���<������������@#@InfoPict_Button�@�@��������wO8 update menusc���*������������ @Toolbar_IBC_ViewBuild���.��������������� @IBC_SortIc@�?�����������������������@��4���"������������#@InfoPict_Buttonc@���������������������������������������������������DFCC4D%Dmv�2��� �������7dshow the progress window���&���������������[�winRef?��tu��������,�����[� ��������������[��?P��_D����~������������[winRef�?����������Progress��$��'��������@����������?P��@��������������@���������� i�4���"������������[�(���������Progress����&��������������[��winRef?��tu������������������������������������������DFCC4D-�,�e�h�h���V�� L�� L����8OCreate LatByLong.I file and the LatByLong.I Diag file to post process the maps ����b���P������������8IAdded support for stop files so that this script can run with makeNetCDF ��"���������������8 output l���F���4�������������8, boolean ,true if makeNetCDF should be run \���$��������������(e(diag�eeet�$���������������(e(diag2ee��8���&��������8���(%e(�@�������e( diag_pathee���*���������������(2e( docref_fullee��"���������������(e(poseeru�$���������������(e(itemeee;� ������������(1e (��ee t�������������ees�>���,����������8$check that there is something to do e����F���4���������(e(�����e @(�����e @(�����e @(����ee������ ��������� (��e(�(���������������((���� ��������� (��e(�(���D���2��������� ( Alert_Alerte(�@��������e(�@�������ee��������������((�<�������������([�2��� ����������8check for existing files �����v���������( diag_pathe ( PM_FindFoldere�� mapsee�e�@(�����e�@�� _�e�@(� e(����e�e�@�� -�e�@(� e(����ee���:���(���������(e(e( diag_pathe�e@$(��ee�b���P��������� (Alert_ParamTexte (PM_Namee( diag_pathe(�eee��eee��eee��eee[�D���2��������� ( Alert_Alerte(�@��������e(�@�������eeor�2��� ���������(e (OKE�e@(�?�������ee@���� ��������� (��e(�(���������������((p���� ��������� (��e(�(���������������((�������������((c�������������(k���� ���������(e (��ee���,�������������8create the .I file �>,����v���������(diag�e ( PM_FindFoldere�� acce�e�@�� JAN�e�@(� e(����e�e�@�� .acce�e�@(�����e�@(�Ze$(��&ee���J���8���������(diag&e(diag&�e�@( diag_path�e�@(�Ze$(��&eec�l���Z������������(diag&e(diag&�e�@(� e(�����e@(�����e�@(�?�������e�e�@(�Ze$(��&ee���d���R������������(diag&e(diag&�e�@e�Old�e�@(�Ze$(��&e�e�@��n�e�@(�Ze$(��&ee��b���P�������������8HMana2:Pascallion:EdGCM Folder:Output:MAC010aC9:acc:JAN1905.accMAC010aC9 f���j���X�������������8QMana2:Pascallion:EdGCM Folder:Output:MAC010aC9:postprocessed:MAC010aC9_IJ_1905-1 �s����� �������������85 n������� �������������8Old �������� �������������8n d�mR�����������������\�0���������������8write out the .I file ����J���8����ɲ���\( diag_pathe ( PM_FindFoldere�� DiagnosticsAppsee���L���:����ɲ�����( docref_fulle( e( diag_path�e�@e� LatByLong.Iee���4���"����ɲ����(�ge( docref_fulle(diageee�*�������ɲ����( e( docref_fulleed �H���6����ɲ����(e( diag_path�e�@e� LatByLong.Iee�R*cheee��������ɲ�ic��e\�F���4����ɲ�����8-create the .I Diag file and the .I Name file ����4���"����ɲ�����(diag_e(e(�@ @������ee;�4���"����ɲ�����(diag2e(e(�@ B������ee�2��� ����ɲ������8set intervals to average ��"�������ɲ�����(e(����ee��6���$����ɲ�����(diag�!e(�@�������"eee�Te��������ɲ�����((���6���$����ɲ�����(diag�!e(�@�������"eee�Fe��������ɲ�����((@�"���������������(e(����ee��6���$������������(diag�!e(�@�������"eee�Te������������������((���6���$������������(diag�!e(�@�������"eee�Fe����������������((�"���������������(e(����ee ��6���$������������(diag�!e(�@�������"eee�Te��������������((�6���$��������\(diag�!e(�@�������"eee�Fe��������������dGCM((���"��������(e(����ee�;�6���$�����(diag�!e(�@�������"eee�Te�������������((���6���$���������(diag�!e(�@�������"eee�Fe�����������_"$((���2��� �����3���8set variables to average � A�*�����������(pose(�@�������(���$�����������(�2e(�����eey �.�������������8add to .I Diag file e����D���2������V��(e(item�e(�?�������e(�Le(�����eee���"�����������(e(����ee�.������������(diag�!e(pos"eee�Te���������������((�.������������(diag�!e(pos"eee�Fe���������������((es�0��������ste��8add to .I Name file ����\���J�����J�(diag2e(diag2�e�@e�'�e�@(�����e�@e�',�e�@(�Ze$(��&ee�4���"�������E(e(item&�e@(�@�������ee�e�T���B����������8;add internal stuff to file for subsections of namelist �ce�L���:���������(e(�be(item�e(�@�������e�e@(�����������ee���|���j�����7f(diag2e(diag2�e�@(�Ze$(��&e�e�@�� ZNAMP�e�@(� e(item&�e�@(�?�������e�e�@e�= e����������������((M_�:���(��������ic��(diag2e(diag2�e�@e� e������������������((O����������������((BT����������������(\�(����������������8advance record �l�$��������������(�3e(�����eeer�B���0������������8(offset to the next char/line in .I Diag e��4���"�����������(pose(pos�e�@(�@��������(LO�L���:��������(e(�be(item�e(�@�������e�e@(�����������ee`�4���"��������(pose(pos�e�@(�@�������(����������������((�x�L���:������������(e(�be(item�e(�@�������e�e@(�����������ee���4���"������������(pose(pos�e�@(�@��������(������������������((�x����������������((�x����������������((d����������������(���*����������������8end .I Name file � �H���6������������(diag2e(diag2�e�@e� &END�e�@(�Ze$(��&ee��������������_%e-�6���$�������������8write out the .I Diag file Z��R���@������������( docref_fulle( e( diag_path�e�@e�LatByLong.I Diageee���4���"������������(�ge( docref_fulle(diageee+�*���������������( e( docref_fullee���N���<������������(e( diag_path�e�@e�LatByLong.I Diageee�R*cheee������������������e[�4���"��������4����8write out the .I Name file ����R���@������������( docref_fulle( e( diag_path�e�@e�LatByLong.I Nameeee���4���"������������(�ge( docref_fulle(diag2ee���*���������������( e( docref_fulleeys�N���<������������(e( diag_path�e�@e�LatByLong.I Nameeee�R*cheee������������������eu �F���4�������������8,copy over the land file from the run folder \������������������� (PM_CopyFortran�e(�@��������e���ee ( PM_FindFoldere�� CurrentRun8ee(�@�������e( diag_pathe(�@�������e(�ee������������������ (PM_CopyFortran�e(�@��������e���ee ( PM_FindFoldere�� CurrentRun8ee(�@�������e( diag_pathe(�@�������e(�ee����������������e[�8���&�������������8delete stop file if it exists ����R���@������������(e(e( diag_path�e�@e�LatByLong.stope�e@$(��ee���@���.������������(�e( diag_path�e�@e�LatByLong.stopee������������������((����������������(���.���������������8run the application e����^���L�����������(errCodee(.�e( diag_path�e�@e� LatByLong.appe(�����������ee�����������������e(�<���*������������8#wait for the application to finish ����"���������������(done�e(�(li���������������((d�0��������������(Ce(Be(�@�������ee���R���@��������{{(e(e( diag_path�e�@e�LatByLong.stope�e@$(��ee d�0���������������(Ce(Be(�����������ee��@���.������������(�e( diag_path�e�@e�LatByLong.stopee���"�����������ff(done_e(�(st������������(( �.��������������(ee("e�e@e(eee���"���������������(done_e(�( s���� ��������_"$ (��e(�(��������������3��((v�"��������������� (e(done_ee���0���������������(Ce(Be(�����������ee�����������������((c��������������������������������������DFCC4DV�j���������������av�(�������@����)~|�BustedP~~������������������������������������������DFCC4DE��0����� �����7dopen user editor window���l���Z�������� [Generic_OpenReopens}#� UAM_ProcessID��� UAM Window���UAM_Editor_Process(����������������DFCC4D��O�>���,������ Simulation_GroupChangeAllG ClosedGGG��������������G�������������������������?�??DFCC4D''��T���B��'A��&A��gS=launch a viewer application, you provide the application name���.��������������- @��@ prefPathPtr����<���*����r����@%@�@�������� @��@app_name$����6���$�����������@%@�@��������@ diag_path��&�����������0001@ prefPathPtr. @�00�$�����������EMak@app_name$. @�����������������������B���0�����������@@�@ prefPathPtr��.@�@������������B���0������������@,w�l_4D_OPTION_HIDE_CONSOLE�w�lFalse���J���8��������d@errCode.@.�@ prefPathPtr�@�����������������������������@ �F���4��������@���@ diag_path. @ PM_FindFolderw�l Applications.��������������������@��*���������������Srun the application�B���0��������� @,w�l_4D_OPTION_HIDE_CONSOLE�w�lFalse����V���D���������@errCode.@.�@ diag_path�.�@app_name$�@����������������������������@����������������������������������������������DFCC4DQ�1�"U�h���V������������8OThis code checks for invalid records in the CM_File database. A record becomes ��v���d������������8Qinvalid if it is no longer on disk. An invalid record is deleted. Maybe the user �8should ��r���`���������8Qbe warned about long descriptions? If a folder is renamed then all the records wi�8ll ���t���b���������8Qbe considered lost and deleted. This should use query destinations to speed thing�8s up �ic� ������������8 input �ds�@���.������������8& ptr to an array of folders in input ��<�F���4������������8- number to identify folder to check against ��4���"���������- ���imageFoldersPtrPt�.�����������RR� ��� folderNum���,����������� $�imageFoldersPtr ������&���������������� folderNum ���li������������������.�����������www�$���\�All���>���,���������������� ����� ���@� folderNum���$����������� ��$�����:���(��������RR���� ���imageFoldersPtr���0�����������wfN�$���\�Foundr$�>���,��������|v�U���� ����� ���@� folderNum���>���,��������v���z\�All\�Found\�Missing���@���.���������d���\�Missing�@������������os�(�����������������v\�Missing��$�����������$DO��B���� �� ������������������$�������������u\�Aller�&����������������u\�Found��(�����������������u\�Missing���$����������������$��� �������������������������DFCC4D K�Jjy�p���^��'��&��b$QExports a record to XML. Data from BLOBs and subrecords is converted into text thb$atpfn�p���^�����������b$Qcan be read back in later. First a normal export is done to XML. Then the extra db$ata3�t���b�����������b$Qis added into the XML by this code. This code should be run from the simulation pb$rocesse���Z���H������������b$Cright now since it assumes that some arrays loaded from BLOBs exist���r���`��������0001b$QThis version uses a path passed in instead of the normal kind, needed for multi-eb$xport00���� ��������EMakb$ inputr��6���$������������b$ path to location to save file���@���.���������y�T�% @�@�������� @��@ xml_file_path��L�2��� ���������l� @% @�@��������@path���d�&������������o�s@\ @settings$��s�8���&���������� @ @i�@len�@ currentRecord��d�,������������a�t@ @XML�@insertt���$������������a�g@2 @docReft���(������������y�T@ xml_file_path @����������������l� �V�4���"��������111@ currentRecord@� @��������������������������T���B���������� b$=the rundeck must be resaved to see the changes to the rundeck� �"������������a�t@����w����"������������a�g@�5 @��������,������������y�Tb$Safe_SaveSimulation �-��������������l� �V�:���(��������b$#added data from BLOBs and subtables�.�����������)))%@insert�@�Z $@��&�������������@insert�@insert��� @ XML_TagBeginL w�version�@�@�����������#@ XML_Version�� @ XML_TagEndM w�version�@����������������������������@�,�����������b$add User Preferences�z���h��������@insert�@insert��� @ XML_TagBeginL w�User Preferences�@�@�����������@�Z $@��&��N����������������@insert�@insert��� @ XML_TagBeginL w� GroupVers�@�@����������@�  #@CurrentGroupVers(��� @ XML_TagEndM w� GroupVers�@���������������t���b������������@insert�@insert��� @XML_ArrayToText 7 @ Group_State�w� Group_State�@�@�����������x���f������������@insert�@insert��� @XML_ArrayToText 7 @ Group_Visible�w� Group_Visible�@�@�����������d���R������������@insert�@insert��� @ XML_TagEndM w�User Preferences�@�@������������������������������� ���������������b$ add links���n���\������������@insert�@insert��� @ XML_TagBeginL w�Links�@�@�����������@�Z $@��&�������������������@insert�@insert��� @ XML_TagBeginL w� CurLinksVers�@�@����������@�  #@CurrentLinksVers(��� @ XML_TagEndM w� CurLinksVers�@���������������p���^������������@insert�@insert��� @XML_ArrayToText 7 @ LinksList�w� LinksList�@�@�����������x���f������������@insert�@insert��� @XML_ArrayToText 7 @ LinksListType�w� LinksListType�@�@�����������|���j������������@insert�@insert��� @XML_ArrayToText 7 @LinksListFieldt�w�LinksListField�@�@�����������x���f������������@insert�@insert��� @XML_ArrayToText 7 @ LinksListWord�w� LinksListWord�@�@�����������X���F������������@insert�@insert��� @ XML_TagEndM w�Links�@�@�������������������������������$���������������b$ add keywords���Z���H������������b$C$insert:=$insert+XML_TagBegin ("Keywords";3)+Char(Carriage return )���@���.������������b$)ALL SUBRECORDS([Model Variables]Keywords)���B���0������������b$*FIRST SUBRECORD([Model Variables]Keywords)R���P���>������������b$8$len:=Records in subselection([Model Variables]Keywords)���&���������������b$For ($i;1;$len)������n������������b$Q$insert:=$insert+XML_TagBegin ("string";4)+[Model Variables]Keywords'Keyword+XML_b$TagEnd ("string";0)���@���.������������b$)NEXT SUBRECORD([Model Variables]Keywords)��� ���������������b$End for ���B���0������������b$*$insert:=$insert+XML_TagEnd ("Keywords";3)R������������������������� ������������b$finish���R���@������������@insert�@insert��� @�@���������@�Z $@��%������������������������2��� ������������b$get settings file into blob���B���0������������@path% @ PM_FindFolder w� Applications����Z���H������������@pathi @ PM_MakePath @patha�w�XML Export Settings 3.0�@�����0���������������@  @patha�@settings$�����������������������$���������������b$ do the export���8���&������������@ @ xml_file_path�@settings$�����������������������.���������������b$if the record exported���0���������������@ @OKt�8@�?�����������(���������������b$get the XML filez���(���������������@path� @DocumentD���.���������������@docRefn@ @pathe����,���������������@len@ @docRef�����4���"������������@�h @docRef��@XML�@len�����������������������&���������������b$insert new info���:���(������������@pos@� w� </Rundeck>��@XML����<���*������������@XML@� @XML�@insert��@pos�������������������������� ������������b$cleanup���D���2������������@ @docRef��@������������@�?�����������,���������������@�g @docRef��@XML����$���������������@  @docRef�����.���������������@ @pathe�w�R*ch9�������������������@����������������������.���������������b$restore current record���4���"������������@� @������@ currentRecord�����������������������.���������������Srestore current record���4���"������������^��������� currentRecord���������������������������������������������������DFCC4D �s�)�f���T��'A��&A��gSOCreate tab delineated trend files to preview in PlotShop without already havingZ�p���^��������^��SQa run folder to place the files in. This is a special case of the general code siSnce���T���B�����������S<we need to launch PlotShop afterwards. Added support for EVA������� ��������0001S input00�^���L��������EMakSG # of trend to preview, the order is: CO2, CH4, N2O, CFC11, CFC12, S0X���������������������,�������������� @��@trendNum$��2��� �����������@@listRef�@listItem$����8���&���������p�u@%@�@��������@ trend_patht��d�$������������f�o@trendNum$. @��P���������������)����� ���������p�uSpath.��D���2���������f�o@ trend_patht. @ PM_FindFolderw�l TrendApps�������������:���(�����cccS#create files, the pause is includedc�T���B����� @ trendSetter_Iw�l�.�w�l�.�@��@�����.�w�l trends����������������$��������S get filename�:���(�����@listRef.@w�lPPMV58 Revisted��f���T�����@listItem$.@trendNum$�.`@�?���������@�@��������.�@�?��������"��������@#@Use_EVA��x���f�����@ trend_patht. @ PM_MakePath@ trend_patht� @GetListItemStr.@listRef�@listItem$��@���2��� ���������@#@ PM_Platform�$@������B���0��������� @PostProcessing_TypeViewEVA�@ trend_patht����������������@���P���>��������A @PostProcessing_TypeViewEVA�@ trend_patht�.�w�l.xls;�pl�������������@��������������@���2��� ���������@#@ PM_Platform�$@������6���$��������Sopen with Excel on Mac as well���b���P���������@ trend_patht.@ trend_patht�.� @GetListItemStr.@listRef�@listItem$����4���"���������@@ trend_patht�w�lTEXT;����4���"���������@@ trend_patht�w�lXCEL;����H���6���������@errCode.@.�@ trend_patht�@���������������:���(���������@�� !PC names are for excel files .xls���B���0���������@,w�l_4D_OPTION_HIDE_CONSOLE�w�lFalse����x���f���������@errCode.@.�)@ trend_patht�.� @GetListItemStr.@listRef�@listItem$��.�w�l.xls�i�������������@���������������@������������....���� ���������Scleanup���$���������������@y@listRef���������������������������������������������������������������DFCC4DR�,4!�p���^��%��$��gSQPath Manager equivlient of the FindFolder command in Folder.p that gets the path Stotfn�r���`��������SQa folder based on a constant passed in. In this case I use string constants so thSat it���p���^��������KSQis extensible. Also supports auto platform choices where the folders have differeSnt ���h���V����v����SQnames on Mac and PC. Also supports option * parameter to do Unix style paths. Thel�n���\���������SQUnix paths are assumed to come from the postprocessing folders inside ApplicationSs���n���\������������SQso that they all start with ../../ and don't work for folders inside ApplicationsS.���� ���������� S input�t�0������������d�eS string, folder constant�k�B���0��������0001S* * (optional), use Unix path char instead00���� ��������EMakS outputr��H���6������������S0 path to the folder including final \ or : or /����F���4������������%@�@�������� @�� @���@ kFolderConstF����(�����������@ kFolderConstF% @������������������N���<�����������@@�@�?��������wO8use platform specific paths����������������������������������@���h���V��������@@�@���������@�@��������wO8*internal paths used by path manager itself��r���`��������@@ kFolderConstF�w�l _AliasHack��wO81hack to set PC paths right using a special folder�P���>�������� @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@�����D���2����� @��% @ PM_MakePath @���w�lAlias PC��@�������������X���F�����@@�@���������@�@���������wO8these are all global pathsd�H���6�����@@ kFolderConstF�w�lEdGCM�wO8 EdGCM folder$JJ�$��������111 @��%#@PM_EdGCM���F���4�����@@ kFolderConstF�w�lData�wO8 Data folder�H���6����� @��% @ PM_MakePath#@PM_EdGCM�w�lData]�@���J���8�����RRR@@ kFolderConstF�w�lOutput�wO8 Output folder��J���8�������� @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@���H���6�����@@ kFolderConstF�w�lInput�wO8 Input folder$�H���6�������� @��% @ PM_MakePath#@PM_EdGCM�w�lInput�@��RR�Z���H�����@@ kFolderConstF�w�lInput Forcings�wO8Input Forcings folder�R���@��������� @��% @ PM_MakePath#@PM_EdGCM�w�lInput Forcings�@����V���D�����@@ kFolderConstF�w�l Input Oceans$�wO8Input Oceans folder�P���>����� @��% @ PM_MakePath#@PM_EdGCM�w�l Input Oceans$�@�� �`���N����� @@ kFolderConstF�w�l Input Special�wO8Input Special Regions folderw �X���F������� @��% @ PM_MakePath#@PM_EdGCM�w�lInput Special Regions�@����h���V�������� @@ kFolderConstF�w�lInput Special Regions�wO8Input Special Regions folderw��X���F�������� @��% @ PM_MakePath#@PM_EdGCM�w�lInput Special Regions�@����J���8�����������@@ kFolderConstF�w�lImages�wO8 Images folderP�J���8���������� @��% @ PM_MakePath#@PM_EdGCM�w�lImages�@��X�V���D������������@@ kFolderConstF�w�l Applications$�wO8Applications folder���P���>������������ @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@�����h���V��������@@ kFolderConstF�w�lDiagnosticsApps�wO8"Diagnostics folder in Applications@�P���>��������  @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@���2��� ��������@#@ PM_Platform�$@������F���4��������� @��% @ PM_MakePath @���w�l Diagnostics�@��������������@ �H���6�������� @��% @ PM_MakePath @���w�l DiagnosticsPC�@������������������@���X���F������������@@ kFolderConstF�w�lOHTApps�wO8OHT folder in Applications����P���>������������ @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@�����2��� ������������@#@ PM_Platform�$@������>���,������������ @��% @ PM_MakePath @���w�lOHT�@��������������������@���@���.������������ @��% @ PM_MakePath @���w�lOHTPC�@��������������������@���Z���H�����������@@ kFolderConstF�w�l TrendApps�wO8OHT folder in Applications�P�P���>����������� @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@����2��� �����������@#@ PM_Platform�$@�����@���.������������ @��% @ PM_MakePath @���w�lTrend�@��������������������@���B���0������������ @��% @ PM_MakePath @���w�lTrendPC�@����������������@�n���\��������@@ kFolderConstF�w�lSpecialRegionsApp�wO8&Special Regions folder in Applications��P���>�������� @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@���2��� ��������@#@ PM_Platform�$@����J���8�������� @��% @ PM_MakePath @���w�lSpecialRegions�@������������������@���L���:������������ @��% @ PM_MakePath @���w�lSpecialRegionsPC�@��������������������@���P���>������������@@ kFolderConstF�w�l eJournals�wO8eJournals folder$���P���>������������ @��% @ PM_MakePath#@PM_EdGCM�w�l Applications$�@�����D���2������������ @��% @ PM_MakePath @���w�l eJournals�@������������������������l���Z������������@@�?��������@�@���������wO8/these paths are all relative to the current run���^���L������������@@ kFolderConstF�w�l CurrentRun��wO8path to run folder in outputw���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@��������p������������@@ kFolderConstF�w�lCurRun�wO8Dcompadible version of run folder path that doesn't put on the last :$���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����D���2������������@@ kFolderConstF�w�lacc�wO8 acc folderd���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����>���,������������ @��% @ PM_MakePath @���w�lacc�@�����D���2������������@@ kFolderConstF�w�lrsf�wO8 rsf folderd���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����>���,������������ @��% @ PM_MakePath @���w�lrsf�@�����D���2������������@@ kFolderConstF�w�lprt�wO8 prt folderd���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����>���,������������ @��% @ PM_MakePath @���w�lprt�@�����H���6������������@@ kFolderConstF�w�locean�wO8 ocean folder$���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����@���.������������ @��% @ PM_MakePath @���w�locean�@�����T���B������������@@ kFolderConstF�w�l diagnostics�wO8diagnostics folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����b���P������������@@ kFolderConstF�w�lpostprocessing�wO8postprocessing in diag folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����J���8������������ @��% @ PM_MakePath @���w�lpostprocessing�@�����R���@������������@@ kFolderConstF�w�ltables�wO8tables in diag folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����N���<������������ @��% @ PM_MakePath @���w�ltables_�$�@�����@�����P���>������������@@ kFolderConstF�w�lplots�wO8plots in diag folder$���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����N���<������������ @��% @ PM_MakePath @���w�lplots_�$�@�����@�����N���<������������@@ kFolderConstF�w�lmaps�wO8maps in diag folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����L���:������������ @��% @ PM_MakePath @���w�lmaps_�$�@�����@�����P���>������������@@ kFolderConstF�w�lslices�wO8maps in diag folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����P���>������������ @��% @ PM_MakePath @���w�l vertical_�$�@�����@�����N���<������������@@ kFolderConstF�w�lzones�wO8maps in diag folder���J���8������������ @��% @ PM_MakePath#@PM_EdGCM�w�lOutput�@�����>���,������������ @��% @ PM_MakePath @���@�����@�����T���B������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�����N���<������������ @��% @ PM_MakePath @���w�lzonal_�$�@�����@�����^���L������������@@ kFolderConstF�w�l CurrentVolume�wO8name of the current volume����t���b������������ @��%@� #@PM_EdGCM�@�?��������@�#@ PM_PathChar�#@PM_EdGCM��%`@�?�����������@���.������������@�� 'the fallback is the EdGCM folder itself���$��������������� @��%#@PM_EdGCM������������������@���H���6������������@�� /use Unix paths, not all folders can be accessed�������������������������������������@���X���F������������@@�@���������@�@���������wO8these are all global pathsd���H���6������������@@ kFolderConstF�w�lEdGCM�wO8 EdGCM folder$���(��������������� @��%#@ PM_EdGCM_Unix���J���8������������@@ kFolderConstF�w�lOutput�wO8 Output folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������H���6������������@@ kFolderConstF�w�lInput�wO8 Input folder$���R���@������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lInput�@�������Z���H������������@@ kFolderConstF�w�lInput Forcings�wO8Input Forcings folder���\���J������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lInput Forcings�@�������V���D������������@@ kFolderConstF�w�l Input Oceans$�wO8Input Oceans folder���Z���H������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�l Input Oceans$�@�������`���N������������@@ kFolderConstF�w�l Input Special�wO8Input Special Regions folderw���b���P������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lInput Special Regions�@�������J���8������������@@ kFolderConstF�w�lImages�wO8 Images folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lImages�@�������~���l������������@@ kFolderConstF�w�l Applications$�wO8:Applications folder, special case closer to current folder��� ��������������� @��%w�l../���t���b������������@@ kFolderConstF�w�lDiagnosticsApps�wO8.Diagnostics folder might be the current folder`��� ��������������� @��%w�l./0���t���b������������@@ kFolderConstF�w�lOHTApps�wO86OHT folder in Applications might be the current folder��� ��������������� @��%w�l./0���P���>������������@@ kFolderConstF�w�l eJournals�wO8eJournals folder$���Z���H������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�l Applications$�@�������J���8������������ @��% @ PM_MakePath @���w�l eJournals�@��������������������������l���Z������������@@�?��������@�@���������wO8/these paths are all relative to the current run���^���L������������@@ kFolderConstF�w�l CurrentRun��wO8path to run folder in outputw���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������D���2������������@@ kFolderConstF�w�lacc�wO8 acc folderd���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������D���2������������ @��% @ PM_MakePath @���w�lacc�@�������D���2������������@@ kFolderConstF�w�lrsf�wO8 rsf folderd���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������D���2������������ @��% @ PM_MakePath @���w�lrsf�@�������D���2������������@@ kFolderConstF�w�lprt�wO8 prt folderd���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������D���2������������ @��% @ PM_MakePath @���w�lprt�@�������H���6������������@@ kFolderConstF�w�locean�wO8 ocean folder$���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������F���4������������ @��% @ PM_MakePath @���w�locean�@�������T���B������������@@ kFolderConstF�w�l diagnostics�wO8diagnostics folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������Z���H������������@@ kFolderConstF�w�lpostprocessing�wO8tables in diag folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������P���>������������ @��% @ PM_MakePath @���w�lpostprocessing�@�������R���@������������@@ kFolderConstF�w�ltables�wO8tables in diag folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������T���B������������ @��% @ PM_MakePath @���w�ltables_�$�@�����@�������P���>������������@@ kFolderConstF�w�lplots�wO8plots in diag folder$���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������T���B������������ @��% @ PM_MakePath @���w�lplots_�$�@�����@�������N���<������������@@ kFolderConstF�w�lmaps�wO8maps in diag folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������R���@������������ @��% @ PM_MakePath @���w�lmaps_�$�@�����@�������P���>������������@@ kFolderConstF�w�lslices�wO8maps in diag folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������V���D������������ @��% @ PM_MakePath @���w�l vertical_�$�@�����@�������N���<������������@@ kFolderConstF�w�lzones�wO8maps in diag folder���T���B������������ @��% @ PM_MakePath#@ PM_EdGCM_Unix�w�lOutput�@�������D���2������������ @��% @ PM_MakePath @���@�����@�������Z���H������������ @��% @ PM_MakePath @���w�l diagnostics_$�$�@�����@�������T���B������������ @��% @ PM_MakePath @���w�lzonal_�$�@�����@�������B���0������������@�� )fallback is the current working directory��� ��������������� @��%w�l./0������������������@������������������@��DFCC4DF�7�\���J��$}��#}��LDFind the fields who match the search. The find dialog is model after���^���L�����������Gthe Finder find window in Jaguar (10.2). The search is cumulative which���`���N������������Hmeans that if you search again you are only searching the results of the����$�������������� first search.���X���F�����������ANow supports both List View and eList so some pointers are passed���� ������������ input���P���>�����������8 form in use, used for loading the menu and other spots�&����������� table to useh��4���"�������� fields to use as array ptr��2��� ��������^ ��� �FindMasterFormA��0��������������^- ���� FindTablePtri����B���0��������^- ����FindFieldArrayPtr��FieldPtr$��4���"��������^%��@���������findStr����*����������� ^FindMasterFormA ���(�����������^ FindTablePtri ���,�����������111^FindFieldArrayPtr ��rr��������������4���"����b����^�7��������Find(�������������b�^����P��@����������@������������P��@�����������@����������P��?���������P��?���������P$��"���Find.�y@-1045���������b��.�������b�^�(��������Find(���������b�^��0�����������^ �OK���?���������0�����������)))%define the search type �F!�:���(��������^ � FieldToSearch���@��������2����������������^�F���4�����������^ � SearchTypee���?��������y@contains�@���.����������L^findStr�@�� � SearchTexte���@KO�N���<�����������^ � SearchTypee���@���������y@starts with ���6���$������������^findStr � SearchTexte���@���F���4��������^ � SearchTypee���@���������y@ ends with� �6���$��������^findStr�@�� � SearchTexte�@���.���������^ � SearchTypee���@��������y@is���,������������^findStr � SearchTexte���������������^�����������^�J���8�������2search from whole db is disabled by Mark's request(de�6���$�����ALL RECORDS([Model Variables])fo� �������� do search�J���8���������^FieldPtr$�FindFieldArrayPtrj� � FieldToSearch�����������|��^ N�J���8���������^ � FieldToSearch���@��������y@ run numberT���J���8��������^U� FindTablePtrij��FieldPtr$j��findStr���B���0�����d^�1� FindTablePtrij��FieldPtr$j�����D���2��������^ � FieldToSearch���@��������y@date���V���D���������?date searches are different for the search type operators �����������^S�x���f�����^ � SearchTypee���?���������  � SearchTypee���@���������y@contains or is�V���D�����^U� FindTablePtrij��FieldPtr$j���f � SearchTexte��b�N���<����� ^ � SearchTypee���@���������y@starts with ���V���D����� ^U� FindTablePtrij��FieldPtr$j� P��f � SearchTexte�� �F���4����� 4^ � SearchTypee���@���������y@ ends with�V���D����� ^U� FindTablePtrij��FieldPtr$j� ��f � SearchTexte�� ��������� ^ A�B���0����� X^�1� FindTablePtrij��FieldPtr$j�������������� ^���������������^S����������������������DFCC4D'��^���L��'&��&&��gSGIn the case of Output the folders are divided into a series of folders N�\���J�����������SDthat are scanned to match the database and the disk. Each run foldern���d���R������������SLmust be scanned to ensure that changes due to a running run have not changed@���b���P��������SJthe results. A later version will check against the current date to not do�2��� ������������Sextra scans. The steps are:���*���������������S 1, set a semaphore���R���@�����������S: 2, scan folder and determine which files are output files���X���F��������aaaaSA 3, delete records for files in the database that are not on diskvv�V���D������������S> 4, add records for files on disk that are not in the database���.���������������S 5, clear the semaphore�N���<������������K%@�@�������� @outputFolderPath� @ outputPathu����N���<������������@@outputFolderCount�@outputFileCount�@i�@j����J���8������������@�@�@�������� @ outputFolders�@���������������H���6����������@�@�@�������� @ outputFiles�@���������������������������������(�������"�����Sset the semaphore���8���&����"�d@worksn@�w�l$CM_OutputScan�z���������"��������:���(����"�����S"get list of run folders to process���H���6����"����� @outputFolderPathn @ PM_FindFolderw�lOutput����@���.����"�����@ @outputFolderPath� @ outputFolders�� �@���.����"��L@outputFolderCountn@ @ outputFolders����>���,����"�����@@outputFolderCount�n@����������������������"��������:���(����"�����S"remove records for deleted folders���<���*����"�����@@i�@�@��������@�@�����������>���,����"����� @ CM_Invalidate) @ outputFolders�@i�����������"�� @�����������"��������P���>����"����S8process each run folder, need to do acc, rsf, prt, ocean���B���0����"����@@i�@�?��������@outputFolderCount����4���"����"����Sloop over acc,rsf,prt, ocean���<���*��������@@j�@�@��������@�@���������h���V�������� @ outputPathun @ PM_MakePath @outputFolderPath8� @ outputFolders�@iv�@���`���N���������% @ outputPathun @ PM_MakePath @ outputPathu�#@ CM_FoldersC�@jv�@��QR�P���>��������@ @PM_DocumentList) @ outputPathu�) @ outputFiles���p���^��������  @CM_OutputScanFolder@j�) @ outputFolders�@iv�) @ outputFiles�) @ outputPathu�������������������@������������������@������������������@������������������@���R���@������������S:clear the records of folder caches if there are no folders���J���8����X�����@� @ outputFolders�@�?��������@�?�����������V���D����X����� @ outputFolders�@�?�������vnw�lillegal run number @#$%^:\/���<���*����X�����@@i�@�@��������@�@�����������>���,������������ @ CM_Invalidate) @ outputFolders�@i�������������������@������������������@����������������������0���������������Sclear the semaphore & var���.���������������#@CM_Priv_ScanOutputnn@����.���������������@�w�l$CM_OutputScan�����������������������������������������������������������������������������������DFCC4DO }�N���<��'A��&A��gS7convert a 4D real into a Fortran formatted F15.8 number�*�������������Sin a consistent way�i���� �����������S intput������ ������������S real ������ ��������S output�M� ������������0S string������ ��������EMak @��r��"���������������@@float����.���������������@%@�@�������� @������2��� ������������@%@�@��������@temp���0�������l�8d@%@�@��������@str���� �������l�����@float @������������l�@�����.�������l�����Sconvert real to string0���4���"����l�����@tempt@� @�@float����d���R����l�O� @str@�Z$@��*��@�@��������@�@temp������@temp�6L�N���<����l����@temp�@� @�@� @float��@�@ ���������n���\����l�D@str@str��w�l.��w�l0�@�@��������@�@temp������@temp� ���������l���������� ����l�����Sreturn ������ ����l���� @��@str�DFCC4D6�q*;Y�d���R��&m��%m��gSLPick an image to import and then bring up a dialog about the image before it@���p���^�����������SQis really imported into the database. This replaces the old Info_iPhoto_ImportImaSge 3�n���\�����������SQThis also paste through use of an optional parameter. This code sets up the dialoSg���L���:������������S5and leaves the second method to do the actual import.������ ������������S input���J���8���������$�lS3 (optional) means paste instead of import from file����� ���������a�gS output�r� ������������� S <none>N�k�L���:���������(��%@�@��������@path��@name�� @ ImportNamem��_�(������������e� @ @ Foldernameo�� �(��������������@ @ ImportPictm���(�������������3@ @ ImportTextm��)�8���&��������� �@%@�@�������� @ ImportSizem��O�,������������I�m@@len�@resultS��)�:���(������������@� @ ImageFoldersa�@���������������&���������������@1@fromFile$�@��0���������������@1 @IsOriginalFileJpegN����8���&���������L@%@�@�������� @ PathToImage�E�"���������������@@space���������������������&���������������Sfigure out mode���.���������������@@�N@���������������$���������������@fromFile$N@����,������������ Simage from clipboardN���(���������������@  @ ImportPictm����(�������������� @OKpN@�?���������<���*�����������@path�Nw�l!!!wO8deliberate bad path���0��������������@name�Nw�lFrom Clipboard�����������������@���$���������������@fromFile$N@����"���������������S read image8���0���������������@w�l�N� @ ImportPictm����(���������������@pathrN @DocumentD������������������@�����������������������������������������T���B������������@ @OKc�@�?��������wO8if they picked a readable image��������������������� ���������������S file info���$�����������@@fromFile$��6���$��������Sread text file in if it exists))�8���&���������%@nameFN @PM_Name@patha�@��&�f���T������������@endingeN@� @namen�@�@namen��N`@�@���������@�@���������������������������@@ending��w�l.jpg��x @ending��w�ljpeg��x @@pathn��w�lJPEG��wO86if the original file is a jpeg then we'll just copy it���.��������������� @IsOriginalFileJpegNN@����*��������������� @ PathToImageN@pathT������������������@���.��������������� @IsOriginalFileJpegNN@�������������������@���8���&������������@nameiN @PM_Name@namea�@�����8���&������������@pathaN @ PM_UpOneLevel@pathp����T���B������������@pathpN @ PM_MakePath@patha�@namea�N�w�l.txt�@�����4���"������������@@@patha��$@������(���������������Sread in text file���.���������������@docRefeN@@pathe����,�����������.@lenN@@docRef���.�<���*������������@�h@docRef�� @ ImportTextm�@len����$���������������@ @docRefT�������������������@���$���������������S default text���*��������������� @ ImportTextmN@namer������������������@������������������@���8���&������������S no file then use set name & type���.��������������� @IsOriginalFileJpegNN@����*��������������� @ ImportTextmN@namer������������������@���*��������������� @ ImportNamemN@namer����������������������0���������������Sfigure out the image size���X���F������������@spaceN@d @ ImportPictm�� @�@ ��������� pict size in k���2��� ������������@@space�N@�@ �������������������������� @ ImportSizemN@� @�@space� @�@ ����������N�w�l.�N�@� @�@� @space� @�@ ���������@�@����������N�w�l MB������������������@���F���4������������ @ ImportSizemN@� @�@space���N�w�l KB������������������@�����������������������������������������8���&������������S!get the folder list and set it up���4���"������������@S@�� ��� @ ImageFoldersa����r���`������������SQused to check for protected folders, this never seemed to be used and has been reSmoved���*���������������@� @ ImageFoldersa����2��� ������������ @ ImageFoldersaN@�?����������(��������������� @ FoldernameoNw�l�N����������������������"���������������S show dialog���<���*������������@�7@������w�l ImportDialogN���������������������@�@��N`@�@��������� @�@���������@��N`@�@��������� @�@����������N`@�?���������N`@�?��������$@�'��w�l�N����6���$������������@�(@������w�l ImportDialogN�������������������@�������������������������� ������������Scleanup���(���������������@�Y @ ImportPictm����(���������������@�Y @ ImportTextm�������������������@��������������������DFCC4D!�,�\���J��$}��#}��LECollate a list of all the records in the xml file and build the lists���N���<����������7of run ID's. Then show a dialog box the ask what to do.�|���� ����b���� input���0�������b����� xml_ref to the records����&�������b� xml file name%���� ����b���� output��T���B������������< dialog response (0 = replace, 1 = stop, 2 = don't replace)A���R���@��������; xml_duplcate_type (0 = new, 1 = duplicate, 2 = old model)�T���B��������^%��@�������� ����xml_Record_RefA�� xml_Field_Ref��@���.��������^%��@�������� ���� xml_filenamem��&�����������^-�fieldPtr$��"�����������^1�done(��(��������������^� fieldValuef��B���0��������^�import_counterA��duplicate_counter��*�����������^�Y � xml_duplicate��0����������� ,^�Y �xml_duplicate_type.����*�����������^�Y � xml_runnumber���&��������^�Y � xml_label��J���8�����^���@�������� � xml_duplicate���������������@���.�����^� �xml_duplicate_type.���������������J���8�����^���@�������� � xml_runnumber���������������F���4�����^���@�������� � xml_label���������������L���:�����^���@���������model_versionsA���������������(��������????^ � xml_buttonm�<<�*��������)�^xml_Record_RefA ��"�(��������^ xml_filenamem ���4���"��������^import_counterA��������������6���$�����d^duplicate_counter������������r$�>���,��������^ #� ModelNamesRef��model_versionsA�d��������������^�D���2�����-loop over the records looking for run numbers��� ��������^done(��f�L���:�����^ �OK���?�����������done(�����hT�L���:����� 4read the first field, which should be the run number �\���J����� ^ xml_Field_Ref��xml_Record_RefA�� fieldName�� fieldValuef����L���:����� 4^fieldPtr$ � XML_FindFieldj�������� fieldName���.�������� ^ runNumber� fieldValuefF���������� ^�V���D����� X?if the first field is the run number then add to the collection �2��� ����� ^�fieldPtr$j������� ��������������^�&�����������add run numberh@ �J���8���������^import_counterA�import_counterA����?���������>���,�������^� � xml_runnumber��import_counterA��i�>���,����� .^� � xml_duplicate��import_counterA��:���(���������^� � xml_label��import_counterA����D���2���������^� �xml_duplicate_type.��import_counterA����F���4��������� ^ xml_runnumber��import_counterA� runNumber�����������������,���������� check for duplicatesld�:���(�����^found�������� runNumber�, �6���$���������^�found��P��?��������!�H���6����� ^ xml_duplicate��import_counterA� Duplicate�N���<����� ^xml_duplicate_type.��import_counterA��?����������N���<�����ccc^duplicate_counter�duplicate_counter����?�����������������^�@���.����� ^ xml_duplicate��import_counterA� �N���<�����???? ^xml_duplicate_type.��import_counterA������������P�����������^�(����������^�z���h���������Qsearch for the label, don't use full name resolution from XML_FindField since its really slowh���������������^�Z���H���������^ xml_Field_Ref�� xml_Field_Ref�� fieldName�� fieldValuef� o�V���D������� ^� fieldName��Label��  �OK�����������������D���2��������� ^ xml_label��import_counterA� fieldValuef�����������������J���8���������2search for model version if the run is a duplicate(���6���$���������^�found��P��?�����������4���"���������look for model version in xmlti�������������^�Z���H���������^ xml_Field_Ref�� xml_Field_Ref�� fieldName�� fieldValuef�ec�\���J������� ^� fieldName�� Model_Name���  �OK�����������������R���@���������^xml_model_version���model_versionsA�� fieldValuef�����������������^�8���&�������  check model versions in database��u�,������������^���������found����L���:���������^db_model_version���model_versionsA������� ���������������^���� ���������compare���D���2���������^�xml_model_version�.`�db_model_version����H���6��������� ^ xml_duplicate��import_counterA� Old model���N���<��������� ^xml_duplicate_type.��import_counterA��@�����������������������^�����������^f������������ ^�������������^� ������������^done�����������������^ R�@���.���������^xml_Record_RefA��xml_Record_RefA����������������^P��������������^�V���D���������?show the dialog & set the return value, use a bit of alert code���6���$��������� ^ xml_buttonm�duplicate_counter f�X���F���������@Alert_ParamText ($xml_filename;String($duplicate_counter);"";"")� ��4���"������� ^ alertList��Alerts��e�P���>��������� ^XMLText �GetListItemStrA� alertList���@�����������L���:��������� ^XMLText�� �XMLText��^0�� xml_filenamem� ��V���D��������� ^XMLText�� �XMLText��^1��� �import_counterA�����X���F��������� ^XMLText�� �XMLText��^2��� �duplicate_counter����������������^������@���������P��@�������������@���������P��@�������������@������������@�������������@������������@��������$��'���Import: ���� xml_filenamem�y@ Open a modal window���<���*�������^�(��������Import Simulations��r�����������^��p�&���������w�i^y� alertList�_C�&���������� ^�� � xml_buttonm�����������DFCC4DL���r���`��%��$��gSQchanges to the run number should be visiable in the run list after editing is comSpleteam�r���`����^�SQthe changes no longer track character by character changes as this causes problemSs for���r���`����V���SQthe caching algorithm. Blank run numbers are very dangerious to the database and Sthis ���h���V����j�����SQversion will catch them and revert the run number to the original value. Likewise���^���L����$�XSGprevent duplicate run numbers. Sempahore prevents change durring check.�2��� ����R�����<%@�@��������@temp��at�*�������¶���g@1@dup�@short�T#������������g�(����������@@�$@����L�6���$����,�Scheck for duplicate run numberNo�$�������������g@temp~@����n �f���T����l����@ @ Unique_Fieldi�@������@temp��@�@��������wl@�?�������������� ����:�����@dup~@����������������@������ ���������@dup~@�np�������������@���������*���@�$�������H��� S check length P�:���(�����������@@�@������wl@�@���������dG� ��������������@short~@���������� �����@��� ���������������@short~@������������)))%@������������������������lj�L���:��������llS4don't allow blank run numbers, if so revert and warn~l�2��� ���������� @@dup��x @short���i�,�������������(@����~@�#@�������(���������� @Run_Critical_Begin~� �D���2����������(#@RunNumberArrayz�#@RunNumberArrayz~@������f���T���������� @�w�lSetup Simulation, Run ID: 8�~�#@RunNumberArrayz�#@RunNumberArrayz��s�:���(����������(S"this was the old code, seems wrong��P���>�����0001S9 RunNumberArray{$ArrayNum}:=[Model Variables]Run Number17�`���N��������EMakSISET WINDOW TITLE("Setup Simulation, Run ID: "+RunNumberArray{$ArrayNum})���&��������0001 @Run_Critical_End00�H���6��������EMak @Alert_ParamText@�����w�l�~�w�l�~�w�l�~� V� �������^��l��@@short��t�R���@��������ll @ Alert_Alert@�?��������@�@��������@�?�����������������������0��@���R���@��������EMak @ Alert_Alert@�?��������@�@��������@�?������������������B�����@��������������@��������������������N���<������������S7resort the array when you leave, and move the selection���*��������������� @Simulation_SaveRecord���.���������������@I#@Toolbar_ProcessID����������������� @����������������(�����������DFCC4DT\�8yR������'&��&&��gSvar��,���������������1 @Simulation_Newz��.��������������@#@Simulation_Button����"���������������S link fields���H���6������������@�@�@�������� @ SearchListe�@���������������F���4���������� @�@�@�������� @ LinksList�@��������������:���(���������O�R@� @ LinksListType�@�������������b�<���*������������@� @LinksListFieldz�@���������������J���8���������� @�@�@�������� @ LinksListWord�@�������������i�<���*���������O�R @CurrentLinksVersn#@CurrentLinksVers8�l����������������-�"������������n�_S setup other�D�*������������O�N @Simulation_Newzn@��e�,���������������#@Simulation_Savedn@����6���$����������#@Simulation_Buttonn@�����������w�0���������������@�w�lSimulation_OnErr���������������������6���$��������4Supdate the current date fields��B���0������������@#@Simulation_ProcCount(�@���������������6���$��������@���SSimulation_UpdateCurrentDates ������������������@����������������������>���,��������� S&finish initial setup and pause process ���"���������������@�@���������"���������������@�@���������:���(������������#@Simulation_ProcCount8n@�?����������"��������������� @ Generic_Close������������������A���0���������������Sresume process later here���������������������L���:������������S5wait for Cache Manager to finish scanning input files���2��� ������������@@w�l $CM_InputScan�����.��������������@C@B�@�@��������������������������@ �.���������������@C@B�@����������������������������������&���������������Sdo futher setup���:���(������������#@Simulation_ProcCount8n@�@�����������"���������������@�@���������"���������������@�@���������"���������������@�4@���������*���������������@�Cw�l Simulation�����8���&��������aaaa@�7@������w�lModel Interface�||���������������� @myWind�n@�#@ Toolbar_Width�@�@��������@�@��������n�#@ Toolbar_Width�@��n`@�@��������$@�"� �w�lSetup Simulation Loading�w�lSimulation_Close�wO8696������ ��������@F@B��6���$��������Ssetup the window only once now))�$������������@ @myWind�������������������"���������������@�/@�������������������������������������������@���"���������������@�9@���������0��������������� @ @OK�@����������������������������������V���D������������S? The close box associated with this window pauses the process. ���Z���H����������&SB The window stays ready for use throughout the use of the program.���������������������d���R������������#@Simulation_ProcessID8n@������������� $ Reset process ID tracking variable.n����������������������"���������������S End of pr8������������DFCC4D%��H���6��!�� ��,�7d1Run_On_Disk returns if the current run is on diskDO���� ��������+(���7d input0�{�:���(������������7d" run number ptr (ptr to a string)������ �������������7d output���:���(���������7d# boolean, true if the run is found�0���������� ]- ���� runNumberPtru�� ���� ������R�u]1 �����k�(��������] runNumberPtru �������������(�����������]#� Run_UseCacheu����>���,����������7d'cache manager version, currently unused���$���������7d query cm_file�6���$������P�r]$������ RunOnDiskSet����D���2�����]���� ������ �����@����������(l��H���6�����]���� �������� ����� runNumberPtru���$���������7d return value��D���2�����]���� RunOnDiskSet���������������������� ����� ]������������������]������ �������� ]���������������]������ ������7dcleanup�,��������]�u�� RunOnDiskSet���"����������:]$�������������111]���,���������7ddirect access to disk�R���@������� ]path � PM_FindFolder��Output���� runNumberPtru��_�4���"������P�r]��path���$�����D���� ������l�s ]�����s����������T�E]����� �������: ]����� ����������w�"]�����������T�E]�������������:�=������������������������������DFCC4Db��T���B��'��&��`D<save a record to the database with all the appropriate stuff����H���6�����������`D1now uses semaphores to avoid concurrency problems���T���B������������`D=now checks if the record was changed to reduce the # of saves���N���<������������`D6also check that pictures are not too large, warn if so ���B���0�����������`D+marks run sets as dirty do they are updated�&��������������� @ GroupVers����������������������&�������������``Dhack for PC bug�s�2��� ���������-�>@ #@ PM_Platform�$@����l�@���.������������@semj@� w� $SafeSave�@�@�����������������������-�>@����� ����r�����@semj@�����������r���@�����������r��������<���*����r����`D$only save if we can get the semphorej���&�������r�4@ @sem�@������������r�������f���T����r�@���`DNsave if the record has been changed or the twist downs have been clicked, make���.�������r�����`Dsure it is not too big���R���@����r�����@  @: @���������  #@Simulation_TwistDownChanged�����4���"����r�>� @ GroupVersj#@CurrentGroupVers(���l���Z����r����� @Store_Variable_Blob 7@�����7 @ GroupVers�7 @ Group_State�7 @ Group_Visible�����������r��� @Store_Variable_Blob 7@�����7 @CurrentLinksVersl�7 @ LinksList�7 @ LinksListType�7 @LinksListFieldr�7 @ LinksListWord���"�������r���@�5 @�������a�B���0����r�����#@ Run_DirtySetsj@��� mark set as invalid j���,�������r����A@I �jP@�?������������������r�����@�����������r�������*�������r�����`Dmark as saved if so"�,�������r�����#@Simulation_Saved<j@����6���$����r����#@Simulation_TwistDownChangedj@������������r��������(�������r�����@� w� $SafeSave�����������r�����@������n����r�����`DQAlert_Show ("Caution";"Save Error";"The current simulation has not been saved bec`Dause it is busy.")o���N���<����r�����`D6Alert_ParamText ([Model Variables]Run Number;"";"";"") ���(�������r�����`DAlert_Alert (2;2)����������r�����@������������DFCC4Dw}4�>���,�������7d%set the default values for solar flux����`���N������������7dFpass in the year that you want from 1500-1998, later or earlier values� m�,���������������7dare rounded inwards�ܠ�������������� ������������� [3 ����?�&���������[3�refYear��?�$���������������[refYearT ���ve������������������*����������������7dcheck year rangeT�e�>���,��������[���refYear����@ �����������T���B��������� [ Alert_Alert��?����������@����������@������������6���$���������[refYearT��f��1/1/1958��������������������[[���>���,��������[���refYear��TP��@ �����������T���B�������� [ Alert_Alert��?����������@����������@������������6���$��������[refYearT��f��1/1/1958�����������������[[it������������111[�&������������7d get the date����<���*������������[���������������refYear�����&���������������[�T���T��������0���������������[����T���refYear��@����������������������������������������������������DFCC4D&H�D�g�f���T��'��&��`DOLoop over the prt2html program for each file the user wants to convert from prtb�f���T�����������`DOformat to html. prt2html is then run on each file. Also copy the prt and columnD�R���@�����������`D:files and rename them so that other programs can use them.`���6���$�������������� @averages$�@�@�������������� ������������@ @i����@���.���������� @% @�@��������@prtName�@prtBase��t�6���$���������r�a@% @�@��������@ diag_path��:��������������)���,������������Y�P`Dget info from dialog�n�:���(���������r�o@averages$�@�?�������@�����h�:���(����v��� @averages$�@�@��������@�����t�:���(���������r�a@averages$�@�@��������@� �����:���(���������)�@averages$�@�@�������@� �����:���(���������Y�P@averages$�@�@�������@� ����r�:���(���������r�o@averages$�@�@�������@� ����h�:���(��������� @averages$�@�@�������@� ������:���(����������@averages$�@�@�������@�����s�:���(����������@averages$�@�@�������@�����s�:���(���������T�@averages$�@�@�������@�����_�:���(���������"�.@averages$�@�@�������@�����T�:���(���������@averages$�@�@�������@�������:���(���������@averages$�@�@�������@�������:���(������ @averages$�@�@�������@�������:���(��������@averages$�@�@�������@�������:���(��������@averages$�@�@�������@�������:���(���������@averages$�@�@�������@����@�����������������2��� ���������`Dsetup paths and input files���H���6���������@ diag_path @ PM_FindFolder w�DiagnosticsApps����N���<���������@ @ @ diag_path��w� prt2html.stop��$@������<���*���������@� @ diag_path��w� prt2html.stop����������������@�������������������8���&���������`D!run prt2html to create html files��� ������������ @ prt2html_Ir�������������������X���F���������`DAloop over the months and seasons and copy SuSpect and Excel files���<���*���������@ @i�@�?��������@�@�����������,������������@ @averages$�@i��������������8���&�����@prtBase @prt2html_ToPath @i��6���$�����@prtName@prtBase��w�_Prt))�������������>���,���������`D© text files for SuSpect (Mac only)���2��� ���������@ #@ PM_Platform�$@���������|���������@ @PostProcessing_SubFolderPath w�average�@����@prtName� @ PM_FindFolder w�tables@���@prtName����T���B������������@ @ PM_FindFolder w�tables���@prtName�w�SSPP����T���B������������@ @ PM_FindFolder w�tables���@prtName�w�TEXT�����������������������:���(������������@prtName@prtBase��w�_Regions�������|������������@ @PostProcessing_SubFolderPath w�average�@����@prtName� @ PM_FindFolder w�tables@���@prtName����T���B������������@ @ PM_FindFolder w�tables���@prtName�w�SSPP����T���B������������@ @ PM_FindFolder w�tables���@prtName�w�TEXT�������������������@���6���$������������@prtName@prtBase��w�.xls������������������@ @PostProcessing_SubFolderPath w�average�@����@prtBase��w�_Budgets�� @ PM_FindFolder w�tables`���@prtName�������������...�:���(���������@prtName@prtBase��w�_Reg.xls����������������@ @PostProcessing_SubFolderPath w�average�@����@prtBase��w�_Regions�� @ PM_FindFolder w�tables`���@prtName����������������@��������������������������������������������������@������������������@�����������������0�(���������������`Dstart timer here!����������������������������DFCC4D[Q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](ql_End��������������������n���\�������� @Generic_OpenReopen~#@Control_ProcessID�w�lControl Window�w�lControl_Process��Z��������������������DFCC4D�f �\���J��'A��&A��gSDconvert the current.date file into the current date in the interface���X���F�����������S@The model always writes out the date in US format but the system����X���F������������S@could be doing anything so I have to convert the date carefully!������� �����������S input �:���(�����������S" run number ptr (ptr to a string)����� ���������O�SS output�M���� ����������S date �E�<���*���������O�S%@�@��������@output_pathname��r�2��� ��������@%@�@��������@temp���(�������������@2@ docref_full���0�������������@- @��@ runNumberPtru���*�����������@3 @���@outdate���(��������@ runNumberPtru @������������(��������@#@ Run_UseCacheu��(��������Sno cache version����������@����������@����������????@�>>�"��������)� @������������������@U�(������������Sunchached version���,������������@tempUw�l 00/00/0000����r���`���������@output_pathname @ PM_MakePath @ PM_FindFolderw�lOutput��@ runNumberPtru��@�����d���R�����@output_pathname @ PM_MakePath@output_pathname�w�l CURRENT.DATE�@��11�>���,����� ))@@@output_pathname��$@��� �<���*������6@ docref_full@@output_pathname�.'�0������������@ @OKt�@�?�����������B���0���������@�h@ docref_full�@tempe�@�@�����������(������������@ @ docref_full����������������@���������������@�������������������8���&���������S convert fortran date to run date���:���(���������@@�@tempe��@�@�����������B���0���������S*convert from text in the format mm/dd/yyyy���T���B���������@year�@� @� @temp��@�@��������@�@������������T���B���������@month@� @� @temph�@�?��������@�@�������������R���@���������@day@� @� @temp��@�@��������@�@�������������L���:���������@outdate@��������@yeara�@month�@day������������9@99�,������������Sbad date give default���(������������@outdate����������������������@���"��������7 @��@outdate �������������@������������������������������DFCC4D6��B���0��!6�� 6��,�7d*set the default values of the trend gassespt�B���0�����������7d+currently uses a table for greenhouse gases���@���.����4�����7d(use Simulation_SolarData for solar trend����^���L���������� �7dFpass in the year that you want from 1850-2050, later or earlier values�d�Z���H����n�����7dBare rounded inwards. Fixed code that used to reset the solar valueI���� ��������Z^�7d input0g9�>���,��������0001�7d' pointer to four digit year as integer00�P���>��������EMak�7d9 pointer to variable to set, or all if nothing is passed�s����������������������� ���������� ]- ����t�$������������T�r]-�yearPtr������ ���������d�e]- �����&��������������]-�trendPtr$����� ��������]- ���Ye�$�����������]-�dataPtr��$���������������]3�refYear����$�����������]1�setAll���"�����������]yearPtr ����.�����������]����?���������$�����������]trendPtr$ ���"�����������]dataPtr ���"��������������]setAll��������������������]���"���������������]setAll���������������������]����������������������\���J�������������7dEcosmetic issue with box if you're the observed year box it blanks out���6���$������������]�yearPtr��( ����������������.���������������]yearPtr���@ ������������������������]���H���6������������]refYear��f��1/1/����� �yearPtr�������������������������(����������������7dcheck year range���<���*������������]���refYear����@ @����������R���@������������ ] Alert_Alert��?����������@����������@������������4���"������������]refYear��f��1/1/1958��������������������]���<���*������������]���refYear����@ ����������R���@������������ ] Alert_Alert��?����������@����������@������������4���"������������]refYear��f��1/1/1958��������������������]����������������������$����������������7d get the date����:���(������������]���������������refYear����6���$������������]�setAll�set all fields$���$���������������]������������$���������������]������������$���������������]�&�����������$���������������]�0�����������$���������������]�B�����������.���������������]�j������refYear����&���������������]w set one field���.���������������]trendPtr$��dataPtr����2��� ������������]yearPtr����refYear�������������������]����������������������������������������������������������������DFCC4DX�,�  �`���NR�������IWhen 4D quits the normal On Exit method runs after all the processes have���`���NJloh:User�Iterminated with is bad since EdGCM 4D can have unsaved records in various�h���V�Pprocesses. So Do_Quit saves the Setup Simulations window and the eJournal window6�d���R$0loh:User�Lbefore consenting to quit the program. The only other task is to cleanup the@���N���< ��� �D�6temp files created by Preview for Web in the eJournal. ������ ����p@�W������� , ���z�H� input����� � none����  ���������� output������ ���z�H� none��2��� �����% @�@�������@path�6��������6�R�o�c�*���4�Y�o�saves to do on quit�i�(���$ loh:���� @Safe_SaveSimulation4�&���ِ�����$* @Safe_SaveInfoText�<���*����p@�W@ @B�L#@PostProcessing_ProcessID6��"���,���z�H@�5 @�����6�����g�!��@�������Xn!�����:���($ Z�X�"clear temp files from this session@��>���,$� ��@pathH6 @ PM_FindFolder w� eJournals6K�4���"*o!̕P @PM_RecursiveDelete6 @pathe6�4���"$`g&����@ @ @pathH6��$@��6���,���$ &$v`�PM_MakeFolder ($path)���"������ %��$@ @pathH6��������� ?������@1-��������   ����������� TT STAT@# appPath@�Z$@��)���@path)���w� register.exe���@�Z$@��)����������������@��������������������&�������������ƄALERT($appPath)���D���2����������@+@appPath@input@outputh@error��� �������������@okz @OKz��������������������.�������������ƄALERT("x"+$output+"x")��������������������0�������������@@okz��@�?����������Z���H����������@@� @output@�?�������@�@���������w�INVALID����������������@#����������������@����������������@���P���>����������@�)w�0Registration Error. Please Contact EdGCM Support���l���Z����������@�)w�LThis version of EdGCM is not properly licensed. Please Contact EdGCM Supportw��� �������������ƄQUIT 4D?�������������������@��������������������������������������������@��������������������������������������������@������������������������������������������������������������@�)w�LThis version of EdGCM is not properly licensed. Please Contact EdGCM Supportw��� ���������������YdQUIT 4D?�������������������@����������������������������������������������������[[������DFCC4DT�,�B���0��!�� ��,�7d*create array of journal entries (InfoText)�pt�J���8���������� ]���@��������#� JournalArrayo���������������e�<���*�����������]�#�JournalIDArray@��������������������������������M�B���0���������7d+check user permissions and reduce selectionVA�D���2���������� ]#� UAM_Admin�admin users see all records�a�"�����������EMak]�/�������wi�6���$�������� Cha]wpick only accessiable records���D���2������������]���������!�����#�UAM_User��(l����>���,������������]�������� p���!�������*�������������������]���������������Z^c�R���@���������]�������#�JournalIDArray@�������#� JournalArrayo��>���,��������"\]�#� JournalArrayo�#�JournalIDArray@�������������������������������������DFCC4D{}��zh�2��� ��'A��&A��gSset the window title to be:DT�2��� �����������S<section name>:<run number>���R���@������������S:you input the section number because current form page can���$�����������S be innacurate���(����������� @��@page,���$������������@@listRef����6���$���������@%@�@��������@ runnumber���(������������@ runnumber@�������.���������������@ @��@��������������� ���������������@page� @�����������������@���*���������������@page�@�?�������������������������@��������������������H���6������������@�w�lAnalyze Output, Run ID: ��@ runnumber�����������������������������������������������������������������������������������DFCC4DK~�,�Z���H�� �� ����8AStartup_Check makes sure that all the EdGCM folders are present. ��V���D���������8=Since this code runs before any of the managers/services are �er�X���F����������8?present it has to do some things the hard way. Alert_Init must �_E�R���@����������89be run before Startup_Check because some errors may call � w�*�������J������8Alert_ParamText. �� ��������Path�8 input ��L� �������J�ount�8 none �(�"�����������rPat�8 output l���J���8�������������80 error number to display in an alert (0=noErr) ��8���&��������unt�( (��(error(i(len���&���������������((listRefn �F���4��������(( vlPlatform�(vlSystemr( vlMachine���4���"��������(%(�@�������(path��8���&��������call(1( isInvisble�(isLockedl���8���&��������ndow(3( createdOn( modifiedOn����8���&������������(2( createdAt( modifiedAt���8���&��������(%(�@��������(pathChar���:���(��������odel(%(�@�������( folderName�l������������������� �����������nfoT�8setup ��p�,���������������(error(�����������(����������������((�X���F��������C9:p�8>Gets all the platform information for the basis of the paths ���F���4��������C9ut(m( vlPlatform�(vlSystemr( vlMachine�4���"��������1908(( vlPlatform��@$(��ou�(���������������(pathChar��:��������������01sC((la�(��������������(pathChar��\�����������������((����������������(_�N���<�������������85get the database file and check that it isn't locked ����"��������������(pathC((�~���l�����������((pathC( isInvisble�(isLockedl( createdOn( createdAt( modifiedOn�( modifiedAt����"��������������((isLocked�(if�,��������������(error(�@�������(�����������������((���������������([�0��������r����8check for EdGCM folder ��4���"�����((error�@(������������>���,������8%trim the path (has to be done twice) ����>���,�����ff((j(�?�������(�@�����������>���,���������(len(�(path��@(�@��������(���J���8���������((i(len(�?��������@(�?��������/�L���:��������put:((path�!(i"�@(pathChar�!(�?�������"al�D���2��������.prt(path�(� (path�(�?�������(iou�(�����������bers(i(�����������(ff����������������((rf����������������((����������������((���������������ca([�,����������������8check the folders ^�av�<���*������������(listRef(�Startup_Folders���.���������������(len(|(listRef���6���$����������((i(�?�������(len���J���8��������r���( folderName� (GetListItemStr�(listRef(i0�H���6��������lx��(((pathR��@( folderName��@$(���,���������������(error(�@�������(ex�2��� ��������lx��(i(len��@(�?�������(�P���>������������ (Alert_ParamText( folderNamem������nC����������������(("����������������((���&���������������(y(listRefar����������������((������������������([�"����������������8cleanup l���"��������������� (��(error(�����������DFCC4D1�KBa�n���\��&��%��gSQExport a run or series of runs to an xml file, multiple export is from Sim LibrarSyf�n���\�����M(SQsince it is the only place the allows multiple exports. The code is conditionalizSe�f���T���������SNfor one export versus multiple exports. The last 19 characters in the document���f���T����V�scalSNare the ending of the XML which needs to be removed from the write. Now allows���<���*����X�����S%the path to be specified for the save t�������������S�or���� ����t�S inputt �R���@����������gS; optional pointer (if there is input use that as the path)or���� ��������S output������ ��������S none�T���B����������%@�@��������@ xml_folderx�@xml_path$�@ temp_path����D���2����v�����@2@xml_ref�@ xml_srcRefx�@ xml_sumRefx�:��4���"����T�����@@i�@xml_size$�@pos���� ������������@@xml���H���6��������@�@�@�������� @ Group_Namer�@�������������<���*���������@�@recordsToExport�@���������������>���,�����������@ w�lGroup_Name_List� @ Group_Namer����B���0�����@�@�@��������@files�@��������������F���4������������@�@�@��������@ runnumber�@���������������B���0��������@�@�@��������@label�@�������������������������ӡ�F���4��������IHDRS/setup the sets to remember the existing recordsob�6���$��������Z@�t@������w�l $ListViewSet�7L�2��� ��������O@@B�#@List_ProcessIDz�<�8���&�����Rd@Xw�lUserSet�w�l $oldUserSet����&���������������@�vw�lUserSet���������������@���@�������������������@��:���(������������@@�L@�������@��������������:���(���������� @@�L@�������@�?�����������@���.����z�N4S(single export is the same as the present���L���:������������ @Form_BLOB_Loader�� hack to load info needed for xml����<���*��������@���S%if we are passed the path then use it��.���������������@@�@������������������ ������������@- @����&������������� @xml_path$ @�)��0��������������� @ XML_Export2@xml_path$�������������������@���*��������������� @ XML_Export2w�l�����,���������������@xml_path$ @DOCUMENTD������������������@���p���^���������� SQcleanup name (add .xml to filename or remove from path .xml before creating summaSry)���2��� ��������@#@ PM_Platform�$@����2��� �������� @@xml_path$�w�lR*ch� ������������� ))@�^���L������������@@�w�l.xml� @PM_Name@xml_path$�@����@���������������H���6������������@@xml_path$�@xml_path$��w�l.xml+������&���������������@�@xml_path$�������������������@��������������@P��������������������*���������������Sdocument and paths3���,���������������@xml_ref@ w�l�����0���������������@ @OKl�@�?�����������,���������������@xml_path$ @DocumentD���H���6������������@ xml_folderx @ PM_FindFolderw�l Applications����R���@������������@ xml_folderx @ PM_MakePath@ xml_folderx�w�lXML�@��e���������������0�0���������������@ @OKl�@�?�����������>���,������������S'remove xml files if they're still there���2��� ������������@@ xml_folderx�@files����:���(������������@@@files��@���������������>���,������������@@i�@�?��������@@files�����R���@��������9@� @ PM_MakePath@ xml_folderx�@files�@i�@���9����������������@����������������@������������������@�0���������������Sset the records to export���"���������������@�2@���������b���P������������@@������@recordsToExport�@�����@ runnumber�@�����@label����B���0�����������S*For ($i;1;Size of array($recordsToExport))��N���<������������S6$recordsToExport{$i}:=Record number([Model Variables])0���6���$������������SNEXT RECORD([Model Variables])��� ���������������SEnd for ����������������������F���4������������S.create a series of xml export files to work on������������������@����H���6������������@@i�@�?��������@@recordsToExport�����>���,������������@�@������@recordsToExport�@i����L���:������������ @Form_BLOB_Loader�� hack to load info needed for xml����T���B������������@ temp_path @ PM_MakePath@ xml_folderx�@� @i��@�����0�������P�T9� @ XML_Export2@ temp_path�T���������P�T�@�g��������P�T�@����������P�T�@�(�����������T�Scombine the files$@�X���F������������@ xml_srcRefx@ @ PM_MakePath@ xml_folderx�w�l1�@���_�0�����������oP@ @OKl�@�?���������<���*���������� S$read in the first file minus the end��H���6���������I�D@xml_size$@@ xml_srcRefx��`@�@��������m�6���$����������@@xml_size$�@�@����������>���,���������B�O@�h@ xml_srcRefx�@xml�@xml_size$���(������������I�D@ @ xml_srcRefx�� �.������������_�ISwrite to combined file�i�,�������������"@�g@xml_ref�@xml��b�:���(�����oS"read through the rest of the files�H���6���������@@i�@�@���������@@recordsToExport�����^���L���������@ xml_srcRefx@ @ PM_MakePath@ xml_folderx�@� @i��@������0������������@ @OKl�@�?�����������(������������Sread minus ending .�H���6��������@xml_size$@@ xml_srcRefx��`@�@���������6���$�����@@xml_size$�@�@��������w�>���,��������@�h@ xml_srcRefx�@xml�@xml_size$��(��������@ @ xml_srcRefx����*�����������Sclip off beginninghml�@���.�����@pos@�w�l<Model_Variables>�@xml����B���0�����������@xml@� @xml�@pos��@�@���������@���.��������@pos@�w�l<Model_Variables>�@xml����B���0�����������@xml@� @xml�@pos�`@�@���������ar�,�����������@�g@xml_ref�@xml������������������@x����������������@����������������@x�4���"������������Sclose file in XML and on disk�A�\���J������������@xmlw�l</Model_Variables>��@�@���������@�Z$@��&�����,���������������@�g@xml_ref�@xml�ml�$�����������@ @xml_Ref�nn�2��� ��������@#@ PM_Platform�$@���le�2��� �����������@@xml_path$�w�lR*ch�@���������������@p�p���^�����������SQcleanup name (add .xml to filename or remove from path .xml before creating summaSry)���^���L�����������@@�w�l.xml� @PM_Name@xml_path$�@����@���������������H���6��������@@xml_path$�@xml_path$��w�l.xml+����&�����������@�@xml_path$�������������@�l���Z��������@xml_path$@� @xml_path$�@�?��������@�@xml_path$��`@�@��������������������@x�������������@�*������������Screate summary file��L���:��������@ xml_sumRefx@ @xml_path$��w�l summary.txt����0�����������@ @OKl�@�?��������to� �����������@xmlw�l� @�B���0��������@@i�@�?��������@@ runnumber����t���b���������@xml@xml��@ runnumber�@i��@�Z$@��%���@label�@i��@�Z$@��&���������������@��2��� �����@#@ PM_Platform�$@����0������������@�g@ xml_sumRefx�@xml����������@ x�8���&�����@�g@ xml_sumRefx�@@xml�����������@S�(�����������@ @ xml_sumRefx� x�2��� ��������@#@ PM_Platform�$@������H���6��������@@xml_path$��w�l summary.txt�w�lR*ch+���������������@ ������������@S������������@�g������������@S������������@������������@ x����������������@������������@S�����������������@���� ������������Scleanupiz�,�����������@�vw�l $ListViewSet�ml�,���������������@�uw�l $ListViewSet��2��� ����>�����@�1@������@�������de�2��� ����>���0@@B�#@List_ProcessIDz���*�������>�����@w�l $oldUserSet�����������>�����@��������������������DFCC4D'P�u?�z���h��'&��&&��gSQUAM_Editor_SaveRecord replaces the record for a user account provided that the paS sswords matchfs�v���d�����������SQand that the user has changed the password. There is some complexity because passS words are���~���l������������SQencrypted but not decrypted so I need to check that I'm not putting the default (Scarriage returns)���|���j����������SQinto the saved record. This version requires passwords to be of non-zero length oSr the save will� �R���@�����������S;be rejected. Warning for no password is only given once now������������������S������� ���������� S input�M���� ����������S none����� ���������e�rS output��8���&��������P��S boolean (was the record saved)d�(��������������1 @���@saved��� ��������������@saved2@�me�������������� �t�h�:���(���������d� @@�@������2@�������������n�<���*���������@ @ vActualValuec� @ vActualValue2���,�����������Scheck for a password2���B���0���������@@� @ vActualValuec��2@������������@��h���V������ SPcarriage returns are the default, don't want to overwrite and unchanged passwordpl�N���<���������@ @ vActualValuec!2@�?�������"����@�Z$@��&�����4���"�����dSsave if passwords are changed�4���"���������@����2@� @ vActualValuec���B���0��������� @ UAM_Encrypt� @ vActualValuec��@��������"������������@�5@��������� ������������@saved2@�������������L@���8���&���������S!save if passwords are not changed�"������������@�5@��������� ������������@saved2@����������������@���������������@���(��������� @@�"@saved���R���@���������S:warn user that there is no password, ONCE, but save anyway���J���8��������@#@UAM_Editor_NoPasswordWarning�@���������������H���6�������� @Alert_ParamText@�����w�l�2�w�l�2�w�l�2���R���@�������� @ Alert_Alert@�?��������@�@��������@�@������������B���0���������#@UAM_Editor_NoPasswordWarning2@�?����������������������@���*������������@����2@��������������B���0��������� @ UAM_Encrypt� @ vActualValuec��@��������"������������@�5@��������� ������������@saved2@����������������@���������������@���R���@��������� @ Alert_Alert@�@���������@�@��������@�?�����������������������@�&���������������@��������������@��������������6���$���������%Sreturn if the record was saved')� ��������������� @��2@saved��������������DFCC4DS,�q�P���>��&b��%b��gS8creates the lists of years, with a safty check to ensure7XT�L���:��������5��S5that this code does not run before the form is loaded���L���:�����������S5also checks to try to preserve the start and end year���8���&������������S!try to fix for model current date���B���0������������%@�@��������@ StartYear�@EndYear��P���>�����������@@StartPos$�@EndPoso�@ CurrentDate�@ StartDate����r���`������������@-@ DateRangePtra�@YearsPtr$�@ ProcessedPtrr�@DiskProcessedPtr�@ DiskFolderPtr��������������������(�����������@ @ StartEndReady���&���������������Ssave old dates ���:���(������������@@ @Start��7@������������������������������@��*���������������@ StartYear7w�l1900��(��������������@EndYear7w�l1900������������������@�������������� ���:���(������������S#create new lists of start/end years���B���0�����������@ DateRangePtra7 @PostProcessing_GetYearRange���N���<������������@@ DateRangePtra��@�?�������1�7@���������������v���d��������4@j7@ DateRangePtra��@�@��������1�7`@ DateRangePtra��@�?�������1�7�@�?����������D���2������������@ StartDate7@ DateRangePtra��@�?�������1��������������@���@���&���������������@j7@��������������.���������������@ StartDate7@�������������������������>� @���X���F������������@YearsPtr$7 @PostProcessing_TypeListEmpty� @start_lbs�@�����^���L������������@ ProcessedPtrr7 @PostProcessing_TypeListEmpty� @ start_lbprt�@�����J���8������������@DiskProcessedPtr7 @PostProcessing_GetProcessedYear���D���2������������@ DiskFolderPtr7 @PostProcessing_GetYearFolder���@���.�����������A@�@ DiskFolderPtr��@ ProcessedPtrr�����.���������������@@j�7@���������������8���&�����������@�@YearsPtr$��@�?����������>���,������������@�@YearsPtr$��@�?��������@j����2��� ������������@@i�@�?��������@j����X���F������������@YearsPtr$��@i17@� @ StartDate�7�@i�7`@�?��������������������������@������������������@����������������������&���������������Supdate buttons���2��� ������������ @PostProcessing_EnableButtons������������������@������������������������������������������������������������DFCC4Dg�Bq�\���J��%��$��gSEinitialize all the trend menus, check if this is a "real" init or not������������������M�&��������������Sload each menu���(���������������^�� $�������D���2������������^ �dSim Trend ppm� �CO2_T_TrendType1����D���2������������^ �dSim Trend ppm� �CO2_T_TrendType2����D���2������������^ �dSim Trend ppm� �N2O_T_TrendType1���D���2������������^ �dSim Trend ppm� �N2O_T_TrendType2���D���2������������^ �dSim Trend ppm� �CH4_T_TrendType1���D���2��������^ �dSim Trend ppm� �CH4_T_TrendType2���F���4���������� ^ �dSim Trend ppb� �CFC11_T_TrendType1��n�F���4����������(^ �dSim Trend ppb� �CFC11_T_TrendType2��C�F���4���������r�e^ �dSim Trend ppb� �CFC12_T_TrendType1��y�F���4���������e�1^ �dSim Trend ppb� �CFC12_T_TrendType2�� �F���4����������^ �dSim Trend W/ms^2� �Sol_T_TrendType1��2�F���4��������^ �dSim Trend W/ms^2� �Sol_T_TrendType2��F���4�����������^ �dSim Trend orbit� �Pow_T_TrendType1������������� ^����������������(��2��� ���������r�eSset menu's in each section�1�0������������e�1 ^CO2_T_TrendType1������d�0������������� ^CO2_T_TrendType2�������0�����������c ^N2O_T_TrendType1�������0������������2�_ ^N2O_T_TrendType2������)�0������������� ^CH4_T_TrendType1��(���� �0������������n�d ^CH4_T_TrendType2������_�2��� ���������1� ^CFC11_T_TrendType1��2���� �2��� ���������n�d ^CFC11_T_TrendType2��6�����2��� ��������� ^CFC12_T_TrendType1��D���?�2��� ��������� ^CFC12_T_TrendType2��H������0������������ ^Sol_T_TrendType1��V�����0������������ ^Sol_T_TrendType2��Z�����0������������ ^Pow_T_TrendType1���������������������^�2��� ���������Srange check for every menu��l���Z���������^ �CO2_T_TrendType1�-`��?��������� 0 �CO2_T_TrendType1�`��@�����������6���$��������� ^CO2_T_TrendType1��?���������������������^�l���Z���������^ �CO2_T_TrendType2�,��?��������� 0 �CO2_T_TrendType2�`��@�����������6���$��������� ^CO2_T_TrendType2��?���������������������^�l���Z���������^ �N2O_T_TrendType1�Q��?��������� 0 �N2O_T_TrendType1�`��@�����������6���$��������� ^N2O_T_TrendType1��?���������������������^�l���Z���������^ �N2O_T_TrendType2�+���?��������� 0 �N2O_T_TrendType2�`��@�����������6���$��������� ^N2O_T_TrendType2��?������������������������^�l���Z������������^ �CH4_T_TrendType1�-`��?��������� 0 �CH4_T_TrendType1�`��@�����������6���$������������ ^CH4_T_TrendType1��?�������������������������^�l���Z������������^ �CH4_T_TrendType2�,��?��������� 0 �CH4_T_TrendType2�`��@�����������6���$������������ ^CH4_T_TrendType2��?���������������������0001^02�p���^��������EMak^ �CFC11_T_TrendType1�Q��?��������� 0 �CFC11_T_TrendType1�`��@�����������8���&������������ ^CFC11_T_TrendType1��?���������������������^ �p���^��������^ �CFC11_T_TrendType2�+���?��������� 0 �CFC11_T_TrendType2�`��@���������8���&��������d ^CFC11_T_TrendType2��?�������_T������������///^--�p���^��������^ �CFC12_T_TrendType1�-`��?��������� 0 �CFC12_T_TrendType1�`��@���������8���&��������g ^CFC12_T_TrendType1��?�������������������^C�p���^��������^ �CFC12_T_TrendType2�,��?��������� 0 �CFC12_T_TrendType2�`��@���������8���&��������_inf ^CFC12_T_TrendType2��?�������e.����������������^N�l���Z������������^ �Sol_T_TrendType1�Q��?��������� 0 �Sol_T_TrendType1�`��@�����������6���$������������ ^Sol_T_TrendType1��?�������������������������^C�l���Z������������^ �Sol_T_TrendType2�+���?��������� 0 �Sol_T_TrendType2�`��@�����������6���$������������ ^Sol_T_TrendType2��?���������������������<dat^C�l���Z������������^ �Pow_T_TrendType1�-`��?��������� 0 �Pow_T_TrendType1�`��@������������6���$������������ ^Pow_T_TrendType1��?�������������������������^����������������������������������������������������DFCC4DD�D���2�������7d+set selected record to match selected image�� ��������U�7d input��,��������������9�7d picture button #����,�����������[ ����pictIDk��(�2��� ��������{w[�curPict��curReck���$�������p����[pictID�k ���oc����������������������������[[ g�F���4���������e�v[���$����� ���$�������0������������� [curRec�k������ ������6���$���������e�v�7dsave toolbar info if changed�����6���$���������� [Info_iPhoto_UpdateInfo��������2��� ���������e�v�7dset toolbar to match info�H4�P���>��������[����� ����curReck�k�`�pictIDk�kP��?����������J�&�����������[valuek��� ���es�@���.��������[ foundPreviewok���� ����value��1`�@���.��������[� foundPreviewo�kP�kP��?���������2`�6���$��������)))%[����� ���� foundPreviewo��_T�Z���H��������#[PictInfoToolbark��� ��uh$[CM_Images]Title`[CM_Previews]Textku���������������[[��0�����������#[PictInfoToolbark��� ���C������������[[��<���*��������#[PictInfoToolbarRecIk������ ����Ty�4���"��������#[PictInfoToolbarChanged�k���12�0�����������111[����� ����curReck��C�*�����������[���$��� ���P���>�������������7d6kill all drags over these images, doesn't seem to work��an�,��������������� [��k�kP��?��������������������������[[��������������������������������������DFCC4DN��|-�H���6��'A��&A��gS0This code takes a path and returns the filename,�DO�<���*�����������S$optionally the ending can be removed-������ ������������S input���&�������r����S path (string)���.��������������S keep ending (boolean)��D���2������������S, Long name to file name ( String ) -> String���N���<�����������S7 Long name to file name ( Long file name ) -> file name���4���"���������%@�@�������� @�� @���;;�.���������������@1 @��@ keepEndingk����V���D������������@@viLen�@viPos�@viChard�@ viDirSymbol�@viPeriod$����&��������d@ keepEndingk- @���2��� ���������@ viDirSymbol-#@ PM_PathASCIIM���.��������@���@viPeriod$-@�[w�l.�?�(������������@viLen-@� @����*������������@viPos-@���������������������O� ���6���$���������Somit last char if it's a folder��B���0���������@@�[ @�!;@viLen"���@ viDirSymbol����6���$���������@viLen-@viLen�-`@�?����������������������@�������������L���.������������Strim filename from path���P���>���������@@viChar��@viLen�@�?���������-`@�?�����������D���2���������@@�[ @�!;@viChar�"���@ viDirSymbol����&������������@viPos-@viChar����,������������@viChar�-@����������������������� @���������������@���2��� ��������@@viPos�-@���������������@���.�����KK� @��-@�  @��@viPos�-�@�?���������������������@������ ��������� @��- @����������������@�������������������L���:���������S5trim ending off the name, handles 3 and 4 char ending���.������������@@ keepEndingk�@�����*������������@viPos-@��������������6���$���������@@� @����-@�@�����������\���J���������@@viChar��@viLen�@viLen�-`@�@���������-`@�?�����������B���0���������@@�[ @�!;@viChar�"���@viPeriod$����&������������@viPos-@viChar����,������������@viChar�-@����������������������@��������� @���2��� ����� ))@@viPos�-@������������)�P���>������� @��-@�  @���@�?��������@viPos�-`@�?��������� ����������������@������������������@������������������@���������������������������DFCC4Di�o�4���"������������8 Time stamp Project Method ��B���0������������8( Time stamp { ( date ; Time ) } -> Long ��ca�b���P������������8I Time stamp { ( date ; Time ) } -> Number of seconds since Jan, 1st 1995 ����,�����������EEE�3& ��&�vdDatel&&���,����������������2& ��&�vhTimel&&)`� ����������������& ���&&en�0����������������&��&@������������&&��$����������������vdDatel&��!���$����������������vhTimel&��� �������������������y �$����������������vdDatel& �����$����������������vhTimel& ��� �������������������D�Z���H������������ ���&&&�vdDatel�&@&p��&�&@��@������&�&�@�vhTime��������������������������������������������������������������DFCC4Da�_�T���B������������8;transfers a picture from the drag into a local picture and �im�@���.������������8&the filename for later identification ��4� ����������������8 input ���$����������������8 on drag T���&����������������8 <empty> �� �$�������������8 on drop T���<���*���������8" ptr to global or process PICT ����:���(���������8! ptr to global or process Str ����:���(���������8! ptr to global or process Str ����<���*������8" ptr to global or process Text ���"���������o���8 output l� ��$�������������8 on drag T� ��P���>�����;"�86 if the drag is valid then then ptrs will be valid �v�4���"�����ste�8 $0, sucess or failure �� }�$���������8 on drop T�im�&��������Vg9�8 <empty> ��el����������������D���2���������8*ARRAY STRING(255;DragTransferFilename;2) ���&������������-�srcObjl���2��� ����������srcElml�srcProcha�*�������������� dragFlavord䡱�6���$�����5����8C_PICTURE(DragTransferPict) �fi�6���$����������8C_TEXT(DragTransferCaption) � -�&��������8o����curRecl�� ���������t��� �������������8���[��������������0���������������@��?����������,�������������- ���PictPtr���0��������ic���- ��� FilenamePtr���0�������������- ��� CaptionPtrC���$�������������PictPtr �����(���������������� FilenamePtr ����(���������������� CaptionPtrC ����������������������0�����������������������������;"����*�����������ss���@$��� �>���,������������_�srcObjl�srcElml�srcProc���8���&������������� dragFlavord�'�srcObjlv�T���B������������8;due to a bug pictures come through as undefined, go figure �-[�Z���H������������� dragFlavord�@$��� � @� dragFlavord�@$��� ���6���$����˘�����#�DragTransferPict�srcObjlǀ�R���@����˘�ion:�89to find the current selected record I have to be smarter ����0�������˘������curRecl������ �����<���*����˘������� ��#�PictInfoToolbarRec�H���6����˘����#�DragTransferFilename��?���������� ������H���6����˘�����#�DragTransferFilename��@����������� ������&�������˘�6���value��� ����@���.����˘����� foundPreviewo���� ���value�@���.����˘������ foundPreviewo�@�@��?��������6�6���$����˘���������� ��� foundPreviewo���4���"����˘����#�DragTransferCaption��� �����������������Z^�����4���"��������#�DragTransferCaption��� ������������������������0�������������������� ���curRecl���(�������������� �����������������������������������,��������������� ����@��?���������G������������������UM�*�����������������@$��� ��>���,���������_�srcObjl�srcElml�srcProc���8���&������������� dragFlavord�'�srcObjl���Z���H��������kP�� dragFlavord�@$��� � @� dragFlavord�@$��� �6���$���������PictPtr#�DragTransferPict�������������������� FilenamePtr#�DragTransferFilename��@����������@#�DragTransferFilename��?�������=FileFolderKey ���D���2��������!Y���� CaptionPtrC�@��@���������<���*���������6>� CaptionPtrC#�DragTransferCaption� n�������������������]�������������������������������t����.����������������������������������DFCC4DT#�a�8���&���������d�d[�[�[ @_Mode_Menu����2��� ���������d�dthis opens all the groups�t���b���������d�dCounterC?������� Number_of_Groups`N%this opens all the closed group boxes���D���2���������d�d Group_StateCounter�C ClosedrC�N���<���������d�d Twist_Down_Button Group_Name_Counter����������������d�d���������������d�d������DFCC4D(/�}5�R���@����������":8This code imports a file for the image browser directly �"�>���,�����������%�@�������path�name����(���������1 foundType���*�������?��� ImportPict����$��������(path|�p�|;��������?|��4���"����path ImportPict��*���������path Document@�2��� ������  OK"�@�?�������� �����������":import "��:���(��������name PM_Namepatha����F���4����tex Info_iPhoto_Paste ImportPict�namer�������������"���������������":cleanup "on�*�������@�Y ImportPict�����������@@Vi����������������DFCC4D||�,�6T�N���<�� L�� L����85Create Diagnostics.I file to post process the tables ����V���D������������8<now supports multiple checkboxes which requires running the \��0���������������8program multiple times ����������������$�����������{{(e(diag�ee��8���&������������(%e(�@�������e( diag_pathee���<���*��������ww(%e(�@�������e( prt_file_nameee���*�����������{{(2e( docref_fullee���&�����������lt�(e(listRefee��*������������k�e(e( listItemRefee�8���&�����������(�e(averages�e(�@�������eee�� ��������������(e(ieeoc�$��������������(1e(done�ee;���������������e;�.���������������8get info from dialog ����<���*��������� ��(averages�e(�?�������ee(����(e �<���*��������5���(averages�e(�@��������ee(����(n�<���*������������(averages�e(�@��������ee(� ���( I�<���*������������(averages�e(�@�������ee(� ���( �<���*����r�(averages�e(�@�������ee(� ���(�<���*����r�����(averages�e(�@�������ee(� ���(se�<���*����r��(averages�e(�@�������ee(� ���(�<���*����r�2�Pi(averages�e(�@�������ee(����(�d�<���*����r����(averages�e(�@�������ee(����(�<���*����r����(averages�e(�@�������ee(����(�<���*����r����(averages�e(�@�������ee(����(Pt�<���*����r����(averages�e(�@�������ee(����(���<���*����r�����(averages�e(�@�������ee(����(���<���*����r�(averages�e(�@�������ee(����(�<���*����r�����(averages�e(�@�������ee(����(�<���*����r����(averages�e(�@�������ee(����(5�<���*����r�����(averages�e(�@�������ee(����(����������r�8���(�6���$�������������8setup paths and input files Z�Ր�J���8������������( diag_pathe ( PM_FindFoldere�� DiagnosticsAppsee�����������������e�F���4�������������8,copy over the land file from the run folder \������������������(e (PM_CopyFortran�e(�@��������e���ee ( PM_FindFoldere�� CurrentRunBee(�@�������e( diag_pathe(�@�������e(�e�ep(�����������ee�����������������e��Z���H�������������8@loop over the months and seasons and process each true variable ��Pr�>���,������������(e(ie(�?�������e(�@�������ee���.���������������(e(averages�e(ieee���,����������������8create the .I file ����N���<���������(diagae ( PM_FindFoldere�� acce�e�p(�Ze$(��&ee���t���b���������(diag&e(diag&�e�pe�JAN�e�p(� e(����e�e�pe�.acce�e�p(�����e�p(�Ze$(��&eerc�^���L�����4��(diag&e(diag&�e�p ( PM_FindFoldere�� tablese�e�p(�Ze$(��&ee���4���"��������(listRefe(ee�Monthsee�������������( prt_file_namee(�����e�pe�_�e�p (GetListItemStr�e(listRefe(ie�e�p(� e(����e�e�pe�-�e�p(� e(����eeD�N���<���������(diag�e(diag��e�p( prt_file_name�e�p(�Ze$(��&ee���&������������(ye(listRefee�J���8���������(diagRe(diagR�e�p(� e(ie�e�p(�Ze$(��&ee���N���<�����ste�(diag&e(diag&�e�p(� e(����e�e�p(�Ze$(��&ee���N���<���������(diag&e(diag&�e�p(� e(����e�e�p(�Ze$(��&ee���x���f����������8QMana2:Pascallion:EdGCM Folder:Output:MAC010aC9:acc: ! path to acc�8 folder s��t���b����������8QJAN1905.accMAC010aC9 ! first acc f�8ile 9��r���`�������������8QMana2:Pascallion:EdGCM Folder:Output:MAC010aC9:postprocessed: ! output fold�8er �D����p�������������8QMAC010aC9_JAN1905-1909 ! output file�8 name (print file) �@�x���f�������������8Q1 ! month for a�8 veraging ����j���X�������������8Q1905 ! start year ��h���V�������������8O1909 ! end year ���������������������0���������������8write out the .I file ��N���<�����������( docref_fulle( e( diag_path�e�pe� Diagnostics.Iee���4���"�����������(e#( PM_Platform�ep$(��ee5{�6���$���������8convert line endings for PC Z�\�<���*��������(�ge( docref_fulle(e(diageeee���������������((��4���"��������(�ge( docref_fulle(diageeeQ�����������((��*�����������0( e( docref_fullee��J���8��������(e( diag_path�e�pe� Diagnostics.Iee�R*cheeesn���������ffe��8���&������8delete stop file if it exists ��T���B�����(e(e( diag_path�e�pe�Diagnostics.stopee�ep$(��ee���B���0��������(�e( diag_path�e�pe�Diagnostics.stopeee���������������((y �������������(��.�������������8run the application e����4���"���������(e#( PM_Platform�ep$(��ee�`���N���������(errCodee(.�e( diag_path�e�pe�Diagnostics.appe(�����������ee��������������((`�R���@����������88$errCode:=AP Sublaunch ($diag_path+"Diagnostics.exe";0) �����D���2���������( prt_file_namee(�e�pe�system32\cmd.exeee���r���`�����_%(errCodee(.�)e( prt_file_namee(�����������e( diag_path�e�pe�Diagnostics.exeeeU�������������(( g�������������(��<���*����������8#wait for the application to finish �LI�"������������(tickse((�"������������(donese(�( ��������������((��0��������4���(Ce(Be(�@�������ee���T���B���������(e(e( diag_path�e�pe�Diagnostics.stopee�ep$(��eeBU�0������������(Ce(Be(�@�������eeOC�B���0���������(�e( diag_path�e�pe�Diagnostics.stopeee�"������������(done_e(�(��������������((�4���"���������(e#( PM_Platform�ep$(��ee[�.������������(ee("e�epe(eee���"������������(donee(�( ��(������������(ie(�@�������(en�������������((Ty����������������(( �.���������������(ee(3e�epe(eee���"���������������(done�e(�(��(���������������(ie(�@�������(�����������������((�����������������((�"�������������� (e(done�ee��0��������������(Ce(Be(�����������ee�6����������������eis�6���$����������\ ( prt2html_I�e( prt_file_nameee������������������((�����������������((���������������((���D���2����������� ( Alert_Alerte(�@��������e(�@�������ee��������������ic��((E��������������������������������������DFCC4DMl�,�3�j���X�� ]�� ]���8QThis code uses the default folder and a specified folder to return all files of �80�j���X������������8Pa given type. Thus you get a concatinated list of all the files in both folders l����d���R������������8Kthat are of a given type. Eg if you pass "topo" then you get back all the ����b���P��������H�8Itopography files in Default. This code now uses Cache Manager instead of ����&����������������8 direct types ������������������8 �e �f���T�������������8LSome special code to handle oceans in where a second value is needed in the ��s?�8���&�������������8database to track the folder. ��������������������8 �� ����������������8 input ����J���8�������������81 file type list name, case sensative comparison ��,����������������8 add in default? ^��0����������������8 input ocean folder? ���.����������������8 pointers to folder ����^���L�������������8D ptr array of pointers to an empty popup menus (arrays of strings) H����X���F�������������8? ptr array of pointers to fields which hold the menu settings �ar�"����������������8 output l� ��`���N�������������8G list of files into the pointer, matched to current value if possible �������������������(���� �������������8var �����B���0������������(%H(�@�������H (�H( typeListName�HH���8���&������������(%H(�@�������H(fileType�HHwh�0���������������(1H (�H( useDefault�HH�.���������������(1H (�H(useOcean�HH���,���������������(-H (�H(foldPtrHH)`�@���.������������(-H (�H(filesPtr�H( tempArrayPtr�HH��,���������������(-H (�H(curPtr�HH���>���,������������(H( typeListRefH(lenALH(lenTLHH���*���������������(H( EdGCMFolderHH���*���������������( typeListName�H (�(�(���������������( useDefault�H (�(0)�&���������������(useOcean�H (�(t@�$���������������(foldPtrH (�(ef�&���������������(filesPtr�H (�(��$���������������(curPtr�H (�(ll�4���"������������(lenAtH(H(filesPtr�HHH����������������H��&���������������(H(useOcean�HH�2��� ������������( EdGCMFolderH(�@��������(cn����������������((�2��� ������������( EdGCMFolderH(�?�������(a����������������((� ����������������((�(����������������8get type list �e�@���.�������������8'$typeListRef:=Load list($typeListName) ��<�:���(������������( H( typeListName�H(typeListNHH(�2��� ������������(lenTLH(H(typeList�HH�����������������H(�6���$�������������8fixed queries for all files Z�ve�0���������������(H$(��H��InputHH�>�@���.������������(H(��� ��H(�� ���H@( EdGCMFolderHH10�6���$������������(H$(��H�� FoldersTempHH���V���D������������(H( useDefault�HdR)look in default and the alternate folder d f�D���2������������(H(��� ��H(�� ���H@(foldPtrHH�H@HH �D���2������������(H(��� ��H�H @H(�� ���H@���DefaultHH�8�F���4������������(�yH���InputH��� FoldersTempH���FoldersHH���,���������������(�uH��� FoldersTempHH(�6���$������������(\_tlook in all input folders �\���4���"������������(XH���InputH���FoldersHH�e����������������((Ty����������������((�.����������������8for each input menu H����8���&������������(H(iH(�?�������H(lenT�HHe�.����������������8query cache manager H����4���"������������(H$(��H��Filetype�HHe�F���4������������(H(��� ��H(�� ���H@(typeList�H(iHHHe�H���6������������(�yH���FoldersH���Filetype�H���Avalible�HH���*���������������(�vH���Avalible�HHg �(����������������8setup the menu �lo�<���*������������( tempArrayPtr�H(filesPtryHH(iHH0)�2��� �������������8special case for oceans ��e�&���������������(H(useOcean�HH�T���B������������(H(�� ��H( tempArrayPtr�HH(�� ��H ( otsp_folders�HHna�d���R������������(�H ( otsp_files�H ( otsp_folders�HdT"$tempArrayPtr->, fix for bad sort )d(�p���^������������(�H ( otsp_folders�H(�����������HdT/blank line for no choice to balance otsp_files dia����������������((��8���&������������(H(�� ��H( tempArrayPtr�HHH���.���������������(�H( tempArrayPtr�HHH������������������((��\���J������������(�H( tempArrayPtr�HH(�����������HdU8blank line for no choice dD�@���.������������( tempArrayPtr�HH(�?�������HHH��HHfo�4���"������������(tempPtrH(curPtrrHH(iHH���B���0������������(jH(�H( tempArrayPtr�HH(tempPtrHHHe�0���������������(H(j�H@(�����������HHe�,���������������( tempArrayPtr�HH(j(ZZ����������������(( g�>���,������������(�H( tempArrayPtr�HH(�����������HH���F���4������������( tempArrayPtr�HH(�?�������HH(tempPtrHH���6���$������������( tempArrayPtr�HH(�?�������(e�&���������������(H(useOcean�HHEn�<���*������������(�H ( otsp_folders�H(�����������HHnd�@���.������������ ( otsp_folders�H(�?�������HH(����(es����������������((`����������������((D����������������((y ����������������(��"����������������8cleanup l�BL�$���������������(H$(��HH1�&���������������(�uH���InputHHnd�(���������������(�uH���FoldersHHs �*���������������(�uH���Filetype�HHT��*���������������(�uH���Avalible�HH���������������������������������������DFCC4D;I�OK*�R���@��'&��&&��gS:load the interface, setup a bunch of picture related stuffDE�X���F����������� @PictPtr�@�@��������wO8array of pictures for quick ref���X���F��������@ @TitlePtrT�@�@��������wO8array of titles for quick ref���L���:������������@ @ PictScreeni�wO8which set of 16 picts are we on���8���&������������@%@�@�������� @ thumbFolder������� ��������@@i��M�2��� ��������0001SARRAY STRING(80;FileList;0)00�2��� ��������EMakSC_LONGINT($DS_StoreMustDie)Ma��������������������0��������@�w�lInfo_iPhoto_OnErr���������������4���"��������Sget folder, will need to go!!�B���0�������� @ thumbFolderN @ PM_FindFolderw�lImages�����������kZkZ��$��������S picture setup�0�������� @ PictScreeniN@�?��������<���*�����@@i�@�?��������@�@���������J���8����� @PictPtr�@iN@0w�lPicture�N�@� @i����J���8����� @TitlePtrT�@iN@0w�lTitle�N�@� @i��������������@���"��������@�/@��� ����"��������@�/@��� ����,������������@�1@��� ���@�� ������<���*����� @Info_iPhoto_LoadThumb@������������������������������������������������������������������DFCC4D;�dN�Z���H��!�� ��,�7dCUpdate the current dates based on the folders in the output folder.ME�V���D��������?���7d>This code runs before the first simulation window opens in the ���\���J������������7dEsimulation process (since it needs write access to [model variables].D�^���L������������7dFUpdateCurrentDates scans the folders in Output and tries to match them��� ����������������7dto runs.����������������������������������]���������������H���6������������]���@��������� runFoldersr��������������JJ�<���*��������111]%��@���������output_pathname����� �����������]�i����������������J���8��������]���� $SafeCurrent����@��������������"������������7d get folders�F���4��������]output_pathname. � PM_FindFolder��Output��<���*��������]�output_pathname�� runFoldersr����������������<���*��������????�7d$check folders for current.date files.99�@���.��������)�]�� runFoldersr��.�������������t�2��� ��������]������� runFoldersr���"���������������]�2�������po�0���������������]��$��������Z�������8���&������������]����. � Run_To_DateB���������"���������������]�5����������"���������������]�3�������������������������]������������������]����������������������,���������������]��� $SafeCurrent��������������������]������DFCC4D.��L���:��"��!��,�7d4Load thumbnails from the subfolder inside of images.���B���0������������7d+The thumbnails are used to fill the display�V���D������������7d>The input is used to decide to page to prev or next or current ������ �������������7d input0���`���N������������7dH direction: -1 is back, 0 is current, 1 is next, -2 is first, 2 is last����,�����������EMak] ���� Direction�ns�8���&������������]�i��curRec��recCount$����6���$���������B�R]%��@��������� imagePath��i�$�������������"] Direction ���w����������Z^c�:���(����������7d"move through the current selection�0������������s�t]recCount$��L���� ����C�.������������e�c]curRec������� ������������������]��2��� ���������s�t�7dgo to the first record 0�_�:���(���������e�c]� Direction�����@����������I�"�������������]�2���� ����I�@���.�������������7d(move backwards in the current selection ��:���(��������]� Direction�����?���������:���(�����]curRec��curRec���@��������4���"���������]�curRec�^��?�����������,��������]curRec���?����������������]�.��������]����� ����curRec��6���$������7dmove forwards in the selection��6���$�����]� Direction����?���������H���6��������]�curRec����@���������( �recCount$����:���(�����????]curRec��curRec����@�����������������]�.������������]����� ����curRec����R���@����������7d:go to the last record doesn't really go to the last record��6���$���������]� Direction����@������������,�������������7d$curRec:=$recCount-15���d���R������������]curRec��recCount$���b�recCount$���@������������?����������4���"������������]�curRec����?�����������,���������������]curRec���?�������������������������]���.���������������]����� ����curRec�������������������]���,����������������7dmark correct position���.�����������]curRec������� �����������������D���2���������7d,load pictures, get previews from CM_Previews��<���*�����]�i���?����������@���������4���"������7dsee if the thumbnail exists ���0�����������]��$���� ����~�����$�����������]value��� ���<���*��������] foundImagef���� ����value��<���*��������]� foundImagef����?���������.������������7dget image from preview���2��� ��������]����� ���� foundImagef��0����������� ]PictPtr~�i���� ���\���J�������� ]TitlePtrT~�i���� ��w$[CM_Images]Title`[CM_Previews]Text���������������]���6���$����.��7dblanks for unused pictures ��B���0����.�]5�� White Missing� �PictPtr~�i����2��� ����.� ]TitlePtrT~�i���� ����������.�]�8���&����.��7d TitlePtr{$i}->:=[CM_Images]Title��"�������.�]�3���� �����������.�]�.�������.��7dblank for no record �>���,����.�]5�� White 128� �PictPtr~�i���0�������.� ]TitlePtrT~�i�������������.����]����������.�]���������.������,�������.�l�7drestore record number�.�������.����]����� ����curRec���H���6����.����]�curRec����@���������^�recCount$�����������.����]���Image Browser: Images `���� �curRec�����-���� �curRec����@������������ of ����� �recCount$����� images�����������.����]����������.�[]���Image Browser: Images `���� �curRec�����-���� �recCount$����� of ����� �recCount$����� images�����������.�]����������DFCC4D�,�Pk�J���8�� �� ���7d1Pict2Jpg copies an jpg and creates new thumbnails��T���B����������7d:There is an implied thumbnails folder at the dest location�� +�z���h������������7dQThumbnails are only created if the thumbnail size is other than 128x128 which alr�7d eady exists���� ���������������7d input��&���������������7d source path�H�$������������o�l�7d dest path��(������������s�t�7d filefolderkey�H�8���&��������� ��7d max width/heigh for thumbnail����H���6�������[%��@�������� ��� ����src��dest���F���4���������o�l[%��@�������� �����name��jpgName���2��� ���������s�t[- ���� filefolderkey���^���L��������� �[ ����max��width��heightr��tws��ths��pos��len�����,��������������[�pic��thumb�����$�������������[�scale�����4���"���������o�l[%��@���������value��� ������������s�t[srcs ��� D�"������������ �[dests ���_T�*�����������&\[ filefolderkeys ���g � �������������[maxs ���li�������������o�l�(�*������������s�t�7dget the real info�e�&������������ �[names��� ����������������(�:���(��������111�7d change name to be web compadible�����0�����������[jpgNames��name��se�B���0��������[jpgNames���jpgName���:��������B���0��������RRR[jpgNames���jpgName��� ������� \�B���0�����������[jpgNames���jpgName���@�������Ti�B���0��������[jpgNames���jpgName���&��������������������������F���4���������7d,check that the work hasn't already been done���Z���H��������)�[� � PM_MakePath�dest��jpgName������N$����� l�������������������&����������������7d copy the file�e�r���`������������[ � PM_MakePath�src��name����� � PM_MakePath�dest��jpgName��������������������������6���$�������������7dcreate thumbnail if necessary����\���J������������[�max����@��������$just use the thumbnail in CM_Previewr�0���������������[values� filefolderkeyct�@���.������������[ foundPreviewos���� ����value�����@���.������������[� foundPreviewo�sP�sP��?���������Co�6���$������������[����� ���� foundPreviewo��al�&���������������[thumbs��� ��� ����������������[[d�\���J������������[uh@actually load the file from disk and compress it for a thumbnail�u N�L���:������������[ � PM_MakePath�src��name������pic��ec�2��� ������������[ �OKs����?���������ec�8���&������������[�pic��width��heightr��?�.����������������7dscalling & thumbnail����0���������������[�width�sP�heightr��@�0���������������[scales�width���max�c�"���������������[twxs�max���2��� ������������[thxs�heightr���scale�(����������������[[ �2��� ������������[scales�heightr���max��L�"���������������[thxs�max�(�0���������������[twxs�width���scale������������������[[Ty�V���D������������[�pic��thumb��tws��ths�$������@�������������������������[[����������������[[����������������[(�4���"�������������7dwrite out the web thumbnail���<���*������������[�d�thumb��sP��@����������@����v������������[ � PM_MakePath � PM_MakePath�dest��� Thumbnails������jpgName������thumb���JPEG�����2��� ������������[ �OKs����������������-����������������[�[ ����������������[[y ����������������[[������������������[[am����������������[(�,����������������7dreturn new filename�X�$��������������� [��s�jpgName��������������������������DFCC4Dl �^�0�F���4��������d�d�, RETRIEVE VARIABLES FROM BLOB project method�b���P��������d�d�I RETRIEVE VARIABLES FROM BLOB ( Pointer { ; Pointer ... { ; Pointer } } )�Z���H��� �����d�d�@ RETRIEVE VARIABLES FROM BLOB ( BLOB { ; Var1 ... { ; Var2 } } )��2��� ��������d�d- ?��������4���"��������d�dvlParamvlOffset$�0������s�����d�dvlOffset$v������������:���(���s�����d�dvlParamv@��������in�F���4���t�����d�d � vlParamvlOffset$���������o�����d�d������������������������������������������������DFCC4D,^n�4���"���������d�d"3H Time stamp Project Methodd"�@���.���������d�d"3H' Time stamp { ( date ; Time ) } -> Long"�<�b���P���������d�d"3HH Time stamp { ( date ; Time ) } -> Number of seconds since Jan, 1st 1995""�,������������d�d"3" "�""vdDatee""��,������������d�d"2" "�""vhTimee""�� ������������d�d"" "��""��0������������d�d"""�""����������""��$������������d�d"vdDate�""�!"t �$������������d�d"vhTime�""�"-�������������d�d""���$������������d�d"vdDate�" "�"d[�$������������d�d"vhTime�" "�"K�������������d�d""���Z���H���������d�d "��""""vdDate��"v"v��"�"v"v@������"�"�v"vhTime�"��������������������������������������������������������������DFCC4D9x��J���8��n��n��(�7d0this goes to the following web page for support �P�<���*�������� (WebAndMailLauncher�(�@���������������������������������������������DFCC4D5�R�:�8���&���������d�dTwist_Down_Update(String Group)���Z���H���������d�dAall that this method needs to know is the group which has changed�Z���H���������d�d@then it can go down and set all the groups bellow it accordinglyd�N���<���������d�d4this updates the twist down group box user interface ���^���L���������d�dDNOTE VERY important this method should only run if a twist down box ����X���F���������d�d?that was passed to it has changed state otherwise it will causei@�2��� ���������d�dundesireable preformance"�������������d�d3���� ���������d�dvar��� ������������d�d �or�*������������d�d ArrayIndex�&������������d�dCounter�h���V���������d�dNthese temporary variables hold the cordinates of the contents of the group box\D�d���R���������d�dKthis allows the method to calculate the highet of the contents for resizing3�(������������d�dC_INTEGER($top)H0�,������������d�dC_INTEGER($bottom)��*������������d�dC_INTEGER($left)k���*������������d�dC_INTEGER($right)�&������������d�dheight�3�J���8���������d�d%%@�������temporay_stationary_object"�D���2���������d�d%%@�������temporary_group_name��F���4���������d�d%%@�������temporary_reserved_name���*������������d�d1 Open_Close���������������d�d3���� ���������d�dsetup���(������������d�d ArrayIndex �v�*������������d�dtopt�����������.������������d�dbottom�b�������������,������������d�dleft�l�����������,������������d�drightr�����������.������������d�dheight�h�������������������������d�d������ ���������d�dbegin���2��� ���������d�dshow/hide relevant group"�J���8���������d�d Group_State ArrayIndexe�A Openylu�,������������d�d Open_Close Open_3�������������d�dh�.������������d�d Open_Close Closedl���B���0���������d�d& If ((Group_State{$ArrayIndex}=Open)) t�������������d�d3�X���F���������d�dtemporary_group_name� Group_Nameg ArrayIndexg��A�A@t�������������d�dtemporary_reserved_name�tz��t Group_Namer ArrayIndexr��A�A_�ACthe objects that are not suppose to move have a z in front of them@�������������d�d �`���N���������d�dFthis check detirmines if the method is resizing the group boxes bellowi���D���2���������d�d*the group box that was opened or collapsed,��F���4���������d�d,if it is true then it modifies the group boxon�L���:���������d�d3if it is not true it adjust all the boxes bellow it���������������d�d���`���N���������d�dGget the height of the elements inside the group box for later reference3�\���J���������d�dBGET OBJECT RECT(*;$temporary_group_name;$left;$top;$right;$bottom)r���t���b���������d�dheight� Group_Height ArrayIndexh A-this calculates the height of the object �t�������������d�d���4���"���������d�d Open_Close�O Open_�6���$���������d�dThis part opens a group box 3�<���*���������d�dheight�height��hh@��������p�v���d���������d�d[�[temporary_group_name���0this shows the group that contains the variablesk���|���j���������d�d��temporary_group_name���6this makes it so objects in this area can be accesseedg �4���"���������d�dthis opens the arrow \nd�������������d�dtemporay_stationary_object"temporary_reserved_name��t�t Closed_Arrowr�tPtemporary_stationary_object is set to the name of the variable containing the ar���F���4���������d�d[�[temporay_stationary_object"���b���P���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Open_Arrows���F���4���������d�d[�[temporay_stationary_object"����`���N���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Mode_Menu �F���4���������d�d[�[temporay_stationary_object"�1 �`���N���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Group_Box�8���&���������d�dchanges group box to full sizeD�|���j���������d�d�temporay_stationary_object"t����������t����������t����������height����2��� ���������d�dIf ($Open_Close=Close) tt�R���@���������d�dheight��hh?��������hheight���hh@���������6���$���������d�dthis part closes a group box"��v���d���������d�d[�[temporary_group_name���0this hides the group that contains the variablesk�����n���������d�d��temporary_group_name���:this makes it so objects in this area can not be accesseedH�O�6���$���������d�dthis closes the arrows "�@�������������d�dtemporay_stationary_object"temporary_reserved_name��t�t Closed_Arrowr�tPtemporary_stationary_object is set to the name of the variable containing the ar �F���4���������d�d[�[temporay_stationary_object"�_I�b���P���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Open_Arrowsnd�F���4���������d�d[�[temporay_stationary_object"����`���N���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Mode_Menu�e�F���4���������d�d[�[temporay_stationary_object"� �`���N���������d�dtemporay_stationary_object"temporary_reserved_name��t�t Group_Box��������������d�d�temporay_stationary_object"t����������t����������t����������height�hcollapses the group box���0������������d�dIf ($Open_Close) � �������������d�dh��0������������d�dadjust the array indexPfo�D���2���������d�d ArrayIndex ArrayIndex��AA?�������t�@���.���������d�d ArrayIndex� A Number_of_Groups`�%�������������d�d���8���&���������d�dadjust the rest of the groups  �J���8���������d�dCounter ArrayIndex Number_of_Groups` L�T���B���������d�dtemporary_group_name� Group_NamegCounter��C�C@�8�������������d�dtemporary_reserved_name�tz��t Group_NamerCounter��C�C_@t�CCthe objects that are not suppose to move have a z in fornt of them���j���X���������d�dPthis are of the routine adjusts the group boxes bellow the group box that was co���v���d���������d�d�temporary_group_name�t����������height�h����������h�������������x���f���������d�d�temporary_reserved_namet����������height�h����������h�������������J���8���������d�d/For ($Counter;$Start_GroupBox;Number_of_Groups)���>���,���������d�d"For($ArrayIndex<=Number_of_Groups)���������������������������������������������������������������DFCC4D_��.]�j���X��%5��$5��g processrefp�=�Open_Output_Window�#� StackSize��Simulation_Database�iz��DFCC4Dl�xB�T���B��'��&��`D=Create TimeSeries.I file to post process the aj (time series)���h���V�����������`DPThis version supports the new hierarchical structure in the diagnostics folders.�p���^�����������`DQHowever due to the 31 character filename restruction in 4D, Excel, and Kalediagra`Dphw���t���b������������`DQthe two level folder hierarchy remains. This version now turns everything on and `Dplaceso���r���`��������0`DQthe folder in postprocessing instead of plots and uses the Unix version of TimeSe`Driesf���D���2��������EMak`D,under MacOS X instead of the Carbon version.������������������`D������� ����Ӝ�(`D input��� �������Ӝ�d`D <none>����� ����Ӝ�����`D output���*�������Ӝ�@���`D boolean, successH� �"�������Ӝ������ @diag�ra���� ����Ӝ�����@1 @����6���$����Ӝ�� @% @�@��������@ diag_path����(�������Ӝ��@2 @ docref_full�����p����Ӝ����@% @�@��������@ output_folder�@ output_path�wX2folder and path for I file and finding disk folderT��"�������Ӝ�D@ @itemu�e�6���$����Ӝ�����@� @ modelgrid�@�@����������"�������Ӝ�����@success@�����������Ӝ����ra�&�������Ӝ�����`Dpath to output���2��� ����Ӝ�� @ #@ PM_Platform�$@������R���@����Ӝ�����@ output_folder @ PM_FindFolder w�postprocessing��X����x���f����Ӝ�����@ output_folder@�  @ output_folder�@�?��������@� @ output_folder��P@�?��������������������������@���L���:������������@ output_folder @ PM_FindFolder w�postprocessing�������������������@���f���T��������� @ output_path@������w�_��@�  @�������w�-��@�  @������\���J�����������@ output_folder @ PM_MakePath @ output_folder�@ output_path�@�����r���`�����������@ output_path @ PM_MakePath @ PM_FindFolder w�postprocessing��@ output_path�@������������������������(��������������`Dcheck model/gridz��6���$��������aaaa @GetModelAndGrid � @ modelgrid�||�������������������*�������Ԣ�����`Dcreate the .I fileH���H���6����Ԣ�����@ @ modelgrid�@�@���������@�@������������:���(����Ԣ�����@diag�w�8x10��@�Z $@��&�����������Ԣ�����@���>���,����Ԣ�����@diag&w�7.826x10���@�Z $@��&�����������Ԣ�����@���2��� ����Ԣ�����@ #@ PM_Platform�$@������^���L����Ԣ�����@diag@diag�� @ PM_FindFolder w�acc��X���@�Z $@��&�����������Ԣ�����@���X���F����Ԣ�����@diag&@diag&�� @ PM_FindFolder w�acc���@�Z $@��&�����������Ԣ�@�r���`����Ԣ�@diag&@diag&��w�JAN��@�  @�������w�.acc��@������@�Z $@��&����L���:����Ԣ��@diag&@diag&��@ output_folder��@�Z $@��&��D���2����Ԣ����@diag&@diag&��@������@�Z $@��&����8���&����Ԣ�����@diag&@diag&��@�Z $@��&����L���:����Ԣ�����@diag&@diag&��@�  @�������@�Z $@��&����L���:����Ԣ�����@diag&@diag&��@�  @�������@�Z $@��&����j���X����Ԣ�����@diag&@diag&��@�  @�����P@������@�?����������@�Z $@��&����2��� ����Ԣ�����@ #@ PM_Platform�$@������8���&����Ԣ�����@diag@diag��@�Z $@��&����H���6����Ԣ�����@�� .give PC version a file ending of xls for Excel���F���4����Ԣ���&@diag&@diag&��w�.xls��@�Z $@��&����������Ԣ�����@���P���>����Ԣ�����`D9Mana2:Pascallion:EdGCM Folder:Output:TestVar.A10.pC9:acc:���2��� ����Ԣ�����`DJAN1901.accTestVar.A10.pC9���^���L������������`DGFolder:Output:TestVar.A10.pC9:postprocessed:TestVar.A10.pC9_TimeSeries:���&���������������`DTestVar.A10.pC9������������������`D�ls���� ������������`D1901:=���� ������������`D1901f ����������������`D1f ������������������,���������������`Dwrite out the .I file���H���6�����������@ diag_path @ PM_FindFolder w�DiagnosticsApps����L���:���������@ docref_full@  @ diag_path��w� TimeSeries.I����2��� ���������@ #@ PM_Platform�$@������|���j���������@�g @ docref_full�@� @� @diage�@�Z $@��&��@�Z @�@����������w�:�w�/��������������������@���:���(������������@�g @ docref_full�@ @diage��������������������@���(���������������@  @ docref_full����H���6������������@ @ diag_path��w� TimeSeries.I�w�R*ch�����������������������2��� ������������`Dcreate the .I scaling file���J���8������������`D2need to preserve the old selection before we startN��8���&��������EMak@K @������w�oldAJselection���"�������N�����@diag�w�����.�������N�����`Dpick the right records���"�������N�����@�/ @���������8���&����N�����@ @������@�����@��������"�������N�����@�2 @���������L���:������������`D4copy the info from the record to the .I scaling file���B���0������������@ @item��@�?��������@�L @����������(���������������`DIf ([AJ]Enabled)z���(���������������`D$diag:=$diag+"T"z������ ������������`DElse ���(���������������`D$diag:=$diag+"F"z������ ������������`DEnd if ���.�����������@diag�@diag���w�T�:���(�������� ))`D"scaling factors aren't really used�@���.����.����@diag�@diag���w� 0.00000000E+01 ���h���V����.�����@diag�@diag���@������  @�@��������P@� @�������Xw� ����h���V����.�����@diag�@diag���@������  @�@��������P@� @�������Xw� ����D���2����.�����@diag�@diag���@������@�Z $@��&����"�������.�����@�3 @������������������������@���0���������������`Drestore the old selection���.���������������@L w�oldAJselection������������������0�6���$������������`Dwrite out the .I scalling file���T���B������������@ docref_full@  @ diag_path��w�TimeSeries.I Scaling����2��� ������������@ #@ PM_Platform�$@������d���R������������@�g @ docref_full�@� @diage�@�Z $@��&��@�Z @�@����������������������������@���:���(������������@�g @ docref_full�@ @diage����������������Ld@`D�(���������������@  @ docref_full� �P���>��������@���@ @ diag_path��w�TimeSeries.I Scaling�w�R*ch�/p������������������B���0������������`D+copy over the land file from the run folderap������������� @PM_CopyFortranz @�@���������w��� @ PM_FindFolder w� CurrentRun���@�@��������@ diag_path�@�@��������@����������������������N���<������������`D6create the output folder if it does not already exists nt�:���(������������@ @ @ output_path��$@���ed�(���������������@ @ output_path����������������L@`D������������������L���:������������`D4run the application, return true or false for sucess���D���2������������@pathu @ PM_FindFolder w�DiagnosticsApps����N���<������������@pathi @ PM_MakePath @patha�w� TimeSeriesX�@�����*��������������� @ PM_Launch @patha�*)���� ��������� @��@�LA�H���6������������`D0$0:=PostProcessing_LaunchAndWait ("TimeSeriesX")�����������������������������������������������DFCC4D _j�Z���H���������d�d��Achanges to the date should be immediatly visiable in the run list�(������������d�dArrayNums��������������d�d�������������d�d t�*������������d�d�$���:���(���������d�d!update the list in another window���,������������d�d Simulation_SaveRecord t�0������������d�dI#Toolbar_ProcessID��������������d�d��������������������������DFCC4D:�hP�n���\��%4��$4��gSQcheck that 4D is new enough to use, prevents stupid errors, also now loads versioSnf�(���������������Snumber from file����2��� �����������^%��@���������vers(��������������������(���������������^vers(~��������,�����������0001Smin version is 8.0.2~08������������EMak^�� �vers(!��@�������"��.��@��������� �� �vers(!��@�������"�� ��@������������ �vers(!��@�������"��.��@�������������\���J������������^�)�<EdGCM requires 4th Dimension 2004.2 (8.0.2) or later to run.���������������^#R���������������^����������������,���������������Sload in version file~!!�8���&��������^��version�� $�����2��� ��������^docRef�~��version��@���.��������ccc^�h�docRef~��line(���Z$���&��RR�$�����������^ �docRef~��:���(������������^���line(��~`����������������.���������������#^VersionOfEdGCMA~�line(������������������^���`���N������������^�)�@EdGCM version is unknown, this copy is damaged and will not run.~�������������������^#������������������^������������������^���`���N������������^�)�@EdGCM version is unknown, this copy is damaged and will not run.~�������������������^#������������������^������������DFCC4De��X�>���,��������W�� Info_iPhoto_LoadThumbs�@��������ss������������������������������������������������DFCC4D W#�\���J������������8CThis code loads the string from the Web and Mail list and launches �[�`���N���������8Geither a web browser or an email program. It should be checked if this ��Z���H������������8@works right on Windoz since the mailto functionality came from �����T���B�������������8:InternetConfig and may not be a real part of OPEN WEB URL ��X����������8 ����6���$�����EEE�8The syntax for a weblink is Z����4���"�����uuu�8 http://www.giss.nasa.gov ��4���"����������8The syntax for an email is ��d���R����������8J mailto:someone@Mac.com?subject=My%20Subject&Body=This%20Is%20The%20Text ��������������������8 ���� ����������������8 input ���F���4�������������8- number of the line in Web and Mail to load ����0����������������w ��w� listLineNumww��&����������������w�listRefww���&����������������w�listLenww�2��� ������������%w��@�������w�urlww�(��������������� listLineNumw ���$�����������������0�� ����������������8setup ����:���(�����������D�listRefw�w\� Web and Mailww�2��� ����������listLenw�|w�listRefww������������������w#�&����������������8 get and send ��L���:�������������w� listLineNum�w@w�listLen�w�@��?�������www���L���:�������������urlw �GetListItemStrww�listRefw� listLineNumww���(������������w�urlw�w@wwˀ������������������������������"����������������8cleanup l����&����������������yw�listRefww����������DFCC4Da6�5�B���0��������W�� Info_iPhoto_LoadThumbs�sps�?�������ss������������������������������������������DFCC4D`-������������� � ����������������������DFCC4DJ"�d�(��0���������������"0startup image browser "��v���d���������� Generic_OpenReopen???#InfoPict_ProcessID??x�InfoPict Window?x�Info_iPhoto_Process??������DFCC4Dne�p:�R���@��&\��%\��gS:Deletes a section from the eJournal after warning the user�DE���� ����r��S input���*������������S number of section"�"���������������S text ptr8���.����������� @��@ sectionNums����2��� �����TAT @- @��@sectionTextPtrz� �4���"��������TAT @@i�@iic�@iii�@j� �4���"��������@@tableNum$�@fieldNum$��0������������@-@field1u�@field2u����&������������@@ blankPict��H�&�����������aaaa@ sectionNums~ @��*�������X�����@sectionTextPtrz~ @����������������dj�F���4����h�����S.check that we're not in the middle of a delete���8���&�����������@ @HandlingDeleteSection�@����2��� ���������@@�����~@�?�����������.��������������Swarn user about delete���Z���H��������aaaa@ @ Alert_Alert@�?��������@�@���������@�?����������N���<������������S6for any section except the last move all the others up0���:���(��������@tableNum$~@�@sectionTextPtr~��:���(��������@fieldNum$~@�@sectionTextPtr~��8���&����j�0001@@ sectionNums�wl@�@��������11�<���*��������EMak@@i�@ sectionNums�@�@��������l�N���<��������0001 @ItemListI�@im~ @ItemListI�@i�~�@�?�������m00�<���*��������EMak@@j�@�?��������@�@�����������N���<��������TAT @ii~@i�~`@�?���������@�@��������~�@j? �8���&��������496 @iii~@i�@�@��������~�@j S�@���.������������ @ItemNameI�@iiem~ @ItemNameI�@iiim9�D���2���������� @ ItemCaption�@iiem~ @ ItemCaption�@iiim�m�D���2���������� @ItemPictI�@iiem�~ @ItemPictI�@iiim��P�L���:���������l�d @ ItemPictLabel�@iiem�~ @ ItemPictLabel�@iiim���������������� @��@���.����������@field1c~@�@tableNum$�@fieldNum$��x�R���@���������l�d@field2u~@�@tableNum$�@fieldNum$�~�@�?���������i�,��������������@field1��~@field2���e�>���,�����������@fieldNum$~@fieldNum$�~�@�?�������x����������������@������������������@s%��������������� ��>���,����������S'blank the last section that is now gone�e�6���$���������l�d@5w�l White 128�@ blankPict��l�<���*���������n�g@@i�@�?��������@�@���������T�R���@���������i�n@ii~@�����~`@�?���������@�@��������~�@i�n�0�����������> @ItemNameI�@iiem~w�l�~���2��� ������������ @ ItemCaption�@iiem~w�l�~���8���&������������ @ItemPictI�@iiem�~@ blankPict���6���$������������ @ ItemPictLabel�@iiem�~w�l�~������������������@���@���.������������@field1�~@�@tableNum$�@fieldNum$����&�����������>� @field1u�~w�l�~���������������������,�������������&Supdate figure labels~� �.��������������� @InfoText_UpdateFigLabels����������������������T���B������������S=reduce the number of sections & mark that delete is sucessful���6���$������������@����~@�����~`@�?����������0��������������� @HandlingDeleteSection~@����������������...�(�����������Supdate appearance�L���:��������@5w�leLine2P� @ ItemLinePicte�@ sectionNumsm���8���&��������@@ sectionNums�wl@�@���������6���$������������@@i�@ sectionNums�@������>���,��������111 @InfoText_ShowHide@i�@�?��������������������@������������@���T���B�������� @InfoText_ShowHide@�����~�@�?��������@�@������������8���&��������@S!the popup menu is left inaccurateW�������������n�f@�T��������������@��4���"����������Scan't delete the last section�i�B���0���������l�d @ Alert_Alert@�?��������@�@���������f�L���:���������M� @5w�leLine2P� @ ItemLinePicte�@ sectionNumsm���I�0����������� @HandlingDeleteSection~@�������������@������������@�n���\������������SQmark that we've complete the delete so that the second On Data Change is completeSd���0��������������� @HandlingDeleteSection~@�������������������@������������������������������DFCC4D[�,�d���R��'��&��b$MThis marks all tables in EdGCM as read write and should never be used outside���h���V�����������b$Qof user mode. This code exists for programmer editing of certian tables in EdGCM.�����������������b$�o����� �����������b$ inputp_���� ��������0001b$ none00���� ��������EMakb$ outputr����� ������������b$ none������ ��������TAT �� ��MM������������� 0:�&�����������MUTX]����� ���������"�����������EMak]�5����������"���������������]�3����������(����������� ]��$��������BB������������������������������������������������������DFCC4DV�~PH�(�����'��&��b$FindOTSpecFolderzTX�|���j����^�scalb$QFinds the folder that contains the filename passed in from the list of folders inb$ Input Oceans.e@��Z���H������scalb$BA path to the folder is returned or "" if the file cannot be found��������*�scalb$�hT���� �����scalb$ input u�2��� �����scalb$ ptr to file to search for��6���$�������b$ ptr to folder containing file@���� �����scalb$ outputD:�H���6�������b$1 path to the folder that contains the file or ""y �F���4�����scal- @�� @��@ filenamePtr�@ foldernamePtr�r �.�������Ɯ�c@% @�@�������� @������&�������"�scal@ filenamePtr @�:�(�������\�scal@ foldernamePtr @� a���� �����scal @��w��st�������������^���L�����scalb$Gif the filename and the foldername exists then the file probably exists����������������b$QIf ((Find index key([CM_File]File Name;$filenamePtr->)>-1)&(Find index key([CM_b$'File]Folder Name;$foldernamePtr->)>-1))���4���"��������@ $@���w� OTSpec Set�����F���4����b�����@ @��� ���@�� ���8@ filenamePtr7������H���6�����|@ @��� ������@�� ���8@ foldernamePtr7��B���0��������@ @� w� OTSpec Set���@���������������>���,����\����� @�� @ PM_FindFolder w� Input Oceans����H���6����D����� @�� @ PM_MakePath @���@ foldernamePtr7�@�� o�������������@�/�"��������TAT @ $@���D �*�������~�TAT @�u w� OTSpec Set��k_�������(�u��� OTSpec Set ��������DFCC4D{�O�y�\���J�� �� ����8CPath Manager code to copy fortran units that accounts for platform ����`���N���������8Fand copies for Mac/PC to PC/Mac. A legacy mode enables coping fortran ����b���P�������������8Hfiles from newer runs to older post-processors. There are three naming �(�&���������������8 conventions: ����,���������������8Carbon, FOR026.DAT �H�.����������������8Cocoa/Unix, FORT.26 ����&������������8 PC, fort.26 ��(������������3333�8 �� ����������������8 input ���x���f�������������8Q copy mode: 1=named to fortran, 2=fortran to fortran, 3=fortran to fortran (Mac �8legacy) o�ns�<���*������������8" source name (ignored in mode 2) h����(�����������1����8 source path ����B���0�������������8) source unit number (ignored in mode 1) ��,����������������8 destination path ��4���"�������������8 destination unit number ���2��� �������������8 overwrite destination ���"����������������8 output l�c �B���0��������o�8( error: 0=noerr, -1=no src, -2=no dest ��.�����������3���( (�(copyMode����J���8������������(%(�@������� (�(srcName( srcNamePC2�<���*�����������(%(�@������� (�(srcPathrn�,���������������( (�(srcUnit���>���,�����������(%(�@������� (�(destPath����8���&������������(%(�@�������(destName����.���������������( (�(destUnit����2��� ������������(1 (�( destOverwrite�0���������������(1(isSrc(isDest����(���������������( (��(err�&���������������(copyMode� (�(���$���������������(srcName (�(te�$���������������(srcPath (�(�$���������������(srcUnit (�(p)�&���������������(destPath� (�()k�&���������������(destUnit� (�(��*���������������( destOverwrite (�( m�6���$������������(err(�����������\_tnoerr p\������������������\���,����������������8format input names ��\���J�������������8Cif the source if fortran need to look for two versions of the name ��8���&������������((copyMode��@(�?�������am�6���$�������������8create Mac name, FOR026.DAT Z�ol�(���������������(srcName�for��6���$������������((srcUnit�@(�@��������4���"������������(srcName(srcName��@�0Fi�6���$������������((srcUnit�@(�@�������er�4���"������������(srcName(srcName��@�0�2����������������((����������������((v�N���<������������(srcName(srcName��@(� (srcUnit��@�.dat���(����������������8create PC name �v�B���0������������( srcNamePC�fort.��@(� (srcUnit�����������������((����������������(2�,����������������8format output name ���8���&������������((copyMode��@(�@����������L���:�������������83create legacy Mac name for Carbon apps, FOR026.DAT ���*���������������(destName��for�8���&������������((destUnit��@(�@�������ld�8���&������������(destName�(destName���@�0 o�8���&������������((destUnit��@(�@����������8���&������������(destName�(destName���@�0������������������((in����������������(( �T���B������������(destName�(destName���@(� (destUnit���@�.dat2����������������((�:���(�������������8 create MacOS X name and PC name l����D���2������������(destName��fort.��@(� (destUnit�t�����������������((����������������(��.����������������8check for dest files ����:���(������������(((destPath��@$(��in�$���������������(isDest�(�(����������������(( �$���������������(isDest�(�(ca����������������((����������������(7d�,����������������8check source files �����������������((�w�X���F������������((copyMode��@(�?�������znamed file to fortran file te�\���J������������(( ( PM_MakePath(srcPath(srcName(��@$(��gD�"���������������(isSrc(�(th����������������((�C�"���������������(isSrc(�(t����������������(( �l���Z������������((copyMode��@(�?�������z/fortran to fortran (two possible source names) 2�\���J������������(( ( PM_MakePath(srcPath(srcName(��@$(�����"���������������(isSrc(�(������������������((Ty�^���L������������(( ( PM_MakePath(srcPath( srcNamePC(��@$(�����"���������������(isSrc(�(es����������������((v�"���������������(isSrc(�(rk����������������((v����������������((h����������������((���"���������������(isSrc(�(ld�$���������������(isDest�(�( f����������������((����������������(���0����������������8start the main process �ac�0���������������((isSrc�@(isDest�ti����������������3�$����������������8 copy file <������������������(([�X���F������������((copyMode��@(�?�������znamed file to fortran file su�*���������������(( destOverwrite������r������������( ( PM_MakePath(srcPath(srcName(� ( PM_MakePath(destPatha(destNamea(��@������������������((`�~���l������������( ( PM_MakePath(srcPath(srcName(� ( PM_MakePath(destPatha(destNamea(�������������������((E�l���Z������������((copyMode��@(�?�������z/fortran to fortran (two possible source names) ���\���J������������(( ( PM_MakePath(srcPath(srcName(��@$(��-�*���������������(( destOverwrite������r������������( ( PM_MakePath(srcPath(srcName(� ( PM_MakePath(destPatha(destNamea(��@����������������((1�~���l������������( ( PM_MakePath(srcPath(srcName(� ( PM_MakePath(destPatha(destNamea(�������������������((1����������������((���*���������������(( destOverwrite������t������������( ( PM_MakePath(srcPath( srcNamePC(� ( PM_MakePath(destPatha(destNamea(��@����������������((������n������������( ( PM_MakePath(srcPath( srcNamePC(� ( PM_MakePath(destPatha(destNamea(������������������((d����������������((E����������������((it����������������((ot�*���������������((isSrc�@(����.���������������(err�@(�?�������(������������������(("�.���������������(err�@(�@��������(������������������(((���������������((����������������(��"����������������8cleanup l�pu� ��������������� (��(err(li��������������������������������������DFCC4D9��"�����'&��&&��g��/@������rf�"�������p����@�2@�������@���.��������@@item��@�?��������@�@�����������&�������v�����@����nw�lJeany���"�������� Kd@�5@������up�"������������@�3@������er���������a(@S������������������������������DFCC4Dvxq�,�������������"0Twist_Down_Init() ^"���T���B�����������"0;this method is intended to initialize the Twist_down menus "z�\���J��������l km"0CAll the groupboxes initialiy before this routine is run start open "���Z���H����Y`���"0Abut the arrows next to them are unasigned. This routine assigns "�b���P����Y`����"0Iopen arrows because the form isn't shown yet nothing is initially hidden "���4���"����Y` ~"0Also sets initial heights �"�&�������Y`Qfcounterff���"�������Y`��ftopffnd�&�������Y`��fbottomfff�$�������Y`����fleft\ffe�$�������Y`����frightff��������Y`����f�J���8����Y`����fCounterf�?�������f Number_of_GroupsDff��������Y`���� temporary_reserved_namefx�z�f�@ f Group_Name�ffCounterf�f�@x�_{BDthe objects that are not suppose to move have a z in fornt of them f{ll��������Y`����temporay_stationary_object�f ftemporary_reserved_name�f�@x� Closed_Arrow{{@Qtemporary_stationary_object is set to the name of the variable containing the ar { t�F���4����Y`����[f�f@fftemporay_stationary_object�ff�ff���b���P����Y`����temporay_stationary_object�f ftemporary_reserved_name�f�@x� Open_Arrow=x�F���4����Y`�d�d[f�f@fftemporay_stationary_object�ff�ffro����r����Y`|�f�f@fx�z�f�@ f Group_Name�ffcounterf�f�@x� _Group_BoxHfflefttfftopffrightffbottomfff;�H���6����Y`���� Group_Height�fcounterfffbottomf�f@ftopf��������Y`����������������������������������������������������DFCC4D1�Z$�H���6��!�� ��,�7d0make sure that the istart field matches the menu�DO�@���.��������7d(incoming data is a hack to force updates������� ��������]1 ������.�����������]1�load_from_recordd�����������������,����������]load_from_recordd ���������������]����������� ]��(��������������]���$���� t�6���$����J�����7dconvert menu item to istart �������������� ]��4���"���������� ] �istart����?���������t�*������������ �V]������@���������t�4���"��������0001] �istart����@���������10�*�����������EMak]������@������� I�4���"������������] �istart����@������������*������������� ]������@��������e�4���"��������� �V] �istart����@���������S�8���&��������� ��7d![Model Variables]Initial Start:=1�a�X���F���������� ]Alert_ParamText��uniform conditions�����������������h�R���@���������$�p ] Alert_Alert��?����������@����������@���������� �4���"���������a�r] �istart����@���������}�8���&���������l�i�7d![Model Variables]Initial Start:=2�e�R���@�������� ]Alert_ParamText�� observations������������������R���@��������"FR ] Alert_Alert��?����������@����������@����������������������N�]�H���6��������RR]���$����� p�load_from_recordd��R�(�����������oo]���$������6���$����������] �� dSim IStart� �istart��{�������������o�n]� �������������;�]��2��� ���������l�a]���������?��������%�,������������T�y ]istart���@��������)�2��� ��������MUTX]���������@���������fo�,����������� ]istart���@��������2��� ��������]���������@���������$�,�����������d ]istart���?��������2��� ��������///]���������@���������,����������� ]istart���@��������..�2��� ��������g]���������@���������,����������� ]istart���@��������������������]������������]����������������DFCC4D �d�(D�>���,���������d�d% Process_Name (Longint) : String [30]���F���4���������d�d- Process_Name (Process number) : Process name�������������d�d�����V���D���������d�d= This routine returns a process name from its process number.�������������d�d�0������������d�d � Process_ID��:���(���������d�d%%@������� ProcessName���$������������d�dState�$������������d�dTime�@�������������d�das�(������������d�d Process_ID ��������������d�das�N���<���������d�dP Process_ID ProcessNameStateTimee���������������d�d�(������������d�d �� ProcessNameS�������������d�d�*������������d�d End of routine.!t@����������������������������������������������������������DFCC4Df~~c �d���R�������7dKretrive the special regions files from cache manager and construct the menu���� ���������������7d input��6���$������������7d ptr to special regions menu����L���:�������������7d2 ptr to the special regions field in the database�_r�,������������� �7d filetype to query�P� ������������`�b�7d output�ss� ������������$�f�7d none��@���.���������(�[- ��� ����menuPtr��fieldPtr$���4�>���,�����������[%��@�������� ����filetype$����� �����������[�i���$�����������[menuPtrN ����&�����������[fieldPtr$N ���.!�&�����������[filetype$N �����������������111��8���&���������7ddo the query -> array and sort�����>���,��������[���� ������ �����filetype$�����2��� ��������RRR[��� ����menuPtr���>���,�����������[��menuPtr�fix for bad sort����������������*���������������7dadd in new itemsN�"�V���D��������[��menuPtr��������������blank line for no choiceN�:���(��������)�[menuPtrj��?�������NN�����S�.�����������[iN��menuPtr���������������������i�4���"�������������7dselect the current element0�th�>���,������������[iN���menuPtr��fieldPtr$�����0���������������[�i�NP��������������an�&���������������[menuPtrN�i�H����������������[[�8���&������������[��menuPtr������������������B���0������������[menuPtrj��?�������NN�fieldPtr$Pa�0���������������[menuPtrN��?�������������������������[[������DFCC4DA��b���P��'��&��b$JeList_Find sets up the arrays for the find dialog for the eJournal Libraryum���������scalb$�dG���� �����scalb$ inputD:���� ������scalb$ noneD:���� ����Ɯ�scalb$ outputD:���� ����"��� b$ nonees�����������"�������������b$ setup arrayts�8���&����X����� @ SearchArray�@�@������������>���,��������� @ SearchArray�@�?�������7@�������>���,����H���� @ SearchArray�@�@��������7@�������>���,����~����� @ SearchArray�@�@��������7@���������� �����TAT b$finde�N���<��������� @ List_Find @�@���������7@������7 @ SearchArray�����������@#����DFCC4D��@������&\��%\��g�<�.�����������"���@� @ pTimeSeries����@���.����������� @PostProcessing_SetTable�@������@���(��������������@@� @pMaps����@���.������������ @PostProcessing_SetTable�@������@�����,�����������0001@@� @ pVertical�08�@���.��������EMak @PostProcessing_SetTable�@������@�����*���������������@@� @pZonal�����@���.������������ @PostProcessing_SetTable�@������@�����*��������������@@� @pTables����<���*������������ @PostProcessing_TablesClearFill@��������������������@������������������������������DFCC4D:m�Li�"�����'&��&&��gS run deepocnrf�"�����������-��@diag����D���2��������@%@�@��������@ diag_path�@out_path$����(���������������@2@ docref_full���� ��������������@@pos���"��������������@@iteme�nu��������������� ����� ���������u�nSsetup�e�,������������n�p@ diag_pathc @ InputPath�t�2��� ���������� @#@ PM_Platform�$@�����<���*���������u�n@out_path$cw�l../../Input/Ocean rsf/�(�������������n�p@�t�>���,�����������@out_path$c @ PM_FindFolderw�lInput����T���B���������� @out_path$c @ PM_MakePath@out_path$�w�l Ocean rsf�@���d�������������u�n@�N��������������n�p�u�*���������������Sset deepocn.I filera�@���.������������@diagpc@� @�� ����c�@�Z$@��&����X���F��������� @diag&c@diag&�c�@� @�� ���c`@�� ����c�@�Z$@��&����D���2������������@diag&c@diag&�c�@�� ���c�@�Z$@��&����f���T������������@diag&c@diag&�c�@ diag_path�c�w�locean�c� @PathCharP�c�@�Z$@��&��d���R������������@diag&c@diag&�c�@ diag_path�c�w�lrsf�c� @PathCharP�c�@�Z$@��&�������~������������@diag&c@diag&�c�@out_path$�c�w�lNOV�c�@� @�� ����c�w�l.rsf^�c�@�� ���c�w�l.rsf_�c�@�Z$@��&����^���L���������L@diag&c@diag&�c� @ OutputPathu�c�w�l TAUP.value��c�@�Z$@��&�����������������������&���������������Ssample .I file������ ������������S1936c������������������S24H���&���������������SControl2_02pC9���:���(��������� S"../../Output/Control2_02pC9/ocean/���8���&������������S ../../Output/Control2_02pC9/rsf/���Z���H������������SC../../Input/Ocean rsf/Control2_02pC9/NOV1960.rsfControl2_02pC9.rsf_���D���2������������S,../../Input Oceans/Control2_02pC9/TAUP.value�����������������������������������������8���&������������S write out the .I file and launch���P���>������������ @OHT_SaveAndLaunch@diagS�w�l deepocn.I�w�ldeepocn�����������������������*���������������Supdate input files&���2��� ������������ @ CM_Rescan@��@��@��������������������������������DFCC4D1�Pm�\���J��'��&��`DECreate based on which tab is in front, now uses timers to update the ���T���B����F�PK��`D=list in the interface for the long running extractor programs��������������������.�������������� @� @ pTimeSeries��D���2�����������@ @PostProcessing_Validate @�@�������������*��������������� @PostProcessing_Plots(���0��������������� @PostProcessing_SummaryLists������������������@���(�����������aaaa@ @� @pMaps��D���2������������@ @PostProcessing_Validate @�@�������������$�������������� @makeNetCDFij_Iz���V���D��������D @PostProcessing_TimerCheckSetup @ PM_FindFolder w�maps��8���������������@���,�������ϸ�d@ @� @ pVertical����D���2����ϸ�����@ @PostProcessing_Validate @�@�������������$�������ϸ�@��� @makeNetCDFjl_Iz���X���F����ϸ����� @PostProcessing_TimerCheckSetup @ PM_FindFolder w�slicesP������������ϸ�����@���*�������ϸ�� @ @� @pZonal�����D���2����ϸ�����@ @PostProcessing_Validate @�@�������������*�������ϸ����� @PostProcessing_Zonal(��R���@����ϸ����� @PostProcessing_SummaryLists @ PM_FindFolder w�zones�����������ϸ�����@���*�������ϸ��L@ @� @pTables����D���2����ϸ�����@ @PostProcessing_Validate @�@�������������"�������ϸ����� @ prt2html_loop���X���F����ϸ����� @PostProcessing_TimerCheckSetup @ PM_FindFolder w�tablesP������������ϸ�����@����������ϸ�����@�����������ϸ�� �����������ϸ���������������������������������������DFCC4DhD)E�������������d�d""���*������������d�d"""�"$"��""���6���$���������d�d"����""� " "End" "End"""���,������������d�d"" "End�"E "Start""��$������������d�d "Start" "End"���6���$���������d�d"����""� " "End" "End"""���������������d�d""���������������d�d""���������������d�d"��������������������������������DFCC4D ��zh�<���*��'A��&A��gS$ Process_number (String [30]) : Long���B���0����������S+ Process_number (Process name) : Process ID�����������������S����P���>�����������S9 This routine looks up a process by its name, and returnst�V���D�����������S> it's process ID. This routine also checks the process state,�V���D���������� S> and returns 0 if the process is not running. In other words,�:�R���@���������T�eS: this routine returns a positive ID for a running process,00�P���>���������s�IS9 and a 0 for a process that is aborted or does not exist.�o����������������S����\���J������������SE This routine assumes that process names are unique. If they are notw �R���@��������� S: unique the results are based on the first instance found.����������������S���������������������,�����������d @���@ ProcessID��>���,��������KK�@%@�@�������� @��@ ProcessName����������������������$��������4@@TestIDs�pl�"������������@@Tasks����6���$��������@���@%@�@��������@TestName$����&���������������@@ TestState����&���������������@@TestTime$����������������O� ���&���������������@ ProcessName @�����������������������N���<������������@ ProcessID@�������������  Does not exist by default.���D���2������������@Tasks@O�� How many processes are there? ������������������A���<���*������������@@TestID��@�?��������@Tasks����N���<�����@P@TestID��@TestName$�@ TestState�@TestTime$�����������������T���B�����@@ ProcessName�@TestName$�wO8 We've found the process����������� )��X���F����� ))@@ TestState�h@������������wO8 It's known, but not running. �f���T��������@ ProcessID@������������� 2 Return 0 to show that the process is not running.���������������@���D���2���������@ ProcessID@TestID��� Return the ID ���(������������@�� ($TestState<0)�������������������L���:���������@TestID�@Tasks��@�?���������  Exit the loop.���2��� ���������@�� ($ProcessName=$TestName)�������������������(����������0@�� ($i;1;$Tasks)������������������$������������ @��@ ProcessID�������������������(������������S End of routine.�����DFCC4DL�w�\���J��'��&��b$EConvert a year to a TAU value based on a zero year. This code assumes���V���D��������P��b$?the length of the year is 8760 hours as is standard in the GCM.�����������������b$������� �����������b$ input�:���(�����������b$# longint, year you want to convert��4���"��������0001b$ longint, zero year for run10���� ��������EMakb$ outputr��0���������������b$ longint, date in hours����������������TAT ������������41 b$var �(�����������  @��@year@�2 �(�����������0.01@ @��@zero@�89�&���������������@ @���@tau���� ���������������@year@ @���� ���������������@zero@ @�����������������������4���"������������b$do the magic from date to tau���P���>������������@tau @year@�P@zero@��@�@ �������� 365*24������������������������� ������������b$cleanup������ ������������ @��@tau��@tau������������������DFCC4D'�Q�`���N��'��&��`DHUpdate image based on what is on disk. This version of the code is a lotfn�b���P��������=��`DJmore careful with what is in memory to ensure that things are really reset�����������������`D������� �����������`D input���� �����������`D nonep_���� ���������t�o`D output�h���� ������������`D none���������������000100�*�����������EMak`Dclear current stuff I�"����������������� @��� ������2��� ������������@_ @��� ���@������������������������������@�*���������������`Dstart progress barH�H�T���B�����������@ progressBar @ Progress_Open w�Updating image library...������������*�d @� ���������������`D do update���8���&��������@��� @ CM_Rescan @��@��@���X��������������������@�*���������������`Dupdate this windowH��"������������ @�/ @��� ���oa�,���������������@�1 @��� ���@�� ������<���*������������ @Info_iPhoto_LoadThumb @������������������������������@�(��������������`Dkill progress bar���(���������������@I @ progressBar�����������������������������������������������������������DFCC4DR�I�V���D����������8<Save changed information from toolbar back into the record, \����B���0�������������8)might be tricked by an altered selection �� � ���������������8 input ��*���������������8 blank toolbar? �t@�2��� ��������MUTX�1 ��� blankToolbarl�&�����������������curRecl�*������������ blankToolbarl �������������������6���$���������8save toolbar info if changed ����0���������������curRecl������ ���h���V������������#�PictInfoToolbarChanged�@#�PictInfoToolbarRecl�@���������������<���*��������www������ ��#�PictInfoToolbarRecag�&���������������value��� ����@���.��������� foundPreviewo���� ���value(�@���.�������������� foundPreviewo�@�@��?�������hu�6���$������������������ ��� foundPreviewo C�0������������������ ��#�PictInfoToolbar����$�����������������5���� ��o����������������������0������������������ ��#�PictInfoToolbar��$�����������������5���� ��e��<���*�������������8#check if change record is onscreen �������r�������������#�PictInfoToolbarRec�@�curRecl��@��@��������@#�PictInfoToolbarRecl� @�curRecl@�f���T������������ �TitlePtrT#�PictInfoToolbarRec�@�curRecl��@��?���������� �����������������������������������������v������������������2��� �������������8optionally blank toolbar ����*����������������� blankToolbarl���.���������������#�PictInfoToolbar\��\���>���,������������#�PictInfoToolbarRec�@��?�����������4���"������������#�PictInfoToolbarChanged���������������������v������������������������DFCC4D~��X���F��n��n��(�7d>this goes to the following web page for the eJournal exchange ���<���*����N����� (WebAndMailLauncher�(�@�������������������������������DFCC4D�V5�4���"��n��n��(�7dthis goes to the homepage ���<���*�����H (WebAndMailLauncher�(�@�������������������������������������������������������������������DFCC4DW�~�N���<��'��&��b$7Shows the user the run folder in the Finder, similar to�0��������������:b$the same meathod in Setup���������������b$������� ������������b$ input������ ��������b$ none�M���� ������������b$ output������ ������������b$ none������������������������������������b$var�� ������������Y�e @err����6���$��������@% @�@��������@ runFolder���������������0�����������b$find run folder and open�ld�,�����������@ runFolder @Run_PathR�8���&��������@ @ @ runFolder��8$@����D���2�����������@� ��w� ShowFolder��w� 3;1;?2002;240��,����������� @ FinderToPathn w��������������@�D���2�����������@� ��w� ShowFolder��w� 3;1;?2015;240���������������@JJ�  GetListItemStr"listRefic�������������d�dv�������������d�d A� ������������d�dcleanup��&������������d�dylistRef������������DFCC4D`K�3XO�D���2���s�����d�d<�+ Process_state_name (Longint) : String (30)<;�X���F���H�����d�d<�> Process_state_name (Process state code) : Process state name.p<��������������d�d<��<���>���,��������d�d<%<<%@�������< <��<< StateName<<���.�����������d�d<< <�<< StateCode<<���������������d�d<�&������e�����d�d< StateCode< <�<�������z�����d�d<�4���"��� �����d�d< StateName<<�S Unknown state<������� �����d�d<as������� �����d�d<<���8���&��� �����d�d<<< StateCode�<S<S����������<<Na�0�����������d�d< StateName<<�S Executing<na�������r�����d�d<�8���&���D�����d�d<<< StateCode�<S<S?�������<<on�.������o�����d�d< StateName<<�SDelayed<���������p�����d�d<�8���&���z�����d�d<<< StateCode�<S<S@��������<<by�>���,��� �����d�d< StateName<<�SWaiting for user eventD<���������T�����d�d< �8���&���o�����d�d<<< StateCode�<S<S@��������<<���@���.���c�����d�d< StateName<<�SWaiting for input/output<��������s�����d�d<���8���&���s�����d�d<<< StateCode�<S<S@�������<<w �@���.���u�����d�d< StateName<<�SWaiting for internal flag<���������x�����d�d<���8���&���e�����d�d<<< StateCode�<S<S@�������<<���.������s�����d�d< StateName<<�SPausede<��������������d�d<��8���&���������d�d<<< StateCode�<S<S@�������<<�4�:���(���������d�d< StateName<<�SHidden modal dialog<o �������������d�d<�<���*���������d�d<<< StateCode�<S�<S<S?�������<<re�.������t�����d�d< StateName<<�SAborted<���������������d�d<�<���*���c�����d�d<<< StateCode�<S�<S<S@�������<<���>���,���������d�d< StateName<<�SProcess does not existD<���������������d�d<[�������������d�d<�������������d�d<<S�������������d�d<���&������������d�d <��<< StateName<�������������d�d<�*������������d�d<� End of routine.<���DFCC4D-��\���J��'��&��b$EThis returns a string from a list item. You probably want to use this���^���L����������b$Fcode when you want a string return instead of a procedure. You need to ���@���.����������b$)load the list before you make this call. �����������������b$�o����� �����������b$input:���*���������������b$ longint, list ref���,�����������b$ longint, list item���� ��������b$output:�.�����������b$ string, item in list���� ������������� @�����$��������������@ @listRef������ ������������@ @�����&���������������@ @listItem$����(���������������@ @ listItemRef����.���������������@% @�@�������� @������8���&������������@% @�@��������@ listItemStr�������������������� ��������b$setup���"�����������@listRef @��$�����������@listItem$ @���������������������� ��������b$get it�R���@��������@z @listRef�@listItem$�@ listItemRef�@ listItemStr���������������kZo{����� ��������b$set itJ�&����������� @��@ listItemStr���������DFCC4D0�dN�\���J��%��$��gSEThis loads a run record, not a flux record. This code implicitly uses���^���L����������SGthe current run for the runid. Sempahore blocks changes to the run list���2��� �����������Swhile the record is loaded�����������������S�o����� �����������S inputp_�,�����������S none (current run)~ ���� ��������XS outputc���� ��������S none�$������������ �p@curYear�� �$������������r�r@@i�@j�%�2��� ����������@� @Start�@�?����������0������������� @� @End�@�?���������a�0������������L�E@� @RSF�@�?����������������������� ��$���� ���������e�sSsetup�e�(������������� @Run_Critical_Begin~�a��������������L�E�T�0������������ �Sload record from run list�[�H���6���������e�s@�@������#@ RunIDArrayR�#@RunNumberArrayz��[�$�����������,��@�� ��~@�������*������������� @�� ��~@������������d�*������������L�E@�� ��~@�������������*������������ �@�� ��~@��������������������������e�s�]�"�����������S clear lists�D���2��������@� @Start�@�?��������@ @Start���@���.���������@� @End�@�?��������@ @End�����@���.������������@� @RSF�@�?��������@ @RSF��������������������� @�4���"������������Shandle a run that is present���L���:����������g@#@ RunDateArrayu�#@RunNumberArrayz�~����������.���������������Syear for flux purposes���L���:��������u@curYear~@�#@ RunDateArrayu�#@RunNumberArray~� �X���F��������@@�#@ RunDateArrayu�#@RunNumberArrayz��wl@�@���������:���(�����������@curYear~@curYear�~`@�?���������������������@�����������������@�&��������������@�� ��~@curYear������������������@�(�����������Ssetup date ranges���2��� ��������@@�����~@�������������$�����������@�� ��~@�����.�����������)))%@@curYear�~@�� ������&�����������@�� ��~@curYear�������������@j���������@�����������@�,�����������Srepopulate the lists~���>���,������������@j~@�� ���~`@�� ���~�@�?�������J�8���&��������111@� @Start�@�?��������@j��6���$��������@� @End�@�?��������@j�@�6���$�����������@� @RSF�@�?��������@j���.��������������@@j�~@������������i�2��� �����������@@i�@�?��������@j���N���<�������� @Start�@i~@� @�� ���~�@i�~`@�?����������2��� ����������� @End�@i~ @Start�@i�2��� �������� @RSF�@i~ @Start�@i���������������@�������������@����������������*�����������Sset lists of years<R�*����������� @Start~@�?�������se�(�����������111 @End~@ @End�un�(����������� @RSF~@ @RSF�ra�������������@�.�����������Sset power and amplitude���*�����������@�� ��~@�@��������*�����������@�� ��~@�@�������������������`@$�������������lj���� ��������llScleanup�~�&�����������ln @Run_Critical_Endl������������������������������������������������������������DFCC4D[D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qt if not passed): 1=run id, 2=ruDFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q����H���6������������@@tDFCC4D[E�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q_dbr�@ rebuild_liste�wO8RuDFl��?W�� �������������@2@time_me�[@�"�������DFCC4D[F�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��Sset sort%���.�������<�DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q#@RunNumberArrayz��%@�����DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qEMak@1 @ simWindowOpen� I�"DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��� �`D4PAUSE PROCESS(SimulaDFCC4D7s�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qait�s�\���J����������I@ @PDFCC4D7t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q������ @Run_Critical_Begin�PDFCC4D[G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qy�@�����������wX+this geDF#GRPA��.0�.0+�.0 �.02Y�N�,� +�:�K@� @DF#GRP��}'�M � ��,T�Z� �k �.�7� �;� ��Uy�����������De����P���@���@<�<����l��������DF#GRPQQ��d�)r�i�J�_�E�2�'P model/grid, pathDFCC4D[J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q #@Setup_ProcessID�? �����DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�������s�2��� �����������@IDFCC4D[K�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qGetRunN; @�@���������7�������������������2��� ��������`Dstart process to run model��d���R��������#@Setup_ProcessID@= w�Setup_StartGCM�#@ StackSize�w� Setup_Process�������������@�� @output_pathname��w� SSW.STOPGCM��@���������DFCC4DP�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�������������Z���H������������@DFCC4D[H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qnot running and shell is not runDF#GRPV��Zs���7d�n�1�+�h�R�TF�/V�A"��7l�Z�'�W�0�x�^M�;� � �Rn�D�h��{}�S,�wg�/X��T���U5���[�A�a�7���}�=f�+�+>�����@ P�"�������>�����@success@�O�*�������DF#GRP��f�� �(�a��=�%�-Y�[�Q�'� K�2�f�i�Ml�f~�V������������@�(���������������`DpropigaDF#GRP*�� ;2Q��x�4�E�/R�f_�A!�Ii�� �7K�\i�W�BC�a@������al�"�����������P@� @������ez�&DF#GRP,��KBL�Kj�WwL+�Ww^�Ww&�Wwu �!�_� ;q� ;QS�PJ�P�eC6i�n:�n9�]$ �y6�yf�S�3�K�6g�V�C.�C�C �.$=�.0�.f�.��^ �^B�^f�^}�^G�^s�^G�^I�^ �^L�^r^�cZc�cZ�cZ%�*c�*�_/�_d�O8�`2�`%�`~#�37�;�o�Sk��%5�I�2F�Z�C�p� �,7�Z�q�� �+����it to openf �\���J������������@ @Process_FindWindowDF#GRP��8�,�Yd��-�F�&H�7Q�YF��||�l�2DF#GRPS ��5*�]�� ��9�V�K��ne�a�z�99�7�A�.7�Mw�;�zb�F�1�C��Jb�kA�&�v�7N�X8�m=�4�y�\�s�A,��Z��77������������"�����DF#GRP8��n�.8�A�0w�I[��C������#@Simulation_ButtDF#GRP��4� ��Y@�s4��Q� ��+��������@IDF#GRP7��F�7�B�c��� ��������@�������������DF#GRPh���J�su�5�yb�E�-p�d�K�o������������DFCC4D7r�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q����������0������� ����@tDFCC4D[L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q@success@����������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qforce immediate write1 �p���^��DFCC4D[M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qck model/grid, patho�J���8����DFCC4D[N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q����@ @Rundeck_Validate<�DFCC4D[O�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�*��������������� @ PM_Launch DFCC4D[P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q@��t_�2��� ������������ @RDFCC4D ��V���D��'��&��b$>Alert_ParamText places strings into the global ParamText array�J�T���B���������b$<so that they can replace the ^0..^3 in the alerts. Note that����V���D�����������b$?the same string can be substituted in multiple locations if you������ �����������b$want.*������������0001b$�03���� ��������EMakb$ inputr��:���(������������b$" string, first replacement string���:���(������������b$# string, second replacement string���:���(��������� �b$" string, third replacement string��:���(��������13.7b$# string, fourth replacement stringld���� ��������TAT b$ outputMM���� �������� b$ nonek_�@���.�������������% @�@�������� @�� @�� @�� @�����<���*������������#@AlertParamTextz�@�?������� @����<���*������������#@AlertParamTextz�@�@�������� @����<���*������������#@AlertParamTextz�@�@�������� @����<���*������������#@AlertParamTextz�@�@������� @���th @output_pathname�@gcmName�@DFCC4D0l��Z���H��'��&��b$CThis is special code to remove the archive status from a record andME�F���4�����������b$.should not be used in release copies of EdGCM.$�����������������b$�o����� �����������b$ inputp_���� ������������b$ none������ ��������0001b$ output00���� ��������EMakb$ noner��*�����������������m���@��������������"�����������13.7@�5 @��������T @�5 @������D ��@ @B�#@Simulation_ProcessID=����"���������������@ @success����2��� ����������� @Simulation_LockUnlock @��������������������@������������������@���(���������������`Din setup processz���"���������������@ @success����6���$������������#@Simulation_Button@�@�������������������������@���2��� ������������@I #@Simulation_ProcessID(����4���"������������#@Setup_ProcessID@�����������������������������@������������������@���������������������Launch @tempa�O���DF#GRPK��w�3�sw�.��O�.:�wC�wF�w'�3n%�3%Y�3-q�3)�3b4������������OP@��������DF#GRP��_r��R�K&�V�6�5�(/�;I�.�Da�e�J�a�`�J"�w� �}���'�Rtical_Begin��(�������DF#GRP��R�@t��1�7�7H��B��.0�k'� ��vV�t)([Model Variables]Status=0))-�2��� ��������`D[MoDF#GRP��N��,�X�k6� T�e�ro��A�q�2(��I9�0)�R�~�/Z�~����T�vt�9x�c{ @������DF#GRPk'��R�3�{�t�R�Q�Pu�/g�/f�Y?�N�g �e�Ht�M �Q����`D0reopen^H^H^H restart setup window if it wasDF#GRP �� �Z�/[��7�� V� X�A� ���%�[�/Y�[�/S�� �[[��������������@���.������������ @RDF#GRPUx��c8�T#�<V�"���J�(�_�/]� _�Gp�;x��U�|�:j�@�.c�'�;�M�;�1��W�&�Xy�ht�)��P�c�B�^�/ �z�3�v�fs�w� �T\�L�b�w�T�7R��<c�_�6�g�[�,�9"�/M�.r�;�U!�|ait DF#GRPF�� V�,�;�C�m�KF�sH� s�l��I�G��d�p�K�s�S�SI�@���������������.���������������DF#GRPvV��3E��]�f2�*�P�:�TP�.�wu�@�e\��DF#GRPT��d�IV�A�IX�d�C��C�A`Dlock runw��DF#GRPU��(�<�F��-�X�+��%�''�O��K~�,^�<b�:� �x`�M�i>� �b������������`DSimulationDF#GRP1��V�*�-$�S �8�Eb��6S�c9�h�5�Ux�. �F�T�QQ�T�sulation_ProcessID)������ ������������`DEDF#GRPt)��n�!�1� K�^�z|�Ia�7�+�r7� �^�QW� �A����������@�#@ RunDateArrayu�#@RunNumberArray%6�DFCC4D7v�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q����@���4���"�����jji#@DFCC4D[I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qimer�0������������@time_me%@��%`@time_me�����������@PP�������������� �����Ssetup�&��������FFF @Run_Critical_End����������@����������������������������������DFCC4D�4c�2��� ��$}��#}��Ltry out new runlist windowDT������������������&��������������save menu itemh���&���������������^�C�Default����8���&�����������^�7��������TestList������������������� ^myWind���#� Toolbar_Width����@����������@���������P��?���������P��?��������$��"� �� Control Panel�� Generic_Close�om�0������������� ^ ExtraHeight�������������O���������������2er���� ������������window������ �����������^F�B���$���������������^ �myWind�������������������� ��������records���� �����������^�����"�����������^�/��������������������� �����������contents��,��������������� ^RunSort��?��������.�����������111 ^RunNumberArrayHier/�w�@���.�������� ^Run_UpdateListAj �RunNumberArrayHier/�����������������A�2��� ��������^�(��������TestList������������^���������������DFCC4DC�,Y�b���P��!�� ��,�7dJUpdate a run to match current state of the output folder from any process.�um�h���V����X����7dPIf the simulation process is not running then the run is modified in the current��a�^���L�����������7dGprocess which may mess with the current selection. The book says not to�S�J���8������������7d2create new processes lightly so I'm avoiding this.�����������������7d�z������ �������������7d input0���h���V������������7dP optional pointer r record ID, which will be used instead of the current record����������������EMaker����������������]���������������������*����������� ZH]- ����runPtr.����B���0���������] �CurrentRunRecordNumber���simState$���������������������.���������������]��.���������������,����������������7drecord id was passed���"���������������]runPtr�. �����������������]�0�������������7dset ptr to current record�>���,����������� ]CurrentRunRecordNumber�.�����������:���(��������]runPtr�.� �CurrentRunRecordNumber�������������]��������������p���^������������7dQdo the work locally if I'm the simulation process or there is no simulation proce�7dss �n���\��������111�7dQor the current record is # to the requested record (so that simulation process ha�7ds�$������������7d not loaded it�@���.����Ö���]simState$.�J#�Simulation_ProcessIDe�������v����Ö��e��]�B��#�Simulation_ProcessIDe�� p�simState$��������������� p�simState$�.��@������������:���(����Ö����� ]Safe_CurrentStateUpdate�runPtr.�����������Ö����]on�8���&����Ö�]�runPtr.��Z������������ �:���(����Ö�� ]Safe_CurrentStateUpdate�runPtr.����������Ö��]�4���"����Ö�����7dcall simulation to do update����6���$����Ö�#]Simulation_Button.��@��������2��� ����Ö�]I#�Simulation_ProcessIDa���������Ö����]ce�.�������Ö��b]C�B���@��������O�:���(������������ ]��� $SafeCurrent������� Z�.��������������]C�B�������������� Z������������ ZX]�������������� Z|]��������������� Z ��"����������� Z\]���������������������������������������������������������DFCC4D0z��,�����%��$��gSopen the flux window~�����������^���������V���Svar�_���������j������N���<����$�XS6wait for Cache Manager to finish scanning output files0e �@���.����R�����S(While (Test semaphore("$CM_OutputScan"))���8���&����¶���gS!DELAY PROCESS(Current process;10)sc�"����������gS End while 8 o�������������T���B����,��S<mark all tables as read only, then set one table as readable������� ����������g����e �"�������l����@�@��� ������"�������:��� @�/@��� ���� �:���(���������@@�L@��� ����@���������������"������������@�D@��� ��� @�,������������@�� ��~@�@��� �����"�������*���@�5@��� ��� @��������H��� @�"�����������@�2@��� ������P���>�����������@�@������ @Run_Critical_GetRunN;@�@��������������������� ����M�(��������������Ssetup the window���&���������� @�Cw�lDefault��h�6���$����������[@�7@��� ���w�lOHT fun���� ��������������� @myWind�~@�#@ Toolbar_Width�@�@���������~`@�?���������~`@�?��������$@�"��w�l Ocean Fluxes~�w�l Generic_Close������������������� @���� ������� @F@B�ca�$�������������(@ @myWind����������������lj @������������ll@���(��������0001@�9@��� �����07�0�����������EMak @ @OK �@������������ll���������^�0001 @�4���"��������EMak#@Flux_ProcessIDz~@������������~������������������DFCC4D�rq�V���D���� ��"0<Check that the start date is ok because fools are so clever z"�T���B����������"0;If people pick a start date after the end date then fix it ""��������������v�*��������������rrr�r@$r��rr�:���(��������me_t�� ��rr� r rStartr rStartrrr���,�������.M3r Start�r@ rEndrr���$�����������t th Endr rStartrI�:���(�������������� ��rr� r rStartr rStartrrr��������������?O����������"P�����DFCC4D�,�r���`��'0��&0��gSQopen a full window with the parameters, autodetection of section type is done as Swell am���� ��������S input���(�����������S section number��P���>�����������S8 * optional parameter, means to use this number instead�t�2��� ������������ @��@currentSectionz����*�����������)))%@ @ SectionNumber��,�����������@ @SectionPictText��*�����������0001@currentSectionz^ @�00�������������EMaker�V���D������������@ @ItemListI�@currentSectionzo�@������������wO8text^����������������������� ��������Ssetup�D���2�������� @InfoText_FullLoadSection@currentSectiono��6���$�������� @ SectionNumber^@currentSection^��������������"�����������S show window�2��� ��������@�7@������w�lFullText���n���\�����������@wind�^@@������w�lFullText��$@�'��#@ Toolbar_Width�@�@������������2��� �����������@�(@������w�lFullText���"��������������@�@wind����������������������$�����������S save changes�B���0�������� @InfoText_FullSaveSection @ SectionNumber�� ��������������@�� picture�������������������� ��������Ssetup�.�����������@@�@�?���������p���^��������) @ SectionNumber^@currentSection^�^`@�?���������@�@��������^�@�?�������������������111@���(����������� @ SectionNumber^ @�������������)@�T���B��������) @InfoText_FullPrevNext @ SectionNumber�@��������������������������"��������S show window�2��� �����@�7@������w�lFullPict���n���\�������@wind�^@@������w�lFullPict��$@�'��#@ Toolbar_Width�@�@������������2��� ���������@�(@������w�lFullPict�����"������������@�@wind��������������“�$������������S save changes���H���6�������� @ ItemCaption� @ SectionNumbero^ @SectionPictText�����������������0��������Sreset the figure captions�.��������(, @InfoText_UpdateFigLabels(,���������618@����������������������������������������DFCC4Dq�4���"����U��"0Do update of current date �"� �������U@Vi"0 input "@�8���&����U ~"0 ptr to run number to update @"����������UQ"�,������������d�d-@ �@runPtr@@@�&����������@curRun@@@�(������������1@ wasLocked@@�$������������runPtr@@ @�@ ���������Q@�4���"���������"0set record and table state "�0������������curRun@@@�@@�����@@��*���������x��@�@�����@@@�$��������Ip�@�����@@a�$����������3�@�����@@ �&�������� wasLocked@@�@����������������*������������@:@�����@@@d �$������������8�5@�����@@[��������p������&�������p؁ wasLocked@@�@��������p�d�d�2��� ����p���@�����@runPtr@@@@un��������p���@[�$�����������ckin"0 do update t"Nj�4���"����;GP���� Simulation_UpdateCurrentDate� s��������;GP�d�d a�4���"����;GP�d�d"0restore record and table �"D�&�������;GP��m@ wasLocked@@rs�$�������;GP����@�����@@K�$�����������_typ�@�����@@ ��������ݐ�d�d �0����������������@�����@curRun@@@th����������������DFCC4D4 �\���J���������d�d"0CChoose an application for use, places the path into the ptr passed " � �������0����"0 input "��,������������d�d"0 ptr to a string ^"�"����������"0 output "st�B���0����������"0) path to the app is placed into the ptr "�(��������������2 vhDocRef@t �,��������������- �pathPtrP�$���������������pathPtr �e)�����������������2��� ����������"0get path to app and save "�F���4���� ����� vhDocRef@x��x�APPL$���d���R����$5p���� OK"�@�?��������@� Document@�@�@���������.���������������pathPtr Document@���$���������������5�����g ��������)P��������������������������������������������������������DFCC4DzN^�=�:���(�� �� �� �7d!decriment the section and load it����<���*�����������] � SectionNumber�.�����������������D���2����������� ]InfoText_FullSaveSection� � SectionNumber���@���.��������o I.]w%go back until a text section is foundw"�H���6������������ ] SectionNumber. � SectionNumber�����?�����������L���:��������p ] �ItemListI � SectionNumber.����������������he�D���2��������� ]InfoText_FullLoadSection� � SectionNumber��um�������������]]ut������������������������������������������������������DFCC4D_�=�*�������������"0open preferences "�h���V����������� Generic_OpenReopen???#Pref_ProcessIDK?x� Pref Window?x� Pref_ProcessK??������������������������DFCC4D3��2��� ��$��#��Lopen the preferences windowDT�������������w�����4���"��������you must be an admin to enter���,�������2����^ �UAM_Authenticate��T���B����z�<mark all tables as read only, then set one table as readableA���� �����^����"�����������^���������"�����������0001^�/�������00�:���(��������EMak^��L����������������������"���������������^�D����������"�����������^�5�������������������^�"�����������^�2��������������������ӡ�(���������������setup the window��&�����������^�C�Default��4���"��������^�7��������Prefs��������������� ^myWind���#� Toolbar_Width���@��������#� Toolbar_Width����@����������@�����������@��������$��"��� Preferences�� Generic_Close����� ��������r^F�B��$���������������^ �myWind��������������������������������������^���(�������������� ^�9������������0����������� ^ �OK������������������������������6���$��������#^Cleanup_ProcessID������������\m���������^��������������������������������������������������������������DFCC4D�X���F����������"0>Use semphores to do a safe save of the current journal record "���V���D������������"0=from any process. Remember to, "Always practice safe save.", "Ru�B���0�����������Q"0)modeled on code from Safe_SaveSimulation "��������cuP���"�T���B������������"0;first the easy case if I'm in the InfoText process already " S�8���&�������� ��YB�Y@#InfoText_ProcessIDYYY���<���*������������ InfoText_SaveRecordY�����������YY���������������������@���.������������"0'try to safely save in the other record "�6�~���l������������YY#InfoText_ProcessIDY�Y@Y�����������Y�Y@YYJY#YInfoText_ProcessIDYY�Y@Y�@�������YYY���6���$������������#InfoText_ButtonYY�@�������Y�2��� ������������IY#InfoText_ProcessIDYYY"���������������r@�0���������������CYBY�@�������YYe��@���.������������ YYx�$SafeSaveInfoTextY�Y@�YY�0���������������CYBY�����������YY����������c\Yj����������c\@Vin���������������������������������DFCC4D,�,B�X���F��'A��&A��gS@Use semphores to do a safe save of the current simulation record�LP�R���@����,�(S;from any process. Remember to, "Always practice safe save."���������������������H���6��������S0first the easy case if I'm the simulation thread����X���F��������TAT #Simulation_ProcessID87 @Process_Number7w�lSimulation Window�0:�8���&��������@@B�#@Simulation_ProcessID=��*��������������� @Simulation_SaveRecord���������������000100�f���T��������EMakSNthe hard case is if I'm not the current thread, check if there is a simulation f����������������@������n������������@#@Simulation_ProcessID(�7@��������������@J#@Simulation_ProcessID(����@�@����������f���T��������dSOtell Simulation_Process to save the record and wait until the save is completed �,��������������#@Simulation_Saved7@����2��� �����������@I#@Simulation_ProcessID(����4���"�����dShack for pc, this is unsafe!!���2��� ���������@#@ PM_Platform�$@��������������@���@���.���������������@C@B�@�@�����������V���D������������ @@w�l $SafeSave��@����#@Simulation_Saved �����.������������ @C@B�@�����������������������������@������������������@��b���P������������SJdon't need to save because there is no simulation or process is paused ������������������@���������������L@������������������DFCC4D8 }�(�����&\��%\��gSClose any window�TX������������ ��S������ �����������S input������ ������������S none���"��������������@windP����(��������������@@ windProcess���������������������� ���������������@windP^@��2��� �����������@@windP�^@���������������2��� ������������@ windProcess^@@windP����8���&������������@@ windProcess�^@���������������4���"������������ @ Generic_Close@ windProcess�������������������@���������������L@������������������������������������DFCC4D ';�������������d�d"" �*������������d�d"""�"$"��""���D���2���������d�d""""#" JournalArrayD"�"J"J����������""`�<���*���������d�d""#" JournalArrayD�"J"J����������""���4���"���������d�d#" JournalArrayD""J?�������"�������������d�d""���\���J���������d�d#" JournalArrayD""J����������""#" JournalArrayD"#" JournalArrayD""ow�2��� ���������d�d"I"#"InfoText_ProcessID�""�������������d�d""���������������d�d""am����������������������DFCC4DL�f �X���F��'��&��b$Areset the current date for all records, this is special code thatLP�D���2����������b$-should not be used in release copies of EdGCM�����������������b$������� �����������b$ input ���� �����������b$ none p_���� ��������TAT b$ outputMM���� �������� b$ none k_�"����������������/ @���������"������������@�2 @��������������������TAT @ �&����������� @�����������23�"����������� @�5 @������d �"�����������H2M1@�3 @��������(����������� @ @�$ @���������#@VersionOfEdGCM�e��������������������������������DFCC4D9��r���`��'��&��b$QProgramer hack to fix the database fields in the AIJ table, and should never be cb$alledam�(�������������Ob$from normal code. @������������b$������� ������������b$ input ������ �����������b$ none ���� �����������b$ outputp_���� ��������TAT b$ none MM�"�����������:04.�/ @������22�"���������������@�2 @���������@���.��������TAT @ @item��@�?��������@�@��������un�&�����������:04.@����w�Jean �"�����������@�5 @�������"�����������@�3 @���������������������@����������&����������� @��@�?�����������������������@���&����������� @��@�����������������������@������������������DFCC4D/ �,�3�x���f�� �� ���8Qset the ocean transport menu to match in the otspec files in the folders in Input�8s Ocean o��z���h���������8Qthis is more complex than the original behavior and causes some additional comple�8 xity for r����H���6���������8.simulation_ocntransmenu and setup_setupfolder ���� �������.�����8 input ����`���N���� �����8G ptr to var for otsp name (unused, uses otsp_files variable directly) �IC��������� ��[�$�������� ��8 local var <����,�������D� �(- (�(otspPtr�r�B���0�������� �(%(�@�������(path� (otspPath����6���$�����������((i(j(len(max���*�������D����(1( useDefault����$�����������(otspPtr (�()�(�����������lt�( useDefault�(�(���������������k�e([�"�����������MUTX�8 menu var ����*���������������(�Y ( otsp_files�B�H���6�����������(�(�@�������( otsp_fold(��������������J���8�����������(�(�@�������( otsp_maybe�(�����������C���������������"�"������������8 file var �ST�8���&������������( (menuPtrA�(�?����������6���$��������vH( (curPtrA(�?����������D���2����������� (menuPtrA�(�?������� ( otsp_files�(RO�<���*��������{{ (curPtrA(�?�������(����(��������������{{("�x���f��������{{�8Qif the ocean mode is qflux or deep ocean then do the otspec menu, otherwise don't�8 bother c�AR�Z���H��������{{((�����p(������������p(�����p(�@��������%�$�����������{{�8 clear menu �UM�*�����������ww(�Y ( otsp_files�(�,��������enWi(�Y ( otsp_folders����J���8������(�(�@������� ( otsp_files�(��������������L���:�����έ(�(�@������� ( otsp_folders�(�����������ǰ����t���������� (FileListByType���Input Types OTSpec(( useDefaultT(� (otspPathl (menuPtrAl (curPtrA������������������((��������������������������������������������������������DFCC4D�VlV�4���"�� L�� L����8Alright, a recusive name, ���D���2������������8+This creates the html files for each image �� ���������������8 input ����H���6��������� ���8. number of images so far, including this one ���8���&�������������8 place in array of this image ����*����������������8 path to image e����T���B������������(e (�e (�e (�e( imageCount�e(pictNume(listRefee]�^���L������������(%e(�@�������e (�e (�e( imagePathe(htmlpathhe(docPathee���&���������������(2e(docref�ee���(�����������( imageCount�e (�(T�$�����������"(pictNume (�(��$�����������(listRefe (�(��&������������( imagePathe (�((�&������������(htmlpath�e (�(����������BB(�N���<������ (htmlpe (GetListItemStr�e(listRefe(�@��������ee���P���>�������� (html�e (html��e�@���Figure �e�@(� e( imageCount�ee���Z���H��������� (htmlee (htmle�e�@ (GetListItemStr�e(listRefe(�@��������ee���B���0����������8)html:=html+"Figure "+String($imageCount) ��Z���H�������� (html�e (html��e�@ (GetListItemStr�e(listRefe(�@�������ee��*������������8image & caption e��������������� (html�e (html��e�@���<center>��e�@���Figure �e�@(� e( imageCount�e�e�@e�: �e�@ ( ItemCaptione(pictNume�e�@e� </center>e���Z���H��������� (htmlNe (htmlN�e�@ (GetListItemStr�e(listRefe(�@�������ee���6���$�������� (html�e (html��e�@( imagePath(���Z���H����� (htmlee (htmle�e�@ (GetListItemStr�e(listRefe(�@�������ee o�"��������7����8 end page ��Z���H��������� (html�e (html��e�@ (GetListItemStr�e(listRefe(�@�������ee���������������e(�8���&����������8covert text to web compadible ����.������������ (html�e(e (html�ee���������������e���$�������������8 write file �m�z���h������������(docPathe ( PM_MakePathe(htmlpathaee�imageno�e�@(� e( imageCounthe�e�@e�.htmee(�ee���2��� ������������(docref�e( e(docPathee���6���$������������(e(docref��e@(�?�������eeup�2��� ������������(docref�e(e(docPathee������������������((���8���&������������(e(docPathe ( HTML_Browser�eeC�0��������������0(�ge(docref�e (htmleee���&���������������( e(docref�ee������������ffe[������������������������������������������������DFCC4DZs�X�(�����&b��%b��gSdo the averaging�TX���� ����������S input�{� �����������S <none>7������ ������������S output���B���0��������S+ true is validate succeeds otherwise false������ �������������1 @������<���*������������@-@ ProcessedPtrr�@ DiskFolderPtr����������������������D���2������������@ @PostProcessing_Validate@�?������������"���������������S do average8���&�����������d @��7 @ SumAndPd2.I��0���������������Supdate lists and buttons����^���L��������@���@ ProcessedPtrr7 @PostProcessing_TypeListEmpty� @ start_lbprt�@�����D���2������������@ DiskFolderPtr7 @PostProcessing_GetYearFolder���@���.������������@�@ DiskFolderPtr��@ ProcessedPtrr�����2��� ��������>� @PostProcessing_EnableButtons�����������������@������ ��������D @��7@�����������������@L ��DFCC4Dx���p���^��'��&��`DQCopy files from the time series folder in postprocessing into a new folder in plo`Dtspfn�F���4������������% @�@��������@ foldernamef�@filename$����6���$������������@% @�@��������@destpath$����4���"����x����@% @�@��������@srcpath�� ��������������@ @len�me�8���&������������@� @ aj_enableda�@���������������N���<���������� @� @�@��������@aj_fileextension<�@�������������e��������������t�p�a��������������$�f�i�.������������� `Dcreate the folder name� �f���T���������t�p@ foldernamef@������w�_��@�  @�������w�-��@�  @������)��������������$�f�i�B���0������������`D+create paths and create folder if necessary���F���4������������@srcpath @ PM_FindFolder w�postprocessing����P���>��������d@srcpath @ PM_MakePath @srcpath�@ foldernamef�@�� �>���,������������@destpath$ @ PM_FindFolder w�plots���T���B������������@destpath$ @ PM_MakePath @destpath$�@ foldernamef�@��PI�8���&������������@ @ @destpath$��$@������&���������������@ @destpath$����������������L@�����������~��������"�������~�����`D copy files���R���@����~�����@ @�����@ aj_enableda�@�����@aj_fileextension<����0�������~�����@len@ @ aj_enableda����4���"����~�����@ @i�@�?��������@len����*�������~�� @@ aj_enableda�@i������t�����������@filename$@������w�_��@� @aj_fileextension(�@i�w� �w���wXremove trailing spaces���J���8�����������@ #@ PM_Platform�$@���wXpc files end in xls���:���(�����������@filename$@filename$��w�.xls��������������..@..�L���:������������`D4don't overwrite files, but copy if not already there���^���L��������@ @ @ PM_MakePath @destpath$�@filename$�@����$@����~���l��������@ @ PM_MakePath @srcpath�@filename$�@��� @ PM_MakePath @destpath$�@filename$�@�����2��� ��������@ #@ PM_Platform�$@���))�,������������%`Dretype files for eva�X���F���������@ @ PM_MakePath @destpath$�@filename$�@���w�TEXT����X���F���������@ @ PM_MakePath @destpath$�@filename$�@���w�EVA_����������������@���������������@���������������@���������������@��������������������������������������������������DFCC4D@�d�,�����"��!��,�7dUAM_PasswordKeydowns���P���>������������7d9A copy of the usual code to allow for a password validate�r���`������������7dQgeneric code to handle password field you need to set vActualValue to the passwor�7dd and���z���h�������������7dQvPswd to a string of # equal to the length of the password plus vlastPosition to �7d the length of���"����������������7d the string.���������������000100������������EMak] S�(���������������]���$�������F���4��������� �]� tempStringt� �vPswd2� � vActualValue2�� �,��������������] �vlastPosition2@����(�����������] tempStringt�����^���L�������� ]vPswd2�����5 The user will only see the content of this variable.�Z���H�������� ] vActualValue2����* The actual text value that user typed in.���4���"�������� ]vlastPosition2@�������������(�����������111]���$�����&�����������] tempStringt��D���2�����������]��� tempStringt�� �vlastPosition2@����<���*�������� ]vlastPosition2@��� tempStringt����$����������� ]vPswd2������@���.��������]�i���?�������� �vlastPosition2@��b���P�������� ]vPswd2� �vPswd2����+probably want to make a platform check here������������]�<���*��������] �vlastPosition2@���?���������n���\�����������] tempStringt��� tempStringt���?�������� �vlastPosition2@�����?���������������������sss]�F���4�������� ] vActualValue2 � vActualValue2��� tempStringt�(���������������]wclear on delete���$��������������� ]vPswd2��������*��������������� ] vActualValue2�������4���"������������ ]vlastPosition2@������������������������������]������������������]��������������������DFCC4Dn�*������������d�d PAUSE_PROCESS ()���������������d�d�����B���0���������d�d) Typically used as a close box procedure.�D���2���������d�d+Adds in support for proper record handling.�������������d�d�$������������d�d�5�����5� ������������d�dDB� ������������d�d?B��������������d�d�,������������d�d End of procedure.�?������������������������DFCC4D>&�,�:���(��^�� ^����8 Twist_Down_Update(String Group) l����\���J���������8Ball that this method needs to know is the group which has changed (��Z���H������������8Athen it can go down and set all the groups bellow it accordingly ��N���<���������85this updates the twist down group box user interface ����^���L�������������8ENOTE VERY important this method should only run if a twist down box ����Z���H�������������8@that was passed to it has changed state otherwise it will cause ��ge�2��� �������������8undesireable preformance �������������������"���� �������������8var ����� ���������������(" (�""�*���������������("( ArrayIndex�""�&���������������("(Counter""h�h���V�������������8Othese temporary variables hold the cordinates of the contents of the group box �h�f���T�������������8Lthis allows the method to calculate the highet of the contents for resizing ����*����������������8C_INTEGER($top) "����,����������������8C_INTEGER($bottom) ����*����������������8C_INTEGER($left) ����,����������������8C_INTEGER($right) ^���&���������������("(height�""���J���8������������(%"(�@�������"(temporay_stationary_objectt""�R���@������������(%"(�@�������"(temporary_group_name"( backgroup""h�T���B������������(%"(�@�������"(temporary_reserved_name"(backnamey""���*���������������(1"( Open_Close�""������������������"� ����������������8setup ����(���������������( ArrayIndex�" (�(h�*���������������(top"(�����������(h�.���������������(bottom�"(�����������(���,���������������(left�"(�����������(�r�,���������������(right"(�����������(�.���������������(height�"(�����������(������������������(� ����������������8begin ��GR�2��� �������������8show/hide relevant group �ti�J���8������������("" ( Group_State"( ArrayIndexe"�"@ (Openy"""�,���������������( Open_Close�" (Open_(�����������������((v�.���������������( Open_Close�" (Closedl(���B���0������������(\_t' If ((Group_State{$ArrayIndex}=Open)) \����������������\���X���F������������(temporary_group_name" ( Group_Nameg"( ArrayIndexg"�"�@"�@" ����������������(temporary_reserved_name""�z�"�@ ( Group_Namer"( ArrayIndexr"�"�@"�_Dthe objects that are not suppose to move have a z in front of them "������������������[�`���N�������������8Gthis check detirmines if the method is resizing the group boxes bellow �R�D���2�������������8+the group box that was opened or collapsed ��F���4�������������8-if it is true then it modifies the group box ����N���<�������������84if it is not true it adjust all the boxes bellow it "�����������������������b���P�������������8Hget the height of the elements inside the group box for later reference �o_�\���J�������������8CGET OBJECT RECT(*;$temporary_group_name;$left;$top;$right;$bottom) ����v���d������������(height�" ( Group_Height�"( ArrayIndexh"̔.this calculates the height of the object ������������������[�4���"������������("( Open_Close��"@ (Open_""���8���&�������������8This part opens a group box ����<���*������������(height�"(height��"@(�@�������(Da�:���(������������( backgroup"(temporary_group_name(um�<���*������������(backname�"(temporary_reserved_name(th����������������([�0����������������8adjust the array index �T�D���2������������( ArrayIndex�"( ArrayIndex��"�@(�?�������(���@���.������������("( ArrayIndex��" @ (Number_of_Groupsr""?����������������"���:���(�������������8 adjust the rest of the groups l��J���8������������("(Counter"( ArrayIndex�" (Number_of_Groups""�T���B������������(temporary_group_name" ( Group_Nameg"(Counter"�"�@"�@"�4����������������(temporary_reserved_name""�z�"�@ ( Group_Namer"(Counter"�"�@"�_@Dthe objects that are not suppose to move have a z in fornt of them "���j���X�������������8Qthis are of the routine adjusts the group boxes bellow the group box that was co �d�v���d������������("�"@"(temporary_group_name"(�����������"(height�"(�����������"(�����������""�x���f������������("�"@"(temporary_reserved_name"(�����������"(height�"(�����������"(�����������""nf�L���:������������(\_t0For ($Counter;$Start_GroupBox;Number_of_Groups) "\���>���,������������(\_t#For($ArrayIndex<=Number_of_Groups) \������������������\7d����������������\(�:���(������������(temporary_group_name"( backgroup(���<���*������������(temporary_reserved_name"(backnamey(fo����������������((�4���"�������������8this opens the arrow �������������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Closed_ArrowˬQtemporary_stationary_object is set to the name of the variable containing the ar ���F���4������������(["�"@"(temporay_stationary_objectt"(�""T�b���P������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Open_Arrow>"��F���4������������(["�"@"(temporay_stationary_objectt"(�""he�`���N������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Mode_Menu"���F���4������������(["�"@"(temporay_stationary_objectt"(�""���`���N������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Group_Box"T�8���&�������������8changes group box to full size �_E�|���j������������("�"@"(temporay_stationary_objectt"(�����������"(�����������"(�����������"(height�""�v���d������������(["�"@"(temporary_group_name"(�"|1this shows the group that contains the variables at�|���j������������(�"�"@"(temporary_group_name"(�"|7this makes it so objects in this area can be accesseed ���4���"������������(\_tIf ($Open_Close=Close) \����������������\��6���$�������������8this part closes a group box ����R���@������������(height�"�"@(�?��������"@(height��"�@(�@�������(���v���d������������(["�"@"(temporary_group_name"(�"|1this hides the group that contains the variables ������n������������(�"�"@"(temporary_group_name"(�"|;this makes it so objects in this area can not be accesseed ������������������(�6���$�������������8this closes the arrows �������������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Closed_ArrowˬQtemporary_stationary_object is set to the name of the variable containing the ar .�F���4������������(["�"@"(temporay_stationary_objectt"(�""�b���P������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Open_Arrow>"�L�F���4������������(["�"@"(temporay_stationary_objectt"(�""���`���N������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Mode_Menu"�J�F���4������������(["�"@"(temporay_stationary_objectt"(�""ld�`���N������������(temporay_stationary_objectt"(temporary_reserved_name�"�@"� Group_Box"������������������("�"@"(temporay_stationary_objectt"(�����������"(�����������"(�����������"(height�"`collapses the group box g� ����������������(�0����������������8adjust the array index ��6�D���2������������( ArrayIndex�"( ArrayIndex��"�@(�?�������(�@���.������������("( ArrayIndex��" @ (Number_of_Groups""����������������"(�:���(�������������8 adjust the rest of the groups l����J���8������������("(Counter"( ArrayIndex�" (Number_of_Groups)""x�T���B������������(temporary_group_name" ( Group_Nameg"(Counter"�"�@"�@"����������������(temporary_reserved_name""�z�"�@ ( Group_Namer"(Counter"�"�@"�_@Dthe objects that are not suppose to move have a z in fornt of them "���j���X�������������8Qthis are of the routine adjusts the group boxes bellow the group box that was co �sh�v���d������������("�"@"(temporary_group_name"(�����������"(height�"(�����������"(�����������""�x���f������������("�"@"(temporary_reserved_name"(�����������"(height�"(�����������"(�����������""n@�L���:������������(\_t0For ($Counter;$Start_GroupBox;Number_of_Groups) "\���>���,������������(\_t#For($ArrayIndex<=Number_of_Groups) \������������������\(�0���������������(\_tIf ($Open_Close) \�����������������\2����������������\(��������������������������������������������������������DFCC4DR�x�H���6��^�� ^����8/handle the external buttons set in the toolbar ����8���&������������8or elsewhere in the interface ����&��������������((listRefEF�������������d�d(������������(( �(������������8create new set �(�Z���H�����������(#(PostProcessing_Button�@(�@�������=pcreate a new set lo�0��������������� (PostProcessing_SetCreateP(��4���"�������������8extra space for new pages ���V���D������������(#(PostProcessing_Button�@(�@�������=p Set the set \fo�.��������������� (PostProcessing_SetsSet�(���h���V������������(#(PostProcessing_Button�@(�@�������=psave the postprocessing record h�$���������������(�5(�����er�0���������������((��� $PostSavera����������������((in�l���Z������������(#(PostProcessing_Button�@(�@�������=p#end save the postprocessing record R�*���������������(���� $PostSave������������������(( �D���2������������(#(PostProcessing_Button�@(�@�������T�<���*������������#(PostProcessing_Button(�����������(������������������((�>���,������������#(PostProcessing_Button(�(�����������������������((������������������������������DFCC4Dq��JV�<���*�����v WebAndMailLauncherww�@�������ww��������������������������������������������������DFCC4DTFQH ������&\��%\��g�<�.���������������@� @ pTimeSeries����@���.����������� @PostProcessing_SetTable�@������@���(�����������0001@@� @pMaps�07�@���.��������EMak @PostProcessing_SetTable�@������@���u�,���������������@@� @ pVertical����@���.����͸�0001 @PostProcessing_SetTable�@������@��13�*�������͸�EMak@@� @pZonal�� I�@���.����͸����� @PostProcessing_SetTable�@������@�����*�������͸����@@� @pTables����<���*����͸����� @PostProcessing_TablesClearFill>@������������͸�ϰd@������������������������������DFCC4D��|-�f���T��'A��&A��gSOGetYearRange determines the maximum number of complete years worth of acc filesZ�p���^����$����SQfor the current run based on the current contents of the acc folder (not the cachSe).���`���N������������SHThis code detects any gaps in acc files that in old versions (2.0 & 2.1)���h���V�����������SPmight cause a year range to fail. Records are ordered by month/year (see Finder)�Z���H�����������SCand then checked over to see the range for each month. The name is:�*�������2�0001SDEC1901.accControl00�d���R����2�EMakSLmonth (3 char), year (3 char), .acc (4 char), run number (20 char) = 30 char@4D�f���T����2�����SOAn array is used to cache the values from the db, this takes as much as 400K if���h���V����2����SPthere are 1000 years of acc files. The acc names are assumed to fit into 31 char�o�&�������2��c�hSto save memory.�h���������2��t�h����� ���������s�tS output��R���@���������=�S: ptr to array[1..2] of longint (first year and last year)�s�:���(����������{�� @ FirstAndLastr�@�@�����������0������������w�h@%@�@���������@mon�� �4���"���������1�)@%@�@��������@accname��e�B���0���������r�s@@yeara�@curmone�@len�@i�@j�� �4���"���������� @�@firstse�@�@����������2��� ��������� �@�@lasts�@�@����������$�������������@1@missing������ ���������n�@- @����<�D���2������������@�@�@���������@months��@���������������F���4��������O� @�@�@��������@accNames$�@���������������4���"������������@%@�@��������@accPath�������������������������� ������������Ssetup���B���0������������@@curmonh�@�?��������@�@�����������:���(�����������A@firsts��@curmon�-@������������8���&������������@lasts�@curmon�-@���������������������������@���2��� ������������@ w�lMonths�@months�����:���(������������@accPath- @ PM_FindFolderw�lacc����������������������6���$������������Sloop over records in acc folder�J���8������������@ @PM_DocumentList@accPath�@accNames$�����&���������������@�@accNames$�����������������������.���������������@len-@@accNames$����,���������������@curmone-@�������������� ���������������@mon-w�l�-���&���������������@i-@�?�����������������������������&�����������SFor ($i;1;$len)�&���������������@@i� �@len����2��� ��������@accname-@accNames$�@i�R���@�������� @accstart$-@� @accname�@�?��������@�@���������)��,����������� ))Sis the month the same �.��������������@@accstart$�@mon��V���D������������@yeart-@� @� @accname�@�@��������@�@������������D���2������������S,only incriment the year if it is consecutive���P���>������������@@year��@lasts�@curmon��-�@�?������������R���@������������@lasts�@curmon�-@lasts�@curmon��-�@�?�������������������������@���4���"������������@�� check if it's a legit month���L���:������������@mon-@� @accname�@�?��������@�@������������6���$����������0@year�-@�@months��@mon���|���j������������@@yearh�-@��������������_@year��wl@�@��������wO8#if it's a new month setup the month���V���D������������@year�-@� @� @accname�@�@��������@�@������������:���(������������@curmon�-@curmon��-�@�?����������^���L������������@@curmon��wl@�@��������wO8$ensure that there are only 12 months-���4���"������������@firsts��@curmon�-@yearo���2��� ������������@lasts�@curmon�-@yearo���J���8������������@�� 0bogus files also ensure that years aren't listed-���0���������������@i-@len�-�@�?����������>���,������������@firsts��@�?�������-@�����������������������������@���$���������������@�� bogus file ��� ���������������@mon-w�l�-������������������@������������������@������ ������������SEnd for���.���������������@i-@i�-�@�?�������������������������@������������������@����������������������f���T������������SOcalc first and last year by looping over years, fails if any months are missing���R���@������������ @ FirstAndLastr�@�?�������-@firsts��@�?����������P���>������������ @ FirstAndLastr�@�@��������-@lasts�@�?����������B���0������������@@curmon��@�?��������@�@�����������j���X������������@@firsts��@curmon��-@������������wO8"update first and last if necessary@���V���D������������@@firsts��@curmon��- @ FirstAndLastr�@�?�����������N���<������������ @ FirstAndLastr�@�?�������-@firsts��@curmon�������������������@���T���B������������@@lasts�@curmon��wl @ FirstAndLastr�@�@������������L���:������������ @ FirstAndLastr�@�@��������-@lasts�@curmon�������������������@���>���,������������@�� %leave if there are any missing months���D���2������������ @ FirstAndLastr�@�?�������-@��������������D���2������������ @ FirstAndLastr�@�@��������-@��������������,���������������@curmon�-@�@�������������������������@������������������@������������������������� ������������Scleanup���*��������������� @��- @ FirstAndLastr����������������������������������������������������������������DFCC4DI9��2��� ����������� � FinderToPathn \�Input  ��������������� (������������������������������������DFCC4D0)��4���"����������� � FinderToPathn \�Output  ��������������� (����������������������������������DFCC4DR�, �.�������������� � FinderToPathn \�  ����������������� (����������������������������������������DFCC4DD�M'a>�B���0��%k��$k��gS+restores the settings in the postprocessorspt�L���:�����������S5pass in three pointers to arrays to settings, get outr��<���*�����������S%correctly set postprocessing settings��<���*����J����^- ��� ��� ��� ��� ��� ������r���`����J�����^-� tablesPtr�� timeSeriesPtr�� mapsMonthsPtr��mapsPtr�� slicesPtr��zonesPtr$����$�������J�����^ tablesPtr �����(�������J�����^ timeSeriesPtr �����(�������J��Q�u^ mapsMonthsPtr ���=�"�������J��c�e^mapsPtr ���A�$�������J��l�e^ slicesPtr ����$�������J�����^zonesPtr$ �������������J���;��&�������J��t�eSrestore tables� �<���*����J��i�m^����� tablesPtr���������������l�<���*����J��P�t^����� tablesPtr����?���������<���*����J���^� ���� tablesPtr����@����������<���*����J��U�S^� ���� tablesPtr����@����������<���*����J�� �t^� ���� tablesPtr����@��������i�<���*����J���:^� ���� tablesPtr����@���������<���*����J��a�r^� ���� tablesPtr����@���������<���*���������d�^����� tablesPtr����@��������R�<���*����������^����� tablesPtr����@��������T�<���*����������^����� tablesPtr����@���������<���*���������� ^����� tablesPtr����@��������i�<���*���������[�P^����� tablesPtr����@��������=�<���*����������^����� tablesPtr����@���������<���*���������Q�u^����� tablesPtr����@��������o�<���*���������c�e^����� tablesPtr����@��������A�<���*���������l�e^����� tablesPtr����@��������(�<���*�����^����� tablesPtr����@��������������������^�N���<�����S7restore time series, make sure to unmark unseen records�H���6�����^�������� timeSeriesPtr��� time series��2��� ���������^���������AJ Clear����H���6�����^�z�All AJ �� time series��AJ Clear���(������������^�v�AJ Clear��th�0������������^��"��$����������� ������������^��������"������������^�5��������"�����������^�3�������jk�������������^�v�(������������^�u�AJ Clear�����*������������^�v� time series����2��� ���������^�1��������������`����*���������������^�u� time series��������������������^�0���������������Srestore mon/quar/seas/ann���@���.������������^����� mapsMonthsPtr�����������������@���.������������^����� mapsMonthsPtr����?����������@���.������������^����� mapsMonthsPtr����@�����������@���.�����������^����� mapsMonthsPtr����@������������������������������$���������������S restore maps���<���*�����������^��������mapsPtr���maps!����2��� ��������^��������� AIJ Clear����B���0���������^�z�All AIJ��maps!�� AIJ Clear����(��������kb^�v� AIJ Clear�b�0��������������^��"��$������������ ��������������^���������"��������������^�5���������"��������������^�3�����������������������^���(�����������^�u� AIJ Clear��$�����������^�v�maps!��2��� ��������^�1��������������`���$�����������^�u�maps!�������������������&�������*�Srestore slices��@���.����*�^�������� slicesPtr���slices`��2��� ����*� ,U^��������� ajk Clear���D���2����*�>^�z�All ajk��slices`�� ajk Clear����(�������*�^�v� ajk Clear���0�������*����^��"��$���������� �������*����^���������"�������*����^�5���������"�������*�^�3����������������*����^���(�����������^�u� ajk Clear��&�����������kZ^�v�slices��2��� ��������j^�1��������������`�k�&�����������kP^�u�slices�k�������������kS���$�����������kTpS restore zones�>���,��������kY^��������zonesPtr$���zones�k�4���"��������k\^��������� alat Clear��[�F���4��������k]^�z�All alat���zones�� alat Clear���*�����������kXl^�v� alat Clear����0������������^��"��$����������� ��������????^������==�"��������������^�5���������"��������������^�3�����������������������^���*��������������^�u� alat Clear����$��������������^�v�zones����2��� ��������^�1��������������`��$�����������^�u�zones�����������������������������������DFCC4DBC�2�h���V��'��&��b$Qcalculate the amount of space avalible, converts from bytes as a real to MB or GBfs�$�����������h$��b$ as an integer�����������������b$������� ����n����b$ input�.��������������b$ space in bytes (real)����� ������������b$ output���4���"������������b$ string of space as MB or GB���������������g{�����(�����������  @��@space�2 �.�����������00.0@% @�@�������� @���1.� �����������29.9@space @�? ��������������������6���$������������@space@space�@�@����������2��� ������������@ @space�@�@ �������������������������� @��@�  @� @space�@�@ �����������w�.��@�  @� @�  @space�@�@ ���������@�@�����������w� GB������������������@���<���*������������ @��@�  @� @space����w� MB������������������@��DFCC4DP*�e�"�����'��&��b$ DEPRECIATEDrf�D���2��������scalb$-Show or hide the bottom of the contols window���^���L��������b$GHas groups so that things are hidden or shown on all tabs. Unused since���8���&���������b$!the control window is never show.�����������scalb$�od���� �����������b$ input th���� ��������b$ none ���� ����h�TAT b$ outputMM���� ��������TAT b$ none MM�B���0��������| @WLeft� @WRightD� @WToph� @WBoth���������������|����������|@��(�����������|@ @�8$@����B���0��������TAT @ @WLeft� @WTopt� @WRight�� @WBoth�ch�F���4�������� ?? @ @ zDisclosure�8@�?��������wXshow allps�T���B��������TAT @ @WLeft� @WTopt� @WRight�� @WBoth�� @ ExtraHeight� �0����������� ?? @[ ��w�Tab_@�@��2 �2��� ������������@[ ��w�List_@p�@�����2��� �����������@[ ��w�Info_@p�@����2��� ��������x@[ ��w�Size_@p�@����2��� ��������@[ ��w�Disk_@p�@���"��������������@�� hide all��H���6�������� @ ExtraHeight @WBota� @WTopa�@�@��������T���B��������@ @WLeft� @WTopt� @WRight�� @WBoth� @ ExtraHeight��0�����������@[ ��w�Tab_@�@���2��� ������������@[ ��w�List_@p�@���2��� ��������111@[ ��w�Info_@p�@���2��� ��������@[ ��w�Size_@p�@���2��� �����������@[ ��w�Disk_@p�@��������������������@��������������@��^�"����������� reset month��:���(�����^ � CleanupStarte�*��������������2��� ��������^�� � ���*�������������$�&�������������� ^Months�*�� � �������������������^������������������^������������������������������������������������������DFCC4DT���P���>��n��n��(�7d7this goes to the following web page for science forums ��<���*������������ (WebAndMailLauncher�(�@���������������������������������������DFCC4Dvt��Z���H��n��n��(�7d@this goes to the following web page for the simulation exchange ���<���*��������2 (WebAndMailLauncher�(�@�����������������������������DFCC4DG��Zb�d���R��%��$��gSMload the stuff to keep track of which parts of the toolbar are open or closed���@���.�����������S(this code now uses semaphores to be safe���������������S������� ������������S input������ ��������0001S none00���� ��������EMakS outputr����� ������������S none���H���6���������� �@�@�������� @ ToolbarName�@�������������t�:���(���������e�c@� @ ToolbarHeight�@�@���������e�<���*���������i�t@� @ToolbarVisiblez�@�@���������"�:���(����������T@� @ ToolbarStateo�@�@����������(�������������@ @ ToolbarLeno��N�"������������ �@@itemb��;�"������������e�m@@leftb��� ������������;�@@top�� �"��������@@right��$��������������@@bottomr����"��������������@@left2���"��������������@@top22���$�����������ls@@right2r����$�����������@@bottom2��6���$��������@%@�@��������@ item_name��2��� �����������@1 @ToolbarResetSelection�����������������,�����������Simage browser search~11�6���$��������@%@�@�������� @ IBC_Query��������������ls�*�����������111Shack for selectionmb�0����������� @ToolbarResetSelection~@������������������@�*���������������Ssetup and get lists T�@���.������������@@itemb�@�?��������@�@�����������6���$������������ @ToolbarVisiblez�@itemb~@�er�4���"������������ @ ToolbarStateo�@itemb~@�������������������@R�6���$������������@ w�lToolbar� @ ToolbarName����8���&������������ @ ToolbarLeno~@ @ ToolbarName����(������������ @Run_Critical_Begin~me�D���2������������@ w�l dTool runlist�#@RunNumberArraySort~���J���8������������#@RunNumberArraySort~~@�?��������� need to reset��<���*������������#@Run_Run_Recheck~@��� need to reset@�&��������������� @Run_Critical_End����������������������.���������������Shide the closed arrowsar�@���.������������@@itemC�@�?�������� @ ToolbarLeno����T���B������������@ item_name~w�lz�~� @ ToolbarName�@itemb�~�w�l_Closedr��2��� ��������lj@[��@ item_name�@��t_������������ll@�������������ln@�X���F��������lqSAget the heights, in this case bottom of divider to top of dividerq�R���@��������ls@@item_�@�?�������� @ ToolbarLeno�~`@�?���������V���D��������lv@ item_name~w�lz�~� @ ToolbarName�@itemb�~�w�l_Divider�l�T���B��������lw@��@ item_name�@left_�@top�@right�@bottoma�id�h���V������������@ item_name~w�lz�~� @ ToolbarName�@itemb�~�@�?��������~�w�l_Divider����X���F������������@��@ item_name�@left2�@top22�@right2a�@bottom2�n�X���F������������ @ ToolbarHeight�@itemb~@top2b�~`@bottom��~`@�@�������������������������@T������������� @�F���4��������wS/hide the sections that are dependent on windowsw�F���4��������6 @Toolbar_Disclosure~w�lESim�@�@���������7�J���8����������� @Toolbar_Disclosure~w�lEJournal��@�@�����������D���2������������ @Toolbar_Disclosure~w�lIBC�@�@������������F���4������������ @Toolbar_Disclosure~w�lIBPI�@�@��������� ��F���4����������� @Toolbar_Disclosure~w�lSets�@�@�����������F���4�������� @Toolbar_Disclosure~w�lJList�@�@������������������������������������������������DFCC4Dc{��N���<��n��n��(�7d4this goes to the following web page for the updates ����<���*�����40 (WebAndMailLauncher�(�@�����������������������������������������DFCC4D;h��r���`��'��&��b$QSetup lists to support grid, lists are used so that strings are consistant everywb$herepam�h���V�����scalb$PThis code supports Grid Mananager so that you can get abstract information about���2��� ���������� b$the model for a given run.�t������������b$������� ���������b$ input������ ���������b$ noneab���� �����������b$ output w���� ����d����b$ none�b���P����n�TAT  #@ ModelNamesRef�#@ ModelGridsRef�#@ ModelAppsRefo�#@ModelAppsBinRef�na�<���*�����TAT #@ ModelNamesRef@ w� Model Names�9 �<���*����h�TAT #@ ModelGridsRef@ w� Model Grids�8 �<���*����b�TAT #@ ModelAppsRefo@ w� Model Apps��8 �B���0�����������#@ModelAppsBinRef@ w�Model Apps Bin��] �OK����?��������!!�2��� ���������]#� PM_Platform��$������2��� ��������]�g� docref_full��text��E������������ccc]cc�:���(��������]�g� docref_full���text�����������������]���(�����������] � docref_full��8���&��������]�specialRegionsI���R*ch��������������]������������]�������������111��n���\��������]specialRegionsPaths � PM_MakePath�specialRegionsPaths���Special Regions�����8���&�������� ] PM_Launch�specialRegionsPaths�������������������������������DFCC4D5�&������� ����8 delete a set �eg�&�����������((oldPos�eg�&��������������((oldRec�je����������������(�<���*��������==�8"check that the selection is valid h�������������������(#(SetArray��@(������������@#(SetArray�#(SetArray��@#(PostDefaultSet��@#(SetArrayu#(SetArrayu�@� All Variables�����������YY(�*��������R�8goto record ��D���2��������(�(�����#( SetNumArray#(SetArrayrw{�0�����������(oldRec�(�(���������������(�.�������������8delete from database ����$������������(�:(������$������������(�/(�����(�������������\�,�������������8delete from array ^���R���@���������(oldPos�(�#( SetNumArray(oldRecA(�?���������D���2���������(�#(SetArray�(oldPosa(�?������� �F���4���������(�#( SetNumArray(oldPosA(�?��������^�������������\�<���*����������8#delete from post processing window ����2��� �������� (setName#(PostDefaultSet�(st�������������((�@���.����������8'go to all (first element in set array) �S�0��������ww#(SetArray�(�?�������(ef�D���2������(�(�����#( SetNumArray#(SetArrayr��&��������� (SetArray_Manage(���������������((��������������������������������������DFCC4Dyb�,�$�����^�� ^����8 open sets <�(�h���V�������� (Generic_OpenReopen�""#(Sets_ProcessIDo""� Sets Window""� Sets_Process""��������������������������������DFCC4D�O�T���B����_]~ InfoText_LinkDialogG�@��������GG�����GG����GG�L���:����_k���#Simulation_TwistDownChangedGG�~Xmark as changed~ld���������������DFCC4DZ�|~�`���N��&m��%m��gSHget the list of years currently selected, this is different from the oldfn�P���>�����������S9code since 4D 2004 allows multiple selections in the list���>���,�����������S&only sequential selections are allowed ���� ��������0001S input00�2��� ��������EMakS optional (use all years)Ma���� ������������S output���D���2���������� S, none (Start Year and End Year are changed)� �8���&�����������@selectionCountz�@maxYear��t�&������������$�s@-@yearsPtr$��u�2��� ����������@�@years�@�������������$�����������������*���������������@����7@�������������*������������r�s@����7@������������o�X���F���������o�f@yearsPtr$7 @PostProcessing_TypeListEmpty @start_lbs�@����L���:���������� @SelectedElementsInListBox @start_lbs�@years���<���*��������d@selectionCountz7@@yearsPtr$���������������������2��� ������������Scheck if a valid selection��<���*������������@@selectionCountz�7@���������������f���T������������@@yearsPtr$�@�?�������K���w�l<NA>�wO8check against special case����.������������L@@�7@���������������$���������������S get all years� �D���2������������@����7@� @yearsPtr$�@�?�������K����L���:������������@����7@� @yearsPtr$�@@yearsPtr$�K�������������������@���:���(������������@@@years��7@���������������h���V��������� SPset the start of the selection if it does not excede the length of the new arrayipl�L���:������������@@years�@�?�������K� �@@yearsPtr$�����P���>�����������@����7@� @yearsPtr$�@years�@�?�������KK������������������@���������������������4���"�����������Sset the end of the selection������������������@@selectionCountz�7@�?����������/@�����7@�������������wO85more than one year selected and there is a start year���f���T������������SNset the end of the selection if it does not excede the length of the new array���J���8������������@@selectionCountz� @years�@@years�K����R���@������������@����7@� @yearsPtr$�@years�@@years�KK����:���(������������@�� otherwise just use the last year����H���6������������@����7@� @yearsPtr$�@selectionCount7K�������������������@���0���������������@�� only one year selected���$���������������@����7@����������������������@������������������@��������������@������������@�������������%@#�����������������������������������������������������������DFCC4Dc8��~���l��'��&��b$QThis is very old code written by Matthew Shopsin that is used as part of the dynab$mic interface for�*�������b��� b$Setup Simulations. �i��������l��� b$��`���� ����h���b$ input �i���� ������������b$ none ������ ��������b$ output������ �����b$ none �H���6����Z���� @Counter�@�?�������� @Number_of_Groups<�������������������@temporary_reserved_namew�z�� @ Group_Namer�@Counter��w�_wXCthe objects that are not suppose to move have a z in fornt of them@������������@temporay_stationary_object�@temporary_reserved_name��w� Closed_ArrowwXPtemporary_stationary_object is set to the name of the variable containing the ar]���D���2��������TAT @[ ��@temporay_stationary_object��@��d ��������V�TAT @ n characters for last ":""ro�6���$���������d�dii?�������len���P���>���������d�dpath�!len�li��ii?�������"�i�i:���`���N���������d�dpath�� path�p?�������len�li��ii?��������d�(������������d�dii��ilenx9�������������d�d��������������d�d���������������d�dg�������������d�d� ������������d�dcleanup t�"������������d�d ��path� (��������DFCC4D-p���^���L���� ����8Echanges to the set name should be immediatly visible in the set list �������������������������������(#(SetArray��@(������������@#(SetArray�#(SetArray��@#(PostDefaultSet��@#(SetArrayu#(SetArrayu�@� All Variables�i�0���������������(RecNum�(�(�������D���2��������(ArrayNum�(�#( SetNumArray(RecNumA+�N���<��������99�85I only handle keystrokes when the set already exists ����,����������������8 If ($ArrayNum>0) ����X���F�������������8> SetArray{$ArrayNum}:=SetArray{$ArrayNum}+Get edited text ����<���*���������pu�8" If (Form event=On Data Change ) h����@���.��������<�8'check that the name is not a duplicate ��8�R���@�����YY(ArrayNum�(�#(SetArray� (setName(�?����������b���P�����R(ArrayNum�(�#(SetArray� (setName(ArrayNum���@(�?�������et�,������������8duplicate ^����8���&��������((ArrayNum��@(��������������:���(�����#(SetArray�(ArrayNum�(����(���(������������ (setName(����(io�L���:��������� (Alert_ParamText (setName���������3p�D���2��������� ( Alert_Alert(�?�������(�@�������l�������������((�^�4���"����������8do save and update array ��h��P���>���������87change item, resort array, save record, reselect item �ad�D���2��������(ArrayNum�(�#( SetNumArray(RecNumA�<���*���������#(SetArray�(ArrayNum� (setName(��(�������� (SetArray_AllOnTop(���D���2�����{s(ArrayNum�(�#( SetNumArray(RecNumA���P���>��������N#(SetArray�(�����������#(SetArray�(ArrayNum�Fi�.������������#(SetArray�(ArrayNum�(���(������������(���� (setName(id�$������������(�5(������,�������������8 REDRAW(SetArray) ���������������((�(��������g9kZ�8 End if ��"���������8End if l�p���������((g����������DFCC4DcI�@qc�0����� �� ���7dhandle images for html���� ���������������7d input���8���&������������7d ptr to the path to the image�����:���(���������k�e�7d path to images folder for html�����"�����������ww�7d listref�f �.������������� �7d number of the image����2��� ���������a�m�7d place of image in array��&������������ �a�7d # of images�(���������������(�.������������� [- ���� imageName�����>���,���������r�[%��@�������� ���� imagePath�����h���V���������� [ ��� ��� ��� ����listRef�� imageCounti��pictNum�� pictCount��[P�*������������a�m[ �����temp��ns�(������������ �a[�i��max��) �4���"����������[�leftPos��rightPos$��et�|���j���������s�t[%��@��������� folderNamef��fileName$��saveFolderName@�� saveFileNamea��saveTemp$����$�����������111[2�vRef��rr�"���������������[�pic��yN�4���"��������[%��@���������value��du�&�����������[ imageNames ���>0�L���:����V����[ imagePaths � PM_MakePath �����Images�����3p�$�������V�[listRefs ���at�(�������V�[ imageCountis ���ts�$�������V�[pictNums ��� s�&�������V�[ pictCounts ������ �������V� [��s��������������V����V���D����V����8�7d=the imageName consists of filefolderkey which is in CM_Images���,�������V�����[values� imageName���@���.����V����[ foundPreviewos���� ����value���@���.����V�����[� foundPreviewo�sP�sP��?������������6���$����V�����[����� ���� foundPreviewo�����,�������V�����[ folderNamefs��� ������*�������V����[fileName$s��� ���t��N���<����V����[saveFolderName@s��� folderNamef��� ���_�����J���8����V�����[ saveFileNameas���fileName$��� ���_���Z��������V����[[ ��������V����[et�:���(����V�MUTX�7d!test that folders and files exist�@����~����V����[� � PM_MakePath � PM_MakePath � thumbFolder�� folderNamef������fileName$���������?������������6���$����V�����7dcreate folder if necessary �����l���Z�����������[� � PM_MakePath� imagePath��saveFolderName@������ �����������������T���B�����������[ � PM_MakePath� imagePath��saveFolderName@������rr�~���l��������̻@[ � PM_MakePath � PM_MakePath� imagePath��saveFolderName@������� Thumbnails��������������������MUTX[[���b���P�������������7dIcopy file if necessary (may have already been copied for a previous image�dy�������������p[[��8���&���������|[� pictCount����?����������0���������������[ pictCounts��@���������N�8���&��������Z^[� pictCount����@������������0������������[ pictCounts��@�������������������[[�0���������o�l[ pictCounts��@��������us����������s�t[[���������� �[ saveFileNameas �InfoText_HTMLPict2Jpg � PM_MakePath � thumbFolder�� folderNamef����� � PM_MakePath� imagePath��saveFolderName@������ imageName�� pictCount�����>���,���������7d%add the path to the image to the html����T���B�����MUTX[temps �GetListItemStr@�listRef���@��������7���^���L���������[temps�temp�r�`��imageno�r�`�� � imageCounti��r�`��.htm�����b���P���������[temps�temp�r�` �GetListItemStr@�listRef���@��������10`p�������������[temps�temp�r�`��Images/�r�`���saveFolderName@�#� PM_PathChar�������r�`�� /Thumbnails/��r�`� saveFileNamea�������p���������[tempFs�temp�r�` �GetListItemStr@�listRef���@���������r�`��Z$���&��r�`��Z$���&���"������������ [��s�temp�ts�2��� ����������7dcreate new html for image���������������� [InfoText_HTMLPictHTML� imageCounti��pictNum��listRef���Images/�r�`���saveFolderName@�#� PM_PathChar�������r�`��/�r�`� saveFileNamea� �������������������[[����������������������������������������������������������DFCC4Dc�<B�b���P��'+��&+��gSKThis code matches the scenario backgroud and the lock button to the currentum�Z���H��������SCstate of the record. The lock can be locked or unlocked, the button���0�������؊����Shas the following states:���,�������<��� S unlocked (unlocked)>� �&�����������TAT S locked (lock) �&�������Ҕ����S scenario (pkg)���&�������պ�����S archive (tape)���4���"�������������%@�@��������@iconRef����������������000100�&�����������EMakSset background� � ���������������@@��������B���0���������@[��w�lzScenarioBackground�@��������@���.���������@[��w�lzScenario2Background>�@�����������������@���B���0���������@[��w�lzScenarioBackground�@��������D���2���������@[��w�lzScenario2Background>�@��������������������@�����������������"������������S set button8 ������������@���@���.�����4@@�m����@�@���������wO8archived>���(������������@iconRef>w�l10050���.��������@���@@�����wO8scenario> �(������������@iconRef>w�l10052��>���,���������@@�m����@�?��������wO8locked���(��������� @iconRef>w�l10051 �J���8���������@@�m����@������������wO8no status, unlocked���(������������@iconRef>w�l10053���(������������@�� generic locked���(������������@iconRef>w�l10051��������������A@���`���N���������@���w�lzInfo_StatusLock�w�l1;3;?�>�@iconRef�>�w�l;240;0��Q�����������������������������������������������������������������DFCC4D'�:]6�X���F��%f��$f��gSARun the postprocessing app and wait for it to quit before leavingLP���� �����������S input�0��������������S string, name of the app������ ������������S output���8���&������������S! boolean, did the process succed���:���(�����������^%��@�������� ����appName���2��� �����������^%��@���������path(���@���.��������^�mouseXE��mouseYE�� mouseButton��*������������� ^1 �����sucessE��p�"������������n�c^appNameE ����"������������l�i^successE���T��������������$������������n�cS get the path�$�D���2���������l�i^path(E � PM_FindFolder�DiagnosticsApps��u�H���6�����������^path(E � PM_MakePath�path(��appName���������������������,�����������Sdelete the stop fileE11�B���0��������^��path(�E��.stop�� $������0��������������^��path(�E��.stop�������������111^����������������*��������)))%Srun the application�*����������� ^ PM_Launch�path(��������������f,�N�:���(��������fS"wait for the application to finish� �����������f^ticksE�!� �����������fD^done(E��������������f8^�.��������������^C�B���@����������B���0��������^��path(�E��.stop�� $�����.�����������^C�B���@����������0�����������^��path(�E��.stop�� ���������������^done(E���"�����������111^successE���������������^�(��������������Scheck for cancel����2��� ��������^#� PM_Platform� $�����,�����������^�"������11� �����������^done(E���&�����������n ^iE��@�������������������111^��������������^�,�����������^�3������� ���������������^done(E�����&�����������^iE��@�������������������������^��������������^�&���������������Scheck for click���@���.�����������^�mouseXE��mouseYE�� mouseButton����8���&������������^� mouseButton�E`����������������b���P�����������^ mouseButtonE � Alert_Alert��@�����������@����������?����������8���&������������^� mouseButton� ���������������� ���������������^done(E�����&��������ayer^iE��@�������s ����������f��^����������e��^� ����������� ^�done(������������������ ��������Scleanup�.�����������^C�B��������������n�"����������� ^��E�successn��������������������������DFCC4DK�0��^���L��^�� ^����8Echanges to the set name should be immediatly visible in the set list ��������������������[�4���"�����������((RecNum�(ArrayNum�������������H[���������������((v�B���0������������((�@$(��� @(�@$(���v���d��������,Ge(#(SetArray��@(������������@#(SetArray�#(SetArray��@#(PostDefaultSet����0������������(RecNum�(�(��������D���2�����������(ArrayNum�(�#( SetNumArray(RecNumA֗�N���<�������������85I only handle keystrokes when the set already exists ����8���&������������((ArrayNum��@(��������������6���$������������#(SetArray�(ArrayNum�((���*���������������((�@$(����@���.�������������8'check that the name is not a duplicate ���R���@������������(ArrayNum�(�#(SetArray� (setName(�?�������ea�b���P������������(ArrayNum�(�#(SetArray� (setName(ArrayNum���@(�?����������,����������������8duplicate ^����8���&������������((ArrayNum��@(��������������:���(������������#(SetArray�(ArrayNum�(����(���(��������������� (setName(����(���L���:������������ (Alert_ParamText (setName������������ֺ�D���2������������ ( Alert_Alert(�?�������(�@�����������������������(( �:���(�������������8!do save and update array ��>���,������������(�#(SetArray�#( SetNumArray�@���D���2������������(ArrayNum�(�#( SetNumArray(RecNumA��P���>������������#(SetArray�(�����������#(SetArray�(ArrayNum�TX�.���������������#(SetArray�(ArrayNum�(���(���������������(���� (setName(�$���������������(�5(����� i����������������(( l����������������((������������������((����������������((����������������((��������������������������������������������������DFCC4D3�%�@���.���������d�d��& Long name to file name Project Method���F���4���������d�d��, Long name to file name ( String ) -> Stringap�P���>���������d�d��7 Long name to file name ( Long file name ) -> file name[�6���$���������d�d%%@������� � �����:���(���������d�dviLenviPosviChar����*������������d�dviLen� ����,������������d�dviPosv����������V�R���@���������d�dviChar�viLenv?��������vv?��������6���$���������d�d �!viChar�"�v�v:���(������������d�dviPosviChar�߀�.������������d�dviChar�v�������������������������d�d�������������d�d���4���"���������d�dviPos�vv�����������B���0���������d�d ���  �viPos��vv?�������ar�������������d�d���� ���������d�d �� ����������������d�d������������������������������������DFCC4DJ�~H����r��"��!��,�7dQThis code matches the fields to the selected row in the list. Since there are a l�7dot of tricks pulled for������|���������7dQthe password fields this takes some work. If they click past the end of the list �7d then just leave the stuff blank.o���L���:������� �7d5Also don't let users edit the username if it is admin��������������� �7d�z�`���� ����\��7d input0���8���&���������i�n�7d! (optional), surpresses the save�s������������7d�z�d�v���d�����������]found������� � arrColVarsr��?�������� � arrColVarsr��?������������6���$�����������]�found����?��������������������������wi�2��� ����X�mpon�7dsave if nothing was passed0om�.�����������]����������������LI�:���(���������� ]UAM_Editor_SaveRecordw save first��s�������������i�n]��������������000100�(�����������EMak�7dgo to the record4D�,�����������0001]���������found�08�������������EMaker�:���(�������������7d"can't edit username if it is admin���.������������t� ]���������Admin�� �(������������� ]����������� �(������������� ]�����������d��������Š�]�(�����������]�����������(�����������d]����������������������///]--��������������.�����������g�7dset the password fields�(�����������] tempStringt�����V���D�������� ]vPswd��������w#probably need a platform check here�@���.������������ ] vActualValuec��Z$���&����������,��������������� ] vlastPosition��������&��������������� ]vPswd2� �vPswd���4���"������������ ] vActualValue2 � vActualValuec���6���$������������ ]vlastPosition2@ � vlastPosition������������������]����������������������������������DFCC4Do�Nq�^���L��%k��$k��gSGCreate a summary of the data in a set. The summary has two parts, a topN�^���L������������SGsection that says how much is in the summary, and a bottom section with���D���2����������S,a full description of every item in the set.���<���*�����������^- ��� ��� ��� ��� ��� ����r���`�����������^-� tablesPtr�� timeSeriesPtr�� mapsMonthsPtr��mapsPtr�� slicesPtr��zonesPtr$�V���� ����N�f�^�i�f�"�������N����^�count��r�$�������N�����^ tablesPtr �����(�������N�����^ timeSeriesPtr �����(�������N���^ mapsMonthsPtr �����"�������N�����^mapsPtr ��?�$�������N�-[��^ slicesPtr �����$�������N��m�m^zonesPtr$ ������������N��e�m�b�*�������N��I�fScreate the summary8�l�*�������N��e�t^�����Tables: ��P�>���,����N���^count �Sets_CountArray� tablesPtr��g�2��� ����N����^�count�`��������������Z���H����N����^������������� �count���� different months/seasonsR��������N���^�[�2��� ����N�����^������������ none t��������N�����^�N���<����N�����^�������������Z$���&���� Time Series: nt�B���0����N���^count �Sets_CountArray� timeSeriesPtr��m�2��� ����N�����^�count�`����������������V���D����N�����^������������� �count���� different variables����������N�����^��2��� ����N�����^������������ none t��������N�����^�H���6����N�����^�������������Z$���&����Maps: en�<���*����N�����^count �Sets_CountArray�mapsPtr����2��� ����N�����^�count�`����������������V���D����N�����^������������� �count���� different variables����������N�����^��2��� ����N�����^������������ nonem��������N�����^�R���@����N�����^�������������Z$���&����Vertical Slices: le�>���,����N���^count �Sets_CountArray� slicesPtr��S�2��� ����N�����^�count�`����������������V���D����N�����^������������� �count���� different variables����������N�����^��2��� ����N���^������������ none s��������N�����^�N���<����N�����^�������������Z$���&���� Zonal Plots: ri�>���,����N�����^count �Sets_CountArray�zonesPtr$����2��� ����N�����^�count�`����������������V���D����N�����^������������� �count���� different variables����������N�����^��2��� ����N�����^������������ nonez��������N�����^���������N�����^���������N�����^�b���P����N�����SKcreate the details section with the indepth reporting of what is in the set���<���*����N�����^�����Tables:����Z$���&����8���&����N�����^� tablesPtr����@�������+���L���:����N�����^������������ December�����Z$���&�����������N�����^S�8���&����N�����^� tablesPtr��������������+��&�J���8����N�����^������������ January����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����?�������+���L���:����N�����^������������ Feburary�����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@��������+���H���6����N�����^������������ March����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@��������+��Z�H���6����N�����^������������ April����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���F���4����N�����^������������ May����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���H���6����N�����^������������ Junep����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���H���6����N�����^������������ Julyp����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���J���8����N�����^������������ August�����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���L���:����N�����^������������ September����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���J���8����N�����^������������ October����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+��Z�L���:����N�����^������������ November�����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+��Z�F���4����N�����^������������ DJF����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+��Z�F���4����N�����^������������ MAM����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+��Z�F���4����N�����^������������ JJA����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+���F���4����N�����^������������ SON����Z$���&�����������N�����^��8���&����N�����^� tablesPtr����@�������+����J���8����N�����^������������ Annual�����Z$���&�����������N�����^����������N�����^�"�������N�����S setup sets��$�������N�����^�v�maps'���&�������N�����^�v�slices����*�������N�����^�v� time series����$�������N�����^�v�zones����"�������N�����^�2���������"�������N�����^�2�������s�"�������N�����^�2�������se�"�������N����^�2�����������������N�����^�6���$����N�����Sloop over records to summarize���b���P����N�����^�������������Z$���&���� Time Series:����Z$���&����0�������N���^��$�������� ����g�P���>������������^������������ 0�����������Z$���&����"�������������^�3��������o����������������^��Z���H����������^�������������Z$���&����Maps:����Z$���&��[�0�������������^��$�������� ����g�P���>����������^������������ 0�����������Z$���&��:�"�������������^�3��������o����������������^��f���T����������^�������������Z$���&����Vertical Slices:����Z$���&��r�0�������������^��$�������� ����g�P���>����������^������������ 0�����������Z$���&��:�"�������������^�3��������o��������������C^��b���P����������^�������������Z$���&���� Zonal Plots:����Z$���&��t�0�������������^��$�������� ����g�P���>����������^������������ 0�����������Z$���&��:�"�������������^�3��������o��������������^����������������^���� �����������Scleanup��$�������������^�u�maps'��c�&������������e�t^�u�slices�un�*���������������^�u� time series����$���������������^�u�zones���������������������������������DFCC4DK�,A�\���J��%��$��gSEResize the length of the run list manually to match the height of the���^���L�����������SGwindow. This replaces the autoresize option because I need the group to���&���������������Sshrink properly���8���&��������S Now has Run list as the 2nd item����������������@�"��������������� Svar�R� �������������}@top��F�"�����������@@leftP����$�������������}@@bottomD��l�"���������������@@right��(������������� @@ windHeightw��t�$�������������}@@divPosi��l�"������������&�@@itemo��o�T���B���������g�h@@ toolHeightt�@ listHeightl�@ subHeight�@ newHeight��i��������������+���:���(���������d�HS"get the height of all the sections��0�����������@ toolHeighttM@��������������R���@��������@@item��@�?�������� @ ToolbarLeno�M`@�?���������R���@��������)))%@ @ToolbarVisiblez�@itemb%�@��wO8visible section���H���6��������@ @ ToolbarStateo�@itemb%�@��wO8closed�B���0������������@ toolHeighttM@ toolHeightt�M�@�@������������� ������������@�� openM���b���P������������@ toolHeighttM@ toolHeightt�M� @ ToolbarHeight�@itemb%�M�@�@�������������������������@������������������@������������������@����������������4���"��������%%NsSget the height of the windowJR�@���.������������@@left��@top�@right�@bottom�����H���6�����������@ windHeightwM@bottom��M`@top�M`@�@���������F���4������������S.try to compensation for special section at top���J���8������������@ windHeightwM@ windHeightw�M`@�@���������538���.���������������@ newHeightM@��������������V���D������������@��w�l List_List�@left��@top�@right�@bottom������������������������T���B������������S=if the sections are too tall shrink the runlist (if possible)���8���&������������@@ toolHeightt�M@ windHeightw����z���h������������@ @ToolbarVisiblez�@�@��������%�@����X @ ToolbarStateo�@�@��������%�@������&�����������Sget heights �6���$��������@ listHeightlM@bottom��M`@top�@���.��������@ subHeightM@ toolHeightt�M`@ windHeightw�H���6�������� @@ listHeightl�M`@ subHeight�M@�@���������>���,��������@ newHeightM@ listHeightl�M`@ subHeight�������������@�.�����������@ newHeightM@�@�������������������@�\���J������������@ newHeightM@ listHeightl�M`@ newHeight���M`@�?�����������*���������������Sshrink run list ���n���\������������@��w�l List_List@��@������������@������������@������������@ newHeight����&���������������Smove the search���n���\������������@��w�l List_Query@�@������������@ newHeight�@������������@������������������������������@������������������@����������������������h���V������������SPif the sections don't take all the space then lengthen the runlist and push the ���8���&������������@@ toolHeightt�wl@ windHeightw����z���h������������@ @ToolbarVisiblez�@�@��������%�@����X @ ToolbarStateo�@�@��������%�@������&���������������Sget heights ���V���D������������@��w�l List_List�@left��@top�@right�@bottom�����6���$������������@ listHeightlM@bottom��M`@top���@���.������������@ newHeightM@ windHeightw�M`@ toolHeightt���*���������������Sresize run list ���n���\������������@��w�l List_List@��@������������@������������@������������@ newHeight����&���������������Smove the search���n���\������������@��w�l List_Query@�@������������@ newHeight�@������������@������������������������������@������������������@����������������������:���(������������S#move other sections & change height���6���$������������@@ newHeight���@���������������@���.������������@@item��@�@��������� @ ToolbarLeno�������p������������@�� @ ToolbarName�@itemb%�M�w�l@�@������������@ newHeight�@������������@������������������z������������@��w�lz�M� @ ToolbarName�@itemb%�M�w�l@�@������������@ newHeight�@������������@������������������������������@���h���V������������ @ ToolbarHeight�@�@��������%M @ ToolbarHeight�@�@��������%�M�@ newHeight������������������@����������������������8���&������������@@�?��������@�@������������Z���H������������@��w�l zList_Divider�@left��@top�@right�@bottom�����(���������������@divPos�M@bottom����r���`������������@��w�lList@�@lefto�@bottom��M�@�?��������@right�@ windHeightw�������������������������D���2������������S,need to update height because it is dynamic ���F���4������������@@ windHeightw�M`@bottom��M@���������������N���<������������@item�M@� @ ToolbarName�w�lList�@�?�����������L���:������������ @ ToolbarHeight�@itemb%M@ windHeightw�M`@bottom�������������������@������������������@������������������������������������������������������������DFCC4DW�JN�*�����'A��&A��gSload list of pages�T#�&��������������� @PostPageP����*��������������@@listLen�@i����8���&������������@1 @ tNeedRedraw� @ mNeedRedraw����2��� �����������@� @Start�@�?���������0��������������@� @End�@�?�����������$���������������@1@isList�����@���.��������@ @plots_hier_counter-�@ sublistRefs�HH�������������������(���������������Ssetup run number�Dd�H���6������������@����- @Run_Critical_GetRunN=@�?������������������������������*���������������Ssetup and get lists@��6���$���������� @PostPageP-@w�lPostPage�� ��������������������$���������������S setup redraw���&�����������d @ tNeedRedraw-@��&��������������� @ mNeedRedraw-@��������������������P���>������������S9set default tab, fix appearance for Windows 2000/XP issue���"���������������@� @pMaps����2��� ���������L@#@ PM_Platform�$@����@���.������������@[��w�lzHideImageForWindows-�@�� ����������������@����������������������0���������������Ssetup hierarchical lists����&��������������� @ plots_hierl-@w���&������������ @ slices_hier-@w���$��������������� @ maps_hier-@w��&�������������� @ zones_hiero-@w���&�����������KK� @ tables_hier-@w���F���4����������� @PostProcessing_TypeHierEmpty @ plots_hierl����F���4������������ @PostProcessing_TypeHierEmpty @ slices_hier����D���2������������ @PostProcessing_TypeHierEmpty @ maps_hier����F���4������������ @PostProcessing_TypeHierEmpty @ zones_hiero����F���4������������ @PostProcessing_TypeHierEmpty @ tables_hier�����������������������.���������������Sdo inital summary & set���0��������������� @PostProcessing_SummaryLists��������������������������������DFCC4D �I�d���R�����������FJTake a value read in from an XML field and convert it to text (or number) �&�t���b��������neraFQfor a database field or array. Converts based on field type in a best effort fashFion. �R���@�����������F8This code is not responsible for invalid data passed in �ng� ���������������F input ct�2��� ������������F ptr to field or array �ag�,���������������F text from field ^�:���(������������F optional array position index l���.���������������- �fieldPtr@���.��������������� �xml_Text@���0����������������@�@���������,�0��������������� � arrayIndex��,�(��������������� arrayIndex� �in�����������������(��������������� fieldTypein�&���������������fieldPtr@ �ve�&���������������xml_Text@ �ta�����������������8���&������������ fieldType'fieldPtr@�������������������,���������������Ffield converstions ���V���D������������ fieldType�@$��� @ fieldType�@$����b���P������������fieldPtr@�xml_Text@�Z�@��������Z$��&�C�v���d������������ fieldType�@$��� @ fieldType�@$��� @ fieldType�@$���>�8���&������������fieldPtr@� xml_Text@�2��� ������������ fieldType�@$�� &�4���"������������xml_Text@�@Y�pTrue&�(���������������fieldPtr@�?�����������������<�(���������������fieldPtr@�e �����������������2��� ������������ fieldType�@$��Nu�8���&������������fieldPtr@�xml_Text@���2��� ������������ fieldType�@$��&�8���&������������fieldPtr@�fxml_Text@�,���������������Farray conversions ^���V���D������������ fieldType�@$��� @ fieldType�@$��e��t���b������������fieldPtr@ arrayIndex��xml_Text@�Z�@��������Z$��&�v���d������������ fieldType�@$��� @ fieldType�@$��� @ fieldType�@$��c�J���8������������fieldPtr@ arrayIndex�� xml_Text@&�2��� ������������ fieldType�@$���4���"������������xml_Text@�@Y�pTruee_�:���(������������fieldPtr@ arrayIndex���������������������:���(������������fieldPtr@ arrayIndex��-�������������������2��� ������������ fieldType�@$�� Z�J���8������������fieldPtr@ arrayIndex��fxml_Text@&������������������������DFCC4D#4�,������������d�d��set boolean values� ������������d�d1 ���0������������d�d%%?������� ����������������d�ds4���� ���������d�d ���� ������������d�d ����t��������������d�d��� ������������d�d ����f��������������d�d��DFCC4DX�n_�`���N��'��&��b$IWhen 4D quits the normal On Exit method runs after all the processes havefn�`���N����Ɯ�y�b$Iterminated with is bad since EdGCM 4D can have unsaved records in various�l�,���������scalb$processes. So Do_Quited�2��� �����scal% @�@��������@path��:�����������scalli�*��������scalb$saves to do on quit��(��������������� @Safe_SaveSimulation���&����������� @Safe_SaveInfoText���<���*����~�TAT @ @B�8#@PostProcessing_ProcessID�3 �"�������H�TAT @�5 @������D �������������@����������������������:���(��������b$"clear temp files from this session�>���,��������TAT @path� @ PM_FindFolder w� eJournals�la�4���"�����TAT @PM_RecursiveDelete @pathe� �4���"�������� @ @ @pathe��$@��� �.������������ @ PM_MakeFolder @patha������������������@���������������������������@#����������������DFCC4D �������!�� ��,�7dvar��,�������������]1 �Simulation_New@���6���$�����������]%��@��������#�QueryStr����"���������������]�width����*��������������#]QueryStr��moof���������������"�������������7d setup otherw@�*������������ ]Simulation_New@����������������kZo{]�4���"����J�����7dyou must be an admin to enterh �,�������J�  '] �UAM_Authenticated�dy���������J��������"�������J�????�7d setup other��b���P����J�����]�C�� SimLibrary�2 This menu bar gives the user access to the demos.���8���&����J�����]�6��������� List View��(l�$ �B���0����J�����]#� Toolbar_Width����@��������^p������>���,����J�����]width#� Toolbar_Width����@�����������������J����]��� �������J�����]width������������J�]��������J����� ]myWind���#� Toolbar_Width���@���������width������@��������$��"� ���Simulation LibraryH��� Generic_Close������� ����J�����]F�B����$�������J�] �myWind�����������J����������� ������������]��(l����P���>������������]��������)this is a conflict with Setup Simulations���"��������������]�/�������wi�,��������������]��� List_OnErrDo������������������K���:���(�����������]��L������������������������(��������������(]�;��������(l���4���"��������@�7dADD RECORD([Utility Table];*)8�������������0]��B���0�������� ] Alert_Alert��?����������@������������������]7d�V���D������7d? The close box associated with this window pauses the process. t�Z���H������7dB The window stays ready for use throughout the use of the program.�����������]���������111]w����������]�^���L�����#]List_ProcessID@������������w$ Reset process ID tracking variable.����������RRR]�*������������7d End of procedure.Plb��������������������������������������DFCC4DO�0_�\���J��%5��$5��gSECleanup after trend setter so that the viewer programs can work right���J���8�����������S3MacOS X: type the files so that PlotShop opens them��N���<�����������S7Windows: change the file names so that Excel opens them������������������S������� ������������S input���,�����������S path to trend files�F���4���������0^%��@�������� ����path(��filepath$���� �����������EMak^path( ������������������������"���������������S list loader?�:���(������������^listRef��PPMV58 Revisted���������������111��$�������������S retype files���<���*�����������^�i����������������@�����������z���h��������^filepath$�path(�� �GetListItemStrA�listRef��i�P��@������������?���������8���&��������^��filepath$�� $�����H���6��������^#� PM_Platform� $����y@Mac files for EVAtS�2��� ��������^�filepath$��EVA_���2��� ��������^�filepath$��TEXT��,�����������^ApPC files for Excel�0�����������????^�filepath$��xls�;;������������)�^��������������^U���������������^������������������������� ������������Scleanup���$���������������^y�listRef������������������������������������������������������������������������������������DFCC4D?W�p�.����������7dget current record ID���� ������� ����[ ������.�������,����[�CurrentRecordID�����,�����������[#� Rundeck_Textu�����.�����������[#�Rundeck_Summary�����<���*������������[%��@��������#� Rundeck_Title�����,�������*�����[CurrentRecordID ���tw�D���2�������������7d*open rundeck viewer window to see rundecks�0�.�����������#[ Rundeck_Textu���������.�����������#[ Rundeck_Title���������:���(����v����[state�J#�Rundeck_ProcessID�����N���<��������  '[�state�$�� ��� �state�� U$�� �������v���d����"��� [Generic_OpenReopens#�Rundeck_ProcessID���Rundeck Window ���RundeckViewer_Process����������������  '[[���0��������������[I#�Rundeck_ProcessID������������������������������������������������DFCC4Dc84��������n�����d�d��������a�����d�d�0�J���8���o�����d�d@@@Counter@@C?�������@ @Number_of_Groups @@�������u�����d�d@temporary_reserved_name@@�tz�@�t @ Group_Namer@@Counter@�@�C@�C_@�CCthe objects that are not suppose to move have a z in fornt of them@ha�������������d�d@temporay_stationary_object@@temporary_reserved_name�@�t@�t Closed_Arrowr@�tPtemporary_stationary_object is set to the name of the variable containing the ar�@���F���4���a�����d�d@[@�@[@@temporay_stationary_object@@�@@���������������d�d@@��������������������������������������������������DFCC4D�fZ�n���\��'��&��`DQRun SumAndPd which does all the model diagnostics in from one super driver progra`Dmn�p���^�����G(`DQJean wrote. SumAndPd2.I adds a set of subfolders for the output from SumAndPd. Th`DeselL�n���\����p�����`DQsubfolders organize the output of SumAndPd and fix a bug where the contents of th`De�~�r���`������������`DQpostprocessing folder got too large to fix in a 4D array. This version should als`Do dop���p���^�����������`DQa few sundry things better. Below reproduced is the documentation from the .I fil`De f3�$�������b����`D Jean gave me:������������������`D����"���������������`D #file: pd_I���2��� ������������`D#read by: pd from SumAndPd�����������������`D�+�0�����������`D#Example Order of inputs:ll�D���2������������`D-line 1 B8x10_3pdC9 #runID���J���8������������`D2line 2 /u/cmrun/B8x10_3pdC9/ACC/ #input path �J���8��������d`D3line 3 /u/cmrun/B8x10_3pdC9/ACC/ #output path�`���N�����������`DIline 4 ffft #monthlies;quarters;seasons;annual��J���8�����������`D2line 5 1902 #first year���H���6����Ҭ�Ld`D1line 6 1902 #last year���H���6����Ҭ�����`D0line 7 8x10 #geometry����Z���H����Ҭ�@���`DBline 8 0 0 0 0 0 0 0 0 0 0 0 0 #kdiag set for lat/pressure���������Ҭ�����`D����R���@����Ҭ�����`D;if KDIAG(1-12)<9 the corresponding tables/maps are printed.���H���6����Ҭ�� `D1KDIAG must be <9 for other output to be produced.��X���F����Ҭ�����`DAiprint_pd, iform_pd, iNetcdf_pd: are not active when set to zero.���V���D����Ҭ�����`D?Therefore, only standard printout is produced when iprint_pd=0.���R���@������������`D;The special cases for KDIAG described in *) are mirrored by��"���������������`D iprint_pd.���T���B���������L`D<When iform_pd is active, it writes on iu_pd using the format����*���������������`Din the table below.������������������`D����D���2������������`D- kdiag iu_pd iform_pd���F���4������������`D/ 1 BUDGET PAGES *) 201 ASCII text���X���F������������`D@ 1 BUDGET PAGES **) 213 Regions ASCII text (when iu_pd(1)<9����J���8��������� `D2 2 LAT-HT (CP) 202 binary GISS4D �H���6������������`D0 3 LAT-LON MAPS *) 203 binary GISS����4���"����|�����`D 4 ENERGY HISTORY 204 @)���4���"����|����`D 5 SPECTR. ANAL. 205 @)���4���"����|�����`D 6 DIURNAL DIAG 206 @)���4���"����|�����`D 7 WAVE POWER 207 @)���4���"����|�����`D 8 DIAG8 (PLOTS) 208 @)���4���"����|�����`D 9 CONS. QUANT. 209 @)���J���8����|�����`D2 10 LAT-HT (SGM) *) 202 binary GISS4D(���4���"����|�����`D 12 KEY NUMBERS 212 @)�����������|��������@���.����|�����`D( *) IF KDIAG(1)= 1 NO REGIONAL BUDGETS����H���6����|�����`D1 2 GLOBAL AND LAND BUDGETS ONLY���J���8����|�����`D3 3 GLOBAL AND ICE-FREE OCEAN ONLY���@���.����|�����`D( 4 GLOBAL BUDGETS ONLY����>���,����|�`D& 5 LAND BUDGETS ONLY�H���6����|�`D0 6 ICE-FREE OCEAN BUDGETS ONLY��B���0����|�`D+ 7 OCEAN-ICE BUDGETS ONLY���T���B����|�����`D= **) 8 REGIONAL BUDGETS ONLY on unit# iu_pd+12���N���<����|�����`D6 IF KDIAG(3)= N (>0) THE LAST N PAGES ARE SKIPPED ���H���6����|�����`D0 -N ONLY PAGE N IS PRINTED OUT����H���6����|�����`D1 IF KDIAG(10)>0 LON-HT TABLES ARE SUPPRESSED���N���<����|�����`D6 The rules for KDIAG are true for IPRINT_PD as well. ����������|�����`D����R���@����|�����`D; @) iu_pd is not written on (i.e., NOT YET PROGRAMMED for���,�������|�����`D special output)����������|�����`D����"�������|������ @diag����6���$����|�����@� @ modelgrid�@�@������������6���$����|�����@% @�@��������@ diag_path����(�������|�����@2 @ docref_full����*�������|�����@1 @���@success������������|�������2��� ����|�`Dsetup paths and input files�"�������|�@success@��H���6����|�@ diag_path @ PM_FindFolder w�DiagnosticsApps��N���<����|���@ @ @ diag_path��w� SumAndPd.stop��$@�����<���*����|�! @� @ diag_path��w� SumAndPd.stop���������|�����@�����������|��������B���0����|�����`D+copy over the land file from the run folder����������|�����@ @PM_CopyFortranz @�@���������w��� @ PM_FindFolder w� CurrentRun���@�@��������@ diag_path�@�@��������@���@����������������������|�����@ @PM_CopyFortranz @�@���������w��� @ PM_FindFolder w� CurrentRun���@�@��������@ diag_path�@�@��������@���@�����������������������|��������$�������|�����`D setup .I file���8���&����|�����@diag�@������@�Z $@��&������� ����|�����`Dpaths���B���0����|�����@ #@ PM_Platform�$@���wX Unix pathsT���^���L����|�����@diag@diag�� @ PM_FindFolder w�acc��X���@�Z $@��&����j���X����|�����@diag&@diag&�� @ PM_FindFolder w�postprocessing��X���@�Z $@��&����"�������|�����@�� PC PathsP�X���F����|�����@diag&@diag&�� @ PM_FindFolder w�acc���@�Z $@��&����d���R����|�����@diag&@diag&�� @ PM_FindFolder w�postprocessing���@�Z $@��&�����������|�����@���8���&����|�����`D!monthlies;quarters;seasons;annual���Z���H����|�! `DCalways do all four since I don't know what the user will want later���2��� ����|�����@diag&@diag&��w�ttttXSu�6���$����|�����`DIf ([PostProcessing]ij Monthly)��(�������|�����`D$diag:=$diag+"t"z������ ����|�����`DElse ���(�������|�����`D$diag:=$diag+"f"z������ ����|�����`DEnd if a�8���&����|�����`D!If ([PostProcessing]ij Quarterly)os�(�������|�����`D$diag:=$diag+"t"zth���� ����|�����`DElse �(�������|�����`D$diag:=$diag+"f"zch���� ����|�����`DEnd if ���8���&������������`D!If ([PostProcessing]ij Seasonaly)��(���������������`D$diag:=$diag+"t"z������ ������������`DElse ���(���������������`D$diag:=$diag+"f"z����� ������������`DEnd if ���8���&������������`D If ([PostProcessing]ij Annually)���(���������������`D$diag:=$diag+"t"z������ ������������`DElse uc�(��������������`D$diag:=$diag+"f"z������ ���������`DEnd if ���8���&���������@diag&@diag&��@�Z $@��&������� ���������`Dyears���L���:���������@diag&@diag&��@�  @�������@�Z $@��&����L���:���������@diag&@diag&��@�  @�������@�Z $@��&���� ���������������`Dgeometry���(���������������`Dcheck model/gridz���6���$������������ @GetModelAndGrid � @ modelgrid�������������������@���R���@������������@ @ modelgrid�@�@���������@�@���������wX8x10���F���4��������@diag�@diag���w�8x10X��@�Z $@��&��T���B��������@ @ modelgrid�@�@���������@�?��������wX7.8x10 �H���6�������� @diag�@diag���w�7.8x10���@�Z $@��&�����������������@���.���������������`Dpick diagnostics to run���:���(����N����`D"If ([Model Variables]Model 64 bit)���h���V����N�����@diag&@diag&��w�0 0 0 0 0 0 0 0 0 0 0 0��@�Z $@��&�wX everythingT������ ����N�����`DElse ���h���V����N�����`DP$diag:=$diag+"0 9 9 9 9 9 9 9 9 9 9 9"+Char(Carriage return )`only buget pages������ ����N�����`DEnd if ����������������������,���������������`Dwrite out the .I file���H���6������������@ diag_path @ PM_FindFolder w�DiagnosticsApps����D���2����������0@ docref_full@  @ diag_path��w�pd.I�� �2��� ������������@ #@ PM_Platform�$@������|���j������������@�g @ docref_full�@� @� @diage�@�Z $@��&��@�Z @�@����������w�:�w�/��������������������@���:���(������������@�g @ docref_full�@ @diage��������������������@���(���������������@  @ docref_full�KD�@���.����������&@ @ diag_path��w�pd.IX�w�R*ch��������������������4���"������������`Dcreate the folder for AllSeas���T���B������������@ diag_path @PostProcessing_SubFolderPath w�zonal�@�����8���&������������@ @ @ diag_path��$@������&���������������@ @ diag_path�@����������������@%���������������0@�0���������������`Dcreate the folder for Avg���V���D������������@ diag_path @PostProcessing_SubFolderPath w�average�@�����8���&������������@ @ @ diag_path��$@������&���������������@ @ diag_path�������������������@ d�����������������@�*���������������`Drun the application���D���2������������@path_ @ PM_FindFolder w�DiagnosticsApps����L���:������������@pathi @ PM_MakePath @patha�w� SumAndPd2�@�����d���R������������ @ PM_Launch @patha�wX4$success:=PostProcessing_LaunchAndWait ("SumAndPd2")���"���������������@success@�������������������@���B���0������������ @ Alert_Alert @�@���������@�@��������������������������@������������������@���B���0������������ @ Alert_Alert @�@���������@�@��������������������������@������������������������� ������������`Dcleanup���"��������������� @��@success������������DFCC4DU?�,Z�N���<����������7This creates a sumary of the run information instead of�|�P���>�����������9a traditional rundeck. The summary is based on the layout���P���>�����������8of the setup window and is written in English instead oft�N���<�����������6fortran namelist style. The titles are saved in a listW��>���,������������'and opened relative instead of absolute���B���0���������C�h^�listRef��listItem$��count��i�� �$������������u�n^�rundeck���0������������:�=^%��@���������str���6���$������������^�� modelgrid���@���������ry���������D��� ��(�������D���load list & grids��:���(����D��u�r^listRef��Rundeck Summary���.�������D��C�h^listItem$��?��������a�6���$����D��u�n ^GetModelAndGridj� modelgrid��c���������D��:�=��&�������D��h�acleanup rundeck�r�$�������D��t�e^rundeck������������D���5���������D��� topte�P���>����D�����^rundeck���������Z$���&����@���������is���������D��� ^�$�������D����� general infode�n���\����D��� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&�� �>���,���������� ^listItem$�listItem$����?��������e�z���h���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&���>���,���������� ^listItem$�listItem$����?��������e����p���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ����������Z$���&���>���,���������� ^listItem$�listItem$����?��������e����p������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ����������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�z���h��������0001^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&�00�>���,���������� ^listItem$�listItem$����?��������e����p������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ��v��������Z$���&����>���,����$��� ^listItem$�listItem$����?��������e�z���h����$���^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&�� �>���,���������� ^listItem$�listItem$����?��������e�z���h���������C�h^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&��i�>���,���������� ^listItem$�listItem$����?��������e�z���h���������:�=^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����|�������Z$���&���>���,���������� ^listItem$�listItem$����?��������e� ������������t�e ownership��"���������������^�m������un�,�����������^count����������2��� ������������^�count��������������Li�Z���H������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����"������������� ^�=������id�6���$����������^rundeck�rundeck���������2��� ���������u�r^�count���?���������t�6���$���������C�h^�i���@����������count�ry�,������������u�n^������������B���0���������+�^rundeck�rundeck���, 0��������t�������������I�t^�m�"������������r�t^�>������de�������������� ^r��������������^�)�<���*���������u�r^rundeck�rundeck����Z$���&���������������C�h^r�>���,���������o�d^listItem$�listItem$����?��������a�<���*���������l�i^rundeck�rundeck����Z$���&�����������������^�$������������e�t model versionis�n���\���������t�L^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&��>���,���������� ^listItem$�listItem$����?��������e�������������m�^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� �GetListItemStrA#� ModelNamesRef�� modelgrid���?������������Z$���&���>���,���������� ^listItem$�listItem$����?��������e�������������I�t^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� �GetListItemStrA#� ModelGridsRef�� modelgrid���@�������������Z$���&����@�����������>���,���������� ^listItem$�listItem$����?��������e�����������������^�"�������������  input filesl�n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&���>���,���������� ^listItem$�listItem$����?��������e�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����p������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ����������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����p������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ��l��������Z$���&����>���,���������� ^listItem$�listItem$����?��������e���� ������������istartip�Z���H������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������������^c�H���6������������^��������@���������y@GCM restart fileef����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����?������������Z$���&����N���<���������� ^��������@��������y@Restart file for rewind�����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����@�������������Z$���&����P���>���������� ^��������@��������y@Restart file, ground data�����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����@�������������Z$���&����������������� ^�$����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����@������������Z$���&����������������� ^�$�>���,������������^listItem$�listItem$����@��������z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����o�������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�<���*������������$ground data is only used by istart=5����2��� ������������^��������@�����������z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����������������^r�>���,������������^listItem$�listItem$����?�������������������������^r�Z���H������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$���� ���������������^������r�H���6���������� ^rundeck�rundeck���Yes����Z$���&������������������^r�H���6���������� ^rundeck�rundeck���No0����Z$���&������������������^l�>���,������������^listItem$�listItem$����?��������z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����~�������Z$���&��>���,���������� ^listItem$�listItem$����?��������e�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&��>���,���������� ^listItem$�listItem$����?��������e����~������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����@������������>���,���������� ^listItem$�listItem$����?��������e�����������������^�"��������������� ocean model��n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&���>���,���������� ^listItem$�listItem$����?������� f�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&���>���,���������� ^listItem$�listItem$����?��������e�>���,������������'have to adjust list based on ocean mode�z���h���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&�� �>���,���������� ^listItem$�listItem$����?��������e�z���h���������� ^�������������������� �������y@/show max mixed layer depth unless just sst mode� �z���h����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&���������������� ^�$�>���,���������� ^listItem$�listItem$����?��������e�r���`������������^��������?��������� ��������@����������y@qflux and deep ocean���z���h����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&���>���,���������� ^listItem$�listItem$����?��������e����p���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ����������Z$���&��i�>���,���������� ^listItem$�listItem$����?��������e����������������^l�>���,������������^listItem$�listItem$����@��������������������������^r�F���4������������^��������@���������y@deep ocean onlytR�z���h������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&����������������� ^�$�>���,������������^listItem$�listItem$����?�������$��h���V������������^����������������������������y@collect fluxes from sst mode���n���\����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&���>���,������������^listItem$�listItem$����?��������H���6���������� ^str �GetListItemStrA�listRef��listItem$���j���X������������^rundeck�rundeck�����str��^0��� �����������Z$���&���>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$�ef�j���X���������� ^rundeck�rundeck�����str��^0��� �����������Z$���&��t�>���,���������� ^listItem$�listItem$����?��������e�z���h���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����n�������Z$���&�� �>���,���������� ^listItem$�listItem$����?��������e�������������� ^l�>���,������������^listItem$�listItem$����@�������������������������^�l���Z������������^��������?�����������������y@!collect diffusion from qflux mode��n���\����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&������������������^r�>���,���������� ^listItem$�listItem$����?��������e�<���*������������^rundeck�rundeck����Z$���&�de�����������������^�(������������� diagnostic outputte�n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&�us�>���,����������^listItem$�listItem$����?��������Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��i�X���F������������^������y@2only print include extra data if generating output(���H���6������������^rundeck�rundeck���Yes����Z$���&���>���,����������^listItem$�listItem$����?��������Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��i�V���D������������^������y@1 this is too bad since I had to reused a variablem$�H���6���������� ^rundeck�rundeck���Yes����Z$���&������������������^r�H���6������������^rundeck�rundeck���No0����Z$���&�������������������^���>���,������������^listItem$�listItem$����?�������ea����������������^r�H���6���������� ^rundeck�rundeck���No0����Z$���&���>���,������������^listItem$�listItem$����@������������������������^�z���h����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$������������Z$���&���>���,���������� ^listItem$�listItem$����?��������e�J���8������������^������y@$collection sea level pressure field?���n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&����>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$����j���X������������^rundeck�rundeck�����str��^0��� �����������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����������������^r�>���,���������� ^listItem$�listItem$����@���������e����������������^l�<���*������������^rundeck�rundeck����Z$���&��������������������^�&���������������forcings, solar��n���\����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&���>���,������������^listItem$�listItem$����?�������/@�Z���H������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����>���,������������^listItem$�listItem$����?���������N���<������������7check if the solar value matches the value for the year���X���F������������^��������@ `���������������P��@ ����������X���F������������^���������������f�01/01/@���� ����������,���������������^��������T������P���>������������^rundeck�rundeck���� ����������Z$���&�is����������������^����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����?������������Z$���&����������������� ^�$����������������^r�n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&�������������������^r�>���,������������^listItem$�listItem$����@�����������H���6������������^str �GetListItemStrA�listRef��listItem$�ef����n������������^rundeck�rundeck�����str��^0��� ��T���������Z$���&����@������������>���,���������� ^listItem$�listItem$����?��������e��������������� ^�"��������������� solar trendun�Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$���� ������������� ^��U����r�L���:������������^rundeck�rundeck���enabled����Z$���&������|������������^rundeck�rundeck�� �Rundeck_Summary_Trend�Solar�j��V����j��W�����W/m^2�j��X����j��Y�������������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�Solar�j��Z����j��[�����W/m^2�j��\����j��]��������Z$���&��������7����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u����������������^s�>���,������������^listItem$�listItem$����?�������^��������������� ^�$��������������� forcings ghggh�n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&����>���,������������^listItem$�listItem$����?�������/�Z���H����������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��r�>���,������������^listItem$�listItem$����?��������>���,����������&check if the ghg values match the year �o�X���F������������^��j������@ �����������j����p��@ 0����������X���F����������^���������������f�01/01/���� ��j�������e����������������^������������������������������������&��������������0��������������B��������P���>�������^rundeck�rundeck���� ��j��������Z$���&��e��������������^�I����n������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����?������������Z$���&����������������� ^�$����������������^�n���\������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$�����Z$���&�������������������^s�>���,������������^listItem$�listItem$����@���������H���6���������� ^str �GetListItemStrA�listRef��listItem$���j���X������������^rundeck�rundeck�����str��^0��� �����������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$����j���X������������^rundeck�rundeck�����str��^0��� �����������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$��j���X���������� ^rundeck�rundeck�����str��^0��� ��&���������Z$���&��n�>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$����j���X������������^rundeck�rundeck�����str��^0��� ��0���������Z$���&����>���,���������� ^listItem$�listItem$����?��������e�H���6������������^str �GetListItemStrA�listRef��listItem$��&����n���������� ^rundeck�rundeck�����str��^0��� ��B���������Z$���&����@�����������>���,���������� ^listItem$�listItem$����?��������e��������������� ^�6���$���������� trends are handled differentlyle�Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� ������������� ^��������L���:������������^rundeck�rundeck���enabled����Z$���&�������x������������^rundeck�rundeck�� �Rundeck_Summary_Trend�CO2�j������j�������ppm�j������j���������������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CO2�j������j�� �����ppm�j�� ����j�� ��������Z$���&��������W����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u�������������� ^l�>���,������������^listItem$�listItem$����?�������_T�Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� �������������^��������L���:����������^rundeck�rundeck���enabled����Z$���&��&����x����������^rundeck�rundeck�� �Rundeck_Summary_Trend�N2O�j������j�������ppm�j������j�������l�������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�N2O�j������j�������ppm�j������j����������Z$���&��������S����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u�������������� ^�$�>���,������������^listItem$�listItem$����?��������Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� ������������� ^��'������L���:������������^rundeck�rundeck���enabled����Z$���&�������x���������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CH4�j��(����j��)�����ppm�j��*����j��+�����;�������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CH4�j������j�������ppm�j������j����������Z$���&��������;����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u�������������� ^l�>���,������������^listItem$�listItem$����?�������is�Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$��� ������������� ^��1������L���:������������^rundeck�rundeck���enabled����Z$���&�������z���������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CFC11�j��2����j��3�����ppt�j��4����j��5������������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CFC11�j��6����j��7�����ppt�j��8����j��9��������Z$���&��;������5����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u�������������� ^l�>���,������������^listItem$�listItem$����?�������_T�Z���H���������� ^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$���� ������������� ^��C����r�L���:������������^rundeck�rundeck���enabled����Z$���&�������z���������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CFC12�j��D����j��E�����ppt�j��F����j��G�����"�������������� ^rundeck�rundeck�� �Rundeck_Summary_Trend�CFC12�j��H����j��I�����ppt�j��J����j��K��������Z$���&��;������5����� ^�$�d���R���������� ^rundeck�rundeck���disabled�����Z$���&����@����������u�������������� ^r�>���,������������^listItem$�listItem$����?��������������������������^���� ������������orbits��Z���H������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����z���h������������^��x���������������������w���������������������y���������������������$������������� default orbit��d���R������������^rundeck�rundeck���: modern�����Z$���&����@������������>���,���������� ^listItem$�listItem$����@��������_T�������������� ^r� ��������������� set orbit��>���,������������^listItem$�listItem$����?�����������������������^rundeck�rundeck����Z$���&��� �GetListItemStrA�listRef��listItem$����� ��w��������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����p������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ��x��������Z$���&����>���,���������� ^listItem$�listItem$����?��������e����������������^rundeck�rundeck�� �GetListItemStrA�listRef��listItem$����� ��y��������Z$���&����@������������������������� ^�$�>���,���������� ^listItem$�listItem$����?������������������������������ ������������cleanup���0���������������#^Rundeck_Summary�rundeck���$���������������^y�listRef�������������������������������������DFCC4Ds�,�`���N�� ]�� ]���8FResize the length of the run list manually to match the height of the ��\�b���P����������8Hwindow. This replaces the autoresize option because I need the group to ����*����������������8shrink properly ���:���(���������8!Now has Run list as the 2nd item �����������r������������ �������������8var �����"�������������topg+�$�����������Z^��left"t�&����������������bottoml"�$�����������{{��rightdu�*����������������� windHeightw���&����������������divPosl"�$�����������{s��item"f�V���D������� toolHeightt� listHeightl� subHeight� newHeight���������\�<���*����������8#get the height of all the sections ����2��� ���������� toolHeightt��������������T���B����������item��?������� � ToolbarLeno�@��?������� s�V���D���������� �ToolbarVisible�itemb�@��,visible section �J���8���������� � ToolbarStateo�itemb�@��,closed �D���2���������� toolHeightt� toolHeightt��@��@�������� � ���������?�����open � s�d���R���������� toolHeightt� toolHeightt��@ � ToolbarHeight�itemb��@��@������������������������� s����������������x�����������������������������\�6���$����������8get the height of the window ���B���0�����������left�top�right�bottomlID�J���8���������� windHeightw�bottoml�@�top�@��@���������0������������� newHeight�������������ad�X���F�����������@\� List_List�left�top�right�bottomle�������������\�X���F�������������8>if the sections are too tall shrink the runlist (if possible) ,� �:���(�������������� toolHeightt�@� windHeightwSt�|���j������������� �ToolbarVisible��@���������@���@ � ToolbarStateo��@���������@��un�*����������������8get heights ��8���&������������� listHeightl�bottoml�@�top����B���0������������� subHeight� toolHeightt�@� windHeightw�nd�J���8�������������� listHeightl�@� subHeight�@��@��������@���.������������� newHeight� listHeightl�@� subHeight�� ���������������������0���������������� newHeight��@�������� o���������5��������^���L���������� newHeight� listHeightl�@� newHeight�@�@��?����������.�������������8shrink run list ����p���^�����������@\� List_List@������������������������������������� newHeight�r���������8�������������������������"�����������������(�j���X�������������8Qif the sections don't take all the space then lengthen the runlist and push the �de�:���(�������������� toolHeightt�@� windHeightw��|���j������������� �ToolbarVisible��@���������@���@ � ToolbarStateo��@���������@��ƀ�*����������������8get heights ����X���F��������������@\� List_List�left�top�right�bottomlte�8���&������������� listHeightl�bottoml�@�top����B���0������������� newHeight� windHeightw�@� toolHeightt���.������� ������8resize run list ����p���^���� �������@\� List_List@������������������������������������� newHeight���������� ��������������� �������rf�������� ������\�>���,���� ������8$move other sections & change height ����8���&���� ������� newHeight�@�������������B���0���� �������item��@�������� � ToolbarLenol����r���� �������@ � ToolbarName�itemb��@\�@������������� newHeight�������������������������.����|���� �������@\�z��@ � ToolbarName�itemb��@\�@������������� newHeight���������������������������������� ��������j���X���� ����� � ToolbarHeight��@�������� � ToolbarHeight��@����������@� newHeight����������� �������������� �����\�:���(���� �4������?��������@��@�����������\���J���� �������@\� zList_Divider�left�top�right�bottoml�0�*������� ������divPosl�bottoml��t���b���� �������@\�List@�left�bottoml��@��?��������right� windHeightw�@ge�������� �����\�F���4���� ������8-need to update height because it is dynamic ��H���6���� ������� windHeightw�@�bottoml�@������������ef�P���>�������������item�� � ToolbarName\�List��?����������N���<������������ � ToolbarHeight�itemb� windHeightw�@�bottoml������������������������������������������x����DFCC4D#���d���R��������d�d@0�Kthis code takes in the field to sort and the name of the text to change the@b�D���2��������d�d@0�*sort order and undeline the collumn headerh@����� ��������d�d@0�input@���&�����������d�d@0� ->[db]field@��0������������d�d@0� name of collumn header@��������������d�d@"�,������������d�d@-@ @�@@field_p@@�:���(���������d�d@%@@%@�������@@ fieldName_s@@���$������������d�d@field_p@ @�@ "�(������������d�d@ fieldName_s@ @�@�������������d�d@"�������������d�d@@���D���2���_�����d�d@0�+order based on what has been clicked on @`�*�����������d�d@@@�@$@��@@���8���&���������d�d@�1@@�����@@field_p@@�@f@@���<���*���������d�d@�@�@@@� FieldLabel@@$@��@@���Z���H��������d�d@�@�@@@� FieldLabel_�@�@ fieldName_s@$@���@�$@��@@���������������d�d@"�6���$��������d�d@0�initially order by run number@���*������������d�d@@@�@$@��@@&�4���"���������d�d@�1@@�����@@����@�@@@��<���*���������d�d@�@�@@@� FieldLabel@@$@��@@g_�R���@���������d�d@�@�@@@�FieldLabel_RunNumber�@$@���@�$@��@@n �������������d�d@���������������d�d@@����������������������DFCC4D,TV�^���L��'��&��b$Gstart process to start GCM, this gets around the dialog locking problemV����������b$������� ���������b$ input������ ��������b$ none������ ����:����b$ output���� ���������� b$ none�a�,�����������0001� #@Setup_ProcessID�08�������������EMaker�0���������������b$find if setup is running����\���J��������TAT @ @Process_FindWindow #@Simulation_ProcessID(��@������������.0�R���@�������� S b$:if setup is open do the setup in through the setup process<??�6���$�������� 0:0#@Simulation_Button@�@������� a�2��� ��������@I #@Simulation_ProcessID(����������������@���P���>��������b$8if setup is not running then setup through a new processO��������������&�����������b$update window $��*���������������b$Safe_SaveSimulation���P���>������������@� @������ @Run_Critical_GetRunN; @�@���������7�����������������������2��� ������������b$start process to run model���d���R������������#@Setup_ProcessID@= w�Setup_StartGCM�#@ StackSize�w� Setup_Process�������������������@��@I #@Simulation_ProcessID(����������������@���P��DFCC4D[�N�/�T���B��'��&��b$=assess if the new entry is acceptable for the assignment list���D���2��������3@��b$,if so add it to the database and to the list����������������b$������� ������������b$ input������ ��������b$ none�M���� ����������b$ output������ �������� b$ noneno�������������H2M12.�8���&��������14.4b$!check that the user picked a typeol�T���B��������TAT �  @R1��8@�?����������  @R2�8@�?��������� �:���(�������� @ @� @Name���@������������.5�.�����������@ @ AssEditMode�@���D���2��������kZo{@found @Assign_FindRecord @��7 @Nameg����������������@��� �����������@found@�������������@�>���,��������@ @ AssEditMode��  @found�@���������������@�:���(��������@ @R1u�8@�?��������wXfile�R���@��������)))% @Assign_DoRecord 7 @Nameg�@�?��������7 @filenamef����:���(��������@ @R2l�8@�?��������wXhtml2��L���:������������b$4check that URL contains http:// and add if necessary���F���4������������@ @� w�http://� @Url��8@���������������0��������������� @Urlw�http://�� @Url������������������@���L���:������������ @Assign_DoRecord 7 @Nameg�@�@���������7 @Url����8���&������������@ @R3l�8@�?��������wX?? ������������������@�&������������������@������������������@�&��������������.@..����������������@���H���6������������ @Alert_ParamText @Namet�w���w���w������R���@������������ @ Alert_Alert @�@���������@�@��������@�@���������������������������@�&��������������9@99����������������@���R���@������������ @ Alert_Alert @�@���������@�@��������@�@���������������������������@�&������������������@������������������@���R���@������������ @ Alert_Alert @�@���������@�@��������@�@���������������������������@�&������������������@�� 0���>���,������������@#@Simulation_Button�@�?�����������6���$������������#@Simulation_Button@�@����������2��� ������������@I#@Simulation_ProcessID(�������������������@���6���$������������#@Simulation_Button@�����������������������������@������������DFCC4D^M�:B�8���&��'��&��`D!setup the post processing processZR�2��� ������������ #@PostProcessing_Button����0��������������@ #@SetsCurrentVersion��*�����������0001@1 @ StartEndReady�00�:���(��������EMak@� @ TabSavedYears�@���������������B���0������������@ @SetButtonTextAlready(� @ TimerCounti����:���(��������aaaa @SetButtonTextAlready(@�������������0��������������� @ TimerCounti@���������������������������������d���R������������`DMoffically assign name/number pairs for the tabs to avoid the ordering problem��d���R������������`DMcause by Mark's name of the week way of handling tabs in Analyze Output. This���h���V������������`DQfixes a problem where the form pages have problems when the tab order is changed.���X���F������������@ @ pTimeSeries� @pMaps� @ pVertical� @pZonalc� @pTables����*������������� @pMaps@�?����������.��������������� @ pVertical@�@�����������,��������������� @pZonal�@�@��������w �0�������������� @ pTimeSeries@�@����������,�����������^4 @pTables@�@����������������������������&�����������@���`Dopen the window���:���(������������#@PostProcessing_Button@��������������.���������������@�C w�PostProcessing����B���0��������� @�7 @������w�PostProcessing Too��X����~���l������������`DQmyWind:=Open form window([PostProcessing];"PostProcessing Too";Plain window ;Too`Dlbar_Width;45;*)m������������������ @myWind�@� #@ Toolbar_Width�@�@��������@�@���������#@ Toolbar_Width�@�@@��������@�@��������$@�"� �w�Analyse Output�w� Generic_Close�������������������������� ������������@F @B����$��������������A@ @myWind������������������������4���"�����������`Dsetup database tables & sets������ ������������@� �X����"���������������@� @��������"��������������@� @���������"���������������@� @�������"���������������@� @���������"���������������@� @���������"���������������@�/ @���������"���������������@�/ @���������"���������������@�/ @�������"���������������@�/ @���������0���������������@�t @������w�All AJ����0���������������@�t @������w�All AIJ����0���������������@�t @������w�All AJK����2��� ������������@�t @������w�All ALat����<���*��������@ @������@�����w�Tables��:���(��������@ @�L @�������@������������)�"�����������@�D @�������(����������� ))@����w�Tables�"���������������@�5 @������������������������@���"���������������@�/ @���������"���������������@�2 @���������������������������� ���������������`D temp hack���&���������������@����w�Jean���(���������������@����w�Default���&���������������@����w�Jean���(���������������@����w�Default���"���������������@�5 @���������������������������� ���������������`Dset pref���"���������������@�/ @���������"���������������@�2 @������������������������&���������������`Dsetup the restg�(��������������� @ StartEndReady@����6���$��������! `DRunArray_ManagePostProcessors ..�(��������������� @Run_PostProcessing���"��������������� @ SetArray_InittS�,��������������� @PostProcessing_SetsSet���(��������������� @ StartEndReady@����*���������������`DSafe_CurrentState H������������������� @����������������@���(���������������@�9 @�������X�so�0��������������� @ @OK�@������������or��������������������V���D������������`D? The close box associated with this window pauses the process. ra�Z���H������������`DB The window stays ready for use throughout the use of the program.��������������������h���V�����������#@PostProcessing_ProcessID@������������� $ Reset process ID tracking variable.����������������������*���������������`D End of procedure.H��������������������������������������DFCC4DRn�{�:���(��%n��$n��gS"Dialog to ask about creating a setNT��������*����^������@���������dP��@�������������@���������dP��@�������������@���������c���@�������������@���������c���@��������$��'���New Set�y@ Open a modal windowc���8���&���������� ^ FolderTextod�Name of new set:�S�.�������������� ^ Foldernameod�new set�<���*�����������^�(��������PastePICTNewFolder��������������0001^�00�,�����������EMakScheck they clicked okns�0�����������^ �OKd� ��?�����������6���$��������Scheck for a unique record name�J���8��������^������� � Foldernameo��p��������������,�����������111 ^setNamed � Foldernameo S�"�����������^��������� ����������� ^ Sets_Create�"�����������RRR^����������"��������������^���������@���.��������S)open the sets window if it is not already�6���$�����������^stated�J#�Sets_ProcessIDA�R�2��� ��������^�state������������������ ������������ ^ Sets_Open������������������^���T���B������������S<reopen the window/bring to frount and change the current setA������ ������������ ^ Sets_Open���"���������������S set the set���0���������������#^ Sets_Buttond��@����������,���������������^I#�Sets_ProcessIDA�������������������^������������������^���N���<������������ ^Alert_ParamText � Foldernameo���c���c���c����B���0������������ ^ Alert_Alert��?����������@��������������������������^������������������^����������������������DFCC4D�(�2��� ��%��$��gSChange which window is openDT���� �����������S input�$��������������S mode to use���(���������������� @��@mode����� ���������������@mode�> @����������������)))%������������@�(��������������@@�$@������(����������� @ViewModeV>@modeM���� ��������SOK:=0������������@ ������������@ ������������111@��������DFCC4D>1�j�f���T��%��$��gSOSee if there are any serious errors in a simulation that would break a rundeck.Z�T���B�����������S<If there are serious errors then a warning dialog is put up.����P���>������������S9Output is true/false based on if the simluation looks ok.�������������������������������Svar������ ������������1 @�����&�����������@@ error_num��:���(��������@%@�@�������� @ RundeckTitlen��8���&����޺��� @%@�@�������� @ RundeckDesc��e�J���8����޺�� �@�@�@�������� @ RundeckErrors�@�@���������a�$�������޺���@@listRef��R�$�������޺���@@listLen��i�(�������޺��)� @@ listItemRef�����������޺���)����� ����޺���[Ssetup� �:���(����޺��e�r@listRef*@w�lRundeck Errors��r�0�������޺�����@listLen*@|@listRef����T���B����޺��� @ RundeckTitlen* @GetListItemStr*@listRef�@�?���������e�R���@����޺�� � @ RundeckDesc* @GetListItemStr*@listRef�@�@����������m���������޺����(�(�������޺���Saccumulate errors�g�.�������޺��)� @ error_num*@������������I�:���(����޺���)@@�@������@��������������>���,����޺���[@ error_num*@ error_num�*�@�?��������t�|���j����޺��e�r @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@����������S��������޺�����@���6���$����޺�����@@�����@�fw�l0/0/0�����>���,����޺�@ error_num*@�?��������*�@ error_num�|���j����޺� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@����������������޺�@�6���$����޺�@@�����@�fw�l0/0/0���>���,����޺�@ error_num*@�?��������*�@ error_num�|���j����޺�  @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������E��������޺���@�E�:���(����޺���@@�@������@������������_n�>���,����޺��)� @ error_num*@�?��������*�@ error_numrr�|���j����޺���) @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������c��������޺���[@�:���(����޺�@@�@�|�����@������������_n�>���,����޺�@ error_num*@�?��������*�@ error_numrr�|���j����޺��� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@�����������������޺��s�t@����x����޺��E�n@@�@������@�������������x @�����w�l2YOU MUST TYPE A SHORT DESCRIPTION OF YOUR RUN HEREg����>���,����޺��m�S@ error_num*@�?��������*�@ error_numrr�|���j����޺��o�r @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@�����������������޺���3@�2��� ����޺��o�r@@�����wl@������������@�>���,����޺� @ error_num*@�?��������*�@ error_numrr�|���j����޺��� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������o��������޺�� �@�l�2��� ����޺���@@�����wl@��������������>���,����޺���@ error_num*@�?��������*�@ error_num�r�|���j����޺��)� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������0��������޺���)@��2��� ����޺���[@@�&����wl@�������������C�>���,����޺��r�_@ error_num*@�?��������*�@ error_num��|���j����޺��E�A @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@�����������������޺�@�2��� ����޺�@@�0����wl@������������@�>���,����޺�@ error_num*@�?��������*�@ error_numrr�|���j����޺����� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@������������������޺�����@ R�2��� ����޺�����@@�B����wl@������������@�>���,����޺�����@ error_num*@�?��������*�@ error_numrr�|���j����޺����� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@������������������޺�����@ R�2��� ����޺�����@@�T����wl@��������������>���,����޺�����@ error_num*@�?��������*�@ error_num���|���j����޺����� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@��������?��������޺���@ R�4���"����޺�����@@�����*@�@������s �>���,����޺�����@ error_num*@�?��������*�@ error_num��|���j����޺����� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@������������������޺�����@ R�X���F����޺�����@@�����@�@�����������x@�������@�@ �����������>���,����޺�����@ error_num*@�?��������*�@ error_num��|���j����޺����� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@��������@��������޺�����@ R�T���B����޺�����@@�����@�@�����������x@�����*��� ��0,�>���,����޺����@ error_num*@�?��������*�@ error_num���|���j����޺��� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@����������������������8��@ e� ��������������@@�����rs�4���"��������@@@�@������ @��������>���,��������?�@ error_num*@�?��������*�@ error_num R�|���j����������� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@��������������������������@ e����������������@ R�\���J������������@@�y���� ��*`@�@���������x @�y���� @�@�����������>���,������������@ error_num*@�?��������*�@ error_num@�|���j������������ @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@��������������������� @��\���J������ �@@�x����wl�*`@�@���������x @�x����*@�@����������e�>���,�������@ error_num*@�?��������*�@ error_num��|���j������� @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������r����������)� @��X���F����������)@@�w����wl@�������������x @�w����*@�?����������e�>���,����������[@ error_num*@�?��������*�@ error_num�t�|���j���������e�r @ RundeckErrors�@ error_num*@� @ error_num��*� @GetListItemStr*@listRef�@�@���������S�������������4�0@�����������������@�&������������� Sdisplay results�m�6���$���������L�E@@ error_num�@�������������t���� ������������ @��*@���������������EMak@ S�*���������������Scleanup array listi���j���X���������@� @ RundeckErrors�@ error_num�*�@�?��������@�@��������*`@ error_num��&�����������Serror dialog ���>���,���������@�7@������w�lRundeck Errors�����������������@�@��*`@�@��������� @�@���������@��*`@�@��������� @�@����������*`@�?���������*`@�?��������$@�'��w�l�*����8���&�����������@�(@������w�lRundeck Errors������������������@������� ������������ @��*@�������������������@������������������������� ������������Scleanup���$���������������@y@listRef����*���������������@�Y @ RundeckErrors����*���������������@�Y @ RundeckTitlen����(���������������@�Y @ RundeckDesc�������������������������������������������������DFCC4Dg �,z��d���R�� ]�� ]���8JPM_RecursiveCopy as the name implies copies a folder and all its contents ��k.�f���T������������8Lto another location. The most common case for this is a package application ��8�4���"������������8which is really a folder. �������������������8 �tL� ����������������8 input �ck�V���D�������������8= source path & folder name, eg Mana:Applications:Safari.app ��J���8�������������81 dest path & folder name, eg Mana:Safari1.2.app ��"����������������8 output l���6���$�������������8 errors (longint), 0=noerr Z����P���>������������(%y(�@�������y (�y (�y(srcPathy(destPath�yy��(���������������(y (��y(erryyeI�8���&������������(y( folderCounty( fileCountyy���H���6������������(�y(�@�������y(fileList�y(�����������yy�J���8������������(�y(�@�������y( folderList�y(�����������yy�$���������������(srcPathy (�( �&���������������(destPath�y (�(rs�*���������������(erry(�����������(����������������([�$����������������8 path test <�ef�@���.������������(y(y(destPath�y�y@(�����������yy�4����������������y[�>���,�������������8%create folder and get info about src ����(���������������(y(destPath�yy�4���"������������(y(srcPathy(fileList�yy i�6���$������������( fileCounty(y(fileListtyyn �6���$������������(y(srcPathy( folderList�yy� �:���(������������( folderCounty(y( folderListtyy�����������������y��6���$�������������8recurse over the folder list �� �:���(������������(y( folderCount�y@(�����������yy��>���,������������(y(iy(�?�������y( folderCountyy������������������ (PM_RecursiveCopyy ( PM_MakePathy(srcPathy( folderListhy(iyy(�yy ( PM_MakePathy(destPathay( folderListhy(iyy(�yyy� ����������������((@����������������((@����������������(��(����������������8copy the files ��8���&������������(y( fileCount�y@(�����������yyor�<���*������������(y(iy(�?�������y( fileCountyy������~������������(y ( PM_MakePathy(srcPathy(fileListay(iyy(�yy ( PM_MakePathy(destPathay(fileListay(iyy(�yyy�s����������������((������������������((������������������(( o�.���������������(erry�y@(�?�������(������������������((������������������([�"����������������8cleanup l�um� ��������������� (��y(err(�������������������������������������������������DFCC4D(�\y�V���D�� �����7d=create subrecords, up to ten not counting those already there�@�,�����������MUTX\- ����subPtr��@�$��������������\�count����$���������������\subPtr� ���s ����������������[�*�����������opsi�7dcount subrecords��(�������v��\�m�subPtr}����D���2����v�����\count��@�������������subPtr}����������v������(�4���"����v�����\�count���������������� �������v�MUTX�7dcreate����8���&���������\�i���?���������count�����(������������\�H�subPtr}����D���2���������7d*[Model Variables]Keywords'Keyword:="empty"�y������������\\ o������������\\������������������������������������DFCC4DT-�,E�V���D��$��#��L?Create the traditional sections of the rundeck that are used byB�T���B��������o��=the setup script. These sections are lovingly redendered with���\���J�����������Dfull accuracy for the historically minded. However as of the current���Z���H�����������Cversion the object modules section is replaced with a model versionI�*��������������section from 2.4.1���������������000100������������EMakvarli�6���$������������^�� modelgrid���@����������������������������:���(����������C#traditional human readable header ��l���Z���������a�y^������������.R Model II ���� ��v����y@writes the run number�)��������������^�������������Z$���&����@������������ Creator: �����������Z$���&�y@ writes ownery��n���\����H�� �^������������ Comments: �����|�������Z$���&����@����������>���������H��M�o�d�$�������H��b�l model version�B�6���$����H��� ^GetModelAndGrid�� modelgrid��R�P���>����H��C�a^������������Model version:����Z$���&����������H��n�^������������ Model=��� �GetListItemStrA#� ModelNamesRef�� modelgrid���?������������Z$���&��l��������H��o�d^������������ Grid=�� �GetListItemStrA#� ModelGridsRef�� modelgrid���@�������������Z$���&����@����������k���������H�� ���,������������s�tdata and input files��V���D����������^������������Data and input files:����Z$���&��M�:���(��������� �r^����������������������� �R���@���������g�r^������������ 7=�����������Z$���&��c��������������^�[�:���(���������e�l^����o�������������������>�R���@���������)� ^������������ 9=����o�������Z$���&���������������[�M^�d�:���(���������e�l^������������������������R���@����������^������������ 15=�����������Z$���&������������������^�`���N������������^�����������������������������������������������R���@������������^������������ 17=�����������Z$���&�������������������^�:���(������������^����~��������������������R���@������������^������������ 19=����~�������Z$���&�������������������^�:���(������������^������������������������R���@������������^������������ 21=�����������Z$���&�������������������^�:���(������������^������������������������R���@������������^������������ 22=�����������Z$���&�������������������^�:���(������������^������������������������R���@������������^������������ 23=�����������Z$���&�������������������^�`���N������������^�����������������������������������������������R���@������������^������������ 25=�����������Z$���&�������������������^�:���(������������^������������������������R���@������������^������������ 26=�����������Z$���&�������������������^�:���(������������^������������������������R���@������������^������������ 29=�����������Z$���&�������������������^�`���N������������^��������������������������������?������������R���@������������^������������ 62=�����������Z$���&�������������������^�8���&������������^�������������Z$���&�������������������^�*���������������label and namelist�Z�T���B������������^������������Label and namelist:����Z$���&����|���j������������^������������������� (0����������)����Z$���&����@���������������������DFCC4D"O�,^�|���j�� �� ����8Qrun ostpec, now does the multipliers for the ocean heat transports as per Gary's �8 instructions ��]�$��������������((diag�3�8���&�����������(%(�@�������( diag_path���*���������������(2( docref_full�"���������������((posmR�$��������������((iteme3�6���$�����������((COT_Mult�(AMP_Mult���������������chic� �������˞������8setup ��en�.�������˞�����( diag_path ( InputPath(����������˞�����(3�(�������˞������8do multipliers �B��*�������˞�����(COT_Mult�(�� ��(3�*�������˞�����(AMP_Mult�(�� ��(�8���&������������((COT_Mult��@(�?����������0���������������(COT_Mult�(�?�������(e ����������������((im�8���&������������((COT_Mult��@(�@����������0���������������(COT_Mult�(�@�������(to����������������((�8���&������������((AMP_Mult��@(�?�������ar�0���������������(AMP_Mult�(�?�������(ct���������������((3�8���&������������((AMP_Mult��@(�@�������3�0��������������(AMP_Mult�(�@�������(�Z������������6���((e ������������6���(3�,����������������8set otspec.I file ^�@�`���N������������(diag�(� (�� ���@(�� ����@(�?���������@(�Z$(��&�d�n���\������������(diag&(diag&��@ ( RealToF18.5(COT_Mult8�@(�@���������@(�Z$(��&���n���\��������P(diag&(diag&��@ ( RealToF18.5(AMP_Mult8�@(�@���������@(�Z$(��&���Z���H��������3���(diag&(diag&��@ ( OutputPath���@�XCORR��@(�Z$(��&�N���<������������((( diag_path��@� FOR026.DAT,�@$(�����^���L������������(diag(diag��@( diag_path��@� FOR015.DAT&��@(�Z$(��&���z���h�����������(diag&(diag&��@( diag_path��@�ocean��@ (PathCharh��@� OceanFlux��@(�Z$(��&3�^���L������������(diag&(diag&��@( diag_path��@� FOR025.DAT&��@(�Z$(��&���^���L������������(diag&(diag&��@( diag_path��@� FOR026.DAT&��@(�Z$(��&������������������((lo�Z���H������������(diag&(diag&��@( diag_path��@�fort.15��@(�Z$(��&�z���h������������(diag&(diag&��@( diag_path��@�ocean��@ (PathCharh��@� OceanFlux��@(�Z$(��&�\�Z���H������������(diag&(diag&��@( diag_path��@�fort.25��@(�Z$(��&��Z���H������������(diag&(diag&��@( diag_path��@�fort.26��@(�Z$(��&����������������((�^���L������������(diag&(diag&��@ ( OutputPath���@� tg_arrays��@(�Z$(��&������������������(diag&(diag&��@ ( OutputPath���@�otspec_��@(������@�_��@(� (COT_Multt�@(�@��������##0.00P��@�.otsp��@(�Z$(��&am�`���N������������(diag&(diag&��@ ( OutputPath���@� otspec.prt&��@(�Z$(��&3����������������3�:���(�������������8!write out the .I file and launch ���R���@������������ (OHT_SaveAndLaunch(diagS�otspec.I��otspecP3����������������������������������DFCC4DU8�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qun_Critical_BeginN���<���*�����������p#@RunNumberArrayz�@�������������4���"�����������#@RunNumberArrayzN@�?������������������������@���D���2������������@} @RunNumberArrayHierN�#@RunNumberArrayH����&�����������8d @Run_Critical_End��*��������������� @Run_UpdateSimControls���&�����������@��� @Toolbar_IBC_View���&��������������� @Toolbar_IBC_Sort��������������������������DFCC4DW�~�N���<��"R��!R��,�27Shows the user the run folder in the Finder, similar to �0������������2the same meathod in Setup�����������~�����������������������2var��� �����������^�err���6���$������������^%��@��������� runFolder����������������N���0�����������0001�2find run folder and open���,�����������EMak^ runFolder �Run_PathRns�8���&������������^�� runFolder���R$�������D���2���������t�h^��p��� ShowFolder��� 3;1;?2002;240��o�,�������������� ^ FinderToPathn��������������������^���D���2��������^��p��� ShowFolder��� 3;1;?2015;240�������������^��������������DFCC4D  �H���6�� �� �� �7d.this code loads a section into the text windowd���� �������������7d input`��8���&���������7d section number (0 = abstract)����4���"���������� ] ����currentSectionA���,��������������]currentSectionA. ��� ������������o I.���2��� ��������0001�7dsection 0 is the abstract����>���,��������EMak]�currentSectionA�������������������4���"������������ ] SectionTitlec.��Abstract������������������]]�R���@��������stri ] SectionTitlec.��Section ��.� �� �currentSectionA���������������]]lo�H���6��������� ] SectionText. �ItemTextI�currentSectionA.���[����������������������DFCC4DQ�k�6�f���T�� �� ����8MPath Manager is a global cache of paths to important files for EdGCM and 4D. ��@�f���T������������8LThe goal of Path Manager is a cross platform path system that proviedes the ���X���F������������8?features simiar to FindFolder in Finder.p and LaunchServices.p �������������������]�"�����������MUTX�8globals l�ie�:���(�����������6(%(�@��������#( PM_PathChar���,�����������MUTX(#( PM_PathASCII����H���6��������(%(�@�������#( PM_Database#(PM_EdGCMa�[�<���*������������(%(�@�������#( PM_EdGCM_Unix���*��������������(#( PM_Platform�.�����������(#(PM_PlatformVers���>���,����������'(%(�@�������#(PM_PlatformName���*�����������V(#( PM_ListRef�hR�F���4��������y(( vlPlatform�(vlSystemr( vlMachine����������������]�^���L�������������8DUse sample code from the PLATFORM PROPERTIES command in the manual, ����`���N�������������8Gbut the Windows version is broken so I use the system folder to figure �(�&����������������8 things out. �����X���F������������8>Gets all the platform information for the basis of the paths ����F���4������������(m( vlPlatform�(vlSystemr( vlMachinele�2��� ������������#( PM_Platform( vlPlatformm(�f���T������������(( vlPlatform��@(�?�������� @(�@���������@( vlPlatform����,���������������( vsPlatformOS���������������������((��:���(������������(( vlPlatform��@(�@�����������,���������������( vsPlatformOS������f���T�������������8LIn Win2K the system folder is called WINNT while in WinXP the system folder ��(�f���T�������������8Lis called WINDOWS so I can distiguish between systems this way. 98 probably ��ia�N���<�������������84is tagged as XP but 98 isn't a supported OS anyway. ����$���������������(winSys�((ll�J���8������������((���WINNT(winSys��@(�����������io�8���&������������( vsPlatformOS�� Windows 2000��.���������������#(PM_Vers(�@ �������(������������������((�6���$������������( vsPlatformOS�� Windows XPck�.���������������#(PM_Vers(�@ @������(������������������((v�t���b�������������8Q$vsPlatformOS:=$vsPlatformOS+" version "+String($winMajVers)+"."+String($winMinVe�8rs) l�r����������������((v�N���<������������((vlSystem��@(�@��������@(�@����������4���"������������( vsPlatformOS��MacOS X ��B���0������������( vsPlatformOS�( vsPlatformOS���@�10pt�.���������������#(PM_Vers(�@�������(������������������((�:���(������������( vsPlatformOS��MacOS version ck�`���N������������( vsPlatformOS�( vsPlatformOS���@(� (vlSystemr�@(�@��������|�>���,������������#(PM_Vers(vlSystem��@(�@�������(������������������((im�t���b������������#(PM_Vers#(PM_Vers��@(vlSystem��@(�@��������@(�@��������@(�?�(K����������������( vsPlatformOS�( vsPlatformOS���@�.��@(� (vlSystemr�@(�@��������@(�@���������@�.��@(� (vlSystem��@(�@��������@(� (vlSystem��@(�@��������@(�����������`����������������((c����������������((up�8���&������������#(PM_PlatformName( vsPlatformOSa(�����������������(���,����������������8path for platform ^�`�4���"������������(#( PM_Platform�@$(��de�*���������������#( PM_PathChar�: �4���"������������#( PM_PathASCII�(�[�:7d�8���&������������(\_tWindows uses forward slash \ \�*���������������#( PM_PathChar�\ �4���"������������#( PM_PathASCII�(�[�\�����������������(( ����������������(3�$����������������8 base paths �sc�(���������������#( PM_Database((���D���2������������#(PM_EdGCM� ( PM_UpOneLevel#( PM_Database�B���0������������#(PM_EdGCM� ( PM_UpOneLevel#(PM_EdGCML���<���*������������#( PM_ListRef�(� PM_Folders��2��� ������������#( PM_EdGCM_Unix�../../P���������������������������������DFCC4Dle�[�%�R���@��!6�� 6��,�7d:Convert a real into the decimal format used in a namelist.�DE�T���B����x����G�7d<Unfortunetly German, French and some other languages format ��X���F������ �:�7d@reals as 10,0234 instead of 10.0234 which prevents the formatter��,�X���F������$�t�7dAfrom working right. The fixed code is here and builds on the fact�n�\���J����������7dDthat Fortran requires the format to be 10.0234 but converting , to .w���$���������Z�7d is harmless.�li�����������������7d�z���� ����B�����7d input0������ ������������7d real0���� ����������7d output�d�2��� ��������\�7d string in namelist format"\���� �����] ����8���&��������]%��@���������temp� �����(������������]� decimalPosd��e�.������������e���7d$sample:=14654.54654654���(��������������]tempw��  ������<���*��������EMak]tempw���temp���,���.��:���(��������0001] decimalPosdw����.��temp�00������������EMak] S�\���J������������]� decimalPosd���������������no decimal point, add it to end���,�������������� ]��w�temp�w���.,p�h���V��������ww]� decimalPosd����?��������*decimal point is first char, add leading 0�g9�4���"��������� ]��w��0�w��temp�w���,�&�����������_]r]w format is ok@J�*������������ ]��w�temp�w���,������������{s]w�����������������������������������������������������������������������������������DFCC4DY�?n�h���V��&��%��gSPWhat to do when the play button is pressed. Normal runs started if they are new ifs�h���V���������-��SPand restarted if they already exists. Scenarios are duplicated and archived runsiat�f���T��������SOare denied. The scenario duplicate is now handled by special code in Simulation���d���R�����������SMinstead of putting up an alert here. Now disallows starting a run twice. Now �h���V�����0001SPmakes sure that the semaphore is set first, this is tricky because the semaphorei23�f���T��������EMakSOmust be released for Setup_Open to work (SafeSave ends up trigger the semaphore f�8���&���� ��� S in the Setup Simulation window).� �������������i�oS��p���� ���������S input������ �����������S none������ ���������S output������ ��������dS none�����������������(�������������� Run_Critical_Begin>��<���*�����#@RunNumberArrayz�>@������������++����������������@���D���2���������@#@Run_RunNumScenMast��#@RunNumberArrayM����(��������������SSimulation_Open ���b���P����R�@@�" @Run_FindOneProcess>#@RunNumberArrayc�#@RunNumberArrayc�����@���.������������ @Restart_Process#@Simulation_ProcessID(����6���$���������#@Simulation_Button>@�@����������2��� �����������@I#@Simulation_ProcessID(������������@�&��������������� @Run_Critical_End���T���B�����@#@Run_RunNumStatus8�#@RunNumberArrayu� �@�@���������b���P������������@@�" @Run_FindOneProcess>#@RunNumberArrayc�#@RunNumberArrayc�����V���D����� @Run_Critical_End��*must release the lock here or save freezes�� ��������������� @ Setup_Openel_��������d�@S�&��������������� @Run_Critical_EndPr��������z�@�T���B������������@#@Run_RunNumStatus8�#@RunNumberArrayu�@�@�����������h���V����<� @Alert_ParamText#@RunNumberArrayt�#@RunNumberArrayt�w�l�>�w�l�>�w�l�>�\\�&��������������� @Run_Critical_End ��B���0��������� @ Alert_Alert@�?��������@�@�������������������������@���h���V��������� @Alert_ParamText#@RunNumberArrayt�#@RunNumberArrayt�w�l�>�w�l�>�w�l�>���&�������������� @Run_Critical_Endn>�B���0��������� @ Alert_Alert@�?��������@�@��������������������d@S��������f�@S�&��������������� @Run_Critical_End����������l�����@S����������������������������������������������������������������������DFCC4Do��f���T��&��%��gSNWhat to do when the rewind button is pressed. Normal runs are deleted and thenZ�f���T��������Rf��SOrun or just run if they are new. Scenarios are duplicated and archived runs are�{�N���<�����������S6denied. Be more selective about locking the semaphore.0����������������������(�������������� �Run_Critical_Begin%��<���*������������#@RunNumberArrayz�%@�����������������������������@���R���@�������� ADO@#@Run_RunNumScenMast��#@RunNumberArrayMS�wO8scenario%���h���V����������� @Alert_ParamText#@RunNumberArrayt�#@RunNumberArraytS�w�l�%�w�l�%�w�l�%�ne������������@ @ Alert_Alert@�?��������@�@��������@�?���������@�?��������wO8$can duplicate but not start directly%33�&��������������� @Run_Critical_End���$��������������� @Simulation_OpenP�6���$������������#@Simulation_Button%@�@�����������2��� ������������@I#@Simulation_ProcessID(�������������������@���\���J����������@#@ Run_RunStatus�#@RunNumberArray%S�@�?��������wO8locked���h���V������������ @Alert_ParamText#@RunNumberArrayt�#@RunNumberArraytS�w�l�%�w�l�%�w�l�%��&�������������� @Run_Critical_End��R���@��������4 @ Alert_Alert@�?��������@�@��������@�@������������p���^������������@#@Run_RunNumStatus8�#@RunNumberArrayuS� �@�@��������wO8in progress or unlocked���H���6��������@���@�@������#@ RunIDArrayR�#@RunNumberArrayzS����&��������������� @Run_Critical_End���`���N������������SIcheck that neither the model nor the shell is running (be extra paranoid)������r������������@ @Run_FindOneProcess% @ GetModelNamet��x @Run_FindOneProcess� @ GetModelNamet����wO8running���L���:���������� @Alert_ParamText@�����w�lredoT�w�l�%�w�l�%�� �R���@������������ @ Alert_Alert@�?��������@�@��������@�@������������ ���������������@��stopped���"��������������� @ Setup_RedoRun���������������� @������ ��������KK�@�� other�l���Z����������� @Alert_ParamText#@RunNumberArrayt�#@RunNumberArraytS�w�lredoU�w�l�%�w�l�%����&��������������� @Run_Critical_End���R���@����������� @ Alert_Alert@�?��������@�@��������@�@���������������������������@������������������@���������������������DFCC4Di��$�����%��$��g �Simulation_Open��6���$�����������#�Simulation_Buttonn@�@����������2��� �����������@I#@Simulation_ProcessID(�����������������������������DFCC4Dh��%�V���D��%k��$k��gS>convert a set into the current set, basicly load the blobs andB�0�������������Sset everything from there�_�8���&�����������^� � tablesInfoa���������������<���*��������^� �timeSeriesInfoA�����������������8���&������������^� � mapsMonthsa�����������������6���$���������� ^� �mapsInfom���������������i�8���&����������(^� � slicesInfol����������������6���$��������0001^� � zonesInfo��������������00�������������EMaker�8���&������������S!check that the selection is valid���6���$����$�^#�SetArray�`������������������������$� ^�*�������$�fSget the right set �B���0����$�===^��������#� SetNumArray�#�SetArray����������$� ^�$�������$�cS version check�:���(����$�^������#�SetsCurrentVersion���H���6����$� ^Alert_ParamText����������������B���0����$� ^ Alert_Alert��?����������@����������������$�^�Y���������$�^�$�������$�����S retrive data��L���:����$����� ^Retrieve_Variable_Blob��������� � tablesInfoa����P���>����$�kU ^Retrieve_Variable_Blob��������� �timeSeriesInfoA����\���J����$���� ^Retrieve_Variable_Blob��������� � mapsMonthsa�� �mapsInfom����L���:����$����� ^Retrieve_Variable_Blob��������� � slicesInfol����J���8����$�kS� ^Retrieve_Variable_Blob���� ����� � zonesInfo�k���������$�kTp�^�*�������$�kYlSrestore information���������$�k\ ^PostProcessing_SetsRestoreInfo?� � tablesInfoa�� �timeSeriesInfoA�� � mapsMonthsa�� �mapsInfom�� � slicesInfol�� � zonesInfo������������$�k]�^���� ����$�kXTScleanup���(�������$���g^�Y � tablesInfoa�TX�,�������$�����^�Y �timeSeriesInfoA����(�������$�����^�Y � mapsMonthsa����&�������$�����^�Y �mapsInfom��s���������$�������������$�����^��������$�����^����������������DFCC4D��zh�2��� ��'A��&A��gSset a whole list on or offDT��������������S in�_�$��������������S ->to table���$��������������S true/false���"��������������-@table�nu���� ������������@- @�����$���������������@1@enabled������� ��������@1 @��..�"���������������@@iteml���"������������@@count����2��� �����������@%@�@��������@name������������l�d������ ����l�����SsetupP(� �������l�@���@table @����"�������l�����@enabled @�ra���������l��������>���,����l�O� S&check that there are records to change`���.�������l�����@count@�L@table���,�������l�����@namee@�@table� �2��� ����l�����@@count�@�����������������������l��������N���<����l��LS7go to the start of the selection and set every record ap�$�������l�����@�2@table��� �:���(����l�����@@iteme�@�?��������@count�����������l�����@���,�������l�����@@namet�w�lAJX����&�������l�����@����@enabled���,�������l�� @@namel�w�lAIJ����&�������l�����@����@enabled�H�,�������l����@@namel�w�lAJL����&�������l�����@����@enabled���.�������l�KK�@@namel�w�lALat��&�������l����@����@enabled����������l�����@���$�������l�����@�5@table�����$�������l�����@�3@table������������l�����@���$�������l�����@�@table������������l�����@������DFCC4D)/��R���@����������"09Does the search for links based on the saved search list "nd�.��������������"0works for both lists "��� ��������������"0 input " �4���"������������"0 process to copy var from "�(��������������"0 table to use "�2��� ������������Z �Z ProcessToCopyZZ�.���������������-Z �ZTablePtr@ZZ���<���*������������Z LinksListTypeZ�����������ZZ���>���,����H���ZLinksListField[Z�����������ZZ���L���:��������Yj�Z�@�������Z LinksListWordZ�����������ZZP�H���6����|���Z�@��������Z WildChar@Z�@��������ZZxm�*�������|@Vi ProcessToCopyZ Z�Z���&�������| ~TablePtr@Z Z�ZhT������������QZ�P���>����^Ѐ���sZ ProcessToCopyZ LinksListTypeZ LinksListTypeZZ?�T���B����^��sZ ProcessToCopyZ LinksListField[ZLinksListField[ZZ��P���>����^����sZ ProcessToCopyZ LinksListWordZ LinksListWordZZad�*�������^�����/ZTablePtr@ZZZt��8���&����^����linkLenZZZZ LinksListTypeZZ����������^�������6���$����^����ZZZlinkLen�Z@Z�?�������ZZ���b���P����^���� InfoText_LinkWildcharZ LinksListTypeZ�?�������ZZZ WildChar@ZZ���������^����ZTablePtr@ZZ InfoText_LinkFieldPtrZLinksListField[Z�?�������ZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZ�?�������Z�Z�@ WildChar@Z�@��������ZZZ���6���$����^����ZZZlinkLen�Z@Z�@��������ZZ���b���P����^���� InfoText_LinkWildcharZ LinksListTypeZ�?�������ZZZ WildChar@ZZ�����������������ZTablePtr@ZZ InfoText_LinkFieldPtrZLinksListField[Z�?�������ZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZ�?�������Z�Z�@ WildChar@Z�@��������ZZ�Z@ZZ���b���P���� ��� InfoText_LinkWildcharZ LinksListTypeZ�@��������ZZZ WildChar@ZZ���������� ���ZTablePtr@ZZ�Z @Z InfoText_LinkFieldPtrZLinksListField[Z�@��������ZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZ�@��������Z�Z�@ WildChar@Z�@��������ZZZ���6���$������������ZZZlinkLen�Z@Z�@��������ZZ���b���P������ InfoText_LinkWildcharZ LinksListTypeZ�?�������ZZZ WildChar@ZZ��������@ViZTablePtr@ZZ InfoText_LinkFieldPtrZLinksListField[Z�?�������ZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZ�?�������Z�Z�@ WildChar@Z�@��������ZZ�Z@ZZ���L���:���� ~ZiZ�@��������ZlinkLen�Z@Z�?�������ZZ-P�X���F����Q InfoText_LinkWildcharZ LinksListTypeZiZZZ WildChar@ZZM����������������ZTablePtr@ZZ�Z @Z InfoText_LinkFieldPtrZLinksListField[ZiZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZiZ�Z�@ WildChar@Z�@��������ZZZhe���������������^���L��������� InfoText_LinkWildcharZ LinksListTypeZlinkLenZZZ WildChar@ZZ������������������ZTablePtr@ZZ�Z @Z InfoText_LinkFieldPtrZLinksListField[ZlinkLenZZZ�Z@ WildChar@Z�?�������Z�Z�@ LinksListWordZlinkLenZ�Z�@ WildChar@Z�@��������ZZZ�h��������P��am��������������������������������������������������������������DFCC4D<�>B�Z���H���������d�d��@compute the length of the trend based on the variables passed in����L���:���������d�d��2gives either the beginning of the trend or the end�8� ������������d�d�� inpute��@���.���������d�d��' direction (true = start, false = end)��� ������������d�d�� bound��*������������d�d�� start/end 1..4e�������������d�d��� ������������d�d1 ���(������������d�d1 directionP� ������������d�d ���$������������d�dboundum� ������������d�d ��$������������d�dval1d� ������������d�d ���$������������d�dval2d� ������������d�d ��$������������d�dval3d;� ������������d�d ���$������������d�dval4d� ������������d�d ��H4�"������������d�dout� � ������������d�di��������������d�d���&������������d�d direction �is�"������������d�dbound �� �"������������d�dval1d �� �"������������d�dval2d �3�"������������d�dval3d ���"������������d�dval4d ���������������d�d�$������������d�doutval1dś�������������d�d�&������������d�d direction�L���:���������d�dval2c�vout�oval2c� vboundDP�$������������d�doutval2d�������������d�dM_�L���:���������d�dval3d�vout�oval3d� vbound�$������������d�doutval3d�������������d�d��L���:���������d�dval4d�vout�oval4d� vbound\P�$������������d�doutval4dU�������������d�d �������������d�dre�L���:���������d�dval2d�vout�oval2d� vboundie�$������������d�doutval2d�������������d�d�L���:���������d�dval3d�vout�oval3d� vbound���$������������d�doutval3d2;�������������d�dlo�L���:���������d�dval4d�vout�oval4d� vbound]P�$������������d�doutval4d{�������������d�dre�������������d�dre�������������d�d� ������������d�d ��out����DFCC4DX�n_�`���N��'��&��b$IWhen 4D quits the normal On Exit method runs after all the processes havefn�`���N����Ɯ�b$Iterminated with is bad since EdGCM 4D can have unsaved records in various���h���V�������� b$Pprocesses. So Do_Quit saves the Setup Simulations window and the eJournal window� �d���R�������b$Lbefore consenting to quit the program. The only other task is to cleanup the@��N���<������� b$6temp files created by Preview for Web in the eJournal. w ����������b$�er���� ����������b$ input q���� ��������b$ none������ ����~�����b$ output������ ����H�TAT b$ none#@�2��� ����������% @�@��������@path�������������b��� @�*��������������b$saves to do on quit���(�������l���� @Safe_SaveSimulation��&�������������� @Safe_SaveInfoText���<���*�����aaaa@ @B�8#@PostProcessing_ProcessID��"���������������@�5 @��������������������@P����������������@�:���(��������TAT b$"clear temp files from this session.3�>���,�������� @path� @ PM_FindFolder w� eJournals�lo�4���"����R�0001 @PM_RecursiveDelete @pathe�10�4���"��������EMak@ @ @pathe��$@���ke�.�������l�0001 @ PM_MakeFolder @patha�00������������EMak@#���������8�aaaa�����������������@#��¦�kkk^�0�������¦�^�(��������Control�cc�$�������¦����^� �myWind������������¦�����V���D����¦�ccc? The close box associated with this window pauses the process. am�Z���H����¦�B The window stays ready for use throughout the use of the program.���������¦�#^�`���N����¦�????#^Control_ProcessID������������Ap$ Reset process ID tracking variable.����������¦����*�������¦���� End of procedure.��������������������������������������DFCC4D_�p:�d���R��'+��&+��gSLcreate a new user in the interface including all the work to update the list@���d���R����Ь����SLnote that the new name is unique because it includes the sequence number for@���"���������������S the table.8������������������M�$�������м�����S save old user��*�������������� UAM_Editor_SaveRecord����������������������4���"������������Screate record and set fields���"����������������D@��������H���6�����������@username$-w�lnobody�-�@� @�@���������(�����������0001@����-@username$07� �����������EMak@����-@����*���������������@����-@��������������"�����������D @vPswd-w�l�-e�$��������Vd @vPswd2�-w�l�-pl�*������������ @ vActualValuec-w�l�-���*��������@��� @ vActualValue2-w�l�-� �2��� ��������� @ vlastPosition-@��������������4���"��������� @vlastPosition2z-@����������������������� ���2��� ���������Ssave and restore selection���"������������@�5@���������,������������@curID-@�@���������"������������@�/@�������������������L���"���������������S update list �F���4������������@@����� @ arrColVarsr�@�?�������w�����<���*������������@ @userColsu�@�?���������-����\���J������������SESELECT LISTBOX ROW(userCols;Find in array(arrColVars{1}->;$username))���X���F������������@ selectNum-@� @ arrColVarsr�@�?�������w��@username$����6���$��������� @@ selectNum�-@��������������V���D������������S>set a timer to update the list since we're ahead of the update���0�������������� @ userColsToSet-@ selectNum��(��������������@@�@�����������������x�����@�����������x���&��N���<����x�����S7enable fields, in case the old record was the admin one���(�������x�����@�@�����@�����(�������x�����@�@�����@������������������������"���������������S final setup���,���������������@�@������@curID����"�������������0@�@������������������������������������������DFCC4DY?�,z��^���L�� �� ����8EPM_MakePath creates a path from the base path string and an addition ����`���N���������8Gso that you get the correct characters in between. Auto adds the first �is�`���N���������8Fpath seperator if it is missing. Optional * parameter does Unix style ���@���.������������8'path additions instead of PM_PathChar ��4�"���������������8 intput l���.����������� PCP�8 string, base path ����2��� ���������8 string, added to path ���T���B���������8; boolean, true means folder (hence add \ or : at the end) ���D���2�����zzz�8+ * (optional), use Unix path char instead ��"��������w��8 output l�bo�,������������8 string, new path ��T���B���������(%(�@������� (� (� (��(path�(addition�en�(������������(( pathASCII���8���&���������(%(�@��������(pathChar����,������������(1 (�(folder����D���2���������((�@(�@��������E\use unix path X ��(������������(pathChar��/JL�8���&���������( pathASCII(�@�������\_t/ \in�.������������(\_tuse platform paths \���0������������(pathChar�#( PM_PathChar(� �2��� ���������( pathASCII#( PM_PathASCII�(sr�������������((��"������������(patha (�(���&������������(addition� (�(��$������������(folder� (�(��������������(��R���@����������89add path char to end of path if it doesn't end in \ or : ����J���8���������((�[ (�!(�(pathe"�@( pathASCII t�6���$���������(pathA(pathA��@(pathChar�( s�������������((���$�������������8 add paths <�am�2��� ��������� (��(pathC��@(addition�(��J���8����������80add \ or : at end of new path if it is a folder }��$������������((folder���.������������ (�� (����@(pathChar�(���������������((lo������DFCC4D�o�T���B��%k��$k��gS<collect arrays for each part of the postprocessing interfaceA���V���D���������S>pass in three pointers to arrays, get out three boolean arrays���V���D��������S>of settings. This code can then be reversed later to restore a������ �����������Sset. tt������������S�o����� �����������S input�,�����������)))%S ptr, tables months�4���"��������S ptr, time series variables�N���<�����������BS7 ptr, maps months, used for all of the additional tabsce�,��������������S ptr, maps variablesle�0�����������0001S ptr, verticle variables09�.�����������EMakS ptr, zonal variablesta�<���*������������^- ��� ��� ��� ��� ��� ������r���`������������^-� tablesPtr�� timeSeriesPtr�� mapsMonthsPtr��mapsPtr�� slicesPtr��zonesPtr$����$���������������^ tablesPtr ����(����������^ timeSeriesPtr ����(������������r�o^ mapsMonthsPtr ��� �"������������ �t^mapsPtr ���e�$�������������)^ slicesPtr ���o�$������������t^zonesPtr$ ��fo��������������� ��"������������P�t^�4����������������������t�r��.������������r�oScollect info for tables�t�H���6����������;^�� tablesPtro����������������@����������<���*���������� ^ tablesPtro�������������*������r�<���*���������r�^ tablesPtro���?�������*������C�<���*����������^ tablesPtro���@��������*�� �����<���*���������c�e^ tablesPtro���@��������*�� ����m�<���*����������^ tablesPtro���@�������*�� ����T�<���*���������� ^ tablesPtro���@�������*�� ����r�<���*��������^ tablesPtro���@�������*�� ����<���*�����������^ tablesPtro���@�������*��������<���*�����������^ tablesPtro���@�������*��������<���*�����������^ tablesPtro���@�������*��������<���*������������^ tablesPtro���@�������*��������<���*��������^ tablesPtro���@�������*������<���*��������^ tablesPtro���@�������*������<���*�����������^ tablesPtro���@�������*��������<���*�����������^ tablesPtro���@�������*�����)&�<���*��������.��^ tablesPtro���@�������*�������<���*��������qOJ^ tablesPtro���@�������*��������������������������4���"�����������Scollect info for time seriese-�4���"��������K��^$����� time series��4���"��������^������������� ����>���,��������ayer^� timeSeriesPtro�� time series����0���������� SCLEAR SET("time series")��a����������� � ��<���*������$�tS$collect info for maps-verticle-zones�1�@���.�������^ mapsMonthsPtro�������������*������ �@���.������S�E^ mapsMonthsPtro���?�������*�������@���.���������^ mapsMonthsPtro���@��������*��������@���.�����#^ mapsMonthsPtro���@��������*����������������������0������������Scollection info for maps��.��������)^$�����maps.����4���"�����)^������������� ����2��� �����)^�mapsPtro��maps,�)����������)�0��������)Scollect info for verticle�0��������)^$�����slices��4���"�����^������������� ����6���$�����^� slicesPtro��slices�����������ӡ�.��������Scollect info for zonesࡱ�.��������^$�����zones��4���"�����^������������� ����4���"�����^�zonesPtr$o��zones�����������J�"��������^$������������������������������������������������DFCC4D\�5�D���2��&\��%\��gS,Changes an item to match what the user wants��P���>��������[(S9If the current item is a pict then the text area is shown���J���8�����������S2If the current item is text then one pict is shown������ ������������S input���$�����������S item number���6���$������������S section type (0=text, 1=pict)���*������������� @��@itemNum��H�,�����������@ @��@itemType$����"������������@itemNum^ @���$������������@itemType$^ @��������������������������������@���(�����������@@�$@������0���������������Sif we're not already text������p��������� @@itemType$�@�������������� @ItemListI�@itemNum�^@�������������wO8change to text���<���*��������\4 @ItemListI�@itemNum^@��������������D���2������������ @InfoText_ShowHide@itemNum�@�?����������������������@���@������p������������@@itemType$�@�?���������� @ItemListI�@itemNum�@�������������wO8change to pict��<���*������������ @ItemListI�@itemNum^@�?����������D���2��������>� @InfoText_ShowHide@itemNum�@�?�����������p���^����������� @InfoText_LoadThumb^@itemNum�^`@�?���������@�@��������^�@�?������������������������@���4���"���������Seither way update the labels���.������������ @InfoText_UpdateFigLabels���������������@������������������������������������������������������DFCC4D�8 �"�����"R��!R��,�2 run atrans�rf�"��������������]�diagx����6���$�����������]%��@��������� diag_path��(�����������]2� docref_full�� �������������I]�pos��u�"���������������]�itemx����6���$���������zzz]� � modelgrid���@����������z�<���*���������]�AOT_Mult$�same as COT_Mult������������������� ��������????�2setup==�,�����������)�] diag_path � InputPath���6���$�������� ]GetModelAndGrid � modelgrid�zz��������� ��������&������� ���,�2do multipliersic�(������� ����]AOT_Mult$��� �� r�6���$���� �����]�AOT_Mult$�!��?�����������.������� �]AOT_Mult$��?�������LI�������� ��� ]2�6���$���� ��o�m]�AOT_Mult$���@��������� �.������� �����]AOT_Mult$��@�������s:�������� �� �B]2��������� �� � ��(������� ������2set atrans.I fileB8�H���6���� �� �d] � modelgrid��@����������|��@���������;q�:���(���� ��o�l]diagx��8x10�����Z$���&� �������� ���]2�<���*���� ��(�]diagx��7.8x10����Z$���&� �������� ��_�f]2�l���Z���� ���]diagx�diagx�� � RealToF18.5�AOT_Mult$����@������������Z$���&�� �X���F���������l�e]diagx�diagx�� � OutputPathu����AVFX�����Z$���&��1�v���d���������r�i]diagx�diagx��� diag_path����ocean�� �PathCharP����kBasin����Z$���&��e�T���B���������E�Y�2<dunno what the land file is called, need to check this first��)�L���:��������� �s]�� diag_path���� FOR026.DAT���|$�����X�\���J����������;]diagx�diagx��� diag_path���� FOR026.DAT����Z$���&��.�������������w�i]�l�X���F���������r�i]diagx�diagx��� diag_path����fort.26����Z$���&���������������"�]�����������������]diagx�diagx�� � OutputPathu����atrans_���� �AOT_Mult$����@����������##0.00�����.prt�����Z$���&�����������F����]diagx�diagx�� � OutputPathu����atrans_���� �AOT_Mult$����@����������##0.00�����.xls�����Z$���&�RR���������F���8���&����F��2 write out the .I file and launch�W�P���>����F� ]OHT_SaveAndLaunch�diagx���atrans.I����atrans�������������������������������������������������������DFCC4D �,�p���^��$}��#}��LQDo the work for the save as dialog, which includes creating the folder for the imagefn�4���"����������if the user picks new folder������������ƒ�������*�������ƒ�����get the folder list���4���"����ƒ�^S��� ��� � ImageFoldersa�or�r���`��������Qused to check for protected folders, this never seemed to be used and has been removed��������������.�����������setup ImageFolder array�*�����������^� � ImageFoldersa���2��� ��������???? ^ ImageFoldersa��?���������������������)����$����������� do the dialog�0�����������^sequence$������ ���cc�(�������������� ^ Foldernameo������������¦�0001^������@���������P��@�������������@���������P��@�������������@������������@�������������@������������@��������$��'���Save pasted image as�y@ Open a modal window00�2��� ����¦���^�(�������� PastePICT����������¦�����^������������¦��������F���4������������.create the folder if needed (if Foldername#"")�������������^ �OK���?������������ �FilenameF����@������������� � Foldernameo����@�����������P���>����������^ � PM_MakePath � thumbFolder� � Foldernameo�������N���<�������� ^ImageFoldersMenu� �ImageFoldersMenu � Foldernameo������������^��������������������������������������������DFCC4D �8�X���F���������d�d"3H>Alert_ParamText places strings into the global ParamText array"te�L���:���������d�d"3H2so that they can replace the ^0..^3 in the alerts.�"��������������d�d"�B���0���������d�d"%""%@�������" "�" "�" "�" "�""���>���,���������d�d#"AlertParamText""A?�������"" "�"���>���,���������d�d#"AlertParamText""A@��������"" "�"���>���,���������d�d#"AlertParamText""A@��������"" "�"���>���,���������d�d#"AlertParamText""A@�������"" "�"����������������������������������������������DFCC4D �We�*�������x��"0Do the link list "���:���(����y`����%G�@�������G SearchWord�GG���(�������B��-GfieldPtr@GG���<���*����]`����%G�?�������GstartGendGG���:���(����������GiGlenGposGendl\GG���&��������������1GremoveGGG�H���6�����������G�@��������G WildChar@G�@��������GG�����������������Gw�.�����������me_I"0set field to search G"���J���8�����������fieldPtr@G GInfoText_LinkFieldPtrG G FieldListGGk����������������G�.���������������"0wild char expansion G"���N���<����������� InfoText_LinkWildcharG SearchType�GG WildChar@GG�����������������G���.���������������/G LinkTablePtr�GGG���B���0������������G�G SearchWord�G�G@G�����������GG������������������G LinkTablePtr�GGfieldPtr@G�G@ WildChar@G�?�������G�G�@ SearchWord��G�@ WildChar@G�@��������GGG����������@�����:���(����@@ViSGfieldPtr@GG SearchList�GG��������@ ~Gi�N���<����@Q"04special reduction for keywords to remove duplicates G"���2��� ����@��lenGGG G SearchList�GG����z����@��GG FieldList�G@�@��������G�G@Glen�G@G�?�������G�G@GG�G G SearchWord�G�G@G�����������GGG���J���8����@����GiGlenG�?�������G�G@G�?�������GG�J���8����@����posGG�G G SearchWord�G G SearchList�GGiGGG��������@����Pa�p���^����@����GGG G SearchType��G@G�?�������G�G@GGpos�G@G�?�������GGa@ starts with za��$�������@����removeGGG�G��������@����GGG G SearchType��G@G�@��������G�G@GGpos�G@G�?�������G�G@GG�G G SearchWord�G�G@G�G G SearchList�GGiGGGGaGis a���$�������@����removeGGG�G���l���Z����@����GGG G SearchType��G@G�@��������G�G@GGpos�G@G�����������GGa@ contains al �$�������@����removeGGG�G ����v����@����GGG G SearchType��G@G�@�������GGa>D&($pos=1+(Length(SearchList{$i})-Length(SearchWord))))`ends with GaA�h���V����@����endl\GG�G G SearchList�GGiGG�G@G�G G SearchWord�G�G�@G�?�������G���,�������@����Gendl\�G@posGG���$�������@���removeGGG�G"��������@@�$�������@))removeGGG�G p����������������������lgP���$�������lgP@ViremoveGGG�G����������lgP ~l�,�������lgPQGremoveG�G@�GG���0�������lgP�����G SearchList�GiGGWo��������lgPsibl����������lgP�������������lgP!��~��������������������������������������DFCC4D[-�S��B���0���������d�d"3H) STORE VARIABLES INTO BLOB project method"��`���N���������d�d"3HF STORE VARIABLES INTO BLOB ( Pointer { ; Pointer ... { ; Pointer } } )�"�V���D���������d�d"3H= STORE VARIABLES INTO BLOB ( BLOB { ; Var1 ... { ; Var2 } } )"���2��� ���������d�d"-" """?�������"""�&������������d�d"""vlParam""�2��� ���������d�d"^" "�"""����������""�:���(���������d�d"""vlParam""v@��������""""���>���,���������d�d"" """vlParam""" "�""�"""���������������d�d""��������������DFCC4DW���@���.��%��$��gp%@�@�������� @floating_run_number�KO�2��� ����V��� @floating_run_number~@�����:�*�������T�����@ @ temp_rundeckm��*������������ @ temp_rundeckm~w�l�~�.�������,�����@1 @Modified_rundeck����0������������ @Modified_rundeck~@�-������6���$���������@%@�@��������@ temp_name����(�������z�����@ temp_name~@�������&�������������g@�@ temp_name���$�������H����@@counter���� ������������@@top����$�������l�����@@bottomr����"�������:�����@@lefto����"������������@@right������������^��������*������������SReset_Main_Window ���������������X��b���P��������SJI replaced most of Matt's disclosure triangle code because Mark added some�`���N����2�SInew requirments. We decided that it would be more efficent to reimpliment�b���P��������SJthe whole code than to patch it incrimentally. Here is a table of how the �,������������Sinformation is kept:~������������������S����8���&�����TS Var Name, Type, Src, Description �`���N���������SHGroup_Name, string, list, name of each group as used by the form objects�R���@��������S:Group_Height, longint, form, full height of each group box���\���J������������SEGroup_State, boolean, blob, is the disclosure triangle open or closed���J���8����(���gS2Group_Visible, boolean, blob, is the group visibleCH����������������S����:���(��������@S#Below are Matt's original comments:�f���T��������llSNthis assigns the arrows for opening and closing group boxes to an open postion��h���V�����������SPthis sets the status variable for group abc to true signifying that the group b���R���@��������EMakS:running this routine only when the form is load saves time���h���V������������SPthese arrays are neccsary to either initialize the array or have values from the�����������������@�@�@�������� @ Group_Namer�@������������wO8Fthe arrays are made process var so they can be accesed from any method0�>���,�����������@ w�lGroup_Name_List� @ Group_Namer���>���,��������)� @Number_of_Groups~@ @ Group_Namer��T���B������l��@� @ Group_Heighto� @Number_of_Groups�wO8list of heights�|���j��������ll@� @ Group_State� @Number_of_Groups�wO89Since lists don't know there own sizes it is neccasary tol�P���>��������lnS9enter this information should the number of groups change���@���.��������lq@� @ Group_Visible� @Number_of_Groups����(���������� SOpen_all_groups ��n� ������������e�c @Opene~@���"������������� @Closed�~@��e� ����������� @Shown~@����"�������X�$ @Hidden�~@��&�����������p @Form_BLOB_Loader�������������(��8���&��������S hide scenario background for now���B���0��������@[��w�lzScenarioBackground�@�����������������������V���D��������S>prior to setup of groups set menus to reflect values in groups\�������������`���T���B����������S<setup the various group boxes, particuarly: ocean and trends��g�(������������ �i @Hide_Closed_Arrows~�y�$������������� @Twist_Down_Init�I�.������������V�I @Simulation_TrendMenuInit��2��� ��������T9� @Simulation_OceanMenu8@�����.�����������T� @Simulation_PowerToolsInit����v��������T�@ Group_Index~@� @ Group_Namer�w�locen!�@�?��������wO8.this finds and reverses the state of the Group`T��>���,��������T�@orginal~ @ Group_State�@ Group_Index�D���2��������T�@ @ Group_State�@ Group_Index� @Openp�T�>���,������� @ Group_State�@ Group_Index~ @Closed��;������������� �i@�c�<���*���������� @ Group_State�@ Group_Index~ @Openp��������������V�I@�I�d���R��������� �pSLGroupOcean_Manage `this preforms a similar function for the ocen group box@�r�>���,�������� @ Group_State�@ Group_Index~@orginal�����������������&������������ �iSsetup the list�l�(������������� @Run_Critical_Begin~�G�D���2���������V�I@@#@RunNumberArrayz��~@�������������n�"������������ �p@�/@�������a�b���P������������@temp�~#@RunNumberArray~�#@RunNumberArray~wO8this gets the run's name����H���6����������@�@������#@ RunIDArrayR�#@RunNumberArrayz��l������������� �i@�c�&������������� @Run_Critical_End�N����������������������������������������������������DFCC4DGj�x�$�������P�Z^�/����� �4���"���������1����������@��������>����wr������������������������������������������������������������DFCC4DX8����� ��&\��%\��gSsetup>�������������������J���8�����������S3these are the internal values in the Item List blob��8���&��������0001S!ItemList item type has 20 entries11�6���$��������EMakSitem type is: 0=Text, 1..4=Pictr��P���>������������S9ItemName has 80 entries, the four filenames for the picts���0������������� Sitem name is: <filename>���V���D���������)� S?ItemCaption has 80 entries, the four descriptions for the picts�;�:���(���������C�_S"ItemPict is a pointer to a picture�n�F���4���������a�nS/ItemPictLabel is a pointer to the picture title��X���F���������� S@ItemLinePict is unused, but was for dividers to deleted sections��r�z���h���������)� SQItemText is list of pointers to the text fields in the record, the 0th element isS the abstract�Y�:���(���������C�_ @ItemVersI� @CurrentItemVers��n�6���$���������a�n@� @ItemListI�@�@��������� �6���$����������@� @ItemNameI�@�@���������n�8���&���������p�t@� @ ItemCaption�@�@��������� �6���$���������R�@ @ItemPictI�@�@����������:���(���������e�a@ @ ItemPictLabel�@�@���������L�������������o�l@ @ ItemLinePicte�@�@��������wO8Qunused for now, used to let the user delete a section of the journal by selectingwO8 line�t�6���$����������@ @ItemTextI�@�@����������4���"��������D @CurrentItemVers~@�@�������+�4���"������������#@InfoText_Button~@��������������"�������:�� S link fields���H���6����:�����@�@�@�������� @ SearchListe�@���������������F���4����:�����@�@�@�������� @ LinksList�@���������������:���(����:�����@� @ LinksListType�@���������������<���*����:�����@� @LinksListFieldz�@���������������J���8������������@�@�@�������� @ LinksListWord�@���������������<���*��������>� @CurrentLinksVers~#@CurrentLinksVers8���r���`�����������SQmark if a section is being deleted since the On Data Change seems to get called tSwice ���2��� �����������@1 @HandlingDeleteSection����0��������������� @HandlingDeleteSection~@����$��������������S search stuff���n���\��������aaaa@ @Search_InProgress�wO8:record id of search in progress, -1 means no active searchyy�J���8������������@ @Search_LastField�wO8field search stopped on��<���*������������@ @Search_LastType�wO8 field typed���T���B����$����@ @Search_LastPosz�wO8#position in field search stopped on���`���N����$�����@ @Search_LastSubPos�wO8,position in field search stopped on in image@���B���0����$�����@ @ Search_Mode�wO8what fields to search���L���:����$�����@%@�@�������� @ Search_Text�wO8text to search���:���(����$����� @Search_InProgress~�~`@�?������������������$��������L���:����$�����S5wait for Cache Manager to finish scanning image files���4���"����$�����@@w�l$CM_ImagesScan�����.�������$���&@C@B�@�@��������`��������$�����@�����������$��������&�������$�����Ssave menu item���(�������$�����@�Cw�lInfoText�����4���"����$�����@�7@������w�lText��������������$��������,���������������Spick window position ������������������ @myWind�~@�#@ Toolbar_Width�@�@��������@�@��������~�#@ Toolbar_Width�@��~`@�@��������$@�"� �w�leJournal��w�lInfoText_Close������� ������������@F@B����$���������������@ @myWind��������������������������� ��������@����"�����������@�@�������\���J��������SDcheck that are accessible eJournals otherwise create a new blank one~�h���V������������@@#@ JournalArrayo��@������������wO8!no accessible records so make one���(��������������� @InfoText_NewRecord~���0���������������@�� pick the first eJournal���"���������������@�/@���������2��� ������������#@ JournalArrayo~@�?����������4���"������������#@JournalIDArrayz~@�?����������H���6������������@�@������#@JournalIDArrayz�@�?��������������������������@����������������������,���������������SInfoText_LoadRecord ~������������������@���"�����������@�9@�������0����������� @ @OK�@������������))��������������%"(�V���D��������S? The close box associated with this window pauses the process. ���Z���H������������SB The window stays ready for use throughout the use of the program.����������������������b���P������������#@InfoText_ProcessID~~@������������� $ Reset process ID tracking variable.~����������������������*���������������S End of procedure.N����������������������������������������DFCC4D;�, �F���4������������8,Shows the user the run folder in the Finder \������������������������ ������������8var �����"���������������� �err  ���������������| 7d�2��� ��������ff�8find run folder and open ��@���.������������� � �Run_PathR � @������������  �J���8��������ic���� � @ \�Sim_ShowFolder \� 3;1;?2002;240  �.��������������� � FinderToPathn \�  ��������������ff�� �J���8��������ff�� � @ \�Sim_ShowFolder \� 3;1;?2015;240  ����������������� ��������DFCC4D@�,�e��8���&��^�� ^����8write a rundeck to a text file �����������ʸ����������� ����T�����8var ����� ��������������(- (� �$��������������(-(pText�8���&����n����(%(�@�������( user_path���*�����������(2( docref_full �"�����������ff(pText (�( ���������������(7d�P���>������������87choose file, can't set a name and choose where to save �ec�>���,��������ff( docref_full( ���TEXT��������������ql���(����������������8save the file �(�2��� ������������( (OKc�@(�?��������4���"�����������(#( PM_Platform�@$(��\�6���$������������(�g( docref_full(pText��������������ff�p((v�>���,��������(�g( docref_full((pText��������������((l�*�����������3333( ( docref_full��.���������������( user_path (Documenth(���4���"������������(( user_path�R*chhe����������������((���������DFCC4Dj{�,�,�����$��#��Lget current record ID���$�������������� C_LONGINT($1)���2��� �����������C_LONGINT($CurrentRecordID)���,���������������$CurrentRecordID:=$1������������������������� ����������setup�n�&���������������save menu itemh���������������� ^myWind���#� Toolbar_Width���@����������@��������#� Toolbar_Width���@�����������@��������$��"� �� View Rundeck�� Generic_Close������� ��������0001^F�B�nu�H���6��������EMak^��Simulation Summary: ��#� Rundeck_Title�������������������^���� �����������show itim�$������������r�u^ �myWind����8���&��������^�(��������Rundeck Viewer��$�����������^� �myWind���������������V���D��������? The close box associated with this window pauses the process. ��Z���H���������B The window stays ready for use throughout the use of the program.���`���N�����#^Rundeck_ProcessID������������Ap$ Reset process ID tracking variable.�����������*�������� End of procedure.����������������DFCC4D"�O�?n�(�����!�� ��,�7d PAUSE_PROCESS ()TX����������������7d�z���@���.�������������7d) Typically used as a close box procedure.���B���0���������7d+Adds in support for proper record handling.�������������� ���������]D�B����*��������������� ]Simulation_SaveRecord���8���&���������&&�7d!adjust name if it has changed ���0�������������7dRunArray_ChangeRunNumber ��"������������]������������� ��������]?�B��������������RRR1�*���������������7d End of procedure.P��������������������DFCC4DC*�c��`���N��^�� ^����8Fhandle clicks on the set array, code is in PostProcess_ExternalButton ��\�<���*�����������#(PostProcessing_Button(�@�������(���8���&�����������(I#(PostProcessing_ProcessID���2��� ��������#( Sets_Button(�@�������(�.�����������(I#(Sets_ProcessID���������������������������������������������������DFCC4Dwg�;sj�R���@��%��$��gS;Check that the start date is ok because fools are so cleverDE�R���@�����������S:If people pick a start date after the end date then fix it�����������������^on�(�����������0001^�� $����07������������EMak^ S������������������������������������������������DFCC4D�h~�t���b��%5��$5��gSQCreate lists for summaries tab from the diagnostic folders. In version 2.3 Cache SManager���h���V���������SQisn't used here because the user is always creating new stuff so it's too hard to���v���d����p����SQkeep the caches up to date, besides I only have to search one folder. Currently uSses two ���x���f��������SQdifferent pieces of code, since plots/time series are hierarchical and the othersS are flat.p���r���`�����������SQThis calls the new hierarchal list code that includes icons. Fixed bug a so that Sthat wo�v���d��������SQsummaries doesn't try to list runs that don't have folders. Empty lists come up aS s <Empty>��(������������Sinstead of blank.���6���$���������^%��@��������� diag_path����$�������͒�����^�runLen�an�F���4�����������^���@��������� diag_list��������������av�J���8���������� ^���@��������� diag_foldersi���������������L��������������i�s�8���&�����0001S only list runs that have folders11�J���8��������EMak^ �PostProcessing_Validate��@���������T��ie����������������������� ���������i�mSrunLen��.������������� ^runLen����������t��������������g�_�f�$�������������S setup tables� �L���:���������i�m^� � PM_FindFolder�tables��� $���������v���������� ^PostProcessing_TypeListHier����tablesp�� � tables_hier���@���������runLen����@���������e�������������g�_^�o�F���4���������� ^PostProcessing_TypeHierEmpty�� � tables_hier�� �������������i�m^�H��������������� �"������������g�_S setup plotsFi�J���8����������^� � PM_FindFolder�plots��� $����ts�T���B���������i�m ^PostProcessing_TypeListTimeHier�plots�� � plots_hierl��o��������������^P�F���4����� ^PostProcessing_TypeHierEmpty�� � plots_hierl�������������^P��������������,�����������Ssetup maps and slices�J���8�����T�^� � PM_FindFolder�maps/��� $���� �����t����� ^PostProcessing_TypeListHier�.nc��mapsD�� � maps_hier���������������runLen����?��������������������^P�D���2��������� ^PostProcessing_TypeHierEmpty�� � maps_hier������������^�L���:�����^� � PM_FindFolder�slices��� $���� �����x����� ^PostProcessing_TypeListHier�.nc��slicesp�� � slices_hier���������������runLen����?�����������������^P�F���4����� ^PostProcessing_TypeHierEmpty�� � slices_hier����������^�����������"�����������S setup zonesFi�J���8�����^� � PM_FindFolder�zones��� $����es�T���B����� ^PostProcessing_TypeListTimeHier�zones�� � zones_hiero����������������^P�F���4����� ^PostProcessing_TypeHierEmpty�� � zones_hiero����������^P������������^S�B���0��������S*create empty lists if there are no folders�rl�F���4�������� ^PostProcessing_TypeHierEmpty�� � plots_hierl��F���4����������� ^PostProcessing_TypeHierEmpty�� � slices_hier���D���2������������ ^PostProcessing_TypeHierEmpty�� � maps_hier���F���4������������ ^PostProcessing_TypeHierEmpty�� � zones_hiero����F���4������������ ^PostProcessing_TypeHierEmpty�� � tables_hier�������������������^�����������������������������������������������������������������������DFCC4Dv�O�<���*���������� Simulation_GroupChangeAllG OpenlGG��������������������������������������������������DFCC4Dw�8 �V���D��%��$��gS>Set PowerTools, which currently loads the model and grid menusB�Z���H�����������SCfrom the run or sets them based on the menus. Both menus call this ������ ������������Scode^������ ��������S input�M�2��� ��������0S true = load, false = set ��*������������� ^1 ����loadset��r�:���(������������^� � ModelGridInfo���@������������"���������������^loadset^ ������������������r�i�d�4���"���������T�Sload menus from values in run�f�"��������������^�loadset�n �:���(����������� ^GetModelAndGrido � ModelGridInfo���J���8����������� ^Dev_ModelNameMenu^ � ModelGridInfo���?�������9�J���8������������ ^Dev_ModelGridMenu^ � ModelGridInfo���@���������������������� ADO^��*���������������Sset run from menus<�r�H���6���������� ^����^ �Dev_ModelNameMenu� �Dev_ModelNameMenu�u�H���6��������^����^ �Dev_ModelGridMenu� �Dev_ModelGridMenu�������������r�i^�I��������������DFCC4D@ �p:�X���F��%��$��gS@Delete a series of runs, warn the user first of the consequences�LP�J���8�����p�@�@�������� @ RundeckErrors�@���������������J���8�����D@%@�@�������� @ RundeckTitlen� @ RundeckDesc��$����������g@@listRef�����������6�������n���\���� �����SQclose the simulation window and change run to default to avoid conflicts on deletSe���6���$���������#@Simulation_Button@�@�������nt�(������������ @Run_Critical_Begin��Z���H���������#@RunNumberArrayz@�#@RunNumberArray�w�lSample_Control_Run��x�P���>���������#@RunNumberArrayz�@����������� w�lSample_Control_Run���&�������z����� @Run_Critical_End���2��� ���������@I#@Simulation_ProcessID(�_L���������IHDR@��<���*����:�|@state@J#@Simulation_ProcessID(����X���F����^�Ŧ| @@state�wl@�?���������x @state�@�@��������������������l������2��� ����ƚ�����Sclose the rundeck window mp�>���,���������@#@Rundeck_ProcessID�@���������������.������������@D#@Rundeck_ProcessID�BC�.������� �����@?#@Rundeck_ProcessID�BC������������n���@������������������F���4����<�����S/setup the sets to remember the existing records���4���"����F�����@�t@������w�l ListViewSet����&�������l�����@�vw�lUserSet��������������������:���(����"�����@@�L@�������@������������+�:���(����"�����S#scan records to see what runs exist���"��������<@�2@�������8���&��������(@listRef@w�l Delete Errors����0�����������@@�$@�������@�����P���>����H�|@@ @ PM_FindFolderw�l CurrentRun����$@������V���D�����|@� @ RundeckErrors�@ @ RundeckErrors���@�?�����������|���j���� �lj| @ RundeckErrors�@ @ RundeckErrors� @������ @GetListItemStr@listRef�@�@���������j���������lj|@��2��� ��������@@�m����@�?�����������V���D����z��� @� @ RundeckErrors�@ @ RundeckErrors���@�?���������t�|���j����@�h @ RundeckErrors�@ @ RundeckErrors� @������ @GetListItemStr@listRef�@�@��������\���������������@� �����������@@�������V���D���������@� @ RundeckErrors�@ @ RundeckErrors���@�?�����������|���j�����)))% @ RundeckErrors�@ @ RundeckErrors� @������ @GetListItemStr@listRef�@�@����������������J�����@���"�����������@�3@����������������n�����@�����������ǰ���$��������S report errors�B���0������������@@ @ RundeckErrors��@���������������T���B�����lj| @ RundeckTitlen @GetListItemStr@listRef�@�?���������R���@��������ll @ RundeckDesc @GetListItemStr@listRef�@�@����������>���,����՘�RR@�7@������w�lRundeck Errors���V����������������@�@��`@�@���������@�@���������@��`@�@���������@�@����������`@�?���������`@�?��������$@�'��w�l�����8���&����v�lj|@�(@������w�lRundeck Errors�������������������@������������RR@R�$��������������S do the delete���:���(��������@@�L@�������@�?������������� ������������@sw�l������������lj|@�l���� ��������ll@sw�ls���������j�rrr@rr�V���D�������� @Alert_ParamText@� @�L@��������@s�w�l��w�l��J�Z���H��������lj|@ @ Alert_Alert@�@���������@�@���������@�?����������&���������������Sset record model�"�������ݲ�0001@�@������00�"�����������EMak@�@���������������$�������(������������� Sdelete selection���"�����������0001@�B@������00�������������EMaker�$�������R�lj|S fix run list�(�����������ll @Run_Critical_Beginl�&�����������ln#@ Run_CheckDB@�l�(�������n�����#@ Run_DirtySets@����:���(���������#@RunListReinitToolbar8@�?��������&��������������" @Run_Critical_End���.���������������@I#@Toolbar_ProcessID�������������������@������������������@�����������lj|@�l�������������ll�o���� ��������lnScleanup��*�����������@�vw�l ListViewSet��*�����������@�uw�l ListViewSet��2��� ��������@�1@������@��������*�����������lj|@�Y @ RundeckErrors����*�����������ll@�Y @ RundeckTitlen���(�����������ln@�Y @ RundeckDesc�n�������������lj|���������DFCC4D;h��,[�r���`��"R��!R��,�2QSetup lists to support grid, lists are used so that strings are consistant everyw�2herepam�b���P�����������]#� ModelNamesRef�#� ModelGridsRef�#� ModelAppsRefo�#�ModelAppsBinRef���<���*��������#] ModelNamesRef��� Model Names����<���*������������#] ModelGridsRef��� Model Grids����<���*�����������#] ModelAppsRefo��� Model Apps��B���0��������EMak#]ModelAppsBinRef���Model Apps Bin ���������������������������DFCC4D �8jT�@���.���������d�d"3H&clear or fill the checkboxes in tables"�4� ������������d�d"3H inputo"���@���.���������d�d"3H& true/false how to set the checkboxes "f�.������������d�d"1" "�"" clearfill""���(������������d�d"-""MonthPtrl"""�<���*���������d�d"""FieldNuml""TableNuml""i""���&������������d�d" clearfill" "�"nd�������������d�d""�<���*���������d�d"�#setup numbers for fields and tables"���4���"���������d�d"FieldNumn""�"""����""�4���"���������d�d"TableNumn""�"""�����""�������������d�d""�,������������d�d"��set the checkboxes�"N`�>���,���������d�d"""i""i����������""i@�������""���L���:���������d�d"MonthPtr�""�""TableNum�""FieldNum��"�F"i""cl�0������������d�d"MonthPtr�""" clearfill"te�������������d�d""����������������������������������������������DFCC4DRh �"�����'��&��b$ DEPRECIATEDrf�d���R�����cb$LThis method returns a path name that has been decrimented by one level. This@���`���N����������b$Icode predates Path Manager and is deprecidated in favor of PM_UpOneLevel.fn������������b$������� ���������b$ input������ �����scalb$ nonetr���� ����V�����b$ output������ �����������b$ none�����������h����M����������� b$var�D�8���&��������TAT �% @�@�������� @��@path��11�.�������4�TAT @% @�@�������� @��� S�&����������� ?? @ @len�@i�k_� �����������@path� @����$�����������@newpathw������������|��,�����������|b$check for path length���*�����������|@len@� @patha�ac�0�����������|@ @len�@������������ac�6���$�����0001b$remove last ":" if it is there00�4���"��������EMak@ @path�!1@len"�8w�:�ke�V���D��������@path�@�  @path��@�?��������@len�P@�?���������*�����������@len@� @path����������������TAT @ �4���"�������� ?? b$scan characters for last ":"? �4���"������������@ @i�@�?��������@len����N���<�����@ @path�!1@len�P@i��@�?�������"�8w�:���^���L�����@path�@�  @path��@�?��������@len�P@i��@�?���������&��������@i@i��@len���������@������������@�����������@�������������� �����b$cleanup�� �������� @��@path�JJ��� @��@path��ssProc�#@ StackSize�@ processName���������������@����������DFCC4D=f�,�B�T���B��&b��%b��gS=Validate makes sure that the run can be post-processed before���V���D��������S?allowing the post processor to run. Create folders if necessary���F���4��������S.inside diagnostics instead of reporting errors���X���F��������scalSAnew feature to automatically process years if they can't be founddG���� �����������S input������������0001SQ longint, check to make: 1=check acc files, 2=check sumandpd averages, 3=check tS*ime series folders , 4=don't check folderss35�D���2��������EMakS- optional parameter supresses error messages�O�>���,������������S& optional parameter, choose form page ������ ����������S output�f�\���J����Ġ�aaaaSD boolean, process, puts up an error message if the validation fails7���������Ġ���������� ����Ġ������1 @����0�������Ġ�����@ @��@ checkSumAndPD����2��� ����Ġ�����@%@�@��������@path�����2��� ����Ġ�����@@listRef�@ error_num����&�������Ġ���@@formPage$����0�������Ġ�����@1@needToProcessFirst7����J���8����Ġ����@�@�@�������� @ RundeckErrors�@�@����������(�������Ġ�04@ checkSumAndPD7 @����.�������Ġ�����@needToProcessFirst77@����@���.����Ġ�@���@pathT7 @ PM_FindFolderw�l CurrentRun�������������Ġ�����@��&�������Ġ�����Spick form page���.�������Ġ�>� @@�@�@�������������� ����Ġ�����@ @���$�������Ġ�����@formPage$7 @�������������������@���$���������������@formPage$7@�����������������A@���������������������� ��������������S set years��6���$������������@@formPage$� @ pTimeSeries����.��������������Suse all years for plots���4���"������������ @PostProcessing_GetYears����������������@�*���������������Suse selected years#��,�������P����� @PostProcessing_GetYears����������P�����@�����������P�������� �������P�����S load list���@���.����P�����@listRef7@w�lPostProcessing Errors����T���B����P����� @ RundeckTitlen7 @GetListItemStr7@listRef�@�?�����������R���@����P����� @ RundeckDesc7 @GetListItemStr7@listRef�@�@��������������������P��������(�������P�����Saccumulate errors���.�������P�����@ error_num7@��������������4���"����P�@@@path�����$@����>���,����P�@ error_num7@ error_num�7�@�?����������|���j����P��% @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@���������mn��������P�����@���:���(����P�����@@ @Start��@���������������>���,����P�����@ error_num7@ error_num�7�@�?����������|���j����P����� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@������������������P�����@���6���$����P�����@@ error_num�@���������������H���6����P�����@@ @ PM_FindFolderw�lacc�����$@������>���,����P�����@ error_num7@ error_num�7�@�?����������|���j����P����� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@������������������P�����@�����������P��������n���\����P�����SQthe following folders are created if they are missing instead of reporting errorsS:���h���V����P�����SP diagnostics, tables, maps, plots, vertical (slices), zonal, and postprocessing}���P���>����P�.@@ @ PM_FindFolderw�l diagnostics�����$@��� �>���,����P���@ @ PM_FindFolderw�l diagnostics���a��������P�����@ R�L���:����P�����@@ @ PM_FindFolderw�ltables�����$@������:���(����P�����@ @ PM_FindFolderw�ltables��bo��������P�����@n�J���8����P�����@@ @ PM_FindFolderw�lmaps�����$@������8���&����P�����@ @ PM_FindFolderw�lmaps������������P����@���J���8����P�����@@ @ PM_FindFolderw�lplots�����$@������8���&����P�����@ @ PM_FindFolderw�lplots�����������P�����@ e�L���:����P�����@@ @ PM_FindFolderw�lslices�����$@��� @�:���(����P�@ @ PM_FindFolderw�lslices����������P�@�J���8����P��%@@ @ PM_FindFolderw�lzones�����$@���;<�8���&����P�����@ @ PM_FindFolderw�lzones������������P�����@ R�T���B����P�����@@ @ PM_FindFolderw�lpostprocessing�����$@������B���0����P�����@ @ PM_FindFolderw�lpostprocessing������������P�����@S���������P���������n����P�����SQif there are no errors then check either the acc files or the postprocessed averaSge files or folderr������z����P�����SQcheck to make: 1=check acc files, 2=check sumandpd averages, 3=check time series Sfolders , 4=don't check folders��6���$����P�����@@ error_num�@����������������������P�����@�:���(����P�����@@ checkSumAndPD�@�?�����������*�������P�����Scheck for acc files���8���&����P�����@path�7 @ PM_FindFolderw�lacc������r����P�.@@ @ PM_MakePath@patha�w�lJAN�7�@� @������7�w�l.acc�7�@�����@������$@���.�>���,����P�����@ error_num7@ error_num�7�@�?����������|���j����P����� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@������������������P�����@����r����P�����@@ @ PM_MakePath@patha�w�lDEC�7�@� @������7�w�l.acc�7�@�����@������$@�����>���,����P�����@ error_num7@ error_num�7�@�?����������|���j����P����� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@������������������P�����@S�:���(����P�����@@ checkSumAndPD�@�@�����������2��� ����P�����Scheck for sumandpd averageses�R���@����P�����@path�7 @PostProcessing_SubFolderPathw�laverage�@�����P���>����P�����S9<Run Number>_Avg_1907-1911/JAN1907-1911.avgControl2_02sC9���������P�����@@ @ PM_MakePath@patha�w�lJAN�7�@� @������7�w�l-�7�@� @������7�w�l.avg�7�@�����@������$@������>���,�� �����@ error_num7@ error_num�7�@�?��������a�|���j���������� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@���������a�.�������P���@needToProcessFirst77@��t��������P�����@S���������P������r���`����P�����SQcheck on a tab by tab basis if any boxes are checked, if none are then it is an eSrrork���$�������P�����@noChecks$7@����������P�����@�6���$����P�����@ @zTabe� @pMaps�wO8maps7���d���R����P�����@@�"@�������@�"@�������@�"@�������@�"@���������$�������������@noChecks$7@������������������@S�>���,������������@ @zTabe� @ pVertical�wO8verticle7������������������SQIf (Not([PostProcessing]JL Monthly)&Not([PostProcessing]JL Seasonaly)&Not([PoS>stProcessing]JL Quarterly)&Not([PostProcessing]JL Annually))e���&�������������S$noChecks:=True�t���� ������������SEnd if @�8���&������������@ @zTabt� @pZonal��wO8zonale ����������������SQIf (Not([PostProcessing]Lat Monthly)&Not([PostProcessing]Lat Seasonaly)&Not([SBPostProcessing]Lat Quarterly)&Not([PostProcessing]Lat Annually))s���&�������������S$noChecks:=True�t���� ������������SEnd if Su�:���(���� �.@ @zTaba� @pTables�wO8tables��$������� ����@noChecks$7@����D���2���� �����@@�����x @�����x @� ����x @� �����$������� ���@noChecks$7@���������� ����@���D���2������������@@� ����x @� ����x @� ����x @�������$���������������@noChecks$7@�ld����������������@���D���2������������@@�����x @�����x @�����x @�������$�������������@noChecks$7@������������������@���P���>������������@@�����x @�����x @�����x @�����x @��������$�������������@noChecks$7@������������������@������������������@�$���������������@@noChecks$����>���,������������@ error_num7@ error_num�7�@�?�������ss�|���j����������� @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@�������������������������@1�:���(������������@@ checkSumAndPD�@�@�����������4���"��������FdScheck for time series folders���D���2������������@path�7 @ PM_FindFolderw�lpostprocessing���������������@���@@ @ PM_MakePath@patha�@�����7�w�l_�7�@� @������7�w�l-�7�@� @������@������$@������>���,����������@ error_num7@ error_num�7�@�?��������a�|���j������������ @ RundeckErrors�@ error_num7@� @ error_num��7� @GetListItemStr7@listRef�@�@����������.�����������>� @needToProcessFirst77@�����������������@n�:���(��������D@@ checkSumAndPD�@�@��������Ru�"���������������S do nothing8�"����������������@S���������������@����������������@�������������� @���� ������������Scleanup���6���$������������@@ error_num�@������������������ ������������ @��7@�������������������@���.���������������@@�@�?�����������@���.��������>� S)check if we can process and ignore errors�����x�����������@@needToProcessFirst7���@ checkSumAndPD�@�@����������x @ checkSumAndPD�@�@��������������L���:����������@��2try to process years and return error if necessaryd�F�:���(�����������@@ checkSumAndPD�@�@������������2��� ������������Scheck for sumandpd averages���2��� ������������ @��7 @PostProcessing_Average7���:���(������������@@ checkSumAndPD�@�@������������4���"������������Scheck for time series folders���4���"������������ @��7 @PostProcessing_TimeSeries������������������@l�>���,������������@�� $report errors that can't be avoided 7tR�*���������������Scleanup array listst�j���X������������@� @ RundeckErrors�@ error_num�7�@�?��������@�@��������7`@ error_num����&���������������Serror dialog rs�>���,������������@�7@������w�lRundeck Errors�����������������@�@��7`@�@��������� @�@���������@��7`@�@��������� @�@����������7`@�?���������7`@�?��������$@�'��w�l�7��8���&����������@�(@������w�lRundeck Errors��(������������@�un���� ���������� @��7@�� ����������������@����������������@ e���� ������������ @��7@�Er����������������@������������������@�$���������������@y@listRef�nd�*���������������@�Y @ RundeckErrors�um�*���������������@�Y @ RundeckTitlen�or�(���������������@�Y @ RundeckDesc���������DFCC4DMw�[ |�,�����$}��#}��Lshows the info dialog���������������������$��������������� setup window���<���*��������^�7�������� InfoTextInfo���^����������������^����P��@����������@������������P��@�����������@����������P��?���������P��?��������$��'���Info-�y@-1046�������������������$����������� do the dialog�(����������� ^InfoTextI������6���$�����������^�(�������� InfoTextInfo���(��������������^���� �InfoTextI�����������������^����������������������������������������������DFCC4D2� �0�����'&��&&��gSEditor for user accounts�SH�r���`�����SQYou must be an admin to enter the editor. If no accounts exist then the admin accSountm���r���`���������� SQis generated automatically. There must always be an admin account, but you can chSangee�n�$�����������S the password.������������������M�4���"�����0001Syou must be an admin to enter10�,�����������EMak� @UAM_Authenticate�ns� �����������0001Sset form205�4���"��������EMak@�7@������w�l UserManager�ke�p���^���������� @wind�2@@������w�l UserManager�$@�'� �#@ Toolbar_Width�@�@�����������n����������������A���� ���������:�=Sset db�d���� ��������T9�@����"�����������T�@�@���������"�����������T�@�/@���������������������T����4���"������������Screate a user if none exists���:���(��������@@�S@�������@�������������"��������������@�D@��������&��������������@����2w�lAdmin�� ��������������@����2@����*�����������@����2@�������������"�����������@�5@������������������@������������������$�����������S do the dialog�4���"��������@�(@������w�l UserManager���������������@�������������kZkZ@�������������111��2��� ��������#@ UAM_ProcessID2@���������������������������DFCC4D;��D���2����ˆ�����8+Add the current record to the journal list �k�.����������������newElml�pos�����������������[�,������������8update record info ��&��������������������������it�&��������������������������it�������������������.�����������ic���8update journal array ����J���8�����������newElml�#� JournalArrayo��@��?��������ca�8���&�������������#� JournalArrayo�newElml���:���(��������������#�JournalIDArray�newElml���<���*������������#� JournalArrayo�newElml���������F���4������������#�JournalIDArray�newElml��������er������������ff�6���$���������8resort and update selection Z����@���.����������#� JournalArrayo#�JournalIDArrayos�H���6�������������pos��#�JournalIDArray��������#��.���������������#�JournalIDArray�pos����,���������������#� JournalArrayo�pos�lo������������������������������DFCC4DF�2e�2��� ��%6��$6��gSprt2html_I ($prt_file_name)DT�.��������������Scalled by prt2html_loop���V���D�����������S>Convert prt files to html files, now supports shortened tables�:���(�����������^%��@��������� prt_file_name���"���������������^�dotI(����6���$�����������^%��@��������� diag_path����"���������������^�count����6���$����8��� ^� � modelgrid���@����������r����������������}�(������������ �Scheck model/grid��s�6���$���������I� ^GetModelAndGrid� � modelgrid����������������������&������������� Ssample .I file�m�2��� ����������S prtC9_Budgets_index.html����� ��������� �S a_Prt�n�"�������������S a_Prt.htm�t� ������������l�lS jl_Prt���$������������� S jl_Prt.htm�t�*�������������S ... (more files)�)���� ��������� �S END�E��������������I���4���"���������e� Sstart building the dotI file�$�"�����������^dotI(~��~�P���>��������S9html file for the index, pick by full or reduced prt file�H���6��������=HYS0If ([Model Variables]Model 64 bit)`full tables�������������^~~�X���F��������)))%^ � modelgrid���@��������*� ��?��������y@ 7.826x10x9T�R���@��������^dotI(~�dotI(�~��prtC9_index.html�~���Z$���&��I�T���B��������h^ � modelgrid���@��������*� ��@���������y@8x10x9�>=�R���@��������^dotI(~�dotI(�~��prtC9_index.html�~���Z$���&���T���B��������^ � modelgrid���@��������*� ��@���������y@8x10x12�R���@��������^dotI(~�dotI(�~��prtC12_index.html�~���Z$���&�������������^�.������������.�aSElse `reduced tables� �����������111SCase of ����6���$��������S: (modelgrid{2}=1)`7.826x10x9�V���D��������)�S>$dotI:=$dotI+"prtC9_Budgets_index.html"+Char(Carriage return )�2��� ��������S: (modelgrid{2}=2)`8x10x9��V���D��������S>$dotI:=$dotI+"prtC9_Budgets_index.html"+Char(Carriage return )�4���"����.���gS: (modelgrid{2}=3)`8x10x12���N���<����.�����S7$dotI:=$dotI+"prtC12_index.html"+Char(Carriage return )��� �������.�����S End case ������ ����.�SEnd if J�*���������������^count~������������!�2��� ��������Sloop over files to processk�<���*��������^�i���?����������@���������>���,��������ccc^ prt_file_name~ �prt2html_ToPath�i�R�h���V��������^��� prt_file_name��~`��@��������y@!if there is a name make the paths�B���0������������^ prt_file_name~� prt_file_name�~��_Prt*���6���$������������^count~�count�~���?������������� ������������Spaths���2��� ������������^#� PM_Platform� $�������r���`������������^ diag_path~ �PostProcessing_SubFolderPathX�average��������y@path to prt file���x���f����L�^dotI(~�dotI(�~� � PM_MakePath� diag_path�� prt_file_name���������~���Z$���&� �\���J����L�ڼ^ diag_path~ � PM_FindFolder�tables@�����y@path to html fileD����t����L���g^dotI(~�dotI(�~� � PM_MakePath� diag_path�� prt_file_name�~��.htm���������~���Z$���&���������L�����^���l���Z����L�����^ diag_path~ �PostProcessing_SubFolderPathX�average����y@path to prt file���\���J����L�^dotI(~�dotI(�~�� diag_path�~�� prt_file_name�~���Z$���&��V���D����L�^ diag_path~ � PM_FindFolder�tables@�y@path to html file�j���X����L����^dotI(~�dotI(�~�� diag_path�~�� prt_file_name�~��.htm�~���Z$���&�����������L��y��^��������L�����^��������L����^�(�������L����Sfinish dotI file����D���2����L��y��^dotI(~�dotI(�~��END�~���Z$���&����������L������>���,�����������S'only run prt2html for at least one file��2��� ������������^�count�~`����������������*��������������Swrite the dotI file�H���6�����������^ diag_path~ � PM_FindFolder�DiagnosticsApps��J���8������������^ docref_full~� � diag_path�~�� prt2html.I�����2��� ������������^#� PM_Platform� $�����t�2��� ������������Sconvert line endings for PC���:���(������������^�g� docref_full���dotI(��k����������������^�|���j������������^�g� docref_full������dotI(���Z$���&����Z��@�����������:��/����������������^���(��������^ � docref_full�cc�F���4�����^� diag_path�~�� prt2html.I���R*ch�����������{�*��������Srun the application�@���.����� ^ PM_Launch� diag_path�~��prt2html��{{���������L^S����������܈^����������������������������DFCC4D�Sz�,�����&m��%m��gSdo the time averaging������ ������������S input��� ��������������S <none>7������ ����x����S output�F���4�����������S. true if validate is a sucess otherwise false������ �����)))%�1 @����D���2��������@ @PostProcessing_Validate@�?����������(��������������� @��7 @ TimeSeries_Im���2��� ��������d @PostProcessing_EnableButtonsdk�����������@tr���� ��������  ' @��7@� ��������R�����@����������DFCC4DGp�N!�R���@��%��$��gS:remove a record from the database and then update the listpDE�����������������������������Svar���&������� �����@ArrayNum$����&������������@@ ArrayNext����<���*���������@%@�@��������@output_pathname�-~�(������������@@ ArrayPlaceA������������^��������&������� �����Slocate in array���0���������_L@ArrayNum$@�@������_\����������<���N���<�������gS7check that the run is not archived or a master scenario�F���4����z�����@@�m����@�?���������u @������am�H���6����� @Alert_ParamText@�����w�l��w�l��w�l�����B���0����:����� @ Alert_Alert@�@���������@�@�����������������������@�l�8���&��������(S!check that there is no run folder���2��� �������g@output_pathname @Run_PathRDT�D���2����>���@@@output_pathname��@��������������H���6����f����� @Alert_ParamText@�����w�l��w�l��w�l�����B���0������������ @ Alert_Alert@�@���������@�@����������������������@��������������Sask���H���6����@��� @Alert_ParamText@�����w�l��w�l��w�l����Z���H�����lj|@ @ Alert_Alert@�@���������@�@���������@�?������������������ �������*�������H�����Sfind place in list�(������������ @Run_Critical_Begin���F���4���������@ ArrayPlaceA@�#@ RunIDArrayR�@ArrayNum$����&�������"����� @Run_Critical_End�������������������d���R����<�����SMdon't delete the only record in the database, otherwise delete current record���J���8����"�����S2used to not delete the first record, which was bad���l���Z���������@@#@ RunIDArrayR��@�?����������J@ ArrayPlaceA�@����������������������l��������<���*���������S$where to go after the run is deleted,�8���&���������@@ ArrayPlaceA�@�?�����������B���0����������g@ ArrayPlaceA@ ArrayPlaceA�@�?�������pt������������@on����������)))%�2��� ����J�)))%Sclose the rundeck window ��>���,��������@#@Rundeck_ProcessID�@������������z�.��������0@D#@Rundeck_ProcessID��.�������ǰ�lj|@?#@Rundeck_ProcessID����������q`@r`�����������������$�������������gS remove record��"�������v����@�:@���������F���4������������S/RunArray_DeleteByRecNum ($ArrayNum;$ArrayPlace)�����������՘�RR@�2��� �����������Sselect first item in array���(��������lj| @Run_Critical_Beginun�D���2������������@@#@RunNumberArrayz��@���������������\���J����0�RR#@RunNumberArrayz�@�����������#@RunNumberArray�@�?�������Z�4���"������������#@RunNumberArrayz@�?��������&�����������lj|#@ Run_CheckDB@�G�:���(��������ll#@RunListReinitToolbarx@�?�������is�6���$�����lj| @Run_Simulationz@�?����������8���&��������llS RunArray_ManageRundeckWindow (1)���.��������rrr@I#@Toolbar_ProcessID�r�>���,��������S'update the library if it is open (list)��8���&��������lj|#@InfoText_ProcessID@��������������,�����������ll@I#@List_ProcessIDz�����������ݲ����@�B���0��������EMak @ Alert_Alert@�@���������@�@����������������������@(�&������������� @Run_Critical_Endn�������������0001@��H���6��������EMak @Alert_ParamText@�����w�l��w�l��w�l�� V�B���0����R����� @ Alert_Alert@�?��������@�@��������������������������@������������������@���������������@ R�������������@R����������������������������������������������������DFCC4D[�ko�N���<��^�� ^����85Create an empty hier list based on what is passed in ���� �������������8 input ���(���������������8 ptr to list ���,��������������(- (�(listPtrsa�$�����������(listPtr (�(������������((�2��� ������������8clear and recreate list ���.�����������H(y(listPtr�@���&�����������(listPtr(w(���X���F��������((listPtr(�?�������(�����������(�@�������?������������(�$������������8 add empty ��es�F���4��������ff(x(listPtr�<empty>(�?��������X���F������������((listPtr(�?�������(�$(��(�����������ذ`���������������(��������������DFCC4D��t���b��$}��#}��LQThis shows the dialog to do links, this code works for both eJournal and EditSimulations������ �������� �� input�|�>���,�����������' mode to work in (literal page to use)���&��������������� table to useh���.����������� default field to use�,���������������^ ��� �LinkModeL����0�����������111^- ��� � LinkTablePtrn����0�����������^- ��� � LinkFieldPtrn��$�����������^�height��F���4�����������^���@�������� � FieldList����������������$�������������� ^LinkModeL �����(�������������� ^ LinkTablePtrn �����(����������� ^ LinkFieldPtrn ������������������f���T��������Otry to get a default heigh of 1/3 the screen or 310 pixels if that is too small�4���"�����������^height������@�����������4���"��������^�height�-0��@���������,�����������^height���@�������������������^�:���(��������^height��height���@���������������������������������^������@���������P��@������������@���������P�height������@������������@������������@�����������height�$��'���Link-�y@ Open a modal windowdd�4���"����������^�(�������� LinkToList�����������¦�����^�u������������������DFCC4Da�U�x���f��%5��$5��gSQThis puts up a hierarchical list of files for a given type into a list, the dialoS g has beenuof�h���V�����������SQseperated in this version. Also strings are now trimmed according to this formula���t���b������������SQif "ANN1906-1920.avgControl_02sC9.xls" is the string then 12,16 keeps "ANN1906-19S20.xls"���p���^����������SQwhere the first number is the number of char to keep and the second is the numberS to���f���T��������SNremove with anything after the removed char appended to the end of the string.���� ���������0S input���F���4��������EMakS/ type (Type extension, empty means everything)4D�H���6������������S1 folder name (will be expanded by PM_FindFolder)���N���<������������S6 ptr to list to fill out (must be cleared externally)���*�������������S keep char number$��,������������ �S remove char number,�e�>���,��������� �^%��@�������� ���� myExtension��r�@���.����������^%��@�������� ���� myFolderNamey���:���(���������i�n^- ����listPtr�� listRefPtrl���B���0���������u�b^ ��� ����keepChar$�� removeCharr���6���$����������^%��@��������� diag_path���6���$����������^%��@��������� shortname��P�N���<����0��� ^�curPos,�� extensionLenx��strLen,��listLen��l�F���4����0��(�^���@��������� diag_list���������������m�&�������0�� �^ myExtension, ��o �(�������0���^ myFolderNamey, ��r$�"�������0��i�n^listPtr, ��ar�$�������0��u�b^keepChar$, �����&�������0���^ removeCharr, ������������0�^�"�������0��� S clear listh� �,�������0��(�^ listRefPtrl,�listPtr� �0�������0�� �^y� listRefPtrlo��T��:�(�������0��t�s^ listRefPtrlo,�w�e�Z���H����0���^� listRefPtrlo���?�����������������������@����������8���&����0��h�e ^plots_hier_counter�,��@�����������������0��h�o�r�&�������0��l�aSget the folder�U�D���2����0�����^ diag_path, � PM_FindFolder� myFolderNamey����P���>����0�����^dummy, �PM_DocumentListo� diag_path�o� diag_list������������0��������J���8����0�����S2if there is no extension then just keep everything���@���.����0�����^��� myExtension�� ����������������4���"����0�����^� diag_list��listPtro����(�������0�����Sshorten the name����B���0����0�����^�i���?���������� diag_list�����D���2����0�����^z�listPtro��i��iRef(�� shortname�������������������^ shortname,�� � shortname���?���������keepChar$��,��� � shortname��keepChar$�,�� removeCharr�,���?�����������V���D���������� ^�listPtro��iRef(�� shortname� �plots_hier_counter����R���@�������� ;P ^plots_hier_counter�, �plots_hier_counter��,���?�������������������� =^����������������^���d���R������������SLloop over every element in the list and look for a match based on extensionsA�D���� ������������Ssetup���:���(������������^ extensionLenx,��� myExtension������� �����������Sloop,��B���0����ƺ����^�i���?���������� diag_list����:���(����ƺ����^strLen�,��� diag_list��i>�<�B���0����ƺ����S+check against two letter extensions, eg .nc��:���(����ƺ����^� extensionLenx� ��@��������� a"������ƺ����^� diag_list��i>!?�strLen,�,P��@��������",� � myExtension!?��?�������",���� diag_list��i>!?�strLen,�,P��?�������",� � myExtension!?��@��������",���� diag_list��i>!?�strLen,",� � myExtension!?��@��������",����(�����#�����Sshorten the name��(��������ƺ���^ shortname,�� � diag_list��i>���?���������keepChar$��,��� � diag_list��i>��keepChar$�,�� removeCharr�,���?���������e�L���:����ƺ����^x�listPtro�� shortname� �plots_hier_counter�����R���@����ƺ���� ^plots_hier_counter�, �plots_hier_counter��,���?���������������ƺ����^S�F���4����ƺ�S.check against three letter extensions, eg .htm��������ƺ���^S��p����ƺ���^� diag_list��i>!?�strLen,�,P��@��������",� � myExtension!?��?�������",���� diag_list��i>!?�strLen,�,P��@��������",� � myExtension!?��@��������",���� diag_list��i>!?�strLen,�,P��?�������",� � myExtension!?��@��������",���� diag_list��i>!?�strLen,",� � myExtension!?��@�������",����(����������Sshorten the name��(��������ƺ���^ shortname,�� � diag_list��i>���?���������keepChar$��,��� � diag_list��i>��keepChar$�,�� removeCharr�,���?���������e�L���:����ƺ�^x�listPtro�� shortname� �plots_hier_counter�����R���@����ƺ� ^plots_hier_counter�, �plots_hier_counter��,���?���������������ƺ�^S��������ƺ�^��������ƺ���^S��������ƺ����^���������ƺ���^�>���,����ƺ��� S&see if there are any items in the listie�H���6����ƺ����S0add icons to a real list or empty to a null list�?�2��� ����ƺ����^listLen,�|�listPtro���4���"����ƺ����^�listLen�,`�������������{�<���*����ƺ����S$pick icon based on ending, if needed,���8���&����ƺ����^�i���?���������listLen��D���2����ƺ����^z�listPtro��i��iRef(�� shortname����2��� ��������^strLen�,��� shortname�in�b���P��������^ shortname,�� � shortname��strLen,�,P��@�����������@���������������������^l�0�����������^� shortname� �htm����h���V��������^�listPtro��iRef(����$����$����,���@ `�������y@IE icon�0�����������^� shortname� �xls�is�"�����������^#�Use_EVA�o�j���X��������^�listPtro��iRef(����$����$����,���@ �������y@EVA icon,������������^ s�l���Z��������^�listPtro��iRef(����$����$����,���@ P�������y@ Excel iconT������������^�0�����������^� shortname� �.nc�pa�"������������^#�Use_EVA����j���X���������1�6^�listPtro��iRef(����$����$����,���@ �������y@EVA icon,� �������������� ^��n���\���������(�^�listPtro��iRef(����$����$����,���@ p�������y@ Panoply icony��������������^ m������������^l�n���\��������RRR^�listPtro��iRef(����$����$����,���@ 0�������y@ Suspect icony����������������^ r������������^���������������^S�@���.�������� ^PostProcessing_TypeHierEmpty��listPtr���������~����^����������������������������������������������������DFCC4D Mh~�8���&����������"0open list window to edit runs @"���h���V����������� Generic_OpenReopen???#List_ProcessIDK?x� List Window?x� List_ProcessK??����������DFCC4Dm�2 B�L���:��&\��%\��gS4this code lets you go to the previous figure caption~��L���:�����S4I have to build an array of avalible figure captions~���L���:����r�����S4so that I can find the right one. Then move position~������ �����scalS inputD:�&��������scalS cur position:��:���(����������gS# move to previous or next as -/0/+ a�V���D����~����S> optional parameter that prevents old values from being saved���B���0����T�TAT � @��@move��@pos� @��@curPosD�ch�2��� �����TAT @�@figso�@�@�������� �"�������Ɋ�TAT @curPos�~ @�D � �������.����@moveo~ @������������8��������:���(����J� @InfoText_CreateFigArray@figsT�����������������$�����������S move in array���<���*��������TAT @pos~@�@figsT� @ SectionNumber�5 �0�����������@@pos�~@��������������������V�����@���<���*���������@@move��wl@������������wO8prev~���2��� ���������@pos~@pos�~`@�?����������:���(����Ŭ�����@@move��@������������wO8cur���*�����������aaaaSdon't change ��<���*����>��� @@move��~@������������wO8next~�u�2��� ���������o�n@pos~@pos�~�@�?������������������� @��������������o�n@�t�(�������h�aaaa@pos~@���������������������������@�����������X�aaaa��B���0������������S+check for valid pos & change figure caption��<���*���������@@figs��@posa�~@���������������b���P�����������@@�wl@�@���������wO8.surpress save if the extra parameter is passed`���H���6��������aaaa @ ItemCaption� @ SectionNumbera~ @SectionPictText�`���N������������SHItemPictLabel{SectionNumber}->:=SectionPictText `don't need this anymore����������Ĵ�����@�6���$��������� @ SectionNumber~@figsi�@posa��n���\��������H @ SectionPict~ @ItemPictI� @ SectionNumberawO8$load temp image until full one loads~�H���6��������p @SectionPictText~ @ ItemCaption� @ SectionNumbera�B���0����,�0001 @ SectionTitlec~w�lFigure �~�@� @pos�00�������������EMaker�"�������Ӽ��� S load image8�t�<���*����������@value~ @ItemNameI� @ SectionNumbera�T�>���,�����������@@ foundPreviewo~@@�� ���@value�eJ�>���,�������� @I@@ foundPreviewo�~�~`@�?���������D�4���"��������TAT @�@��� ���@ foundPreviewo� �@���.��������496 @pictPath$~ @ PM_FindFolderw�lImages��0:�N���<������������@pictPath$~ @ PM_MakePath@pictPath$�@�� ���@�����N���<���������� @pictPath$~ @ PM_MakePath@pictPath$�@�� ���@���h�8���&���������o�n@@@pictPath$��$@����:�6���$���������{�@@pictPath$� @ SectionPict��}������������@��������������4@������������������@ ����������������������������������������������DFCC4DHtd�EL�~���l������������FQGet the next level up from a path name. If the end of the name is a file then youF get back the e���~���l��������FQfolder/directory that the file is in. If the end of the name is a folder then youF get back the r���f���T�����FMfolder that encloses it. This command is the equivlient of cd .. under unix. }�j���X���������FQThe code comes from the System Documents section of the manual so I've left the �8���&���������Foriginal comments at the end. ��� ��������F input ��(��������F a path name ���"������������F output lha�0������������F a shorter path name ���������������B���0���������F( Long name to file name Project Method ��F���4���������F- Long name to file name ( String ) -> String �R���@���������F9 Long name to file name ( Long file name ) -> file name ������������������6���$���������%�@������� � �����:���(������������%�?������� vsDirSymbol���J���8������������viLenviPosviChar viDirSymbol�������������������4���"����������� viDirSymbol# PM_PathASCII�p�*���������������viLen� ����j���X�������������[ �!viLen"�@ viDirSymbol| omit last char if it's a folder �8���&������������viLenviLen�@�?���������������������������,���������������viPos������������R���@�����������viCharviLen�?��������@�?���������F���4������������[ �!viChar"�@ viDirSymbol���(���������������viPosviChar �.�����������viChar��������������������������������������������������4���"������������viPos�@�����������re�@���.������������ ���  ��?�������viPosle����������������ua���� ������������ �� ���������������������������������������������������DFCC4Dv�,�A�x�X���F���� ����7d>Generic code of OHT programs to write out the file and launch �@� ������������7d input �he�:���(������������7d contents of file to write out l����N���<������������7d4 .I file name to write out (.I needs to be passed) ����B���0��������� ���7d) app name (.app and .exe will be added) �mb�.��������������( (�(contents����>���,������������(%(�@������� (�(filename����<���*���������(%(�@������� (�(appname���8���&��������3333(%(�@�������( diag_path���*��������������(2( docref_full���&���������������(contents� (�(���&���������������(filename� (�(�$�����������zzz(appname (�(r����������������(�0����������������7dwrite out the .I file �Sy�B���0������������( diag_path ( PM_FindFolder�� OHTAppsg �H���6������������( docref_full( ( diag_path��@(filenameh���4���"������������(#( PM_Platform�@$(��re����p������������(�g( docref_full(�(�(contentsu(�Z$(��&(�Z(�@���������:��/�����������������((���@���.������������(�g( docref_full((contentsule����������������((c�*���������������( ( docref_full�D���2������������(( diag_path��@(filenameh�R*ch��������������������.����������������7drun the application ����>���,������������ ( PM_Launch( diag_path��@(appname������������������[��������DFCC4D%�]'�V���D��'&��&&��gS>Scan through the input folders and see how to adjust the cacheB�X���F�����������SAto match what's on disk. This code handles Input and Input Oceans���,���������������Sin a series of steps:���,�����������S 1, set the semaphore�P���>�����������S9 2, scan folder and determine which files are input files���X���F������������SA 3, delete records for files in the database that are not on disk���V���D������������S> 4, add records for files on disk that are not in the database���.������������S 5, clear the semaphore���J���8������������%@�@�������� @inputFolderPath�@tempPath$����N���<����������{@@inputFolderCount�@inputFileCountn�@i�@j��s�J���8��������aaaa@�@�@�������� @ inputFoldersp�@��������������H���6������������@�@�@�������� @ inputFilesn�@����������������������������������(�������X�6dSset the semaphore���6���$����X�����@worksn@�w�l $CM_InputScan������������X�@�����6���$����X�����Sget list of folders to process��<���*����X�����@@j�@�?��������@�@������������"�������X�� S pick folder���P���>����X���� @inputFolderPathn @ PM_FindFolder#@ CM_FoldersC�@j|������������X�D� �������X�����S get lists���>���,����X�����@ @inputFolderPath� @ inputFoldersp����@���.����X����@inputFolderCountn@ @ inputFoldersp����>���,����X�����@@inputFolderCount�n@�����������������������X�� ���:���(����X�����S"remove records for deleted folders���>���,����X����� @ CM_Invalidate) @ inputFoldersp�@j������������X��������*�������X�����Sprocess each folder���B���0����X�����@@i�@�?��������@inputFolderCount����d���R����X�� @tempPath$n @ PM_MakePath @inputFolderPath� @ inputFoldersp�@i|�@��L�N���<����X����@ @PM_DocumentList)@tempPath$�) @ inputFilesn�����t���b����X���� @CM_InputScanFoldern@j�) @ inputFoldersp�@i|�) @ inputFilesn�) @inputFolderPath�����������X����@����������X�����@����������X�����@�����������X���������������X�����@�����������X��������0�������X�����Sclear the semaphore & var���,�������X�����#@CM_Priv_ScanInputn@����,�������X�����@�w�l $CM_InputScan������������X�������������������������������������������������DFCC4D]�_�:���(�� b��b���7d!Method Name: UAM_ComparePasswords����X���F�������������7d>Description: This method will compare the content of two blobs ���$���������������7d Parameter:��+�0���������������7d $1 = Blob; $2 = Blob ����&������������� �7d Return Value:����<���*�����������7d# $0: True if equal, otherwise false����������������������&������������\\ ��� ������ �����������\1 ���������� ������������ \��������6���$��������\�] ������] ��������R���@������������\�vByte���������������] ���� ��?������������>���,������������\ ��O�vByte�O� ��O�vByte�������� ���������zzz \��������*������������\vByte�] �������������������\\������������\\t������������\\s���� �������� \�������������������\\��DFCC4D.c� O�B���0��!6�� 6��,�7d*open or close all the disclosure trianglespt���� ������������7dinput���0����������������7d open or close constant������� �����������]1 ����*�����������ds:H]1� openorclosedp�ar���� ������������]�i����$�������������]1�changed�� �(�������������]1� hidetrendsh���(������������e�c] openorclosedp. ���N��������������� ��Z���H����������I]��"��������.��" �Simulation_UnbreakableLock������4���"���������D�O]� openorclosedp�� �Open��u�(������������{��7dReset_all_groups �������������{��H���6�����]�Counter���?�������� �Number_of_Groupsd�xx�B���0�����)))%] � Group_StateN�Counter.�� �Closed.��L���:����� ]Twist_Down_Button � Group_NamerN�Counter.�������������]���������]���������]�2��� �������� ]Simulation_OceanMenul���������������������8���&��������]��?�����������@������������F���4��������] � Group_StateN��?�������.�� �Closed.��:���(������������ ]Twist_Down_Button��Info������������������]J������������]�F���4��������] � Group_StateN��@��������.�� �Closed.��:���(�������� ]Twist_Down_Button��Init���������������������]������������������]���F���4������������] � Group_StateN��@��������.�� �Closed.����:���(������������ ]Twist_Down_Button��Ocen��������2��� ������������ ]Simulation_OceanMenul���������������������]������������������]���F���4������������] � Group_StateN��@�������.�� �Closed.����:���(������������ ]Twist_Down_Button��Diag�����������������������]������������������]���:���(������������ ]Twist_Down_Button��Forc�����������������������]���8���&������������ ]Twist_Down_Button��CO2����������������������]���8���&������������ ]Twist_Down_Button��N2O����������������������]���8���&������������ ]Twist_Down_Button��CH4����������������������]���:���(������������ ]Twist_Down_Button��CFC11����������������������]���:���(������������ ]Twist_Down_Button��CFC12����������������������]���8���&������������ ]Twist_Down_Button��Sol����������������������]���:���(������������ ]Twist_Down_Button��Scen�����������������������]������������������]���&����������������7dForm_Unloader ���.����������������7dSimulation_SaveRecord ����6���$�������������7dNEXT RECORD([Model Variables])����:���(�������������7d"PREVIOUS RECORD([Model Variables])����������������������$����������������7d Form_Loader �������������������]���6���$������������][�(l��� @_Mode_Menu�������8���&�������������7d this opens all the closed groups����H���6������������]�Counter���?�������� �Number_of_Groupsd����@���.������������] � Group_StateN�Counter.�� �Open����L���:������������ ]Twist_Down_Button � Group_NamerN�Counter.����������������������]������������������]������������������]������������������]������������������]����������������������������������������������DFCC4Dz|�,^�h���V��'+��&+��gSQImports a record or records from an XML file to 4D records. Duplicate run numbersfs�r���`�����������SQare not allowd. Later versions will also document how BLOBs are converted to and Sfromn���v���d�����������SQXML. Counts up the records in the XML import and asks the user what to do about dS uplicates��x���f��������0001SQFixed bug where import halted after the first record and didn't replace duplates S correctly.w27�������������EMaker�@���.�������������%@�@��������@path��@ runNumber�������r������������@%@�@��������@ xml_Table_Ref�@xml_Record_Refz�@ xml_Field_Ref�@ xml_Save_Refm�@ xml_BLOB_Refm����&�����������O@-@fieldPtr$�x�>���,���������@1@doned�@continue$�@showquit$����(�����������@@ fieldValuef���P���>���������@@versd�@misseda�@ fieldType�@import_counterz����(���������������@@ what_to_dow����4���"������������@import_counterz>@��������������&���������������Serror reporting���:���(�����������@%@�@�������� @ RundeckTitlen����8���&������������@%@�@�������� @ RundeckDesc����J���8��������� @�@�@�������� @ RundeckErrors�@�@���������$���������������@@listRef����$�����������d@2@docReff�� ��������������@donee>@�׀��$��������������@showquit$>@������������r�4���(�������r�����Sget the document����2��� ����r�@���@#@ PM_Platform�$@���@��@���.����r�����@path>w�l????wO8import from any file>����������r�����@���$�������r�� @path>w�lxml����������r�����@���@���.����r�����@docRef�>@w�l�>�@pathe�$@������0�������r�����@ @OK�@�?�����������(�������r�����@path�> @DOCUMENTD�����������r����A���,�������r�����Sopen the XML document���4���"����r����@ xml_Table_Ref>@@pathT������������r��������,�������r�����Sread first record ref���>���,����r�����@xml_Record_Refz>@@ xml_Table_Ref������������r��������D���2����r�����S-collate a list of records in the import file ���B���0����r�����S+ (0 = replace, 1 = stop, 2 = don't replace)���l���Z����r�����@ what_to_dow> @XML_CollateRecords�@xml_Record_Refo� @PM_Name@patha�@�������������r�����@���D���2����r�����@@ what_to_dow�@������������wO8replace���$�������r�����@showquit$>@����B���0����r�����@@ what_to_dow�@�?��������wO8stop>�� �������r�@done�>@��J���8����r�@@ what_to_dow�@�@���������wO8 don't replace)�$�������r�@showquit$>@���������r�@���������r��������(�������r�����@@doneq�@�����(�������r�����Sshow progress bar���T���B����r�����@ progressBar> @ Progress_Openw�lImporting simulations...������������r�����@���4���"����r�����@ progressBar>�>`@�@�����������������r�����@�����������r��������<���*����r�����S%loop over the records in the database���L���:����r�����@ @OKE�@�?����������@done��@��������������r����������������r��������L���:����r�����S4read the first field, which should be the run number>���\���J����r���&@ xml_Field_Ref>@@xml_Record_Ref>�@ fieldName�@ fieldValuef���L���:����r�����@fieldPtr$> @ XML_FindField@������@ fieldName����.�������r�����@ runNumber>@ fieldValuefhi���������r�����@�d���R����r�����SMcheck that the first element is the run number and that it is not a duplicate���2��� ����r�! @@fieldPtr$�@�����..�J���8����r�����@import_counterz>@import_counter>�>�@�?�������r>���������r������J���8����r�����S3check what to do about duplicates based on the mode��<���*����r�����@recNum�>@@�����@ runNumber�@�8���&����r�����@@recNumb�>�>`@�?������������������r�����@@ what_to_dow�@�������������� @xml_duplicate_type��@import_countert-�wl@�@����������wO8)replace and run is not using an old model���.�������r�����@�@������@recNum��@�"�������r�����@�:@�������$�������r�! @continue$>@�ow��������r�����@��J���8����r�����@continue$>@��� skip the record on don't replace�����������r�����@c��������r�@�N���<����r�@continue$>@��� %always import if it's not a duplicatete��������r�@�:���������r�����@�$�������r�����@@continue$�����������r�����@�:���(����r�����S#get the data from the rundeck fieldn �Z���H����r�����@ xml_Field_Ref>@@ xml_Field_Ref�@ fieldName�@ fieldValuef����Z���H����r�����@ xml_Save_Refm>@@ xml_Field_Ref�@ fieldName�@ fieldValuef������������r������(�������r�����Scheck the version�2��� ����r�����@versd>@� @ fieldValuef�ie�:���(����r�����@@versd� �@� #@ XML_Version�������������r�7�(�������r�����Screate the recordld�6���$����r����� @Simulation_Create@ runNumber�����������r��������(�������r�����Sread in BLOB data���<���*����r�����@ xml_Save_Refm>@@ xml_Save_Refm����<���*����r�����@ xml_BLOB_Refm>@@ xml_Save_Refm������������r������0�������r�����Sread in User Preferences�_S�<���*����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm����J���8����r����� @XML_TextToArray @ Group_State�@ xml_BLOB_Refm����<���*����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm����L���:����r����� @XML_TextToArray @ Group_Visible�@ xml_BLOB_Refm������������r����� @�$�������r�����S read in Links@�Z���H����r�����@ xml_Save_Refm>@@ xml_Save_Refm�@ fieldName�@ fieldValuef����Z���H����r�����@ xml_BLOB_Refm>@@ xml_Save_Refm�@ fieldName�@ fieldValuef����Z���H����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm�@ fieldName�@ fieldValuef����H���6����r����� @XML_TextToArray @ LinksList�@ xml_BLOB_Refm���Z���H����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm�@ fieldName�@ fieldValuef����L���:����r����� @XML_TextToArray @ LinksListType�@ xml_BLOB_Refm� f�Z���H����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm�@ fieldName�@ fieldValuef����N���<����r����� @XML_TextToArray @LinksListFieldy�@ xml_BLOB_Refm�ie�Z���H����r�����@ xml_BLOB_Refm>@@ xml_BLOB_Refm�@ fieldName�@ fieldValuef����L���:����r����� @XML_TextToArray @ LinksListWord�@ xml_BLOB_Refm� f���������r����� @�L���:����r�����S5loop over all the fields in the record to copy values f�,�������r�����@missedO>@�����������in�Z���H����r�����@ xml_Field_Ref>@@ xml_Field_Ref�@ fieldName�@ fieldValuef����0���������������@ @OKe�@�?��������in�L���:������������@fieldPtr$> @ XML_FindField@������@ fieldName� f�4���"������������@@;@fieldPtr$��@��ld�B���0������������ @ XML_TextTo4DL@fieldPtr$�@ fieldValuef�������������������@f�4���"������������@@misseda�wl@�@�����������:���(������������@missed�>@missed��>�@�?�������Va����������������@�>���,������������ @ RundeckErrors�@missedk->@ fieldName@����������������@m�Z���H������������@ xml_Field_Ref>@@ xml_Field_Ref�@ fieldName�@ fieldValuef�������������������@����������������������,���������������Sdo cleanup of import>���Z���H������������@misseda> @XML_ImportCleanup@ runNumber�@versu�@missedb�������������������@���L���:������������ @Alert_ParamText@ runNumber�w�l�>�w�l�>�w�l�>����B���0������������ @ Alert_Alert@�@���������@�@��������������������������@������������������@��������������@�`���N��������@@import_counterz�@������������wO8block error on multiple import �B���0�������� @ Alert_Alert@�@���������@�@������������������������@��� ���������������@done�>@�������������������@���@���.������������@xml_Record_Refz>@@xml_Record_Ref>�������������������@����������������������*���������������Sclose progress bar���<���*������������@@ progressBar����>`@�@�����������(���������������@I@ progressBar�������������������@������������������������� ������������Scleanup���*���������������@@ xml_Table_Ref����$���������������@@showquit$����&��������������� @XML_QuitOnImport������������������@������������������@������������������������DFCC4Dr7�,�D���2��%��$��gS,This is a stub method used for documentation�����������������M�^���L�����������SGThe version field in the rundeck part of the XML determins what version���`���N������������SHof EdGCM exported the record so that appropriate changes can be made on ���0�������������Simport. The versions are:>,��������������S��b���P������������SJ0, EdGCM 2.1, base version with version of the database frozen in May 2003��T���B������������S<1, EdGCM 2.3-2.5, changes the ocean mode (kOcean), 2004-2005����d���R������������SM2, EdGCM 3.0, revised database (2.5 used the same db as 2.3), frozen Jan 2006���8���&����š� �%@�@��������#@ XML_Version����(�������š�RR#@ XML_Version%w�l2cc��DFCC4DJ?��&�����&b��%b��gSrun trendSetter��^���L�����������SGinput includes where to place the output and if this is a dry run (just���L���:������������S4create the tables) or a real run. *(^&&)^)%*)%&*%^*$^����������������.�������*�����%@�@�������� @�����6���$����*����@%@�@��������@out_fold$����.�������*�����@%@�@�������� @�����4���"����*�����@%@�@��������@out_tab������� ����*�����@1 @�����&�������*�����@1@ save_data����.�������*����@%@�@�������� @����4���"����*�����@%@�@��������@header�����"�������*�� @@ticks������������*�����@��"�������*�����@@trend����8���&����*�d@%@�@��������@ trend_patht�z�(�������*�����@2@ docref_full�4� �������*�����@@pos����"�������*�����@@iteme������������*����������� ����*��LSsetup���$�������*�����@out_fold$^ @�� �"�������*�����@out_tab^ @����$�������*�����@ save_data^ @����"�������*�����@header�^ @����.�������*�����@ trend_patht^ @Run_PathR�����������*�� ���.�������*�����Sset trendSetter.I file���:���(����*����@trend^@header��^�@�Z$@��&����:���(����*�����S"add xls ending for pc version only���2��� ����*����@#@ PM_Platform�$@������8���&����*����@trend^@trend�^�@�Z$@��&����������*�����@���F���4����*�����@trend^@trend�^�w�l.xls�^�@�Z$@��&�����������*�����@�����������*����������� ����*�����Spaths���H���6����*�����@trend^@trend�^�@out_fold$�^�@�Z$@��&����F���4����*�����@trend^@trend�^�@out_tab�^�@�Z$@��&����������*��������&�������*�����Sfor view or run���d���R����*�����@trend^@trend�^� @trendSetter_I_Boolean@ save_data��^�@�Z$@��&������������*��������$�������*�S trends to use�L���:����*�@trend^@trend�^� @trendSetter_I_Boolean@������L���:����*��%@trend^@trend�^� @trendSetter_I_Boolean@�����=>�L���:����*�����@trend^@trend�^� @trendSetter_I_Boolean@�'�������L���:����*�����@trend^@trend�^� @trendSetter_I_Boolean@�1�������L���:����*�����@trend^@trend�^� @trendSetter_I_Boolean@�C�������`���N����*�����@trend^@trend�^� @trendSetter_I_Boolean@�U�����^�@�Z$@��&������������������ ��"���������������S base values���V���D������������@trend^@trend�^� @ RealToF18.5@������^�@�Z$@��&����V���D������������@trend^@trend�^� @ RealToF18.5@������^�@�Z$@��&����V���D������������@trend^@trend�^� @ RealToF18.5@�&�����^�@�Z$@��&����V���D������������@trend^@trend�^� @ RealToF18.5@�0�����^�@�Z$@��&����V���D������������@trend^@trend�^� @ RealToF18.5@�B�����^�@�Z$@��&����V���D������������@trend^@trend�^� @ RealToF18.5@�T�����^�@�Z$@��&�����������������������(���������������Strend information���&�����������.Scarbon dioxide.�t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@��������t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@������@� �����@� �����@� �����f�t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@� �����@������@������@� �����f�t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@������f�$���������� S nitrous oxide��t���b�����������@trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@�������t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@������f�t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@������@� �����@�!�����@������f�t���b���������� @trend^@trend�^� @trendSetter_I_TrendInfo�@�"�����@�$�����@�%�����@�#�����f���� ������� Smethane�d�t���b��������! @trend^@trend�^� @trendSetter_I_TrendInfo�@�(�����@�*�����@�+�����@�)�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@��������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@��������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@������@������@������@����������� ������������Scfc11���t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�2�����@�4�����@�5�����@�3�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�6�����@�8�����@�9�����@�7�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�:�����@�<�����@�=�����@�;�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�>�����@�@�����@�A�����@�?���������� ������������Scfc12���t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�D�����@�F�����@�G�����@�E�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�H�����@�J�����@�K�����@�I�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�L�����@�N�����@�O�����@�M�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�P�����@�R�����@�S�����@�Q���������� ������������Ssolar���t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�V�����@�X�����@�Y�����@�W�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�Z�����@�\�����@�]�����@�[�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�^�����@�`�����@�a�����@�_�������t���b������������@trend^@trend�^� @trendSetter_I_TrendInfo�@�b�����@�d�����@�e�����@�c��������������������������,���������������Swrite out the .I file���D���2������������@ trend_patht^ @ PM_FindFolderw�l TrendApps����N���<������������@ docref_full^@ @ trend_patht�^�w�l trendSetter.I����2��� ������������@#@ PM_Platform�$@������|���j������������@�g@ docref_full�@�@�@trend�@�Z$@��&��@�Z@�@����������w�l:�w�l/��������������������@���:���(������������@�g@ docref_full�@@trend��������������������@���(���������������@ @ docref_full����J���8������������@@ trend_patht�^�w�l trendSetter.I�w�lR*ch�����������������������2��� ������������Swrite out the .I Name file���(��������������� @trendSetter_I_Name^����������������������Z���H������������SBremember to delet the stop file and check for it before continuing���T���B������������@@@ trend_patht�^�w�ltrendSetter.stop��$@������B���0������������@�@ trend_patht�^�w�ltrendSetter.stop�������������������@����������������������*���������������Srun the application���F���4������������ @ PM_Launch@ trend_patht�^�w�l trendSetter2^�����������������������:���(������������S"wait for the application to finish��� ���������������@ticks^@������������������@���.���������������@C@B�@�@��������������p������������ @@@ trend_patht�^�w�ltrendSetter.stop��$@����x @�^`@ticks�^@�@������������.���������������@C@B�@����������������������������������2��� ������������Sretype the files afterwards���<���*������������ @trendSetter_I_Cleanup@ trend_patht�����������������������DFCC4D,��L���:��$}��#}��L5Pick a data file from a list to use for a trend. This��R���@�����������:code displays a list window to prevent people from pickingX���R���@������������:an invalid file. The files are picked from Input Forcings.X������ �������� input�M�B���0�����+ ptr to location to pass filename back to.�,�����������^- ����filename$����F���4��������^���@��������� datafiles����������������H���6��������^ � file_hier�� arraySize��len��itemRef��8���&�����^%��@�������� � file_prompt����$�����������^filename$ ���,�����������^itemRef��?���������������������:���(��������"get the list of datafiles a reduce��P���>��������^ � PM_FindFolder�Input Forcings��� datafiles��&��������������^�� datafiles���������������&�����������create the list�,�����������^�m � file_hier�����&�������¦����^y � file_hier����������¦�^�$�������¦� ^ file_hier�w�V���D����¦�^ � file_hier���?�����������������������@������������������¦��:���(����¦�"fill out list with only text files�4���"����¦�����^ arraySize�� datafiles�rA�:���(����¦�����^�i���?��������� arraySize�is�6���$����¦�����^len��� datafiles��i��� �������¦�����^� datafiles��i!��len�P��@��������"��.���� datafiles��i!��len�P��@��������"��t���� datafiles��i!��len�P��?�������"��x���� datafiles��i!��len"��t�����H���6��$�����^x � file_hier�� datafiles��i��itemRef���p���^����¦���^ � file_hier�����������������$����$�������@ �������y@ text icon�e�:���(����¦�����^itemRef�itemRef����?�����������������¦�����^ R��������¦�����^�����������¦�����^�"�������¦����� show dialog e�>���,����¦�����^�| � file_hier���������������rr�B���0����¦����� ^ file_prompt�Choose a trend file to use:����������¦�����^������@���������P��@�������������@���������P��@�������������@������������@�������������@������������@��������$��'���Choose Trend File�y@ Open a modal window���.�������¦�����^�(��������List-���������¦�����^�rr���������¦����� ^�.�������¦�����if the user picked Open���0�������¦����^ �OK���?�����������B���0����¦�����*get the name of the document from the path����R���@����¦�����^z � file_hier��{ � file_hier���i� � file_prompt����0�������¦�����^filename$j � file_prompt����������¦�����^����������¦�����^���B���0����¦����� ^ Alert_Alert��?����������@������������������¦�����^�����������¦����������� ����¦�����cleanup���&�������¦�����^y � file_hier�����������DFCC4DE�8CR�<���*�� �� �� �7d#save a section back to the eJournal���� ���������������7d input �hi�*���������������7d section number.����6���$��������o I.] ����currentSelectionX�����.�������(�0001]currentSelectionX. �����������������EMak�(�J���8������������ ]ItemTextI�currentSelectionX... � SectionText�������������������������DFCC4Da�,�e�j���X������������8PThis code checks that the files passed to it are really images and removes them l�D�*�����������L�8if they are not. �� ���������������8 input � s�.����������������8 ptr to files list ����.����������������8 ptr to types list ����"����������������8 output l���V���D�������������8< !!warning the incoming lists are modified by this method!! \��=�F���4�������������- �� ���filesPtr$� fileTypesPtriC�,�����������������count�pos^�&����������������filesPtr$ �����*���������������� fileTypesPtri ��� ������������������T���B�������������8;loop over the list until everything is an image or removed ��4���"�������������count��filesPtr$ol�:���(��������������pos��?��������countrs�b���P���������������#� CM_ImageTypes� fileTypesPtri�pos�@��?���������4���"�������������filesPtr$�pos\�~\������������������bj����������������������������������������������������������DFCC4Du�,c�&�����%��$��gSRundeck_Create����������������S�o��f���T�����������SOThis is the core of the whole database as this converts a simlulation record in���b���P������������SKto a working rundeck for the GISS GCM Model II. Thus be very careful about ���*���������������Sediting this code.������������������S����f���T����������SOThis code is undergoing reconstruction, there were problems inherited from the �r�b���P����������SJoriginal GCM Buddy and FileMaker GCM Buddy. GCM Buddy was written before I�V�d���R���������k� SMunderstood the model and it had a lot of problems. FileMaker's scripting left� �b���P����������SKsomething to be desired and continued to have many problems. I am trying to��Z���H��������� �GSCmake this as clean as a script to create a namelist/rundeck can be.�r�������������h�eS��e���� ����������SInput:�:�L���:��������� �S4 Rundeck Style: true/false for traditional or new*�t�Z���H���������t�hSC First Hour: true/false for first hour rundeck or normal rundeck�r���� ���������:�=SOutput:�d�J���8��������S3 All output is placed in [Model Variable]Rundeck�������������S��f���T��������SNFor further reference please look in Namelist Document which tells many of the�V���D��������)))%S?secrets of rundecks. Otherwise ask me (Michael) or Reto or Gary�����������������������������Svar������ �������������1 @�������� ������������@1 @�����(���������������@1@ Traditional����&���������������@1@ FirstHour����6���$������������@� @ modelgrid�@�@������������&���������������@ Traditional* @����$���������������@ FirstHour* @�����������������������(���������������SClear old rundeck���"�����������@����*w�l�*�&�����������@@ Traditional��,����������� @Rundeck_CreateTradition ����������������@���4���"������������Sabreviated header for model ���p���^������������@����*@�����*�w�l (@�*�@�����*�w�l)�*�@�Z$@��&��@�@�������������������������@�[��������������������&���������������Snamelist itself���^���L������������@����*@�����*�w�l &INPUTZ��*�@�Z$@��&�wO8namelist header���>���,����������S'based on model version support geometry�e�6���$������������ @GetModelAndGrid @ modelgrid����l���Z����������@ @ modelgrid�@�?��������*@�?��������wO8if we are not using version 0.9� ����������������@���d���R������������@ @ modelgrid�@�@���������@�@���������wO88x10 for Model II 1.0.7���h���V������������@����*@�����*�w�l GEOMETRY='8x10',�*�@�Z$@��&�wO8namelist header���d���R����������@ @ modelgrid�@�@���������@�@���������wO88x10 for Model II 1.0.7�a�h���V�������� @����*@�����*�w�l GEOMETRY='8x10',�*�@�Z$@��&�wO8namelist header�f���T����������@ @ modelgrid�@�@���������@�?��������wO87.8x10 for Model II 1.0.7�r�j���X��������@����*@�����*�w�l GEOMETRY='7.8x10',*�*�@�Z$@��&�wO8namelist header��������������@�[������������@���� ��������Stime*�x���f������������@����*@�����*�w�l TAUI=�*�@�  @Calendar_DateToTau�@�����@�������*�w�l., ���f���T����������@����*@�����*�w�lIYEAR=��*�@� @������*�w�l,�*�@�Z$@��&��r�(�������������Scontrol variables�i�N���<������������S7kOcean this gets set if the user selects the ocean mode������������������@���@���.������������@@�����@������������wO8 fixed sst���L���:������������@����*@�����*�w�l KOCEAN=0,�*�@�Z$@��&����p���^������������@@�����@�?���������x @�����@�@���������wO8qflux, qflux deep ocean���<���*������������S$information for using ocean fluxes *���T���B������������@����*@�����*�w�l KOCEAN=�*�@� @������*�w�l,���\���J����������@����*@�����*�w�lSRCOR=��*� @Rundeck_DecimalFormat@������e�8���&����������@����*@�����*�@�Z$@��&��u����r������������@@�����@�@���������wO8Mobserved sst, like kOcean=0 except for a rewindable file, written as kocean=0���8���&����������@����*@�����*�w�l KOCEAN=0,�r�X���F������������@����*@�����*�w�locean_input='observed',�*�@�Z$@��&�����������������@�[�\���J������������SEold version of solar and co2 to keep compadibility with old namelists���\���J������������@����*@�����*�w�l S0X=��*� @Rundeck_DecimalFormat@�T�������Z���H����������@����*@�����*�w�lCO2=�*� @Rundeck_DecimalFormat@������d�@���.����������S(collect flux information for a qflux run�c� ������������a�r@@������)�:���(������������S"collect qflux data from x date ������|������������@����*@�����*�w�lUSET=�*�@� @������*�w�l.,TAUO=�*�@�  @Calendar_YearToTau�@�����@���������0����� �����@����*@�����*�w�l.,@�e��������������@�[�8���&������������S says not to collect qflux data ���6���$������������@����*@�����*�w�lUSET=0.,�������������������@���^���L������������SFEnd date for run. The end date is set to the first day of the new year0���b���P������������SKfor this caculation. This hack lets 1/1/1900-12/31/1900 = 1/1/1900-1/1/1901���X���F������������SAbecause the model years have to include the last day of the year.���6���$������������@����*@�����*�@�?����������v���d������������@����*@�����*�w�lTAUE=�*�@�  @Calendar_DateToTau�@�����@�������*�w�l.,@���6���$����������@����*@�����*`@�?��������R�L���:������������S4Sea level pressure can't be turned on after x hours"*���R���@������������S;unlike ocean data so it will go the whole length of the run��� ���������������@@��������t���b������������@����*@�����*�@�Z$@��&��*�w�l USESLP=-��*� @Rundeck_DecimalFormat@���������������������@�[�N���<������������@����*@�����*�@�Z$@��&��*�w�l USESLP=0.,*������������������@���D���2������������S-Check to collect oda data for deep ocean runs���d���R������������SLGary made the dubious choice to overload an unused variable called KCOPY for@���@���.������������S(the collection so this is how you set it���F���4������������@@�������@�����*@����������������6���$������������@����*@�����*�w�lKCOPY=3,�������������������@���6���$������������@����*@�����*�w�lKCOPY=2,�������������������@����������������������\���J������������SDOne hour test code for seeing if the model works with these settings*���>���,������������@@ FirstHour��x @ Traditional�����h���V������������@����*@�����*�@�Z$@��&��*�w�l ISTART=�*�@� @������*�w�l,���h���V����������SP[Model Variables]Rundeck:=[Model Variables]Rundeck+"TAUP="+String([Model Variablp�i�^���L������������SFKCHECKTAUX matches the month to the restart file, 0 disables the check0��� ���������������@@��������:���(������������@����*@�����*�w�l KCHECKTAUX=1,������������������@���:���(������������@����*@�����*�w�l KCHECKTAUX=0,������������������@���:���(������������S#place in random number seed if used���2��� ������������@@�l����*@���������������R���@������������@����*@�����*�w�lIRAND=��*�@� @�l�����*�w�l,����������������@�[����������������@���d���R������������SLdetermine if prt files are generated, they should only be generated for the @���F���4������������S/first hour, which does set the rest of the run.���J���8������������S2NDPRINT is an exception, -1 is true and 0 is false���F���4������������S/NDPRINT should always be on for the first hour.���8���&������������@@ FirstHour���@���������X���F������������@����*@�����*�w�l NDPRNT=-1,��*�@�Z$@��&��*�w�l @������������������@��� ���������������@@�����������������������@����*@�����*�@�Z$@��&��*�w�l6 NDPRNT=0,1,32,60,91,121,152,182,213,244,274,305,335,�*�@�Z$@��&��*�w�l @����������������@�[����r������������@����*@�����*�@�Z$@��&��*�w�l# NDPRNT=0,0,0,0,0,0,0,0,0,0,0,0,0,�*�@�Z$@��&��*�w�l @����������������@�[����������������@���t���b������������SQif prt files are produced then pick between full diagnostics and just diagj eg kdSiag(1).������n������������SQbecause this change was done after the 2.3 database was frozen it uses [Model VarSiables]Model 64 bit���4���"������������Sinstead of something logical.��� ���������������@@�������� ���������������@@��������N���<������������S6default in the model is everything on so write nothing0������������������@���f���T������������@����*@�����*�w�lKDIAG=0,9,9,9,9,9,9,9,9,*�*�@�Z$@��&��*�w�l @����������������@�[����������������@����������������������N���<������������S6don't write the second taue if it's not the first hour0���>���,������������@@ FirstHour��x @ Traditional��������v������������@����*@�����*�w�lTAUE=�*�@� @�?��������*� @Calendar_DateToTau�@�����@�������*�w�l.,@����������������@�[�����������������@�H���6����������S0always put in orbital values, no error checking ������p������������SQIf (([Model Variables]Eccentricity#0)|([Model Variables]OmegaT#0)|([Model VarSiables]Axial tilt#0))������������������@����*@�����*�@�Z$@��&��*�w�l OMEGT=��*� @Rundeck_DecimalFormat@�y�����*�w�lOBLIQ=�*� @Rundeck_DecimalFormat@�x�����*�w�lECCN=�*� @Rundeck_DecimalFormat@�w�������������V�������*�������������Sfinish off namelist�a�Z���H������������@����*@�����*�@�Z$@��&��*�w�l &END�*�@�Z$@��&����D���2����������S,add the forcings for trends into the rundeck��&��������������� @Rundeck_Forcings���*��������������� @Simulation_SaveRecord������������������������������������������DFCC4Dz�, �h���V�� ]�� ]���8Nthis blocks errors from showing up as dialogs, a stub function is in place so d��6���$������������8that a stop can be inserted Z����(�������������(jQ(�?�������(����������������������������������DFCC4Dy�9?�R���@�����������F9This does the show hide of all parts of a section in the �*��������������FInfoText window. � ���������������F input ��&�����������,GeF section # �\�P���>������������F7 show/hide/leave alone: 1=show, 2=hide, 3=leave alone �B�������������������� ������������Fvar ����(���������������vv v�vvsecvv�*���������������vv v�vvstatevv -�6���$������������v%vv�@�������vvsecNamevv��� ���������������vsecv v�v�B���0������������vsecNamevY�pB�v�@v� vvsecv�v�@Y�p_Y� �"���������������vstatev v�v]����������������v�� ���������������Fstate �y�����������������vv���>���,������������vvvstate�v@v�?�������v=%Hshow =���>���,������������v[v�v@vvsecName�v�@Y�pC1@vv�vv���B���0������������vv vItemList@vvsecv�v@v�����������vv]�$���������������F text ]�@���.������������v[v�v@vvsecName�v�@Y�pTextvvv�vv�6�>���,������������v[v�v@vvsecName�v�@Y�pC2@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pC3@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP@vv�vv������������������vv���"���������������F picture ]�@���.������������v[v�v@vvsecName�v�@Y�pTextvvv�vv�:�>���,������������v[v�v@vvsecName�v�@Y�pC2@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pC3@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP1@vv�vv������������������vv���B���0������������vv vItemList@vvsecv�v @v�?�������vv���>���,������������v[v�v@vvsecName�v�@Y�pP2@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP3@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP4@vv�vv���F���4������������v[v�v@vvsecName�v�@Y�p P1_InfoSub%vv�vv���B���0������������vv vItemList@vvsecv�v@v�@��������vv���>���,������������v[v�v@vvsecName�v�@Y�pP2@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP3@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP4@vv�vv���B���0������������v[v�v@vvsecName�v�@Y�pP1_Infovv�vvLi�B���0������������vv vItemList@vvsecv�v@v�@��������vvLi�>���,������������v[v�v@vvsecName�v�@Y�pP2@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP3@vv�vv���>���,������������v[v�v@vvsecName�v�@Y�pP4@vv�vv���B���0������������v[v�v@vvsecName�v�@Y�pP1_Infovv�vv"�B���0������������v[v�v@vvsecName�v�@Y�pP2_Infovv�vvy^�B���0������������vv vItemList@vvsecv�v @v�@�������vv���>���,������������v[v�v@vvsecName�v�@Y�pP@vv�vv���B���0������������v[v�v@vvsecName�v�@Y�pP1_Infovv�vv��B���0������������v[v�v@vvsecName�v�@Y�pP2_Infovv�vv���B���0������������v[v�v@vvsecName�v�@Y�pP3_Infovv�vv������������������vvs����������������vvs�>���,������������vvvstate�v@v�@��������v=%Hhide =���<���*������������v[v�v@vvsecName�v�@Y�p@vv�vv������������������vvl������������������������������������������������������������DFCC4D+�`�-�8���&����������"0Do the wildcharacter expansion "��� �������.�d�d"0 input "��.������������d�d"0 type of expansion "���D���2����p� ��"0* ptr to array to char to place result in �"w�.����������� �wildType����.�������������- �wildChar����&�������������wildType� ����&�����������]�wildChar� ���������Sg0hiob�.�������v0vErr"0wild char expansion "��������������me_t���J���8��������me_lwildType����?�������J: starts with zJ�<���*����{pwildChar��?�������x��x���<���*��������me_swildChar��@��������x�@x���@���.��������wildType����@��������J:is J�<�<���*����n����wildChar��?�������x��x�<���*����,wildChar��@��������x��x�F���4����������wildType����@��������J: contains J���<���*����pf@LBwildChar��?�������x�@x2�<���*��������,CwildChar��@��������x�@x@�H���6����NI$wildType����@�������J: ends with �J���<���*��������me_lwildChar��?�������x�@x���<���*��������wildChar��@��������x��x��������������� ����������������w����������������DFCC4D7�,*�L���:��%&��$&��gS5Create a hierarchical list of variables from multiple��R���@�����������S;folders in the Plots folder. This code omits the run number���R���@������������S:from the names so the full names must be reassembled later������ �����������S input���J���8��������S2 folder name (will be expanded by PM_FindFolder)���D���2��������0001S- list ref for an existing hierarchical list14�>���,��������EMak^%��@�������� ���� folderNamef���.���������������^- ���� listRefPtrl����P���>������������^�DS_StoreMustDie��i��j��height��errCode����6���$����������$^%��@��������� diag_path��s�6���$����4��� ^%��@��������� shortname��r�J���8����4��L�e^���@��������� diag_foldersi���������������N�F���4����4���1^���@��������� diag_list����������������F���4����4���^���@�������� � file_list����������������0�������4���(^�srcLen��nameLen���$�������4��d�e^�sublist�� �&�������4��1�0^ folderNamef ���e�&�������4��s�r^ listRefPtrl ������������4��+���"�������4���S clear listF��0�������4�����^y� listRefPtrl������ol�(�������4���^ listRefPtrl��w��Z���H����4�����^� listRefPtrl����?�����������������������@��������-�8���&����4��� ^plots_hier_counter��@������������������4�����^� �������4�����S get fileske�B���0����4�����^ diag_path � PM_FindFolder� folderNamef���8���&����4�����^� diag_path�� diag_foldersi�y �l���Z����4�����^nameLen������������@��������Ap'run # + underscore + start on next char�����������4������B���0����4�����S*process folders, or create an "empty" list���:���(����4��d�o^ folderCount�� diag_foldersi���8���&����4�����^� folderCount�`�������������@���������4��d�o^�4���"����4�����Sget list of folders and loop@�<���*����4�����^�i���?��������� folderCount���P���>����4�����^� diag_path��� diag_foldersi��iO�� diag_list�l �J���8����4�����^DS_StoreMustDie��� diag_list�� .DS_Store����<���*����4�����^�DS_StoreMustDie�`���������������:���(����4�����^�� diag_list��DS_StoreMustDie����������4�����^�2��� ����4�����^srcLen��� diag_list���6���$����4�����Sfor the contents of each foldert�4���"����4�����^�srcLen�`�������������ie�`���N����4�����SHcreate sublist of variables in folder stripped down to just the var name����"�������4�����^sublist�wer�8���&����4�����^�j���?���������srcLen���H���6����4�����^ shortname�� � diag_list��jO��nameLen�un�J���8����4�����^x�sublist�� shortname� �plots_hier_counter���"�������4�����^#�Use_EVA�un�v���d����4�����^�sublist� �plots_hier_counter����$����$�������@ �������y@EVA icon����������4���^�S�2��� ����4�����^#� PM_Platform� $�������|���j����4�����^�sublist� �plots_hier_counter����$����$�������@ @�������y@plot shop icon����������4���^�S�x���f����4����^�sublist� �plots_hier_counter����$����$�������@ P�������y@ excel iconT����������4���^�S��������4�����^�R���@����4����� ^plots_hier_counter �plots_hier_counter����?����������������4�����^ R�`���N����4�����SIappend folder which is <run number>_YYYY-YYYY where I want just the years���L���:����4�����^ shortname�� � diag_foldersi��iO��nameLen�an�t���b������������^x� listRefPtrl��� shortname� �plots_hier_counter����@���������sublist����������~������������^� listRefPtrl�� �plots_hier_counter����@�����������$����$�������@ �������y@ folder icon���R���@���������� ^plots_hier_counter �plots_hier_counter����?��������$����������������^ e����������������^ R����������������^n�D���2������������ ^PostProcessing_TypeHierEmpty�� listRefPtrl�������������������^��������������������DFCC4DU!�X(�&����������7d view rundeck����������(���[�.�������L��[ �Rundeck_Validate@�����&��������� [Rundeck_Summary[�4���"�������� [Rundeck_Createy��������>���,����������� [RundeckViewer_Opens�������������������������[[������������DFCC4DA��6���$����������� � FinderToPathn \� eJournals  ��������������inte (��������������������������������?�����DFCC4D&�,�Z���H��%��$��gSBdo everything to load a record correctly for the simulation windowME���� �����������Sinput��� �����������S run ID%������������������� ������������� @�����*���������������@@ RunIDClickedu����(���������������@@ num_groupsn����$���������������@@counter����"���������������@@index����(���������������@ RunIDClickedu% @����*�����������@index%@�?���������������������(�����������dSnumber of groups��8���&��������///@ num_groupsn%@ @ Group_Namer��<���*��������@�@oldGroup_Statez�@ num_groupsn��<���*��������g@� @ Group_State�@oldGroup_Statez��������������� �����������S load data�4���"�����������@�@������@ RunIDClickedu����&�������������� @Form_BLOB_Loader�����������V��������6���$����V�����Sadjust interface to match blob���<���*����V�@���@@counter�@index�@ num_groupsn���X���F����V�����@ @ Group_State�@counter���@oldGroup_Statez�@counter����:���(����V����� @Twist_Down_Update@counter�@�����������V��~�@����������V����@�����������V�������4���"����V�����Supdate menus in the interface���V���D����V����� @Simulation_Date_Convert @Info_v_EndYeare�@����������X���F����V����� @Simulation_Date_Convert @Info_v_StartYearC�@����������2��� ����V����� @Simulation_IStartMenu@�����2��� ������������ @Simulation_OceanMenu8@�����.��������������� @Simulation_TrendMenuInit���,��������������� @Simulation_InputMenuSet���2��� ������������ @Simulation_LockUnlock@�����:���(������������ @Simulation_PowerToolsLoadSet@��������������������������������������DFCC4D�=�hI2x�X���F��'&��&&��gS@Cache Manager builds on Path Manager to have an in database copy�LP�Z���H�����������SBof the files and folders most often needed by EdGCM. Cache Manager���\���J��������SDprovides fast access to the file system without the cost of actuallynD�Z���H����V�����SClooking. Periodic rescans of the actual folders insures accuracy of���"�������r�����S the cache.8������������������S�pl�4���"����R�����Sfolder types for EdGCM Folder��&�����������dS 1=input folder�,������������S 2=input ocean folder���$��������������S 3=output acc���.�����������aaaaS 4=output rsf, disabled�.���������������S 5=output prt, disabled���0�����������0001S 6=output ocean, disabled09������������EMakS�ia�2��� ������������SRecord contents by constant���.�����������aaaaSif EdGCM Folder = 1..2�F���4������������S. Folder Name = folder name in the input folder���P���>��������S8 File Name = name of the file minus the four letter type��r���`��������SQ File Type = last four characters of the filename (or the Mac type if all else faSils)e���.������������Sif EdGCM Folder = 3..6��0�������� dS Folder Name = run number���P���>���������S9 File name = filename for the individual file (full name)8�`���N�����@���SH File Type = folder that contains the files: acc, rsf, prt, ocean, & etc���8���&���������S Setup the data for Cache Manager�������������������$��������� S setup tables������ ��������������"������������@�@��� ������"������������@�@��� ������"������������@�@��� ����������������L���$������������S setup arrays� �:���(���������@ w�l CM_Folders��#@ CM_FoldersC����>���,���������@ w�l CM_ImageTypes�#@ CM_ImageTypes��������������������,������������Ssetup private globals���.��������� @1#@CM_Priv_ScanInput����0������������@1#@CM_Priv_ScanOutputn����0������������@1#@CM_Priv_ScanImagesn����,������������#@CM_Priv_ScanInputn@����.������������#@CM_Priv_ScanOutputnn@����.������������#@CM_Priv_ScanImagesnn@���DFCC4D5�BIq�������'&��&&��g��L���:��������7���%@�@��������@path��@name�� @ ImportNamem����(��������������@ @ Foldernameo���(��������������@ @ ImportPictm����(���������������@ @ ImportTextm����8���&�����������@%@�@�������� @ ImportSizem����,��������������P@@len�@resultS�H�:���(������������@� @ ImageFoldersa�@���������������&��������������@1@fromFile$����"�����������@@space�@�P���>�����L@@heightl�@width�@hOffset�@vOffset�@modes�q�&�����������@@tempPict$�����������������4���"���������Scheck for sufficent filename���@���.�����@@� @ ImportNamem��c@�@����������F���4�����S.create the folder if needed (if Foldername#"")��@���.�����@@� @ Foldernameo��c@�@����������b���P�����@ @ PM_MakePath @ PM_FindFolderw�lImagesP�� @ Foldernameo�@����N���<����� @ImageFoldersMenu� @ImageFoldersMenu[c @ Foldernameo������������@�������������L���:�����S5validate incoming file to make sure that it is unique�h���V���������@nameec @ ImportNamem�c� @ImageFoldersMenu8� @ImageFoldersMenu8[wO8 build key���8���&�����@resultoc@@�� ���@name���L���:�����@@result���c`@�?���������wO8 unique name�D���2����� @ ImportNamemc @PM_Name @ ImportNamem�@���p���^����� @ ImportNamemc@�  @ ImportNamem�@�?��������@�@���������c�w�l.jpg_wO8fixed� ��������S save file������t��������@ imagePathc @ PM_MakePath @ PM_FindFolderw�lImages�� @ImageFoldersMenu8� @ImageFoldersMenu8[�@�����T���B���������@ imagePathc @ PM_MakePath@ imagePath� @ ImportNamem�@�����`���N��������SH$imagePath:=thumbFolder+ImageFoldersMenu{ImageFoldersMenu}+""+ImportName��8���&���������@@@ imagePath��wl$@���������������������>���,���������S'check for image size and offer to scale���`���N���������@ @ ImportPictm�@width�@heightP�@hOffset�@vOffset�@modes����Z���H���������@@heightt�c@�@���������x @width�c@�@������������N���<��������� @Alert_ParamText @ ImportNamem�w�l�c�w�l�c�w�l�c����\���J���������@moderc @ Alert_Alert@�@��������@�@��������@�?���������������������������0������������Splace up progress dialog����J���8���������@proc�c @ Progress_Openw�lCompressing image...c����������������������� �����aaaaSscale�2��� ���������@@moder�@�?����������.��������@@height��c@width��H���6�����@widthc@width�@�@�������� @height���,���������@height�c@�@�������������������@oP�J���8���������@height�c@height��@�@�������� @width����*������������@widthc@�@����������������������@���V���D���������@ @ ImportPictm�@tempPict$�@width�@heightc�$@������.������������ @ ImportPictmc@tempPict$���.������������ @IsOriginalFileJpegcc@�������������������@������������������@���0���������������Splace up progress dialog����J���8������������@procic @ Progress_Openw�lCompressing image...c���������������.@..��������������������T���B������������S<if the original is a jpeg then just copy, otherwise compress����.���������������@ @IsOriginalFileJpegc����$���������������S just copy it���6���$������������@ @ PathToImage�@ imagePath�����������������&@�.�:���(������������S"do the work compression and saving���B���0������������@@ imagePath� @ ImportPictm�w�lJPEG_�������������������@���Z���H������������@@ imagePath�w�lprvw�wO8"make preview the owner of the file@���0���������������@ @OKa�@�?�����������,���������������Screate the text filecmp�x���f������������@ imagePathc@� @ imagePath�@�?��������@�@ imagePath��c`@�@����������c�w�ltxt���2��� ������������@docRef�c@ @ imagePath� P�4���"�����������@�g@docRefa� @ ImportTextm�ma��������������������J���8������������S3create record in the database to match the new file���8���&������������ @ CM_Rescan@��@��@�������"���������������@�/@��� ������,���������������@�1@��� ���@�� ������D���2������������ @Info_iPhoto_LoadThumb@�@���������wO80?���"���������������@I@proc��������������������@ ������������������@���"���������������@I@proc�����N���<������������ @Alert_ParamText @ ImportNamem�w�l�c�w�l�c�w�l�c����B���0������������ @ Alert_Alert@�@���������@�@��������������������������@ ������������������@������������������@���N���<������������ @Alert_ParamText @ ImportNamem�w�l�c�w�l�c�w�l�c����B���0������������ @ Alert_Alert@�@���������@�@��������������������������@�&������������������@���*���������������@�� found, can't add����N���<������������ @Alert_ParamText @ ImportNamem�w�l�c�w�l�c�w�l�c����R���@������������ @ Alert_Alert@�?��������@�@��������@�@���������������������������@�&������������������@���4���"������������@�� invalid file or folder name���R���@������������ @ Alert_Alert@�?��������@�@��������@�@���������������������������@�&������������������@��������������������������������������DFCC4D_��N���<���������d�db��5adjust interface for checkbox that collections trendsb���P���>���������d�db��7you need the max mixed layer depth for trend collectionb��� ������������d�db��to workbat�������������d�db���"������������d�dbbb����bb� �6���$���������d�db[b�b[bb�[Ocen_R_@ bb�bb���������������d�dbb���4���"���������d�dbbb�����bb����������bb�6���$���������d�db[b�b[bb�[Ocen_R_@ bb�bb���������������d�dbb?�������������d�dbbun��DFCC4D �,�L���:��&\��%\��gS4this code lets you go to the previous figure caption~��L���:�������S4I have to build an array of avalible figure captions~���L���:����r��S4so that I can find the right one. Then move position~������ �����..S input ���&�������\�scalS cur position:C�:���(��������scalS# move to previous or next as -/0/+�B���0�������� @��@move,�@pos� @��@curPosD����2��� ����J�TAT @�@figso�@�@�������� �"�������8�TAT @curPos�~ @�D � �������.�@moveo~ @�ea���������Ɋ��������>���,��������S'build array with out of bounds set to 0���:���(����T�TAT @InfoText_CreateFigArray�@figsT�.6���������~�TAT @�$�����������TAT S move in arraye��6���$��������@pos~@�@figsT� @figNum���0������������@@pos�~@����������������������V�����@���<���*���������@@move��wl@������������wO8prev~���2��� ����H�����@pos~@pos�~@�?���������:���(��������aaaa@@move��@������������wO8cur��*���������� Sdon't change �e�<���*���������$�m@@move��~@������������wO8next~�n�2��� ������� @pos~@pos�~�@�?��������t�������������$�m@�v���������aaaa@�(���������������@pos~@���������������������X�aaaa@�������������������B���0����h�����S+check for valid pos & change figure caption���<���*�����������@@figs��@pos�~@������������sa�F���4�����aaaa @ ItemCaption� @figNump~ @InfoCaption_Figure��B���0������������S+ItemPictLabel{figNum}->:=InfoCaption_Figure��0�������>�aaaa @figNump~@figsu�@pos�D���2������������ @InfoCaption_Pict~ @ItemPictI� @figNumc����F���4���������� @InfoCaption_Figure~~ @ ItemCaption� @figNump�t�F���4���������o�n @InfoCaption_FName~w�lFigure �~�@� @pos�� ���������0001@02DFCC4Dsu�Sz�T���B��%k��$k��gS=Create a new set to save information about the postprocessing������ ��������S input���2��� ��������S <implicitly set setName>���� �����������S output� ��������������S sucess?me� ���������������Ssettings����$�����������0001^�newRec�06�(�����������EMak^1� allowdNamea�4D�*���������������^1 �����sucess����"�����������t���^�count�?�8���&����������^� � tablesInfoa���������������(�<���*����������(^� �timeSeriesInfoA���������������t�8���&��������� �s^� � mapsMonthsa���@���������I�6���$���������f�o^� �mapsInfom����������������8���&������������^� � slicesInfol�����������������6���$���������� ^� � zonesInfo���������������e���������������(��F���4��������� �sS/check that the name is unique (and not default)��X���F���������f�o^ �setName� ����f $ �setName� � All Variables����&������������L�L^ allowdNamea���������������g^ a�"������������c�e^�/�������ea�:���(���������r�u^������������� �setName��i�:���(���������_�V^��L��������`��������������-�&���������� ^ allowdNamea��� �����������(^��&��������� �s^ allowdNamea���s�������������f�o^��������������L�L^�R�����������������&������������c�e^� allowdNamea��C�"������������r�u^�5�������� ��������������_�V�a�6���$��������� �Screate record with default info��"������������e�r^�D���������(������������ �^�����Default�E�2��� ���������e�r^����#�SetsCurrentVersion<�L�:���(������������^���� �setNameAptemp temp temp���"���������������^�5����������.���������������^newRec�����������������������������^�:���(������������S"collect postprocessor info as sets����������������� ^Sets_CollectInfo � tablesInfoa� �timeSeriesInfoA� � mapsMonthsa� �mapsInfom� � slicesInfol� � zonesInfo����������������4th Di�&����������� ADOSadd sets to set4D�.���������������^���������newRec����H���6������������ ^Store_Variable_Blob������ � tablesInfoa����L���:������������ ^Store_Variable_Blob������ �timeSeriesInfoA����X���F������������ ^Store_Variable_Blob������ � mapsMonthsa� �mapsInfom����H���6������������ ^Store_Variable_Blob������ � slicesInfol����F���4������������ ^Store_Variable_Blob�� ���� � zonesInfo�����������������������*���������������Screate the summary������������������ ^Sets_SummarizeA � tablesInfoa� �timeSeriesInfoA� � mapsMonthsa� �mapsInfom� � slicesInfol� � zonesInfo���������������������,���������������Sadd to array & selecty�B���0������������^count�#�SetArray�����?����������0���������������^�#�SetArray��count���2��� ������������^�#� SetNumArray��count�Na�6���$������������#^SetArray��count+ �setNamec�8���&������������#^ SetNumArray��count+�newRec`�<���*������������^�#�SetArray�#� SetNumArray��`����&��������������� ^SetArray_AllOnTop#��@���.������������#^SetArray��#�SetArray� �setName������������������������ ������������Scleanup���"���������������^�5�������������������������^A�J���8������������ ^Alert_ParamText �setName�������������B���0������������ ^ Alert_Alert��?����������@��������������������������^S�*���������������Sfix database lists���"���������������^�/���������2��� ������������^�1��������������`����.���������������^���������newRec����(���������������^�Y � tablesInfoa�oA�,���������������^�Y �timeSeriesInfoA����(���������������^�Y � mapsMonthsa����&���������������^�Y �mapsInfom�si�(���������������^�Y � slicesInfol����&��������������^�Y � zonesInfo�������������������DFCC4DYF�UF�z���h��s��s����7dQFor a given month get the right filename and path based on if it was picked in th�7d e interface�Na� ����������������7d input��ma�,���������������7d month to process^�� ���������������7d output�ma�>���,���������d�d�7d% filename (blank if month is unused)����*���������������( (� (month  ��<���*�����������(% (�@������� (�� (prtname  ���&���������������( (listRef  . �8���&������������(� (averages� (�@�������  ���"���������������(month (�(����������������(���.����������������7dget info from dialog ����<���*������������(averages� (�?�������  (����(���<���*������������(averages� (�@��������  (����(��<���*������������(averages� (�@��������  (� ���(ab�<���*������������(averages� (�@�������  (� ���(Po�<���*������������(averages� (�@�������  (� ���( 0�<���*������������(averages� (�@�������  (� ���(Z�<���*������������(averages� (�@�������  (� ���(Z�<���*������������(averages� (�@�������  (����(i�<���*������������(averages� (�@�������  (����(���<���*������������(averages� (�@�������  (����(rn�<���*������������(averages� (�@�������  (����(���<���*������������(averages� (�@�������  (����(t �<���*������������(averages� (�@�������  (����(�<���*������������(averages� (�@�������  (����(��<���*������������(averages� (�@�������  (����( f�<���*������������(averages� (�@�������  (����(ap�<���*������������(averages� (�@�������  (����(������������������(+�B���0������������( (averages� (month  � create name�th�����������������!K�"����������������7dget listl� s�4���"������������(listRef (  �MonthsP  (���������������� �@���.�������������7d&create the filename of the source file�t �<���*�������������7d"JAN1906-1910.avgControl2_02sC9_Prt����|���j������������(prtname (GetListItemStr� (listRef (month � �@(�  (���� � �@ �-� �@(�  (����  ���D���2������������(prtname (prtname� �@ �.avg � �@(����(�����������������(op�$����������������7d clear list�xt�&���������������(y (listRef  lt���������������� I�$��������������� (�� (prtname(t �8���&������������(\~empty return for empty monthn\� ��������������� (�� ���� �����������������(($����������������������������������������������������DFCC4Dm�,�P���>��%��$��gS9code to open/close sections in the toolbar, and show/hideXT�R���@�����������S:sections as well. The first parmeter picks the section and���@���.�����������S(the second sets the mode, the modes are:���$���������������S 0, open/close������ ������������S1, show������ ��������zzzS2, hidez�.������������%@�@�������� @���2��� ��������@%@�@��������@name������� ��������????@ @��==�"�����������@@mode���"�����������@@item������ �����������@@i����"�����������@@left��� �����������@@top��"���������������@@right���$�����������@@bottom��JJ�$�����������@@height����� �����������@namehn @�� �����������@modehn @���������������L���:�����������@itemhn@� @ ToolbarName�@nameb�@�?�����������:���(��������@height�n @ ToolbarHeight�@itemb]��������������)))%������������@@modeb�@�������������� X@mode��@�?����������^ @ToolbarVisible��@itemb]�@����� X@modeb�@�@�����������^ @ToolbarVisible��@itemb]�@����)��������������������2��� ������������@@modeb�@���������������*���������������Sopen/close section���<���*������������@ @ ToolbarStateo�@itemb]�@�����4���"������������ @ ToolbarStateo�@itemb]n@����Z���H������������@[��w�lz�n� @ ToolbarName�@itemb]�n�w�l_Closed�@�����J���8������������@[�� @ ToolbarName�@itemb]�n�w�l@�@��������������������@���4���"������������ @ ToolbarStateo�@itemb]n@����Z���H��������@[��w�lz�n� @ ToolbarName�@itemb]�n�w�l_Closed�@�� �J���8��������@[�� @ ToolbarName�@itemb]�n�w�l@�@��������������@������������@�*���������������Sshow/hide section ���:���(������������@heightrn@height��n�@�@����������2��� ������������@@mode��@�?�����������6���$������������ @ToolbarVisiblez�@itemb]n@����T���B������������@[��w�lz�n� @ ToolbarName�@itemb]�n�w�l@�@�����<���*������������@ @ ToolbarStateo�@itemb]�@�����Z���H������������@[��w�lz�n� @ ToolbarName�@itemb]�n�w�l_Closed�@�����J���8������������@[�� @ ToolbarName�@itemb]�n�w�l@�@������������������@��,�����������@heightrn@�@�����������������������@������������������@���6���$������������ @ToolbarVisiblez�@itemb]n@����J���8��������@[�� @ ToolbarName�@itemb]�n�w�l@�@���T���B�������� @[��w�lz�n� @ ToolbarName�@itemb]�n�w�l@�@���<���*��������@ @ ToolbarStateo�@itemb]�@���,������������@heightrn@�@�������������������@ ������������@������������@��������������0���������������Smove rest of the sections���H���6������������@@i�@item��n�@�?�������� @ ToolbarLeno�������������������@ @ ToolbarStateo�@itemb]�@����^ @ToolbarVisible��@itemb]�@����x @modeb�@�?������������|���j������������@�� @ ToolbarName�@i]�n�w�l@�@������������@height��@������������@������������������t������������@��w�lz�n� @ ToolbarName�@i]�n�w�l@�@������������@height��@������������@������������������������������@������n������������@�� @ ToolbarName�@i]�n�w�l@�@�������������n`@height��@������������@������������������x������������@��w�lz�n� @ ToolbarName�@i]�n�w�l@�@�������������n`@height��@������������@������������������������������@������������������@����������������������r���`������������@@�?��������@�@���������wO84don't resize the window anymore for closing sectionsn���P���>������������S8change window size last so resize of run list is correct����@���.������������@@left��@top�@right�@bottom�����b���P������������@ @ ToolbarStateo�@itemb]�@���x @modeb�@�?������������R���@������������@@height��n�@bottom���n@��n`@�@������������L���:������������@@left��@top�@right�@��n`@�@��������������������������@���N���<������������@@left��@top�@right�@bottom��n�@height��������������������@������������������@���<���*������������@ @ ToolbarStateo�@itemb]�@�����P���>������������@@bottomr�n`@top�n`@height���n@�@�����������N���<������������@@left��@top�@right�@bottom��n`@height��������������������@���N���<������������@@lefth�@top�@right�@top�n�@�@��������������������������@������������������@������������������@������������������@����������������������,���������������Sreadjust the run list���*��������������� @Toolbar_ResizeRunList������ ������������@@;��������������������������������������@��������������������������������������������DFCC4Dz��6���$������������8duplicate an existing record ����<���*����������� �InfoText_SaveRecord��?����������$�����������������������,�4���"��������������������@\� copy\�H���6��������������������@�� ��d�@��@O�����������n��������{{ �Store_Variable_Blob����� �CurrentItemVers �ItemListI �ItemNameI � ItemCaption�|������������ww �Store_Variable_Blob����� �CurrentLinksVersl � LinksList � LinksListType �LinksListFieldr � LinksListWord���$�����������������5������b�.��������������� �InfoText_JournalListAdd�����������������������������DFCC4Dht�k�r�B���0����������"0)Set the status flag for a run to archive "���J���8����s@��� Alert_ParamTextJ����J|��JJ|��JJ|��JJJ, �\���J������������J Alert_AlertJ�@��������J�@�������J�J@�?�������JJ�,����������������m���JJ�@��������J������������^N>,����������������������������������������������������������DFCC4Dc�{ �8���&�� �� �� �7d!incriment the section and load itZR�,�����������]temp � SectionNumber���2��� �����������]�temp�+��@�����������X���F��������]w?go forward until a text section is found or the end of the listJ�6���$����z���]temp�temp�� ��?��������I����r���������m�/ ] �ItemListI�temp���������������� (�temp�������� (�temp����@����������/�,����������������7dadvance if sucessful���,���������������]�temp�( ���������B���0����������� ]InfoText_FullSaveSection� � SectionNumber�=#�,�����������EMak ] SectionNumber�temp���B���0������������ ]InfoText_FullLoadSection� � SectionNumber���������������JRF1]R����������������]��������������������������������������������������������������DFCC4Ds�mA���� ��'&��&&��gSrun rsf��"��������������<@diag����6���$������������@%@�@��������@ diag_path����6���$�����������@%@�@��������@out_path$��(��������������@2@ docref_full��� ������������l�s@@pos��)�"�������ܘ�0001@@iteme�00���������ܘ�EMaker���� ����ܘ�����Ssetup���,�������ܘ�@ diag_pathc @ InputPath�2��� ����ܘ�����@#@ PM_Platform�$@����<���*����ܘ�111@out_path$cw�l../../Input/Ocean rsf/��������ܘ�@�>���,��������@out_path$c @ PM_FindFolderw�lInput��T���B��������RRR@out_path$c @ PM_MakePath@out_path$�w�l Ocean rsf�@�������������������@kk��������������&��������������Sset rsf.I file�������������@diagpc @ InputPath�c�w�lrsf�c� @PathCharP�c�w�lNOV�c�@� @�� ����c�w�l.rsf_�c�@�� ���c�@�Z$@��&��\���J��������)�@diag&c@diag&�c� @ OutputPathu�c�w�l tg_arrays�c�@�Z$@��&��z���h��������SQ3+4+20+8=35 fix hack length to 16 for run number to keep 31 char filenames until S code is fixed������������� @diag&c@diag&�c�@out_path$�c�w�lNOV�c�@� @�� ����c�w�l.rsf_�c�@�� ���c�w�lMLD.rsf_��c�@�Z$@��&�������������������8���&����ۼ�����S write out the .I file and launch���H���6����ۼ���� @OHT_SaveAndLaunch@diagS�w�lrsf.I�w�lrsf��������������������*���������������Supdate input files���2��� ������������ @ CM_Rescan@��@��@����������������������������������������������DFCC4D~���,�����'��&��b$launch SpecialRegions���T���B�����b$<Now is a two step process where you create the .I file first����`���N���������� b$IUse folder in Applications for now not generel /Applications folder. This�a�b���P��������b$Kfeature was removed from the release version of EdGCM 3.0, but could easily���R���@���������b$;be reenabled as it was finished before the feature was cut.���������������b$�in���� �����������b$ input������ ����h����b$ none���� �����TAT b$ outputMM���� ����n�TAT b$ noneMM�T���B����d�)))%specialRegionsPath @ PM_FindFolder w�SpecialRegionsApp�pe����������TAT �&��������TAT b$create .I file$ �l���Z����H�TAT @specialRegionsI @ PM_MakePath @specialRegionsPath��w�Special Regions.I�@��r �>���,�����������@ @ @specialRegionsI��$@����<���*���������� @ docref_full@  @specialRegionsI���z���h��������� �@texti @ PM_MakePath @ PM_FindFolder w� Input Special��w�User�@����@�Z $@��&��c�$������������� b$ save the file�h�0������������l�"@ @OK�8@�?���������r�2��� ����x�0001@ #@ PM_Platform�8$@���00�2��� ��������EMak@�g @ docref_full�@texte�Ma������������0001@02�:���(��������EMak@�g @ docref_full�@ @texte��������������TAT @ �(����������� ?? @  @ docref_full�af�8���&��������T�@ @specialRegionsI�w�R*ch5�T����������@���������@��������������n���\��������@specialRegionsPath @ PM_MakePath @specialRegionsPath��w�Special Regions�@���8���&����������� @ PM_Launch @specialRegionsPath������V���D������������b$? The close box associated with this window pauses the process. �Z���H��������111b$B The window stays ready for use throughout the use of the program.��������������`���N�����������#@Control_ProcessID@������������� $ Reset process ID tracking variable.����������������*�����������b$ End of procedure.H����SAocean folDFCC4D�,�P���>��'��&��b$9setup for eJournal list which requires an admin password.XT����������cb$������� ����*�scalb$ inputD:���� �����scalb$ noneD:���� �����scalb$ outputD:���� �������b$ noneis����������scal�f���T���������b$Ocached values for sort, used to restore sort after permissions repair or delete���<���*����\�����% @�@�������� @eList_SortNamez����0�������"�scal@- @eList_SortFieldPtr����������Ɯ�scal�4���"�������b$you must be an admin to enterhe�,��������scal@ @UAM_Authenticate<���"��������scalb$ setup othertp�\���J����������@�C w�eList�wX2 This menu bar gives the user access to the demos.Tbr�4���"��������@�6 @������w�eList������������������ @myWind�@� #@ Toolbar_Width�@�@��������#@ Toolbar_Width��@�@�������@��P@�@��������$@�"� �w�eJournal Library�w� Generic_Close����� ����b�����@F @B��$��������|@ @myWind��������������������� ����\�����@� ���"�������D�����@� @�������"������������@�/ @����������������TAT �:���(����~�TAT @ @�L @�������@������������.3�2��� ����H�TAT @�1 @������@������� �8���&�����TAT @� @������$@�2��@����11���������TAT @ �B���0�������� @ Alert_Alert @�?��������@�@�������������������������@b$�V���D�����������b$? The close box associated with this window pauses the process. �Z���H��������TAT b$B The window stays ready for use throughout the use of the program.00������������ ?? @ ��������������� ��^���L��������� �W#@eList_ProcessID@������������� $ Reset process ID tracking variable.�D���������l�000100�*�����������EMakb$ End of procedure.H I�������� @ OceanSpacecw�lNA0���(��������������� @ DiagSpacew�lNA0������������������@����������������������*���������������Sclose progress barG���(���������������@I@ progressBar�����������������������������������������������������DFCC4D�,*�`���N��'A��&A��gSHEvaluate the view for tables, maps and verticle where hierarchical listsfn�b���P����������SJare used as flat lists. This code is called for the view button and double���`���N�����������SHclick. I need to complete the names of the files and launch according to���R���@������������S;their types. This version supports Panoply and IE on the PC������ �����������S input �(��������������S ptr to the list��2��� ������������S postprocessor folder name���^���L�����������SF position of the char at which to insert the run number into the namep���*�������l���S string to insert��.�������l���$- @��@ listRefPtrl��_�.�������l��u�t@%@�@�������� @����8���&����l���;@%@�@��������@ folderNamef��t�*�������l�� �@ @��@charPos���.�������l�111@%@�@�������� @�����4���"����l��e�f@%@�@��������@addName��N�0�������l��+�@@selItem�@selRefm���&�������l��s�t@1@selSubEx$��_�6���$����l�� �@%@�@��������@filename$��o�2��� ����l�����@%@�@��������@path�����&�������l�����@ listRefPtrl @����&�������l�O� @ folderNamef @���"�������l�����@charPos @����"�������l�����@addName @������������l��������$�������l�����S get list item���6���$����l����A@selItem@{@ listRefPtrl���P���>����l�����@z@ listRefPtrl��@selItem�@selRefm�@filename$����������l�������4���"����l�����@@filename$�w�l<empty>��� �������l�����S make name���������l����@filename$@� @filename$�@�?��������@charPos�@�?����������@addName��@� @filename$�@charPos���� �������l�����S make path���>���,����l�����@pathP @ PM_FindFolder@ folderNamef����J���8����l�����@pathe @ PM_MakePath@patha�@filename$�@�������������l��������F���4����l�����S.launch is conditional on file type and plaform���2��� ����l�����@strLenm@�@filename$����b���P����l�����@filename$@� @filename$�@strLenm�@�@���������@�@�������������������l�����@���B���0����l�����@@filename$�w�lhtm�wO8 open web page���.�������l� @ PM_WebLaunch_@pathe�DD�0�������l�����@@filename$�w�lxls����2��� ��������@#@ PM_Platform�$@����"����������� @#@Use_EVA�)��<���*�������� )) @PostProcessing_TypeViewEVA�@pathP� ���������������@P�B���0������������@errCode@.�@path�@������������������������������@������������������@���"���������������@#@Use_EVA����<���*������������ @PostProcessing_TypeViewEVA�@pathP�������������������@���F���4���������@errCode@.�)@path)�wO8does this work?�������������0@�����������������@���r���`������������@@filename$�w�l.nc�wO8<open NetCDF files, the PC version passes the path to the jar@���2��� ������������@#@ PM_Platform�$@������"���������������@#@Use_EVA����<���*������������ @PostProcessing_TypeViewEVA�@pathP�������������������@���B���0������������@errCode@.�@path�@������������������������������@������������������@���"���������������@#@Use_EVA�@�<���*������������ @PostProcessing_TypeViewEVA�@pathP�����������������5@��D���2������������@pc_path @ PM_FindFolderw�l Applications����R���@������������@pc_path @ PM_MakePath@pc_path�w�l PanoplyWin��@�����R���@������������@pc_path @ PM_MakePath@pc_path�w�l Panoply.exe�@�����L���:������������@position$@�w�l\Output\���@�����@path�����H���6������������@path�w�l..\..��@� @path��@position$����N���<������������@errCode@.�)@pc_path�@�?��������@path��������������������@������������������@���R���@������������@�� 9launch untyped files, this probably only works on the Mac���B���0������������@errCode@.�@path�@������������������������������@������������������@��������������������������������������DFCC4DM�V�H���6���������d�d/set the input menu to match the current rundecke �D���2���������d�d+if there is no match then set the menu to 0v�������������d�d��$������������d�ditem� �������������d�d��@���.���������d�ditem�� inputFolders�������8���&���������d�ditem��i�ii?����������4���"���������d�d inputFoldersi�����������������������d�d���.������������d�d inputFoldersitemt���������������d�d���������������d�d�*������������d�dsetup other menus�4���"���������d�d Simulation_InputMenuSetOthers��DFCC4D8�C �b���P��'��&��`DJCreate makeNetCDFij.I file to convert slices into NetCDF form for Panoply.um�z���h����������`DQThis code builds on Jean's new PD. Also supports additional metadata for spotligh`D t and longeri����� �����������`Dmonths.����������������8`D�i����� ������������`D#file ���.��������������`D#read by: makeNetCDFij������������������`D����0�����������`D#Example Order of inputs�D��D���2����>��� `D,B8x10_3pdC9 #run ID� �T���B����>��.�.`D<JAN1902-1904.avgB8x10_3pdC9_LonByLat #name of first acc file��9�H���6����>��u�r`D0/u/cmrun/B8x10_3pdC9/ACC/ #input path��g�H���6����������`D1/u/cmrun/B8x10_3pdC9/ACC/ #output path�d�^���L����������$`DGtftt #monthlies;quarters;seasons;annual��|���j����������`DQtttttttTTttttttttttttttttttttttttttttttttttttttttttttttTTTTTTTTTttttttttttttttttt`DTTTTttttttttttt�C�������������.�.`D��.�|���j���������h� `DQ.........1.........2.........3.........4.........5.........6.........7.........8.`D........9......�;�F���4���������m�b`D/#above is the variables to process from 1 to 96��"������������=� @diag���6���$����������@% @�@��������@ diag_path��a�$�������������@ @counter�������������.�.�6�*���������u�r`Dcreate the .I fileH�i�8���&�������@diagt@������@�Z $@��&��f�p���^�������$@diag&@diag&��w�JAN��@�  @�������w�-��@�  @�������w�.avg��V���D�������@diag�@diag���@������w� _LonByLat��@�Z $@��&��a�B���0���������@ #@ PM_Platform�$@���wX Unix pathsT���x���f������h� @diag@diag�� @PostProcessing_SubFolderPath w�average�@���X���@�Z $@��&��e�`���N������m�b@diag&@diag&�� @ PM_FindFolder w�maps��X���@�Z $@��&��a�"���������=�@�� PC paths~��r���`�������@diag&@diag&�� @PostProcessing_SubFolderPath w�average�@����@�Z $@��&��e�Z���H�������@diag&@diag&�� @ PM_FindFolder w�maps���@�Z $@��&���������������@������������������8���&���������`D!monthlies;quarters;seasons;annual��� ������������@ @��������.������������@diag�@diag���w�t���������������@���.������������@diag�@diag���w�f���������������@��� ������������@ @��������.������������@diag�@diag���w�t���������������@���.������������@diag�@diag���w�f���������������@��� ��������@ @������.��������@diag�@diag���w�t))������������@�.�������������@diag�@diag���w�f�����������������@��� ���������������@ @��������.���������������@diag�@diag���w�t������������������@���.���������������@diag�@diag���w�f������������������@���8���&������������@diag�@diag���@�Z $@��&�����������������������T���B������������`D=set the var, these should match those for the last processing�8���&����������&@K @������w�oldAIJselection�� �8���&������������@ @������@�����@��������"���������������@�2 @���������,���������������@counter@��������������@���.������������@ @item��@�?��������@�@�����������"���������������`D add value ��� ��������������@ @�������.��������������@diag�@diag���w�t���:���(��������aaaa@counter@counter��@�?������������������������@���.���������������@diag�@diag���w�f������������������@���&���������������`Dadvance record���"���������������@�3 @������������������������@���8���&������������@diag�@diag���@�Z $@��&�����������������������0���������������`Drestore the old selection���.���������������@L w�oldAIJselection�����������������������,���������������`Dno geometry switch!!!����������������������,���������������`Dwrite out the .I file���H���6������������@ diag_path @ PM_FindFolder w�DiagnosticsApps����N���<������������@ docref_full@  @ diag_path��w�makeNetCDFij.I����2��� ������������@ #@ PM_Platform�$@������|���j������������@�g @ docref_full�@� @� @diage�@�Z $@��&��@�Z @�@����������w�:�w�/��������������������@���:���(������������@�g @ docref_full�@ @diage��������������������@���(���������������@  @ docref_full����J���8������������@ @ diag_path��w�makeNetCDFij.I�w�R*ch�����������������������.���������������`Dwrite out metadata file���X���F������������ @makeNetCDF_mdiz w�Maps�w�makeNetCDFij.I_mdi�@counter�����������������������*���������������`Drun the application���D���2������������ @ PM_Launch @ diag_path��w� makeNetCDFij�����������������������(���������������`Dstart timer here!����������������������������������������������������������DFCC4DcIDmv�^���L�������7dEadd a trend to the rundeck summary, since every line is the same just����Z���H������������7d@use pointers to the fields in the database and place in the text��� ���������������7d input���*���������������7d name for trend��P�,������������t�r�7d ptr to trend type�^�.������������C�a�7d ptr to trend value����*��������������7d units for trend�ma�.������������$�t�7d ptr to trend start����,������������7d ptr to trend end0���� �����������????�7d output�ec�2��� ������o� �7d text to add to rundeck���J���8�������S[%��@�������� ��� ����namex��units�� P�f���T������$�s[- ��� ��� ��� ����typePtr��valuePtr$��startPtr$��endPtr���c�&���������(�[�listRef���*���������h�a[ �����trend��er�"��������[namex ��� (�$��������[typePtr ������&��������[valuePtr$ ���us�"��������[units �����&�����������[startPtr$ ���ti�$��������[endPtr� ���op��������������\���� ����������7dsetup����B���0���������[listRef���Rundeck Summary Trend��o ��������������\�:���(����������7d!put together the trend in english����X���F���������[trend�namex�� �GetListItemStr@�listRef��typePtr}����2��� ����������7dformat the longer string���������������[[k�N���<���������[�typePtr}����?��������no trend no work�������p���������[�typePtr}����@���������� �typePtr}����@��������data file or exponential change��H���6���������[trend���trend���^0��valuePtr$}�������p���������[�typePtr}����@���������� �typePtr}����@��������step function, constant change ��N���<���������[trend�trend���valuePtr$}���� ���units����J���8���������[�typePtr}����@�������� linear changein�^���L���������[trend���trend���^0��valuePtr$}���� ���units�����������������[[���(�������������7dadd year range�fi�������������[[��N���<���������[�typePtr}����?��������no trend no work����V���D���������[�typePtr}����@��������constant changes persist�0�N���<���������[trend�trend���� in ����� �startPtr$}�����������������[[st�v���d���������[trend�trend���� from ���� �startPtr$}����� to ����� �endPtr}��f�������������[[�������������[\� �������������7dcleanup��L�&������������[y�listRef��tc�6���$��������� [���trend����Z$���&����������������������������DFCC4D;�x�^���L��s��s����7dDthe toolbar does a fake close that just moves the toolbar down a lot7����2��� �����������(7(l7(t7(r7(b77�0���������������(7( allWindows�7�7@77��F���4������������(7(i7(�?�������7(7( allWindows�777��P���>�����������(7(7( allWindows�7(i77�7@#(Toolbar_ProcessID77he�J���8��������� ��(7(l7(t7(r7(b7( allWindows�7(i777�4���"��������3333(7(l�7@�7@(�@�������77�n���\������������(7(l�7@(�@ �������7(t7(r�7@(�@ �������7(b7( allWindows�7(i777������������������((st�n���\������������(7(l�7�@(�@ �������7(t7(r�7�@(�@ �������7(b7( allWindows�7(i777������������������((st����������������((�����������������((k����������������(\������������������������������������������������������DFCC4Dd�,�}8�,�����%5��$5��gSstart toolbar process���.�������6���^#�Toolbar_ProcessID��l��������������������d���R�����������SMGeneric_OpenReopen (->Toolbar_ProcessID;"Toolbar_Process";"Toolbar_Process")����������������������>���,��������^#�Toolbar_ProcessID�����������������F���4��������^�J#�Toolbar_ProcessID����@����������<���*�������� ^Restart_Process#�Toolbar_ProcessID�������������????^>>�.�����������^F#�Toolbar_ProcessID���:���(�������� ^ Generic_Close#�Toolbar_ProcessID�����������������^������������111^���h���V��������#^Toolbar_ProcessID�=�Toolbar_Process�#� StackSize��Toolbar_Process����������������^����������������DFCC4D�xB�N���<��'0��&0��gS6disabled for now in favor of new picture editor dialog0�*�������ް���� @��@figNumD����"���������������@figNumD^ @����������������������8���&����ޠ����S open editor only on double click�@���.������������@@�$@����x @�$@������2��� ��������0001Smod math to get the section00�~���l��������EMak@secNum�^@�_@figNum��^`@�?��������� @�@���������@�������������^�@�?�����������������������������(���������������Sopen full editor����@���.������������ @InfoText_FullOpen@secNumx�@figNumx�������������������@������������������������������������������������������DFCC4D'H�,��8���&�� L�� L����8setup information for a trend ����@���.������������8'based on trend type, start, end, value ��:�R���@������������89fixed, now puts full path to trend file (folder for now) ��� ��������(- (�do�(��������(-( trendType�� ������������(- (��&�*������������(-( trendStart�ss� ������������(- (���(��������zzz(-(trendEnd��� ��������zzz(- (���*������������(-( trendValue���� ��������3333( (����$������������((trend��8���&�����3333(%(�@�������(filePath����&������������( trendType (�(�(������������( trendStart� (�(�&������������(trendEnd� (�(��(������������( trendValue� (�(fu�������������([�$�������������8 setup info �d����~���������(( trendType�@(������������ @( trendStart��@(������������ @(trendEnd��@(�����������?�L���:�����D|�820 means no trend, just use the default null trend �n�t���b�����3��(trend�1 ��@ ( LongintToI4(�(������@ ( LongintToI4(�(������D���2��������(trend(trend��@(�Z$(��&��@�� �;������������((���*�������������8do real trends �ma�������������(trend(� ( trendType��@� ��@ ( LongintToI4( trendStart4��@ ( LongintToI4(trendEndo��@(�Z$(��&���:���(���������(( trendType�@(�?����������0������������(trend(trend��@� ��������������((���:���(���������(( trendType�@(�@��������oC�D���2��������(#( PM_Platform�@$(��\ Unix paths 7d�P���>��������(filePath� ( PM_FindFolder�� Input Forcingst�@y�B���0�����4���(filePath�(filePath���@( trendValue�m�$������������(\_t PC paths \en�J���8������������(filePath� ( PM_FindFolder�� Input Forcingst�X���F������������(filePath� ( PM_MakePath(filePatha( trendValueh(� ����������������((>)�6���$�������������8$trend:=$trend+$trendValue-> �im�6���$������������(trend(trend��@(filePath�(�����������������((i����|������������(( trendType�@(�@��������� @( trendType�@(�@�������� @( trendType�@(�@����������T���B������������(trend(trend��@ ( RealToF18.5(� ( trendValue5������������������((���:���(������������(( trendType�@(�@�������oC�|���j����ƚ�����(trend(trend��@ ( RealToF18.5(� ( trendValue5�@(�@���������@(�?���������������ƚ�Vg9((k��������ƚ�V((���6���$����ƚ�� (��(trend��@(�Z$(��&��������������������������������DFCC4DY@Dmv�R���@�� �����7d8Get the field pointer based on the menu choice passed in���X���F�����������J�7d>Menu choice is passed so that it can be used out of the dialog ���� ������������7d input�s �$���������������7d menu item�s � ����������������7d output�o �,�����������ro:U�7d pointer to field0�U�.��������������\ ����menuItem$����� �����������\- ������&�����������\menuItem$ ����������������(������������\\k�8���&��������\�menuItem$�������������������$������������ \��}��������8���&������������\�menuItem$����?������������$��������������� \��}������en�8���&������������\�menuItem$����@�������������$��������������� \��}������e��8���&���������\�menuItem$����@�������������@���.����������7d'$0:=->[Model Variables]Keywords'Keyword��<������������\\��������������DFCC4DI{�2��� ����L������8HACK! HACK! HACK! HACK! ���T���B��������ff�8;I rigged this to work like FileMaker where every keystroke ����R���@������������88changes the text, otherwise I have to search a hard to ���T���B��������L�8:get at local buffer for the text. Please excuse my little ����$���������������8 rant here. �����������������������*������������v��v@$���vv���$������������v�tempvvnt�4���"������������#�PictInfoToolbarChangedvv����,���������������#�PictInfoToolbarv���������������������������������������������������������������������DFCC4Dwu�{����n�� b��b���7dQAuthenticate a user against the database. By default the user is logged in but th�7de one time admins�`�~���l����.������7dQoption allows just a check that the username and password belong to an admin. The�7d one time admin����z���h�������������7dQpassword is passed in UAM_privateOneTimeAuth. In password-less mode this code is�7d bypassed.s��� ���������������7d inputp����$���������������7d username����$�����������GCM.�7d password��am� ����������������7d output���4���"������������7d boolean (true if sucess)0��>���,��������� \%��@�������� ����username$�����>���,������������\%��@�������� �password_plain@�����.������������\\ �password_crypt@����� ������������\1 �����.��&���������������\username$ ���ur�,��������������� \password_plain@ ������������������������.�����������\#�UAM_UsePasswords�����&�������������7d password mode�nd���� ��������� \���������������\�����7d�<���*����\��7d#query database to look for password���8���&����\�\$������ Password Set���in�>���,��������\���������������username$�����$������������NNN\$������������������111�er�,������������7dconfirm user exists�th�F���4��������\���� Password Set��� ��������������d �$�����������RRR�7d set records�up�.��������������\�v�� Password Set������������������3{�V���D������������7d<test password, comparison is done on the encrypted passwords�����P���>����\���� \ UAM_Encrypt( �password_plain@�( �password_crypt@���R���@����\�\ �UAM_ComparePasswords2 �password_crypt@������������<���*����\��7d#passed check, set global user flags�R0�4���"����\�\#�UAM_privateOneTimeAuth������"�������\�\������������ ����\� \���������������\�\\����������\�����\\rr�&�������\�����#\UAM_Auth���Ȑ�*�������\����#\UAM_User������p�*�������\����#\ UAM_Admin������ ���� ����\���� \���������������\����\\��������\����\\la��������\����\���&�������\��7d unset records�e �$�������\�\����������5��������\�\\��������\�\\��,�������\��7dpassword-less mode������� �������� \�������������������\\������������������\���H���6��������MUTX�7d.reset password regardless of sucess or failured����$�������������� \vPswd��������,�������������� \ vActualValuec�������������������������������������������DFCC4D s�>~m�T���B��&m��%m��gS=this code is called by both the toolbar and the image browser���������������������(�������D�����@�$@�����.��������������#@ InfoPict_Ptrn~@���������������������@���6���$���� �0001@ @IBC_SortI�@�?��������00�.�����������EMak#@ InfoPict_Ptrn~@�� ��ta�6���$������������@ @IBC_SortI�@�@������������.������������� #@ InfoPict_Ptrn~@�� ���i�6���$���������o�l@ @IBC_SortI�@�@���������� �.�������������#@ InfoPict_Ptrn~@�� ���o�6���$����~��� @ @IBC_SortI�@�@���������a�.�������~��o�l#@ InfoPict_Ptrn~@�� ����6���$����~���@ @IBC_SortI�@�@����������.�������~�#@ InfoPict_Ptrn~@�� ����������~�@�Z���H����~�#@DragTransferFilename8�@�?�������~ @IBC_SortI� @IBC_SortI�4���"����~�#@InfoPict_Button~@�@��������j���X����~����@@B�#@Toolbar_ProcessID�wO81 if we're in the toolbar this is an external call�0�������~�@I#@InfoPict_ProcessID~����Z���H����~�@�� @if we're in the image browser tell the toolbar to update as well����(�������~����� @Info_iPhoto_Button~���4���"����~�#@CM_UpdateImages~@�@���������.�������~�@I#@Toolbar_ProcessID���������~�@�(�������~�@@�$@����8���&����~�@ w�l dTool Sort�� @IBC_SortI��.�������~���� @IBC_SortI~@�?���������X���F����~�����@@�$@�� ���(#@CM_UpdateImages�~@����������������B���0����~�� S*if CM_UpdateImages = 3 do new menu update���<���*����~�����@#@CM_UpdateImages�@�@������������6���$����~����Supdate menus from external call���\���J����~����@found~@� @IBC_SortI�#@DragTransferFilename;�@�?�����������2��� ����~����@@found�~@���������������(�������~����� @IBC_SortI~@found����������~�����@���b���P����~�����SKmark update as finished, do inside loop to leave space for Toolbar_IBC_View���4���"����~�����#@CM_UpdateImages~@���������������������~�����@����������~�����@����DFCC4Dl�_)�>���,��'&��&&��gS'Handle the popup menu of images folders��P���>��������S8change the visible records in the image browser on click����H���6������������S1setup the menu when called from the outside, this���R���@�����������S;works because CM_ScanImages calls the toolbar for an update��T���B������������S=this code is called by both the toolbar and the image browser������������������p���(������������p@�$@������Z���H��������d#@DragTransferFilename8�@�?�������c @IBC_ViewI� @IBC_ViewIg�P���>����"�����#@ InfoPict_PtrncR#@DragTransferFilename>�@�?����������4���"�����������#@InfoPict_Buttonc@�@����������:���(��������� @IBC_SortIc@�?��������� reset??���j���X�����������@@B�#@Toolbar_ProcessID�wO81 if we're in the toolbar this is an external call���0���������������@I#@InfoPict_ProcessIDc����R���@�����������@�� 8if we're in the image browser need to change the toolbar����(�������������� @Info_iPhoto_Buttonc���4���"��������#@CM_UpdateImagesc@�@��������ke�.���������������@I#@Toolbar_ProcessID����������������� @��p���^���������n�g@@�$@�� ���&#@CM_UpdateImages�c@��������������x @�$@����a�B���0����������)S*if CM_UpdateImages = 1 or 0 do old update���B���0��������� �bS*if CM_UpdateImages = 2 do new menu update�h�������������o�a@� �<���*��������Hd@#@CM_UpdateImages�@�@������������6���$������������Supdate menus from external call���D���2��������@���@foundc@� @IBC_ViewI�#@ InfoPict_PtrnR���2��� ������������@@found�c@���������������(��������������� @IBC_ViewIc@found���.������������� @IBC_SortIc@�?��������������������D4@���b���P������������SKmark update as finished, do inside loop to leave space for Toolbar_IBC_Sort���4���"��������@���#@CM_UpdateImagesc@��������������<���*������������@#@CM_UpdateImages�wl@�@������������*��������������� @Toolbar_IBC_ViewBuild�b���P���������� SKmark update as finished, do inside loop to leave space for Toolbar_IBC_Sort�4���"������������#@CM_UpdateImagesc@�����������������������������@�������������������������������������@������������������������������������DFCC4DKF�ON�H���6������������"0/handle the popup menu for the journal sections "���>���,����3��L�#EJournal_Count$�@�����������������;^N>,"� �������p����i�����������������"������������������*�������/����@$���6���$������������#InfoText_Button�@����������2��� ����<��I#InfoText_ProcessID�*�������<�����@$���@���.����<��`� x� dText Count#EJournal_Count$@�6���$����<����#EJournal_Count$�?�������"��������<(C ��������<����"������������������DFCC4DUy�:���(���������d�d!Update the current date for a run���J���8���������d�d1This is done locally if the sim process is paused�������������d�d����� ���������d�dvar���0������������d�drecNum�state��������������d�d���8���&���������d�dask sim to update current dateD���>���,���������d�dstateJ#Simulation_ProcessID����.������������d�dstate�s$� � ���8���&���������d�d#Simulation_ButtonS@�������}�4���"���������d�dI#Simulation_ProcessID���������������d�d���,������������d�ddo the job myself A�0������������d�drecNum��������$������������d�d������0��$������������d�d���������$������������d�d�4�������4���"���������d�d Simulation_UpdateCurrentDate\��$������������d�d���������$������������d�d�������$������������d�d�4������������������d�dm��������������������������������������DFCC4DK&�p��n���\���������d�d"" "Picture1�" "Picture2�" "Picture3�" "Picture4�" "Picture5�" "Picture6�""���n���\���������d�d"" "Picture7�" "Picture8�" "Picture9�" " Picture10" " Picture11" " Picture12""���R���@���������d�d"" " Picture13" " Picture14" " Picture15" " Picture16""g ����������������������������������������������������������DFCC4D]��Z���H��'��&��b$COHT_Setup creates the output folder for ocean data and performs theME�\���J�����������b$Epreflight check for post-processing ocean fluxes. Now allows for UnixD�.��������������b$style path for MacOS X����� �����������b$ input���X���F������������b$A (optional) if passed then check for deep ocean instead of qflux���<���*��������0001�% @�@��������@output_pathname�12�8���&��������EMak@% @�@�������� @ OutputPathu���6���$������������@% @�@�������� @ InputPath����6���$���������f� @% @�@�������� @PathCharP������ �������� ADO@1 @��� R��������������D�e�e�.�����������TAT @ @�8@������������ S�"����������� ?? @isDeep�@�ch������������@�"�����������)))%@isDeep�@�������������@�������������zzzz�6���$��������@ @ OHT_ValidateT @isDeepl���"�����������b$ path checks��D���2�����������]@output_pathname @ PM_FindFolder w�EdGCM��H�d���R���������� @output_pathname @ PM_MakePath @output_pathname�w� Input Oceans�@���O�h���V���������a�t@output_pathname @ PM_MakePath @output_pathname�@�� ���@��wX was false�d�D���2���������a�g@ @ @output_pathname��@�������������;�,������������y�T@ @output_pathname��-�������������l� @�a��������������o�s��J���8������������b$2PC's get this path, MacOS X gets a Unix style path���2��� ������������@ #@ PM_Platform�8$@���_T�$���������������b$ Mac/Unix pather�P���>������������ @ OutputPathuw�../../Input Oceans/��@�� ����w�/le�H���6������������ @ InputPathw� ../../Output/��@�� ����w�/ef�&��������������� @PathCharPw�/������������������@b$���� ������������b$PC path@�4���"������������ @ OutputPathu@output_pathnameag�D���2������������ @ InputPath @ PM_FindFolder w� CurrentRun�� L�&��������������� @PathCharPw�\t�����������������@i���� ������������ @��@�����������������@i���� ������������ @��@�������������������@b$���� ( OutputPath�(output_pathname(sI�F���4������������ ( InputPath ( PM_FindFolder�� CurrentRun"�(��������������� (PathChar����\�������������������((������ ������������ (��(�(������������������((k���� ������������ (��(�(������������������((��DFCC4D�Z�L���:���������d�d"3H2Change to match the record selected in the toolbar�"�<���*���������d�d "InfoText_SaveRecord""I@��������""���L���:���������d�d"�""�����"#"JournalIDArray"#" JournalArraya"""���*������������d�d "InfoText_LoadRecord"����������������������������������������DFCC4De�;sj�h���V��%��$��g � FinderToPathnw�l diagnostics_�~� @Run_Critical_GetRunN+@�?���������fs������������g ������������������������������������������������DFCC4DU6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q����@success@������������DFl��3�V"�����`Dsetup db��,�����������ODFl��`�OK*��9� �"���������������@� @��������(DFCC4DIt�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�������� @Run_Critical_End<���DFl��`K�,v����������������`Dcheck model/grid, pathDFl�� �V���output_pathname @ PM_FindFolder w� CDFCC4D[?�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��@��� @Rundeck_Createz @��DFCC4D[@�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��¬�����@success@����:��DFCC4D[A�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�@�����*�������¬����� @RDFCC4D.}�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q���������¬��������4���"����DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q@ @tempu��$@�����DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qMakePath @output_pathname�@DFbrkp����������������`����������H�� ����������Q�� �@���"���������������@success@����*�����DFCC4DQ6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q������@�2��� ������������@DFl��no���essID(����������������i�a@�l��������������� ��4���"��������� �#@Setup_ProcessID@������������DFCC4D}�,�Z���H��%��$��gSBEvaluate the hierarchy for view for plots where hierarchical listsME�Z���H��������wSCare used. This code is called for the view button and double click.���Z���H�����������SBI need to filter out clicks on the top level and only allow clicks���X���F������������S@on the sublists, but pass the higher level name as well. The new����X���F������������SAand improved version supports zonal plots and time series (plots)������������������S������� ��������0001S input00�.�����������EMakS string, folder to useta�*���������������S ptr, list to use���>���,���������� �%@�@�������� @��@ folderNamef��r�*������������ �@- @��@listPtr���b���P���������$�s@@selItem�@selRefm�@ selSublistRef�@ selParent�@ selParentRefe��=�&��������������@1@selSubEx$����F���4�����������@%@�@��������@selName�@ selParentName����2��� ���������h�i@%@�@��������@path���a�&������������s�e@ folderNamef @���"������������n�g@listPtr @��w��������������������$���������������S get list item���2��� �������� �@selItem@{@listPtr�����j���X��������(,@z@listPtr��@selItem�@selRefm�@selName�@ selSublistRef�@selSubEx$�f�D���2��������k@ selParentRefe@y@listPtr��@selRefr�9{�F���4��������p�t@ selParent@u@listPtr��@ selParentRefe�B�������������{-4^�\���J������������@@selName���w�l<empty>���.@ selParent���@����������������,���������������Sget item parent name���X���F���������@z@listPtr��@ selParent�@ selParentRefe�@ selParentName�� ���������������S make path���>���,������������@patha @ PM_FindFolder@ folderNamef����d���R������������@pathe @ PM_MakePath@patha�@������w�l_��@ selParentName�@�����^���L��������@patha @ PM_MakePath@patha�@������w�l_��@selName�@�������� ��������0001Slaunch00�2��� ��������EMak@#@ PM_Platform�$@���Ma�"��������������@#@Use_EVA�i�<���*������������ @PostProcessing_TypeViewEVA�@pathP�������������������@���B���0������������@errCode@.�@path�@������������@������������2@ ������������@�"�����������ww@#@Use_EVA�w�<���*��������wZ @PostProcessing_TypeViewEVA�@pathP�>������������@�F���4��������@errCode@.�)@path)�wO8does this work?����������������@��������������{{@kR������������w@��������DFCC4D0w��l�<���*����������"0#open list window to list eJournals "���j���X���������� Generic_OpenReopen???#eList_ProcessID?x� eList WindowK?x� eList_Process?? z����DFCC4D.�q�h���V�� b��b���7dNreset the user to no user in password mode, can't logout of password-less mode �m�.��������������\#�UAM_UsePasswords�����&�����������GCM.#\UAM_Auth������(�������������#\UAM_User�����C�&������������#\ UAM_Admin���������������\\����DFCC4Di������"��!��,]\�(�����������MUTX]���$�������p���^����„�����7dQdon't close the window unless the save is sucessful, this will bug users but so w�7dhat���0��������������] �UAM_Editor_SaveRecord��"�����������0001 ] Generic_Close00������������EMak] S�(���������������]���$�������^���L�������� ��7dGThere is a bug where when the number of entries in the list box changes���d���R����������7dMit doesn't happen until after the code leaves so it has to be set by a timer.�`���N������������7dIThis requires a stupid workaround where the userColsToSet is the item you���>���,������������7d&want to set after the form is updated.P��8���&�����������] �userColsu� � userColsToSet����(��������������]�������������%������������EMak]����DFCC4D�~PH�d���R��'��&��b$MOpen a path in the Finder/Windows Explorer from the base of the 4D folder and���^���L��������b$Gbring the window to the front. Now uses new 2004.1 command Show On Disk�����������������b$�o����� ���������� b$ input�e�X���F����������)b$A folder to open, a first char of means use the run path + rest�P���� ��������0001b$ output00���� ��������EMakb$ noner��>���,�������������% @�@�������� @��@ pathToOpenp���� ������������� @ @err��n���������������)��&����������� b$Get the folder$ 5�8���&�����������@ @�!9@�?�������"�8w�����h���V��������b$Qcan use usuall Run_Path code since I may not be inside a process with an open run�@���.��������@ pathToOpenp @ PM_FindFolder w�EdGCM��B���0��������@ pathToOpenp @ PM_FindFolder w�OutputP���v���d�����������@ pathToOpenp @ PM_MakePath @ pathToOpenp� @Run_Critical_GetRunN; @�?��������7�@���6���$��������111@ @� @���@�?���������f���T��������@ pathToOpenp @ PM_MakePath @ pathToOpenp�@�  @��@�@����������@�����������������@�����������������@���@���.�����������@ pathToOpenp @ PM_FindFolder w�EdGCM����N���<��������@ pathToOpenp @ PM_MakePath @ pathToOpenp� @��@������������������@����������������R���@��������b$:new 4D command to show a folder, much faster than old code�2��� ������������@ #@ PM_Platform�8$@������.���������������@ @ pathToOpenp���������������������@���6���$������������@ @ pathToOpenp���wX??������������������@���|@�6���$���������@ @ pathToOpenp���wX??���������������@mxtraHeight]]�2��� ����h����[]�]@]x�Tab_@]]�]]�4���"������������[]�]@]x�List_@P]]�]]�4���"������������[]�]@]x�Info_@P]]�]]�4���"������������[]�]@]x�Size_@P]]�]]�4���"�����������[]�]@]x�Disk_@P]]�]]y�$���������������zTX hide all zy�J���8����������� ExtraHeight] ]WBot�]@ ]WTop-�]@]�@�������]�V���D������������] WLeft] WTopt] WRight]] WBoth�]@ ] ExtraHeight]]���2��� �����������[]�]@]x�Tab_@]]�]]BA�4���"�����������[]�]@]x�List_@P]]�]] ��4���"������������[]�]@]x�Info_@P]]�]]y�4���"������������[]�]@]x�Size_@P]]�]]���4���"�����������[]�]@]x�Disk_@P]]�]]�.���������������������������������������������������������������������������������������DFCC4DP��,�R���@������((%(�@������� (�3 this contains the group name ���V���D�����������(1 (�2$0super mode, change boxes regardless of settings {et�*�������������((( Group_Index�8���&��������3333(1 (��2$was the box opened ������ �������� (��(�(������������������(�^���L��������zzz�7dDdon't use disclosure triangles if the run is a scenario or archived ����h���V��������www((�"(�����@(�m����@(�@��������� @ (��@(�@P����r�����������( Group_Index(� ( Group_Namex (�(�?�������4/this finds and reverses the state of the Group is�"����������������7dEnd if l�z�j���X������������((�@(�@��������� @ ( Group_Visible( Group_Index�@ (ShownW�J���8������������( ( Group_State( Group_Index�@ (Openp�@���.������������ ( Group_State( Group_Index (ClosedI(�4����������������((�>���,������������ ( Group_State( Group_Index (Openp(������ ������������ (��(�(������������������((���0����������������7dThis updates the group ���:���(������������ (Twist_Down_Update( Group_IndexW�4���"�������������7dmark change to enable save �e �8���&������������#(Simulation_TwistDownChanged(�(A����������������((������������������((����������������(�(ul����������������((v����������������������������������������DFCC4Dfs�8 �R���@��%��$��gS;Setup the menus in PowerTools, which are the model and gridDE�@���.������������^ � Model Names� �Dev_ModelNameMenu����@���.��������^ � Model Grids� �Dev_ModelGridMenu�tr����������������������DFCC4D�P�D���2����hP��"0* Typically used as a close box procedure. �"�F���4����hP����"0,Adds in support for proper record handling. z"��� �������hP����"0 input "��b���P����hPerm"0I optional process to effect, if nothing is passed uses current process "���.�������iP��Q �Q processIDQQ����������iPtQ�0�������iP~Q�Q@�?�������QQ��&�����������y processIDQ Q�Q�(�������hnDQ processIDQQ$�(�������hn?Q processIDQQ����������hn��� �������hnDQBQQer� �������hn����?QBQQnk��������hn��������������hnlugi����������������������������DFCC4DBX�T���B��x��x���7d:this is special case code to deal with the ocean mode menuP��J���8���������7d1this replaces Matt's old code, the new version no��>���,����Z�$�7d%longer moves things to show/hide them����*������������[� group_index�����B���0������������7d(incoming data is a hack to force updates��� �������V����O[1 ����er�0�����������[1�load_from_record@����0��������������R[ �OceanModelistRef@��e �*������������t[� listItemRef��\�.��������������[load_from_record@ ������������������[�M��(���������������7dload menu items���*�������������[���$��������B���0���������_�@[ �� Ocean modes� �Ocen_M_Mode_Menu@���H���6���������� [OceanModelistRef@���Ocean modes short��d �������������I�S[[��"�������������`�7dset item��ID��������������[[���J���8����������[���$����� �load_from_record@��� T�D���2���������_�@ [Ocen_M_Mode_Menu@�������`��?���������*�������������[���$�����se�b���P���������I�S�7dIset associated info to match observed ocean the first time it is selected�ec�t���b������������[ �Ocen_M_Mode_Menu@����@�������������������@����������observed���<���*���������[������O8X10.B.1871.M02.Hadl1.1����V���D������������[������@ ������uh$have to align the file and the iyearu��4���"���������� [������uh no collectionuie�4���"���������[�M[������uh no collectionus�T���B���������1�2[������� �� O�uhif before the start of the fileu�Q�(������������m�a[����� �� O�ru��������������[[�V���D���������S�I[������P� �� �!if after the end date of the fileTa�(�������������;[����� �� �al�������������� [[���������������[�M[[\�D���2������������[���� �Ocen_M_Mode_Menu@�P��?����������B���0�������������7d($listRef:=Load list("Ocean modes short")��\�^���L������������[���� �GetListItemStr@ �OceanModelistRef@� �Ocen_M_Mode_Menu@��������������������[[v����������������[\�^���L�������������7dEcheck if the ocean box is visible before I try to show or hide things����V���D������������[ group_index�� � Group_Namer���Ocen����?������������L���:�������������7d2ocean modes are addative so I handle each in order���F���4������������[ � Group_State� group_index�� �Open��������������������[[���@���.������������[ �Ocen_M_Mode_Menu@����?������������D���2������������[[�P���Ocen_S_@����� fixed sst5{�f���T�������������7dLspecial case for max mixed layer which is required for ocean flux collection@�Ta�"���������������[���������6���$������������[[�P���Ocen_R_@������Ta����������������[[ �6���$������������[[�P���Ocen_R_@������s����������������[[s�6���$������������[[�P���Ocen_Q_@������CR�6���$������������[[�P���Ocen_D_@�������6���$������������[[�P���Ocen_O_@������P�6���$������������[[�P���Ocen_C_@��������J���8������������[ �Ocen_M_Mode_Menu@����@���������qfluxe��6���$������������[[�P���Ocen_S_@������F�6���$������������[[�P���Ocen_R_@������Ta�6���$������������[[�P���Ocen_Q_@������in�6���$������������[[�P���Ocen_D_@������Ta�6���$������������[[�P���Ocen_O_@������ng�6���$������������[[�P���Ocen_C_@������Tr�V���D������������[ �Ocen_M_Mode_Menu@����@���������qflux deep ocean�I�6���$������������[[�P���Ocen_S_@������s�6���$������������[[�P���Ocen_R_@������D�6���$������������[[�P���Ocen_Q_@������ S�6���$������������[[�P���Ocen_D_@���������6���$������������[[�P���Ocen_O_@������pe�6���$������������[[�P���Ocen_C_@���������N���<������������[ �Ocen_M_Mode_Menu@����@��������observed����6���$������������[[�P���Ocen_S_@������S�6���$������������[[�P���Ocen_R_@���������6���$������������[[�P���Ocen_Q_@������d��6���$������������[[�P���Ocen_D_@���������6���$������������[[�P���Ocen_O_@���������6���$������������[[�P���Ocen_C_@��������L���:������������[ �Ocen_M_Mode_Menu@����@��������dynamic�6���$������������[[�P���Ocen_S_@�������6���$������������[[�P���Ocen_R_@�������6���$������������[[�P���Ocen_Q_@������p�6���$������������[[�P���Ocen_D_@��������6���$������������[[�P���Ocen_O_@���������6���$������������[[�P���Ocen_C_@����������������������[[s����������������[[������DFCC4DJ��`���N��&m��%m��gSICreate a new record for edit simulations. Many fields need default valuesfn�(��������������S input (optional)����� �����������S run #�������������������������������������Svar������ ��������0001�@i�00�.�����������EMak@@�@�?��������ta�:���(������������@%@�@�������� @��@runName����"���������������@runName @�@��������������@���������������a�b�l�.������������e�lSplace into create mode�M�*������������� @Simulation_Newz@����8���&������������S add a new record to the database��*��������������� @Simulation_SaveRecordra�"��������������@�D@��������2��� ��������4Screate a unique run number���.���������������@@�@�?�����������&�����������@���@����@runName������������������@���L���:������������@����w�lUntitled���@� @�d�@�@O��������������������-� @���0���������������Sgive it the current date���� ���������������@�v���@�!���8���&������������S give it meaningful default dates���&���������������@������� l���&��������������A@������� w���*���������������@����@�@ ���������4���"�����������Sset default ocean collection���*���������������@����@�@�������"�*���������������Sset special regions�H�(��������������@����w�lREG8X10��*���������������Ssetup default path ���(���������������@����w�lDefault���,���������������Ssetup default oceans���*���������������@����@��������������V���D������������@���� @GetListItemStr @OceanModelistRef8�@�?�����������0���������������Ssetup default trend info����*���������������@�j���@�@ ���������*���������������@����@�@ ���������*���������������@����@�@ ���������*�����������aaaa@����@�@ ��������*���������������@����@�@ ��������*�����������@����@�@ �������8���&�������� @Simulation_TrendData8@�j�����*������������@����@�@ �������D���2����������� @Simulation_SolarData8@�fw�l1/1/1958������&���������������Screate keywords���P���>������������S9Simulation_CreateSubrecords (->[Model Variables]Keywords)���(���������������Sset model & grid����f���T������������@���� @GetListItemStr#@ ModelNamesRef�@�@���������wO8Model II 1.0.5���\���J������������@���� @GetListItemStr#@ ModelGridsRef�@�@���������wO88x10����������������������"���������������@�5@���������(�������������&Sleave create mode��*��������������� @Simulation_Newz@����.���������������Supdate list & interface���2��� ������������ @Simulation_LockUnlock@�����(���������������SRunArray_Update ����F���4������������@�w�lSetup Simulation, Run ID: 8��@��������,���������������@I�`@�?������������������������������������������DFCC4D2�r�T���B��'��&��b$=Create TimeSeries.I file to post process the aj (time series)���"�������������� @diagD����6���$������������@% @�@��������@ diag_path����(��������������@2 @ docref_full���:���(�����������@% @�@��������@ output_folder���"���������������@ @itemu����6���$���������� @� @ modelgrid�@�@������������������������l�e� �&�������������b$path to output$�u�d���R���� ��� @ output_folderw� ../../Output/��@������w� /diagnostics/��@�����e�z���h���������"�8@ output_folder@ output_folder��w�_��@�  @�������w�-��@�  @�������w�/���������������� ��(�����������olldb$check model/gridz0.�6���$���������P�o @GetModelAndGrid 7 @ modelgrid�� �����������������*������������� b$create the .I fileH�i�H���6���������"�8@ @ modelgrid�@�@���������8@�@����������)�@���.���������Y�e@diag�w�8x103��@�Z @�@���������g�������������s�.@�"�D���2���������e� @diag�w�7.826x10���@�Z @�@���������e�������������u�t@�u�n���\������������@diag�@diag���w� ../../Output/��@������w�/acc/��@�Z @�@��������C�x���f������������@diag�@diag���w�JAN��@�  @�������w�.acc9��@������@�Z @�@�����������R���@������������@diag�@diag���@ output_folder��@�Z @�@����������J���8������������@diag�@diag���@������@�Z @�@��������Li�R���@������������@diag�@diag���@�  @�������@�Z @�@����������R���@������������@diag�@diag���@�  @�������@�Z @�@�����������p���^������������@diag�@diag���@�  @�����P@������@�?����������@�Z @�@�������������� ������������b$8x10ey�P���>�����������b$9Mana2:Pascallion:EdGCM Folder:Output:TestVar.A10.pC9:acc:���2��� ������������b$JAN1901.accTestVar.A10.pC9���^���L������������b$GFolder:Output:TestVar.A10.pC9:postprocessed:TestVar.A10.pC9_TimeSeries:���&���������������b$TestVar.A10.pC9n ���� ������������b$1901$i���� ������������b$1901rt����������������b$1EX������������������,���������������b$write out the .I fileTa�$���������������@ diag_path@���@���.������������@ diag_path @ PM_UpOneLevel @ diag_path����@���.������������@ diag_path @ PM_UpOneLevel @ diag_path�@�N���<������������@ diag_path@ diag_path��w�Applications:Diagnostics:���L���:������������@ docref_full@  @ diag_path��w� TimeSeries.I����2��� ������������@�g @ docref_full�@diage� A�(���������������@  @ docref_full�th�H���6������������@ @ diag_path��w� TimeSeries.I�w�R*ch8�����������������������2��� ������������b$create the .I scalling file���"���������������@diag_w��e_�"���������������@�2 @���������B���0������������@ @item��@�?��������@�L @���������� ���������������@ @�����@�.���������������@diag�@diag���w�T������������������@p�.���������������@diag�@diag���w�F������������������@l�:���(������������b$"scaling factors aren't really used���@���.������������@diag�@diag���w� 0.00000000E+01 ���h���V������������@diag�@diag���@������  @�@��������P@� @�������w� ����h���V������������@diag�@diag���@������  @�@��������P@� @�������w� ����J���8������������@diag�@diag���@������@�Z @�@�����������"���������������@�3 @������������������������@b$�"���������������@�2 @������������������������@�6���$������������b$write out the .I scalling file���T���B������������@ docref_full@  @ diag_path��w�TimeSeries.I Scalling����2��� ������������@�g @ docref_full�@diage����(���������������@  @ docref_full����P���>������������@ @ diag_path��w�TimeSeries.I Scalling�w�R*ch:��������������������@�B���0�����������b$+copy over the land file from the run folder������������������ @PM_CopyFortranz @�@���������w��� @ PM_FindFolder w� CurrentRun���@�@��������@ diag_path�@�@��������@������������������������&���������������b$path to output$���p���^������������@ output_folder @Run_PathR��w� :diagnostics:��@������w�_��@�  @��������\���J������������@ output_folder@ output_folder��w�-��@�  @�������w�:����������������������0���������������b$create the output folder����<���*������������@ @ @ output_folder��$@������*���������������@ @ output_folder�������������������@��������������������*���������������b$run the application���^���L������������@errCode@.� @ diag_path��w�TimeSeries.app�@���������������������������������������DFCC4DQW�s�X���F����n�����F>This terminates XML tags correctly and fixes the input string ,>�r���`����@�Z^FQto match the rules for XML tags. If the level is 0 then nothing is done at the enFd � �������F�����F input ct�0���������������F string, XML tag name ��,��������������F level of the tag 9�<���*�����������%�@������� �tagNameq�.����������� �tagLevel@���0�����������Yj%�@������� ���,�$�����������tagName �_R�&�����������,GetagLevel@ �tr������������Yj�(�����������Ffix characters in�B���0��������,GetagName�tagNameY�p Y�p_LO�B���0��������tagName�tagNameY�p?Y�p������������������&�.���������������Fcreate output string ���v���d�������� ��tagLevel@�@�Z$��%��@Y�p</��@tagName��@Y�p>��@�Z$��&lo������������������������������������������DFCC4D�|�`���N��&��%��gSHYou can only extend runs that you can start, that aren't already runningfn������������������(�������������� Run_Critical_Begin���<���*�����������#@RunNumberArrayz�@������������������������0001@@�"#@Run_RunNumScenMast�#@RunNumberArrayM����#@Run_RunNumStatus �#@RunNumberArrayu� �@�@���������34�H���6����������@�@������#@ RunIDArrayR�#@RunNumberArrayz��u�&��������������� @Run_Critical_End���`���N���������SIcheck that neither the model nor the shell is running (be extra paranoid)�����r��������@ @Run_FindOneProcess @ GetModelNamet��x @Run_FindOneProcess� @ GetModelNamet����wO8running���N���<������� @Alert_ParamText@�����w�lextend�w�l��w�l����R���@��������� @ Alert_Alert@�?��������@�@��������@�@������������ ������������@��stopped���&������������ @Setup_FastForward��������������@w �������������@�n���\������ @Alert_ParamText#@RunNumberArrayt�#@RunNumberArrayt�w�lextend0�w�l��w�l�����&������������ @Run_Critical_End���R���@�����d @ Alert_Alert@�?��������@�@��������@�@���������Li�������������@���������������@�������������������������������������������DFCC4Ds��Z���H��&\��%\��gSCExchanges two sections in the list, all parts are exchanged so thatME�P���>��������6��S8nothing is lost. Also exchanges database fields for text�d���� ����~����S input���.��������scalS first section numberPr�.��������TAT S second section number S�4���"����Ɋ�TAT S pointer to first text field �6���$����.����S pointer to second text fieldse�(�������8����� @��@first����*�������J�@ @��@secondD�ay�,��������TAT @- @��@text1Ptr$�? �,��������TAT @- @��@text2Ptr$����<���*�����������@@ItemList$�@i�@iie�@iii�Po�6���$����H����@�@ItemName$�@�@���������8���&���������@�@ ItemCaption�@�@�����������6���$���������@@ItemPict$�@�@�����������:���(����Ŭ�����@�@ ItemPictLabel�@�@�����������"�������V�����@@Text���� ������������@first~ @���"�����������aaaa@second�~ @���$�������>�����@text1Ptr$~ @���$��������������@text2Ptr$~ @�������������aaaa��8���&������������S load things into the temp values���8���&����h�aaaa@ItemList$~ @ItemListI�@first||�<���*������������@@i�@�?��������@�@��������Nu�R���@����X�aaaa@ii~@first�~`@�?���������@�@��������~�@i��>���,������������@ItemName$�@i~ @ItemNameI�@iiegu�B���0���������@ ItemCaption�@i~ @ ItemCaption�@iie���@���.�����������@ItemPict$�@i~ @ItemPictI�@iie� i�H���6�����aaaa@ ItemPictLabel�@i~ @ ItemPictLabel�@iie�����������������@���*������������� @TextP~@text1Ptr$����������������$�m@�0��������0001Sexchange first and second09�F���4��������EMak @ItemListI�@first~ @ItemListI�@seconds4D�<���*����,�0001@@i�@�?��������@�@��������12�R���@��������EMak@ii~@first�~`@�?���������@�@��������~�@i�T���B��������0001@iii~@second��~`@�?���������@�@��������~�@i18�@���.����������� @ItemNameI�@iie~ @ItemNameI�@iii���D���2��������TAT @ ItemCaption�@iie~ @ ItemCaption�@iiid �D���2��������496 @ItemPictI�@iie�~ @ItemPictI�@iii�.3�L���:��������qRT @ ItemPictLabel�@iie�~ @ ItemPictLabel�@iii�Rl�������������� @��0�������������:@text1Ptr$�~@text2Ptr$��2���������������}��2��� ���������� Srestore values into second�o�:���(����������: @ItemListI�@seconds~@ItemList$��<���*����������}@@i�@�?��������@�@��������� �T���B���������t�e@ii~@second��~`@�?���������@�@��������~�@i�s�>���,�������� @ItemNameI�@iie~@ItemName$�@i�B���0�������� @ ItemCaption�@iie~@ ItemCaption�@iq�@���.������� @ItemPictI�@iie�~@ItemPict$�@i�o�H���6�������: @ ItemPictLabel�@iie�~@ ItemPictLabel�@i�$�����������}@��*���������t�e@text2Ptr$�~@Text2�e�����������������$�����������>� S update labels���.��������������� @InfoText_UpdateFigLabels����������������������$���������������S update window���B���0������������ @InfoText_ShowHide@first�@�?�����������D���2�����������A @InfoText_ShowHide@secondx�@�?��������[@����������������������������������������DFCC4Dp �4���"�����������"0 RESTART_PROCESS (Longint) "�8���&������"0 RESTART_PROCESS (Process ID) `"������ ������"0 8"���T���B��������"0; This routine resumes, shows and brings forward a process. "���T���B��������"0; This routine assumes the process already exists. You can "X�Z���H��������"0@ determine if the process exists with a call to Process_exists. "������ ��������"0 8"\�.����������� � ProcessID���������������&����������� ProcessID ����������������(�����������@ ProcessID$�(�����������E ProcessID���(���������F ProcessID�� �������w�������������*�����������"0 End of routine."����������������������DFCC4DV0R]� �����������^N>,ise������������������������������en�*�������A ��M�@$�� �0�������������������#EJournal_Count"��>���,�����������i�?��������@����������4���"������������i�@#EJournal_Count"�@���.�������� InfoText_ShowHidei�@�������������������������os�@���.����������M InfoText_ShowHidei�?�������Ar��������������MBT��������������Mig������������M��ur��������������������������������������DFCC4D^-�Xk�J���8������������F1Based on a table and a field name find the field �;�V���D��������F<and return a field pointer. This is because the XML records \�V���D���������F<will return field names but not numbers so I need to search \���X���F�����}F>the database structure for them. If the field cannot be found ,�V���D�������� $F=then a nil pointer is returned. Updated so that the database ��\���J��������5FCis searched for "Field_Name" and "Field Name" since both are valid ���^���L��������FDfield names and XML converts both to "Field_Name". Don't differ two ���R���@��������ffF8fields by only _ or this search will do strange things. �Bs� ���������������F input po�*���������������F table pointer ���&���������������F field name Re�"���������������F output l�2��� ������������F field pointer or Nil ��.�����������Yj- �tablePtr@���(�����������tableNum@���P���>��������,Ge%�@������� � fieldName altfieldName��L�.������������g�e- ��fieldPtr@���*������������m�ocounti�&������������<�ktablePtr@ ��&������������S�. fieldName ��������������k�e&�,������������e�<Fget the table size ��2��� ������������count�tablePtr@�6���$������������tableNum@�tablePtr@�����������������6���$������������Fname with space instead of _ ���J���8������������ altfieldName�� fieldNameY�p_Y�p ������������������&�(���������������Ffind the field �8���&������������i�?�������countos�D���2������������ fieldName�@tableNum@i&�<���*������������fieldPtr@�tableNum@iP�4���"������������icount��@�?�������m�����������������H���6������������ altfieldName��@tableNum@i+�<���*������������fieldPtr@�tableNum@i�4���"������������icount��@�?�������s@�����������������<������������������������������������������������&�*��������������Fset return value s �&��������������� ��fieldPtr@en��DFCC4DA+���`���N��'��&��b$HGeneric code to do open and reopen for processes, DOES NOT CLOSE WINDOWSfn�X���F�����scalb$@replaces almost all the code in xxx_Open with a generic version.� @�J���8�����b$3If the process window is closed then it is opened. ���f���T������� b$OIf the process window is not in front and open then it is brought to the front.� ���� ���������b$ inputro�(������������b$ process id ptrz@�&�������Ɯ�����b$ process name$���8���&����"�����b$ process startup procedure name������ ����\�����b$ outputdP���� ���������b$ nonedP�0������������- @��@ processIDPtrr����&������������@ @ processID����>���,���������@% @�@�������� @��@ processName��#�>���,����*�scal@% @�@�������� @��@ processProc�up�(����������@ processIDPtrr @��n�&��������@ processID @�7���&�������^���@ processName @�w �&�������������@ processProc @� a�����������������������Ǩ�����@���6���$����4�����@ @ processID�@���������������>���,��������@ @J @ processID��@�@�����������4���"������� @Restart_Process @ processID���������������@���B���0�������b$+close front window or bring window to frontpt�4���"��������(@ @ @��8@ processID�pe�B���0����b�|b$*Generic_Close ($processID) do nothing hereR��������������@b$�&�������~�����@F @ processID�������������@b$��������\���@��������D�^@b$�Z���H����H�����@ processIDPtrr7@= @ processProc�#@ StackSize�@ processName����������������@b$up_State  Group_Visiblej�P���>����<������DFCC4DF�C�I 7�8���&$ ������� Converts a journal entry to htmlC���x���f$`�������Qcan pick a path now in addition to using the default location, if nothing is pass� ed then use���,���*loh:User�the default location6:O���� $g&����� inputp�8���&$ o!̕P�! optional parameter (pick path) ��V���DX� ���% @�@�������@output_pathname@apppath@ imagepath6!�:���(Z�X@% @�@�������@ newFolderName6@��6���$,n!��@ @ folderStatuso@i@j6�|�$���g�!��� C_TEXT(html)���&���ِ����z�H@\ @htmlBlobh6��$���$ ����p@�W@ @listRef6tP�.���4����$*@ @crPos@maxPos6��0���loh:����@% @�@�������@cr64 �@���.�Y�o@ @fieldNum$@tableNum$@pictNum6�p�$�����6�R�o@2 @docref6� �(��� �����@ @ imageCounti6@�.������z�H@1 @doneH@create6��l���Z, ��������@% @�@������� @ HTML_BrowserM6wX,browser that owns the html files under MacOS@���0��� @ imageCounti6@���������������� ���z�H��D���2$0����p@�W�-set the browser (this should be a preference)��2��� ��� �D�Browsers and signatures areew�&���Jloh:User� Safari: sfring�0���R� Internet Explorer: MSIEes�(���$(loh:User� Netscape: MOSS�s �&������ ������� Firefox: MOZBhe�2��� ?������� default web browser: ?????v�.���$�������� @ HTML_BrowserM6w�????�������8 �������"������ ��������� setup blob���6���$$f ~���@^ @htmlBlobh@�����������6�����$����4���" ��� � ���create the folder if possible���.���$ ��������@ @�6@�����������6���X���F��� ��� � ��@output_pathname6@ w�%Choose a place to save your eJournal:6����$tTT STAT@ �H���6��� 0:@output_pathname6 @ PM_FindFolder w� eJournals6si����$@ TT STAT@ �������� 0:33�D���2$ TT STAT@ @� @output_pathname6�6@�?�������6ch�$������ 0:@����6@����22�D���2�TT STAT@ newFolderName6@� @����w�:w���6ch�L���:��� 0:@ newFolderName6@� @ newFolderNamew� w�_6er�V���D��� TT STAT@ newFolderName6@� @ newFolderName@�Z $@��&6w�_6 �<���*��� 0:@ newFolderName6@ @ newFolderName6Sp�����N�����������B���0��� ���������+check that there is enough of a name to use���B���0Ԥ ���?�� @ @� @ newFolderName6��@�@�������6���P���>��� �������� @Alert_ParamText @ newFolderNamew���w���w���6���B���0$.���� @ Alert_Alert @�@��������@�@�������6��������� @�����nLino��mn�~���l���  '�Qcleanup the old folder or make a new one, if this is for a preview create a cheap� `o uninque name�.��� TT STAT@ @��@�?�������6? �0������ 0:�make a cheapo unique name �D���2$TT STAT@ newFolderName6@ newFolderName�6�@�  @6ch�b���P��� 0:@output_pathname6 @ PM_MakePath @output_pathname@ newFolderName@�6 ������� TT STAT@ �2��� ��� 0:�save to user requested path �b���P��� ����@output_pathname6 @ PM_MakePath @output_pathname@ newFolderName@�6?������� ��f7@>�����$P� ������ @doneH6@��"������ @create6@��>���,��� @ @ @output_pathname6�L$@��6�>���,��� @PM_RecursiveDelete6 @output_pathname6������� @�8���&��� � PM_MakeFolder ($output_pathname)��T���B��� �<PM_MakeFolder (PM_MakePath ($output_pathname;"Images";True))z�,������ ������7@ @output_pathname6��R���@��� �� ��� �@ @ PM_MakePath @output_pathnamew�Imagesp@�66h��&������ n�d�l�e��create the htmll��(������ l�e�s�c�@ @doneH�L@�6uR�������� �����������&������ ���������create folders���*������ ��������@ @create�L@�6���<���*��� ��������@ @output_pathname6wX html folder���d���R@ @ PM_MakePath @output_pathnamew�Imagesp@�66wX image folder6��������� @�������� �0������ �get the html definitions����0������ @listRef6@ w�html6�������� �(������ �create html file��*������ �title & top of page�Z���H��� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@��������66�T���B��� ���� @InfoText_HTMLAdd< @� @����@�Z $@��&6w� 66�t�Z���H��� �s�e�r� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@��������66�f�X���F��� ���:�= @InfoText_HTMLAdd< @� @����@�Z $@��&6w�<br>66�J�Z���H��� �w�F�o�l @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66��Z���H��� �p�u�t�_ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�A�X���F��� � ��� @InfoText_HTMLAdd< @� @����@�Z $@��&6w�<br>66��Z���H��� �T�e�x�t @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66� �Z���H��� �� ��$ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66��X���F��� �R�e�f� @InfoText_HTMLAdd< @� @����@�Z $@��&6w�<br>66�d�Z���H^ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�������� � ������ ������abstract� �X���F���   @InfoText_HTMLAdd< @InfoText_HTMLText �@� ���@listRef66�������� �����������&������ ���������get field ptrs���2��� ��� ��������@tableNum$6@� �@�����6���2��� ��� ��������@fieldNum$6@� �@����6���@���.��� ���������)loop over all the fields in the table ���6���$��� ������@ @i@�?�������@����6�������� ������@�H���6��� Y .��@ @ItemListI@i�L@�����������6wXtext6������x���  qOJ @InfoText_HTMLAdd< @InfoText_HTMLText @� @tableNum$@fieldNum$�6P@�?��������6�@i6@listRef66�J���8��� @ @ItemListI@i�L@�?�������6wX1 image�(������ �������fill in pictures����j���X��� K��K�� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX start tableQ�`���N��� @pictNum6 @�@���������� @i�6P@�?�������66�6�@�?��������B���0��� �P���W@ imageCounti6@ imageCounti�6�@�?�������cu�j���X^ �� �� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX start cellT�a���� ��� �s�e�r��picture�������� ���:�= @InfoText_HTMLAdd< @InfoText_HTMLPict � @ItemNameI@pictNum@output_pathname@listRef@ imageCounti@pictNum @ItemListI@i66�d���� ��� �w�F�o�l�caption�e�Z���H��� �p�u�t�_ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�A�Z���H��� � ��� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66��Z���H��� �T�e�x�t @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66� �d���R��� �� ��$ @InfoText_HTMLAdd< w� <b>Figure T�6�@�  @ imageCounti6�6�w�:</b> P6�$����~��� �R�e�f�@ imagepath6 @ WordBreak � @ ItemCaption@pictNum@�@�������6wX-trucate string for a single image to 255 char��t���b��� �;�� � @InfoText_HTMLAdd< @�  @InfoText_HTMLText �@ imagepath@listRef6@�@�������66�t�Z���H��� ��(�� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�x�h���V��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX end table���(������ ��������@�� multiple images���(������ ���������fill in pictures����j���X��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX start table���B���0��� ��������@ @j@�?������� @ItemListI@i6@�V���D��� ��������@pictNum6 @�@���������� @i�6P@�?�������66�6�@j���B���0��� ��������@ imageCounti6@ imageCounti�6�@�?�������@�.������ ��������@ @j�6@�?�������6���n���\��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wXspacer in table��������� ��������@���j���X��� �����H @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX start cellT������  �picture������� � @InfoText_HTMLAdd< @InfoText_HTMLPict � @ItemNameI@pictNum@output_pathname@listRef@ imageCounti@pictNum @ItemListI@i66��h���V��� �� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wXend cell6������� ��@�,������ �fill in the captions6�Z���H��� �� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�J���8��� ��@ imageCounti6@ imageCounti�6P@j�6�@�?��������B���0��� ��@ @j@�?������� @ItemListI@i6�V���D��� @pictNum6 @�@���������� @i�6P@�?�������66�6�@j�B���0��� ��@ imageCounti6@ imageCounti�6�@�?����������.������ ��@ @j�6@�?�������6�n���\��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wXspacer in table��������� ��������@���j���X��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX start cellT���Z���H��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66���Z���H��� �������� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66���d���R��� �������� @InfoText_HTMLAdd< w� <b>Figure T�6�@�  @ imageCounti6�6�w�:</b> P6��P���>��� ���������8trucate string to a length based on the number of images���>���,��� ��������@ @ItemListI@i�L@�@��������6���^���L��� ��������@ imagepath6 @ WordBreak � @ ItemCaption@pictNum@�@�������6��������� ��������@���^���L��� ��@ imagepath6 @ WordBreak � @ ItemCaption@pictNum@�@�������6����$4�@�t���b��� ������ @InfoText_HTMLAdd< @�  @InfoText_HTMLText �@ imagepath@listRef6@�@�������66���Z���H��� ������ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66��������� @�h���V��� ������ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66wX end table��������� ������@��������� @�������� ���������� ��� �������logo6���Z���H��� @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66�D���2��� ������@apppath6 @ PM_FindFolder w� Applications66���T���B��� ������@ imagepath6 @ PM_MakePath w�Imagespw�Logo.jpg6@�6������t��� ������@ @ PM_MakePath @apppathw�Logo.jpg6@�6 @ PM_MakePath @output_pathname@ imagepath@�66���������� �� ������ �end page��Z���H��� ������ @InfoText_HTMLAdd< @GetListItemStrd @listRef@�@�������66��������� ��"������ � write file�`���N��� ������@output_pathname6 @ PM_MakePath @output_pathnamew� index.htm@�6���8���&��� @docref6@  @output_pathname6���4���"��� @ @docref��@�?�������6�8���&��� ������@docref6@ @output_pathname6��������� @���H���6��� @  @docref6wX We don't need to keep it open���:���(n@ @output_pathname @htmlBlobh6�2��� ��� @ #@ PM_Platform�L$@��6�X���F��� @ @output_pathname @ HTML_BrowserM6wXsafari sfri, IE MSIE6�R���@��� @ @output_pathnamew�TEXT6wXsafari sfri, IE MSIE6������� @�������� �.������ �open webpage if preview�.������ @ @�L@�����������6�$������ � open webpage�8���&��� @ PM_WebLaunch_ @output_pathname6������� @�������� ���� ��� �cleanup�*������ @y @listRef���6������� @������� @������� @�������� �$������ � cleanup blob陙�6���$��� @^ @htmlBlobh@�����������6InfoText_HTMLAdd< @GetListItemStrd @listRef�@�@������������������r������"�������r����`D write file<��`���N����r����@output_pathname @ PM_MakePath @output_pathname�w� index.htm�@�����8���&����r����@docref_@  @output_pathname�dd�4���"����r����@ @docref_��@�?���������8���&����r����@docref�@ @output_pathname�����������r����@���H���6����r����@  @docref_�wX We don't need to keep it open���:���(����r�@ @output_pathname� @htmlBlobh���2��� ����r�@ #@ PM_Platform�$@�����X���F����r�@ @output_pathname� @ HTML_BrowserM�wXsafari sfri, IE MSIE�R���@����r�@ @output_pathname�w�TEXT�wXsafari sfri, IE MSIEl��������r�@���������r��.�������r�`Dopen webpage if preview��.�������r�@ @�@�������������$�������r�`D open webpage�8���&����r����� @ PM_WebLaunch_ @output_pathname�����������r����@�����������r��������� ����r����`Dcleanup��*�������r����@y @listRef��X�D��������r����@����������r����@����������r����@�����������r������$�������r����`D cleanup blob�6���$��������@^ @htmlBlobh�@����������������������������������������������������������������������DFCC4DJ�,��V���D���� ����8=count true booleans in an array, simple, uses 0 based arrays � �*�������������8-> ptr to array �s�,���������������8<- number of trues �������������������(�.��������������(- (�(arrayPtr����0�����������( (��(count(i��&�����������(arrayPtr� (�(���,�������f�(count(�����������(���������f�(�F���4��������d((i(�����������((arrayPtr��0�����������///((arrayPtr�(i��8���&��������(count(count��@(�?�������(��������������g((�������������((s������������(\�"�����������TH. (��(count(����������������������������������������������������������DFCC4D.r��Z���H��!�� ��,�7dCUpdate the current dates based on the folders in the output folder.ME�������������������<���*�����������]%��@���������output_pathname�� ��������������"����������������7d get folder����^���L��������{{]output_pathname � PM_MakePath �Run_PathR��� CURRENT.DATE�����{��������������������<���*��������0001�7d$check folders for current.date files12�>���,��������EMak]��output_pathname���$�������8���&������������]���� � Run_To_Date����������"�����������]�5�����������������]������������������������������������DFCC4D9�1�$����� �� ����8 run nov30 <�ay�$��������������((diag����8���&�����������(%(�@�������( diag_path���*������������ ��(2( docref_full�"��������������((pos_T�$���������������((iteme�����������������[� �����������<�8setup ��a�.���������������( diag_path ( InputPath(������������������((�*�������˞�7���8set nov30.I file ��V���D����˞������8=dunno what the land file is called, need to check this first ����N���<����˞�����((( diag_path��@� FOR026.DAT,�@$(�����R���@����˞�����(diag( diag_path��@� FOR015.DAT��@(�Z$(��& f�^���L����˞�����(diag&(diag&��@( diag_path��@� FOR025.DAT&��@(�Z$(��&���^���L����˞�����(diag&(diag&��@( diag_path��@� FOR026.DAT&��@(�Z$(��&����������˞�����((�N���<����˞�����(diag&( diag_path��@�fort.15��@(�Z$(��&���Z���H������������(diag&(diag&��@( diag_path��@�fort.25��@(�Z$(��&ew�Z���H������������(diag&(diag&��@( diag_path��@�fort.26��@(�Z$(��&ur����������������((s�^���L������������(diag&(diag&��@ ( OutputPath���@� tg_arrays��@(�Z$(��&���^���L�����������(diag&(diag&��@ ( OutputPath���@� nov30.prt��@(�Z$(��&�����������������\�:���(�������������8!write out the .I file and launch �if�N���<������������ (OHT_SaveAndLaunch(diagS�nov30.I�nov30����������������������������������������������������DFCC4Dd�.���P���>��^�� ^����87Save the set into a text variable and then into a file �rs�(��������������( (saveData�����������������\�8���&��������H(#(SetArray��@(�������������������������(�&������������8 combine data �Pt�T���B����������� (saveData�(������@(�Z$(��&�@(�@������������x����������� (saveData� (saveData���@���Summary:���@(�Z$(��&��@(������@(�Z$(��&�@(�@��������av�r���`����������� (saveData� (saveData���@���Detail:��@(�Z$(��&��@(������@(�Z$(��&(������������ff(�(����������������8save and clear �30�B���0������������ (RundeckViewer_WriteToFile (saveDatai�(���������������(�Y (saveData������������������((��������DFCC4DsH�o'�:���(����������": call search based on name typed "���@���.������������ IBC_Query�@������������4�L���:�����������#DragTransferFilename�?������� IBC_Query_�R���@������������# InfoPict_Ptr�#DragTransferFilename�?�������� �6���$���������d�d#InfoPict_Button�@����������2��� ���������d�dI#InfoPict_ProcessID����������������������������DFCC4D@�8 �$�����"R��!R��,�2 run vertflux���"������������]�diagx��h�6���$�����������]%��@��������� diag_path����(��������������]2� docref_full��� �����������]�pos���"��������������]�itemx�@!�6���$��������EMak]� � modelgrid���@�������������������������� ����� ���������a�r�2setup��,�������������] diag_path � InputPath�r�6���$����������� ]GetModelAndGrid � modelgrid�����������������*������������2set vertflux.I file1�^���L��������]diagx�� ��� �������� ������?������������Z$���&��H���6���������] � modelgrid��@����������|��@���������JJ�F���4��������111]diagx�diagx����8x10�����Z$���&�������������]�H���6��������]diagx�diagx����7.8x10����Z$���&�����������T����]���x���f����T�]diagx�diagx��� diag_path����ocean�� �PathCharP���� OceanFlux����Z$���&��L���:����T�]�� diag_path���� FOR026.DAT���|$�����\���J����T�]diagx�diagx��� diag_path���� FOR015.DAT����Z$���&����\���J����T�]diagx�diagx��� diag_path���� FOR026.DAT����Z$���&���������T�]�X���F����T��o�c]diagx�diagx��� diag_path����fort.15����Z$���&��g�X���F����T�]diagx�diagx��� diag_path����fort.26����Z$���&���������T�� �9]�9�V���D����T��L�a]diagx�diagx�� � OutputPathu����VFX����Z$���&��l�X���F����T�����]diagx�diagx�� � OutputPathu����AVFX�����Z$���&����X���F����T��o�n]diagx�diagx�� � OutputPathu����XCORR����Z$���&�� �^���L����T�� �B]diagx�diagx�� � OutputPathu���� SRCOR.value����Z$���&��e�`���N����T�� � ]diagx�diagx�� � OutputPathu���� vertflux.prt�����Z$���&�� ���������T��t�i]�8���&����T����2 write out the .I file and launch�.h�T���B����T��f�" ]OHT_SaveAndLaunch�diagx��� vertflux.I���vertflux���c����������������������������������������������DFCC4D+?��H���6��%��$��gS1Validate ensures that the fluxes can be processedDO���� ��������S input���b���P���������SJ isDeep, should the deep ocean checks be used instead of the qflux checks���*�������*�����p1 @��@isDeepD����� ����H�����@1 @������@���.���������@%@�@��������@path��@temppath$��>���,���������@@listRef�@ error_num�@curYear��#�J���8����^�����@�@�@�������� @ RundeckErrors�@�@�����������"������������@isDeep�~ @����(�������l�����@pathe~ @Run_PathR�������������������.�������l�����Ssave record if modified���(��������T@@:@��� �����"�����������X@�5@��� �����������2����@on���������²�)))%� ��������)))%S load list�6���$����0�lj@listRef~@w�l Flux Errors���T���B��������# @ RundeckTitlen~ @GetListItemStr~@listRef�@�?���������S�R���@������� @ RundeckDesc~ @GetListItemStr~@listRef�@�@����������t��������������E�r�r�(�����������Saccumulate errors���.���������������@ error_num~@��������������:���(���� ���g@@@path�����@������������NT�>���,��������????@ error_num~@ error_num�~�@�?�������99�|���j����������� @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@������������������������@���6���$�����������@@ error_num�@���������������L���:�����������@temppath$~ @ PM_MakePath@patha�w�locean�@����8���&�����������@@isDeepe�wO8deep ocean check~�<���*��������EMakS%sample file DEC1936.odaControl2_02pC9`�|���j������������@temppath$~ @ PM_MakePath@temppath$�w�lDEC�~�@� @�� ����~�w�l.oda.�~�@�����@�����8���&������������@@@temppath$����$@������>���,����������@ error_num~@ error_num�~�@�?����������|���j����z�lj @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@��������j������������ll@���$�����������ln@�� qflux check�T���B��������lj@temppath$~ @ PM_MakePath@temppath$�w�l OceanFlux�@���8���&��������ll@@@temppath$����$@������>���,��������ln@ error_num~@ error_num�~�@�?�������l�|���j��������lj @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@��������j������������ll@��������������ln@�����������n�$��,�����������pSdon't require kbasin~���D���2��������(S,If (Test path name($path+":ocean:kBasin")#1)���0�����������S$error_num:=$error_num+1��`���N��������SIRundeckErrors{$error_num}:=String($error_num)+GetListItemStr ($listRef;5)���� ��������SEnd if �����������������J���8��������`@temppath$~ @ PM_MakePath@patha�w�lrsf�@���r���`������l��@@@temppath$�~�w�lNOV�~�@� @�� ����~�w�l.rsf.�~�@��������$@�����>���,��������ll@ error_num~@ error_num�~�@�?�������l�|���j��������ln @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@��������n������������lq@���:���(����X�lj@@ @Start��@�������������>���,��������ll@ error_num~@ error_num�~�@�?�������l�|���j��������ln @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@��������n������������lq@���(��������$ @Run_Critical_Begin~�X���F��������p@@�#@ RunDateArrayu�#@RunNumberArrayz��~@�@���������L���:��������(@curYear~@�#@ RunDateArrayu�#@RunNumberArray~�������������@���^���L��������@curYear~@�#@ RunDateArrayu�#@RunNumberArray~��~`@�?�������������������@���&����������� @Run_Critical_End�.�����������`@@curYear�wl@�� ����>���,���������� @ error_num~@ error_num�~�@�?��������h�|���j��������� � @ RundeckErrors�@ error_num~@� @ error_num��~� @GetListItemStr~@listRef�@�@����������������������E�r@�o��������������I@� ��������������� ����� ��������� � Scleanup�a�6���$���������E�r@@ error_num�@�������������n���� ����������I @��~@��(�������������� @�$�*������������� Scleanup array listL� �j���X��������� � @� @ RundeckErrors�@ error_num�~�@�?��������@�@��������~`@ error_num���&������������E�rSerror dialog ��>���,����������I@�7@������w�lRundeck Errors����e�������������� @�@��~`@�@���������@�@���������@��~`@�@���������@�@����������~`@�?���������~`@�?��������$@�'��w�l�~���8���&�����������@�(@������w�lRundeck Errors���������������@����� �������� @��~@���������������@�$�����������@y@listRef��*�����������@�Y @ RundeckErrors��*������������� @�Y @ RundeckTitlen�� �(������������ � @�Y @ RundeckDesc��u��������������������������������������������������������������DFCC4D ]Lw�@���.����������"0'convert a text field to the final text "�<�<���*�����������"0#pass in the field to use & listRef "���(���������������-Z �ZsrcZZ�,������������d�dZ �ZlistRefZZ���*�������V`�d�dZ ��ZlocalZZna�$������������d�dZcrPosZZ�2��� ������������%Z�@�������ZcrZZ� ������������d�dsrcZ Z�Z �$������������d�dlistRefZ Z�Z��������LD�d�dZ�<���*�����������QZ�ZsrcZZ�Z@Z�����������ZZ���&�������^P����localZZsrcZZ�,�������c����cr"ZZ�ZZ$Z��&ZZ��6���$����s4`����crPosZZ�ZZcr�ZZlocalZZ���4���"������������ZcrPos�Z@Z�����������ZZ �>���,����Su K�"0%$local{$crPos}:=String(Char(Space )) "���@���.���������GlocalZZ�ZZlocalZx� ZZcrPosZZ o�F���4���������GlocalZZ�ZZlocalZx�</p><p>ZZcrPosZZ���6���$����y1 �GcrPosZZ�ZZcr�ZZlocalZZSt���������������������������������J���8���������G ��Z ZGetListItemStrNZZlistRefZZ�@�������ZZ��^���L����r@���� ��Z Z���Z�@Zlocal�Z�@ ZGetListItemStrNZZlistRefZZ�@�������ZZ����������y����� ��������������� ��Zx��Zxf�������������G_I��������te��������������������������������������������������DFCC4D3���:���(��&\��%\��gS#open simulation window to edit runsNT�f���T��������S SOthis first call to this does some housekeeping instead of launching the process A������������V��S������ ��������TAT S inputMM�F���4��������S S. optional (if passed do not close the window)iT�2��� ������������#@Simulation_ProcessID(����X���F�����������#@Simulation_ProcessID8~ @Process_Number~w�lSimulation Window��������������������������������������@���B���0��������@#@Simulation_ProcCount(�@������������ix�r���`������������#@Simulation_ProcessID8~@=w�lSimulation_Process�#@ StackSize�w�lSimulation Window����B���0������������@#@Simulation_ProcCount(�@�?��������� �@���.������������ @Restart_Process#@Simulation_ProcessID(���6���$����������@I#@PostProcessing_ProcessID� �2��� ������������@I#@Simulation_ProcessID(����B���0������������@#@Simulation_ProcCount(�~@�?���������J���8��������d@@J#@Simulation_ProcessID(��~@�@���������@���.������������ @Restart_Process#@Simulation_ProcessID(�������������������@��B���0������������S+close front window or bring window to front� �@���.������������@@@��#@Simulation_ProcessID=�� �.������������L@@�@���������������>���,������������ @ Generic_Close#@Simulation_ProcessID(������������������@������������������@���2��� ������������@F#@Simulation_ProcessID(�������������������@��������������� @������������������@����������������������������������������DFCC4D K�>,�`���N������������8FAdd records to the database for files that are not already contained. ����L���:������������82Remove records in database where there is no file �L�d���R���������8KSince the output folders assume type the files get an automatic type based ��*������������8on what they are �� ����������������8 input �rc�0���������������8 folder type (longint) ���.�����������ff�8 ptr to run number ����.����������������8 ptr to file names ����J���8������������80 ptr to folder path # folder name in this case ��0��������������� ��� folderTypef��^���L���������- �� �� ��� runNumberPtru�filesPtr$� folderPathPtr���F���4��������������cmCount� fileCount�fPosC�pos�J���8����������������@�������� cmFilenames�������������(���������������� folderTypef ������*���������������� runNumberPtru ���na�&����������������filesPtr$ ���Z�*���������������� folderPathPtr ���Z�����������������&�$����������������8 do queries �L{�@���.����������������� ����� ���@� folderTypef&�D���2�������������U���� ����� ���@� runNumberPtruK�0����������������cmCount��L���� �� e�8���&������������� fileCount��filesPtr$sI����������������&�.����������������8scan for duplicates ����6���$��������������cmCount�@�������������&����������������&�(����������������8build and sort ����R���@���������������� ��� cmFilenames���� ���cmRecordNumbersnd�>���,��������������� cmFilenames�cmRecordNumbers���*������������������ cmFilenamesZ�*������������������filesPtr$���,����������������fPos��?���������������������������&�^���L�������������8Escan both arrays, move the mark down as files are matched to records ����:���(��������������i��?��������cmCount� �T���B�������������pos���filesPtr$� cmFilenames�i�fPosl���2��� ��������������pos�@���������������4���"�������������filesPtr$�pos\�:\���6���$�������������fPos�pos��@��?�����������2��� ������������� cmFilenames�i\�:\(�2��� ��������������fPos�@� fileCount���6���$�������������i�cmCount��@��?��������������������������ut������������������1������������������ba�����������������������������������(�&����������������8 add records ��ma�<���*��������������i��?�������� fileCount���:���(��������������filesPtr$�i�@\�:���$�����������������D���� ��sc�,������������������ ��� folderTypef����0������������������ ��� runNumberPtru��4���"��������������� ���filesPtr$�i���>���,��������������� ��#� CM_FoldersC� folderTypef���$�����������������5���� ��ro������������������8������������������E�����������������(�2��� �������������8delete unmatched records ���:���(��������������i��?��������cmCount(�:���(�������������� cmFilenames�i�@\�:�@���.������������������ ���cmRecordNumbers�i���$����������������:���� �� k�������������������������������������� s������DFCC4D�M�$�����'��&��b$ open cleanup��n���\���������� Generic_OpenReopen �#@Cleanup_ProcessID�w�Cleanup Window�w�Cleanup_Process���������������������������DFCC4D}'�,z��b���P�� ]�� ]���8HThis is a replacement for CopyFiles that handles multiple input folders ��am�d���R������������8Jmuch better. Basicly it searches a list of folders and the first one that @���2��� �������8contains a file is used. �� �����������n:Ed�8 input ��.����������������8 ptr to folder list ����0������������8 ptr to input folder ���0������������8 ptr to output folder ���&��������RR�8 input name ��.��������wfN�8 output unit number ����B���0���������8( output name (used if unit number = 0) ��"�������������8 output l�or�8���&������d�8 boolean (suceeded or failed) �ns�V���D�����(- (� (� (�( folderPtr( intputPtr( outputPtr&�J���8��������RR(%(�@������� (�(filename�(outname�0�����������lll}( (�( unitNumber� f�0���������������( (��@(�����������en�<���*������������(%(�@������� (�(outname�����������������(( s�B���0��������[R(%(�@�������(inpath�(outpathca�,���������������((len(foundy�� ���������������(1 (��tr�&��������������( folderPtr (�(Z�&��������������(inputPtr� (�(��&���������������( outputPtr (�(��&������������ ��(filename� (�(�(���������������( unitNumber� (�(��:���(��������3333(( unitNumber��@(�����������er�$��������������(outname (�(rT����������������((������������������((�^���L�������������8Dcheck that there is a file to copy, length 6 is 1 + 5 = .grnd + " " ����@���.�����������((�(filename��@(�@�������il�������������������6���$��������2����8find folder with source file � t�2��� ������������(len(( folderPtr f�(���������������(i(�?�������(���"�����������(done�(�(����������������((E�^���L�����������(inpath� ( PM_MakePath(inputPtra( folderPtr(i(����V���D�����������(found( ( PM_MakePath(inpathe(filenamea(�Q�0���������������(i(i��@(�?�������(le�H���6������������ ((i�@(len� @(found�@$(��������������������8�:���(�������������8 copy file if source file exists l��.���������������((found�@$(�����R���@������������(( unitNumber��@(�����������⌌copy fortran style ������v������������ (PM_CopyFortran�(�?�������(filename�(inpathm(�����������( outputPtr( unitNumbert(����(���������������(\_t normal copy Z\������t������������( ( PM_MakePath(inpathe(filenamea(� ( PM_MakePath( outputPtr(outname(��@������������������((ss����������������((8����������������((� ����������������8return �du�.���������������((found�@$(�������� ������������ (��(�(������������������((ba���� ������������ (��(�(������������������((������������������((������ ������������ (��(�(������������������(('t������������DFCC4D��4���"����������� � FinderToPathn \�Images  ���������������� (����������������������������������DFCC4Dk6h �8���&��'��&�� FinderToPathn w� Applications�ZR����������������������������������������������������DFCC4D�:�`+�(�����!�� ��,�7dUAM_AuthenticateTX����n���������7dQThis checks if the user has admin privlidges for an action. If they do not they a�7dre given the option���\���J����8��� �7dEto enter the admin password for onetime permission to take an action.�s��������6��7d�z���� ��������MUTX�7d input0������ ������������7d none0���� �������������7d output���J���8���������7d2 boolean (did they get the authentication needed)������ �����������]1 ���������� ��������EMak ]����ze��������������������,�����������]#� UAM_Admin��������� ������������ ]����������������111]��������������]������@������������@��������������@������������@���������������@������������@���������������@������������@���������$��"���>���,��������]� �UAM_GetListItem��@����������F���4��������RRR#] UAM_Message �UAM_GetListItem��@����������2��� �����������#]UAM_privateOneTimeAuth����.�����������]�(���������Login����������������]���2��� ��������#]UAM_privateOneTimeAuth����0�����������] �OK����?������������ ������������ ]������������������]����������������]����������������������������DFCC4DG��6���$��!6�� 6��,�7dScript to Write_Input_Forcings���f���T�����������7dNThis script creates the forcings namelist for a modified Model II rundeck. Thel�{�f���T������������7dNindidivual trends record the base value, the data file (if any) and the lengthl���f���T���������7dNof the data file. This is done for every trend, but the data file is generatedl�d���R�����ds:H�7dLelsewhere. So if the person changes the trends after the start of a run the @ B�d���R����������7dMresults will be inconsistent. This requires the new namelist used in modified���*���������g� �7dcopies of Model II.�i�����������:�7d�z��b���P������m�a�7dKAfter many tries the new forcings code in the model finally works right. I s@�d���R����������7dLreplaced Jim's A Trend with DataFileTrend which uses data files or constants@en�h���V����������7dPin memory to replace the old hardcoded trend files. Solar uses a different trend���f���T������� �7dNcalled SolarForcing because S0X is not in the fulgas array. S0X and CO2 can bel��d���R����������7dLset without using any trends. So the trends are only triggered for trends or@ l�f���T����������7dNchanges to SO4, N2O, CFC11 or CFC12. Changes are registered versus PPMV58 not ltR�d���R����������7dMversus the 1958 values returned from the interface, which are newer than the hu�.�������������7d1983 version of PPMV58.g,��������������7d�zix�X���F��������7dAFixed bug with solar trend where it wasn't written out correctly.�o�6���$������� �7d*******************************th����������������6���$����������7dload list for reference values�� �"������������]1�trend���$������������]�listRef����6���$���������]%��@���������valueStr$�21� ������������]trendY���2��� �������]listRefY���PPMV58��s����������������P���>��������7d9check if there is a trend based on the following criteriaor�0�����������7d1, trend value is checked58�f���T����������7dN2, value deviates from 1958 value and the gas is adjusted by DTDX1D, DTDX3D inl���8���&���������7d Forget in RFRC code in the model����\���J�������]��U���� p������ p������ p��'���� p��1���� p��C�����m� ����������]trendY���(�������������]v�P���>���������]valueStr$Y �GetListItemStr@�listRef���@���������������������������<���*����������7d%temp disable check for altered values���8���&���������]������,��� �valueStr$����� ������������]trendY�����������������]v�P���>���������]valueStr$Y �GetListItemStr@�listRef���@������������8���&���������]��&����,��� �valueStr$����� ������������]trendY�����������������]v�P���>���������]valueStr$Y �GetListItemStr@�listRef���@�����������8���&���������]��0����,��� �valueStr$����� ������������]trendY�����������������]v�P���>���������]valueStr$Y �GetListItemStr@�listRef���@�����������8���&���������]��B����,��� �valueStr$����� ������������]trendY�����������������]y�$������������]y�listRef�������������������h���V����������7dPheader and trend setting, complicated logic to check if values match what I need����`���N�������]����Y������Y���Z$���&��Y��� &FORCINGS �Y���Z$���&�� � ����������]�trend�� �B���0����������7d*enable trend, I use trend 1 at the moment �Z�P���>���������]����Y������Y��� KTRENDEXT=1, �Y���Z$���&����������������]�������������������������������7dCO2�� ������������]��������J���8�������]����Y������Y��� ICO2DATA=200,ICO2DATASTART=�:����z�������]����Y������Y���  �Rundeck_ForcingsLength��������������������� �����������������������������]����Y������Y��� ,ICO2DATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@���������������� ������������������Y���,�o�����������]�[��������������*�������������7dNitrous Oxide(ZN2O)�Z�H���6���������]����Y������Y���Z$���&��Y��� ZN2O=���L���:�������]����Y������Y� �Rundeck_DecimalFormat�������=� ����������]������� �H���6�������]����Y������Y���IN2ODATA=201,IN2ODATASTART=�����z�������]����Y������Y���  �Rundeck_ForcingsLength��������������������������� ������$�����������������]����Y������Y��� ,IN2ODATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@����������������������!������%������Y���,�o�����������]�[��������������$�������������7d Methane(CH4)��Y�H���6���������]����Y������Y���Z$���&��Y��� CH4=���L���:���������]����Y������Y� �Rundeck_DecimalFormat��&������� ������������]��'������H���6�������]����Y������Y���ICH4DATA=202,ICH4DATASTART=�����z�������]����Y������Y���  �Rundeck_ForcingsLength���������������*������������������������+�����������]����Y������Y��� ,ICH4DATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@����������+������������������������Y���,�o�����������]�[�������������� �������������7dCFC(F11)���H���6���������]����Y������Y���Z$���&��Y��� F11=���L���:���������]����Y������Y� �Rundeck_DecimalFormat��0������� ������������]��1������H���6�������]����Y������Y���IF11DATA=203,IF11DATASTART=�����z�������]����Y������Y���  �Rundeck_ForcingsLength���������������4������8������<������@������5�����������]����Y������Y��� ,IF11DATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@����������5������9������=������A������Y���,�o������w�����]�[�������������� �������������7dCFC(F12)���H���6���������]����Y������Y���Z$���&��Y��� F12=���L���:���������]����Y������Y� �Rundeck_DecimalFormat��B������� ������������]��C������H���6�������]����Y������Y���IF12DATA=204,IF12DATASTART=�����z�������]����Y������Y���  �Rundeck_ForcingsLength���������������F������J������N������R������G�����������]����Y������Y��� ,IF12DATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@����������G������K������O������S������Y���,�o������w�����]�[��������������"�������������7d Solar(S0X)���� ������������]��U������^���L�������]����Y������Y���Z$���&��Y��� IS0XDATA=205,IS0XDATASTART=�l����z�������]����Y������Y���  �Rundeck_ForcingsLength���������������X������\������`������d������Y�����������]����Y������Y��� ,IS0XDATAEND=�Y���  �Rundeck_ForcingsLength�������������Y���@����������Y������]������a������e������Y���,�o������w�����]�[��������������p���^��������]����Y������Y���Z$���&��Y��� &END�Y���Z$���&��(l��@�����������������������������������������������������DFCC4Dd��^���L��%��$��gSFdelete current record, will not delete the last record in the database0N�\���J��������Q��SDalso will not delete admin user account because that one is required*��������������������:���(������������@�S@�������*@�?�����������&��������������Scheck for admin���.��������������@@�������w�lAdmin���:���(��������o{kZS#check if they want to delete a userkZ�H���6����������� @Alert_ParamText@�����w�l�*�w�l�*�w�l�*��j���X������������@ @ Alert_Alert@�?��������@�@��������@�?���������@�?������������� ��������Sdelete �"�����������@�:@������������������������&�����������Sclear password�"����������� @vPswd*w�l�*�*����������� @ vActualValuec*w�l�*�2��� �������� @ vlastPosition*@������������$�����������111 @vPswd2�*w�l�*���*����������� @ vActualValue2*w�l�*�4���"�������� @vlastPosition2z*@������������������������RRR1�"��������������S remake list�"�����������@�/@�������F���4�����������@@����� @ arrColVarsr�@�?���������R�<���*��������@ @userColsu�@�?���������*��6���$��������@ @userColsu�@�?���������6���$�������� @UAM_Editor_MatchSelection��w������������@����������������@���R���@������������ @ Alert_Alert@�@���������@�@��������@�?��������������������������@������������������@���R���@������������ @ Alert_Alert@�@���������@�@��������@�?��������������������������@������������������������������������DFCC4DA�U1�X���F��������5F>This code converts an XML list into an array based on what is ,&�$��������������F passed in \�� �����������LF input �(��������������F ptr to array g �.���������������F string, ref to XML ���.�����������- �arrayPtr@���V���D��������%�@������� � xml_Array_Refxml_Element_Ref��(����������� xml_Valuein�$���������������counts �&���������������arrayPtr@ �ns�*��������������� xml_Array_Ref ����,���������������count�?��������������������������<���*������������F"get the first element of the list p- �@���.������������xml_Element_Ref xml_Array_Ref_T�2��� ������������ OK�@�?��������<���*������������xml_Element_Ref xml_Value[�D���2������������F*append to array if necessary to add value �t@�<���*������������arrayPtr@�@count���4���"�������������arrayPtr@count�������������������0���������������Fadd value and move on �,�L���:������������ XML_TextTo4D�arrayPtr@ xml_Valuecount���8���&������������countcount��@�?��������B���0������������xml_Element_Refxml_Element_Ref r����������������������������������������������������������DFCC4D�W7�8���&��^�� ^����8delete a record from infotext ����"��������((pos������������X�J���8����6� (Alert_ParamText(��������������D���2����@�8 ( Alert_Alert(�@��������(�@���������2��� ����ƞ�����( (OKL�@(�?��������0�������^����D�8set get info & delete ���H���6�����������L(pos(�#(JournalIDArray�(�(�����?P�$�����������(�:(������*�������j�����8remove from list �t �2��� ��������((pos�@(������������6���$�����������X(�#(JournalIDArray�(posue�4���"���������s(�#( JournalArray�(posli������������((��������������EEE(�F���4��������#�8-check how many records, close if last record ��$�����������4(�/(������<���*��������:((�S(������@(�����������al�>���,������������(�\_t kill process if no records left \������������������((���4���"������������#( JournalArray�(�?�������(��6���$������������#(JournalIDArray�(�?�������(ml�J���8������������(�(�����#(JournalIDArray�(�?�������me�*��������������� (InfoText_LoadRecord(������������������((����������������((y������������������������������������������������������������DFCC4D;x�2��Z���H���� ����7d@delete subrecords just to be safe, not required but might help ��� ����������������7d input �ad�2��� ������������7d ptr to subrecord table ��,��������������(- (�(subPtr�f �,������������ ��((i(numSub����$�����������(subPtr� (�(������������((�(��������Z^(�m(subPtr��4���"���������(numSub�(�(subPtr��6���$��������c((numSub��@(��������������:���(��������((i(�?�������(numSub����(�����������(�m(subPtr����(�����������(�=(subPtr����(���������������(�`(subPtr�������������������((����������������((������������������(������������DFCC4D2(��.�����n��n��(�7dsends email to Mark ����<���*����2���� (WebAndMailLauncher�(�@���������DFCC4D�@< k�P���>��%��$��gS9this manager keeps the sections up to date in the toolbarXT�&�������������� @ windowRef����(�����������@ @ windowProci����*��������������@ @ oldWindowProc��������������000100������������EMak@ S�(���������������@@�$@������"��������������� @ Toolbar_Loado���2��� ���������� @ oldWindowProc%@������������ �(������������r�n@@�@����������(������������ � @@�$@�� ��D�l���Z����������@#@RunListReinitToolbar(�%@������������wO8%re init run array if runs are deleted��&�������������FSRunArray_Init ��@���.���������� @Run_UpdateListz) @RunNumberArrayHier%��t�:���(���������n�_#@RunListReinitToolbar8%@��������������������������@�n�$������������� @Toolbar_Updatez�i�(���������������@@�$@�����b���P������������SJupdate run list every two seconds, recheck running runs every five seconds���F���4������������ @ RunAlternaten% @ RunAlternaten�%�@�?����������R���@������������@@�b @ RunAlternaten�@�@���������@���������������*�����������#@Run_Run_Recheck%@�֡����������������@ R�R���@������������@@�b @ RunAlternaten�@�@����������@���������������@���.������������ @Run_UpdateListz) @RunNumberArrayHier%�������������������@ w�<���*������������S$show/hide sections linked to windows%he�$��������������� @ windowRef%@�@���.������������@� @ ToolbarStateo�@ToolbarStateCache����6���$������������@ @ windowRef�%@������������n_�6���$������������ @ windowProci%@ @ windowRef�@�t���b������������@ @ windowProci�#@Simulation_ProcessID=��x  @ windowProci�#@Rundeck_ProcessID�����F���4������������ @Toolbar_Disclosure%w�lESim7�@�?��������������������������@���F���4������������ @Toolbar_Disclosure%w�lESim7�@�@���������������������������@T�>���,������������@ @ windowProci�#@Control_ProcessID����D���2������������ @Toolbar_Disclosure%w�lSim�@�@���������������������������@���D���2������������ @Toolbar_Disclosure%w�lSim�@�?��������D����������������@T�v���d������������@ @ windowProci�#@PostProcessing_ProcessID��x  @ windowProci�#@Sets_ProcessID������F���4������������ @Toolbar_Disclosure%w�lSets7�@�?��������������������������@���F���4������������ @Toolbar_Disclosure%w�lSets7�@�@���������������������������@T�@���.������������@ @ windowProci�#@InfoPict_ProcessID%����D���2������������ @Toolbar_Disclosure%w�lIBC�@�?�����������F���4������������ @Toolbar_Disclosure%w�lIBPI7�@�?��������������������������@T�D���2������������ @Toolbar_Disclosure%w�lIBC�@�@������������F���4������������ @Toolbar_Disclosure%w�lIBPI7�@�@���������������������������@T�@���.������������@ @ windowProci�#@InfoText_ProcessID%����J���8������������ @Toolbar_Disclosure%w�lEJournal��@�?�����������F���4������������ @Toolbar_Disclosure%w�lJList�@�?��������������������������@T�J���8������������ @Toolbar_Disclosure%w�lEJournal��@�@������������F���4������������ @Toolbar_Disclosure%w�lJList�@�@���������������������������@T����������������@T�F���4������������ @Toolbar_Disclosure%w�lESim7�@�@������������F���4������������ @Toolbar_Disclosure%w�lSets7�@�@���������nt����������������@�P���>������������S8if the front process has changed redraw the front window����:���(������������@ @ oldWindowProc��� @ windowProci�������������������@���2��� ������������ @ oldWindowProc% @ windowProci������������������@T�(���������������@@�$@������*��������������� @Toolbar_ResizeRunListet�(���������������@@�$@���ec�@���.������������S(this is a hack, reset the selection once���0���������������@ @ToolbarResetSelection����.���������������@���w�l List_List����0��������������� @ToolbarResetSelection%@������������������@������������������@������������������������������������������������������DFCC4D)r+X������ b��b�������n������������7dQhandles the list box in the user manager window, both loads the list and handles �7dchanging records �����������������7d �� ����������������7d inputp��� ������������ ��7d nonep��� ����������������7d output�� ������������7d nonep�� ������������\\���*�����������\���$�����B�F���4����������7d,load in the whole table used to list things ���6���$��������111\� �userID������������������J���8��������\���@�������� � arrColNames������������������N���<������������\���@�������� �arrHeaderNames@������������������:���(�����������\ � arrColVarsr������������������<���*��������\ � arrHeaderVars������������������:���(��������\� � arrVisibler������������������8���&��������\ � arrStyles�����������������,�����������\ � userColsToSet������������������.���������������7dload in data to table�������z��������\@ �userColsu� � arrColNames� �arrHeaderNames@� � arrColVarsr� � arrHeaderVars� � arrVisibler� � arrStyles���{�$�����������\�/����������H���6��������\������ � arrColVarsrO��?�������M�����>���,��������\ �userColsu���?��������� �������������������j���X�������������7dPselection cannot occure here becuase this is too early and the load code for the�����f���T�������������7dLpassword fields has not happened yet, so setup a timer to perform the action@����4���"������������ \ userColsToSet��?���������X�*���������������\��@������������*���������������\���$��������0��������������� \UAM_Editor_MatchSelection\ ����������������\\������������������������������������������������DFCC4DBC�2�>���,��'��&��b$&calculate the amount of space avalible����������������b$������� �����������b$ input�.��������������b$ space in bytes (real)����� ������������b$ output���4���"�����������b$ string of space as MB or GB���������������n��(����������� @��@space�@�.�����������@% @�@�������� @���� �����������@space @�����������������6���$��������@space@space�@�@��������2��� �����������@ @space�@�@ �������������������� @��@�  @� @space�@�@ �����������w�.��@�  @� @�  @space�@�@ ���������@�@�����������w� GB���������������� @�$�<���*����������� @��@�  @� @space����w� MB��������������@JJ""v������������DFCC4D5�,z��^���L�� �� ���( (�}9this contains the type of rundeck that should be written ���b���P���������8Iif User_Modified_Rundeck is true then it will not over write the rundeck �"�@���.����p�����8'this finds the path to the runs folder �"�>���,������������(%(�@�������(output_pathname���.��������������((temp_name_list����&�����������H(2(docref�"����������������"�4���"������������(output_pathname (Run_Patha(�b���P������������(output_pathname ( PM_MakePath(output_pathname�fort.110�(������������������"�F���4������������(((output_pathname�@(�?����������.���������������(�(output_pathname������������������((s�:���(������������(docref�( (output_pathname���:���(������������((output_pathname�R*ch���4���"������������(#( PM_Platform�@$(�����b���P������������(�g(docref�(�(����(�Z$(��&(�Z(�@������������������������((���8���&������������(�g(docref�((����li����������������((wP�&���������������( (docref������������������������DFCC4D4:�D���2����N[��"0+create a link by saving the necessary info "_�"�������| |celmcc��������|CPL%c�B���0����������cc SearchList�c�c@c�����������cc���$�������kF����"0 size array "��B���0����������elmccc c LinksListc�c�@c�?�������c��0�������R�����c LinksListcelmcc��4���"��������|D�c LinksListTypecelmcc�6���$������������c LinksListFieldJcelmcc���4���"���������d�d�c LinksListWordcelmcc\�(�����������B@"0get field info "���>���,����kC5 LinksListFieldJcelmcc c FieldListc���>���,��������N LinksListTypecelmcc c SearchType�c���>���,��������k LinksListWordcelmcc c SearchWord�c���,�����������B"0create info field ^"h+��������P=������8���&������������cc cLinkMode@�c@c�?�������cc"�H���6������������ LinksListcelmcc c FieldListc c FieldListcc�8���&��������{ cc cLinkMode@�c@c�@��������ccs�:���(����zM���� LinksListcelmccx�eJournal�x?������������Ctm�����������������X���F��������l cc c LinksListTypeccelmcc�c@c�?�������zTX starts with �zB@�X���F��������D� LinksListcelmcc c LinksListccelmc�c�@x� starts with x���N���<������������cc c LinksListTypeccelmcc�c@c�@��������zTXis z���P���>������������ LinksListcelmcc c LinksListccelmc�c�@x� is cx�L�T���B�����������cc c LinksListTypeccelmcc�c@c�@��������zTX contains z���V���D������������ LinksListcelmcc c LinksListccelmc�c�@x� contains ;x���V���D����������cc c LinksListTypeccelmcc�c@c�@�������zTX ends with �z���V���D��������s` LinksListcelmcc c LinksListccelmc�c�@x� ends with xl������������hiob�`���N������������ LinksListcelmcc c LinksListccelmc�c�@ c LinksListWordccelmccis��������z8P��������������DFCC4D o�6R�J���8����������"01This clears the list of variables used for links "�(���������������Y? LinksList??���,����������������Y? LinksListType??h+�.����������������Y? LinksListField??���,�����������l wm�Y? LinksListWord??��H���6��������?�@�������? LinksList?�����������??�<���*���������? LinksListType?�����������??���>���,���� ~�? LinksListField?�����������??���L���:����Q�?�@�������? LinksListWord?�����������??�����������������������DFCC4Dm=�, �@���.�������������8&save a record and all that good stuff ��4� ���������������8 input ����b���P�������������8H when to update list, 1= after, 2= after leave pos, 0=never, -1=before ���*���������������� ���when���"����������������posst�"������������when ���st�����������������n��������8��� �Store_Variable_Blob����� �CurrentItemVers �ItemListI �ItemNameI � ItemCaption����������������� �Store_Variable_Blob����� �CurrentLinksVersl � LinksList � LinksListType �LinksListFieldr � LinksListWord���&��������������������������l��&�������������������������pe�4���"��������������when�@�������������H���6��������e�pos��#�JournalIDArray�����������2��� ��������������pos�@�������������.��������������#�JournalIDArray�pos����,�������������#� JournalArrayo�pos�@�B���0�����������#� JournalArrayo#� JournalArrayo���������@���.����������#� JournalArrayo#�JournalIDArray�.�,������������8SET WINDOW TITLE( ^���������������������tm����������������������������������������� �������������8save ����$�����������������5������oS����������������(�8���&�������������8check for place in list or add � u�4���"��������������when�@������������Wo�H���6�������������pos��#�JournalIDArray���������2��� ��������������pos�@�������������c�4���"��������������when�@��@�������� L�.���������������#�JournalIDArray�pos����,���������������#� JournalArrayo�pos����������������������8���&������������#� JournalArrayo�pos���������@���.��������������#� JournalArrayo#�JournalIDArray����������������������������������������������������������������������������������������������������DFCC4D��&�����$_��#_��LGetModelAndGrid��^���L��������V��Fget the model version, grid, and app as a tuple of values in an array. ���2��� �����������eg. array longint ($moof;3)���2��� ������������pass in a ptr to the array���Z���H�����������C$modelgrid->{1}:=model, $modelgrid->{2}:=grid, $modelgrid->{3}:=appI�4���"�����������where the list of model's is���0��������������� 1=model II 0.9 (MP030B)����0�������@���  2=model II 1.0.2 (Pjal2)�G�@���.����@��t� ) 3=model II 1.0.5 (Pjal2) solar trend fix� �>���,����@���' 4=model II 1.0.6 (Pjal2) radiation fix� �<���*����@�% 5=model II 1.0.7 (Pjal2) surface fix�2��� ����@�where the list of grids is�*�������@�111 1=7.826x10x9 (M9)c�&�������@� 2=8x10x9 (C9)h�"�������@� 3=8x10x12 is�0�������@�RRRwhere the list of apps is���,�������@���� 1=modelII 8x10x9 0.9.2�.�������@� 2=modelII 8x10x9 1.0.2�.�������@���� 3=modelII 8x10x9 1.0.5r ���� ����@� ... me�T���B����@�RRR=This code divorces other parts of the program from the direct���@���.����@����(implementation of the the grid and model����������@�^�,�������@����^- ���� modelgrid����$�������@�^�listLen��$�������@�����^ modelgrid �������������@�����^���� ����@�����setupid�X���F����@�����^ modelgrid ���?������� ��?�������Apdefault is MP030BI �V���D����@�����^ modelgrid ���@�������� ��@��������Apdefault is 8x10���d���R����@�����^ modelgrid ���@�������� ��?�������Apdefault is modelII 8x10x9 0.9�����������@�����^�"�������@����� match model��6���$����@�����^listLen �|#� ModelNamesRef�#��8���&����@�����^�i���?���������listLen����P���>����@�����^������ �GetListItemStrA#� ModelNamesRef��i�����8���&����@�����^ modelgrid ���?������� �i����������@�����^����������@�����^���������@�����^�"��������������� match grid��6���$������������^listLen �|#� ModelGridsRef�#��8���&������������^�i���?���������listLen����P���>������������^������ �GetListItemStrA#� ModelGridsRef��i�����8���&������������^ modelgrid ���@�������� �i������������������^I����������������^����������������^� �������������� match app���T���B����d�����^ modelgrid ���@�������� � modelgrid ���?�����������������������������������������������������������������������DFCC4DR�/�AB�D���2�� �� ����8*force all to the top because it's special �|�2��� ��������((AllElm�(AllRec�����������������(�H���6�����������(AllElm�(�#(SetArray�#(PostDefaultSet�n�6���$������������((AllElm��@(�?����������<���*������������(AllRec�#( SetNumArray(AllElmA��D���2�����������(�#(SetArray�(AllElma(�?��������F���4������������(�#( SetNumArray(AllElmA(�?��������H���6������������(�#(SetArray�(�?�������(�?��������J���8������������(�#( SetNumArray(�?�������(�?��������F���4������������#(SetArray�(�?�������#(PostDefaultSet�(ro�@���.������������#( SetNumArray(�?�������(AllRec�(of����������������((��������������������������DFCC4De�,z��T���B�� ]�� ]���8;PM_RecursiceDelete, delete a folder and all it's contents! �+�`���N������������8FWarning this is a recurive delete command! This code deletes a folder ��L���:������������83and everything inside the folder with no warnings! �I����������������8 ���� ����������������8 input �d �4���"�������������8 path to folder to delete ��@���.������������(%(�@������� (�( folderPath����F���4������������(�(�@�������(folders(������������D���2������������(�(�@�������(files(������������ ���������������((iel�(���������������( folderPath� (�(���@���.�������������8'make sure not to delete the whole disk �Se�2��� ������������(( folderPath��@������������������(�,����������������8contents of folder ����6���$������������(( folderPath�(folders���4���"������������(( folderPath�(files����������������(�8���&�������������8recursivly delete the folders � s�>���,������������(((folders�@(��������������B���0������������((i(�?�������((foldersx9�h���V������������ (PM_RecursiveDelete� ( PM_MakePath( folderPathh(folders(i(�������������������((wP����������������((����������������(��*����������������8delete the files �?�<���*������������(((files�@(�����������lt�@���.������������((i(�?�������((filesSe�T���B������������(� ( PM_MakePath( folderPathh(files(i(�[����������������((������������������((������������������(@�,����������������8delete this folder �Y�*���������������(( folderPath�?����������������8����������������((s����������������������������DFCC4DPu���`���N��'A��&A��gSHPM_Launch opens applications on the Mac and PC using AP ShellExecute butfn�f���T�����������SNthe PC version has pass the path to the application because otherwise they set���b���P������������SKtheir working directory to the database folder instead of the application's���"�����������S own folder.T�����������������S������� ������������S input���>���,�����������S' path to application without .app/.exe���������������������:���(����@�aaaa�%@�@�������� @��@appPath���:���(����@�����@%@�@��������@ appFolderPath���(�������@�����@@err�@len�Ld�"�������@�����@appPath. @������������@��������2��� ����@�����@#@ PM_Platform�$@������.�������@���SMac code just launches���N���<����@�����@err.@.�@appPath�.�w�l.app�@�����������������������������@���:���(��������H4S"PC code needs pass the folder path���B���0������������@ appFolderPath. @ PM_UpOneLevel@appPath����Z���H��������@���@len.@� @ PM_UpOneLevel @ PM_UpOneLevel@ appFolderPath�����<���*������������S$count back two levels for final path.���P���>������������@ appFolderPath.w�l..\�.�@� @ appFolderPath�@len������� ��������� Slaunch��B���0�����������@,w�l_4D_OPTION_HIDE_CONSOLE�w�lFalse����`���N�����������@err.@.�)@appPath�.�w�l.exe�@������������@ appFolderPath������������������@������������������������������������DFCC4D�n)�B���0��&\��%\��gS*You can only pause runs that you can startpt�R���@����n����S:Now checks that run is running before it tries to pause it�����������(��� ��(�������ł��� �Run_Critical_BeginE� �<���*�����������L�#@RunNumberArrayz�E@�������������B���0�����������S+If (Run_RunNumStatus{RunNumberArray}<=30)�F���4��������0001S.try to stop the run, even if it is not running00�H���6��������EMak@�@������#@ RunIDArrayR�#@RunNumberArrayz� V�&��������������� @Run_Critical_End���$�������ǐ����� @Setup_PauseGCMz������ ����ǐ�����SElse ���V���D����ǐ����S?Alert_ParamText (RunNumberArray{RunNumberArray};"stop";"";"")���(�������ǐ����SRun_Critical_End ��,�������ǐ�����SAlert_Alert (1;77;2)E������ ����ǐ�dSEnd if ���������ǐ�����@ ��������������������������������������������������DFCC4Df�,>�z���h��������MUTX�8QThis code checks for invalid records in the CM_Images and CM_Previews databases. �8 A record c��=�x���f������������8Qbecomes invalid if it is no longer on disk. An invalid record is deleted. Maybe t�8 he user � ��z���h������������8Qshould be warned about long descriptions? If a folder is renamed then all the rec�8 ords will w��t���b���������8Qbe considered lost and deleted. This should use query destinations to speed thing�8s up �� ������������8 input � T�@���.��������^^�8& ptr to an array of folders in input �ds�>���,���������8% ptr to the database table to clean ����4���"������������8 ptr to field to compare ��"�4���"������������- ���imageFoldersPtrs �.���������������- ���tablePtr$���.���������������- ���fieldPtr$���,���������������imageFoldersPtr ����&���������������tablePtr$ ����&�����������l�fieldPtr$ ����������������������*�����������������/�tablePtr$ �4���"��������������t�tablePtr$\�All�0����������������$���\�Found���@���.��������������fieldPtr$�imageFoldersPtr��>���,��������������z\�All\�Found\�Missing���@���.���������������\�Missing�@������������ut�(�����������������v\�Missing��*�����������������B�tablePtr$��������������������hP�$�����������������u\�All ��&�����������������u\�Found��(�����������������u\�Missing���$����������������$���ar������������������������������DFCC4D�!mP�p���^��'��&��b$QThis code checks how long it has been since a backup and then runs one if necessab$ry.fn�h���V��������b$PThe weakness of this code is that if backups are enabled then 4D runs a check to���p���^��������:��b$Qsee if the backup folder is enabled before the Startup method is called so I cannb$ote���<���*�����������b$%control the dialog box that comes up.���������������b$�� ���� ���������� b$ input�i���� ��������� � b$ none����� ��������� �b$ output�i���� ��������TAT b$ noneMM�(�����������994 3 @ lastBackupl� 1�,��������������@2 @lastBackupTimez��������������������� ���������������b$setup db���"���������������@� @���������"���������������@�/ @���������"���������������@�2 @����������������������������D���2������������b$,check pref, fail silently if the path is bad���>���,������������@ @ @Backup_PrefRead��8$@�������������������������.���������������b$determine backup status���F���4������������@x $@�6��@ lastBackupl�@lastBackupTimez�������������������@���B���0������������@ @�����8@�?��������wX no backupsT���"���������������b$ do nothing���X���F������������@ @�����8@�@���������wX daily, ensure it is the next day���.���������������@ @�!�@ lastBackupl�������������������@w������������������@���\���J������������@ @�����8@�@���������wX%weekly, ensure it has been seven days���h���V������������@ lastBackupl@ @ lastBackupl�@������������@������������@�@�����������.���������������@ @�!� p@ lastBackupl�������������������@w������������������@���`���N������������@ @�����8@�@���������wX(monthly, ensure it has been a month days����h���V������������@ lastBackupl@ @ lastBackupl�@������������@�?��������@���������������.���������������@ @�!� p@ lastBackupl�������������������@w������������������@������������������@������������������@���Z���H������������b$Bsince the pref path is bad try to change it to the database folder���B���0������������ @Backup_PrefWrite< @ PM_UpOneLevel @��������������������@������������������������� ������������b$cleanup���"���������������@� @��������@�#@ AlertText�w�l^3�#@AlertDFCC4Dz�J0_�b���P��'��&��b$KConvert a 4D date to model hours (tau). This code assumes uniform length ofum�n���\����b��!��b$Qyear and real month length. Thus the calculation is linked to normal years withoub$t���n���\��������scalb$Qany leap years and should match Reto and Gary's manual methods for calculating rub$n�&�������V����b$dates into TAU.��������������scalb$�dG���� �����������b$ input�8���&�����������b$! date, value you want to convert���4���"������������b$ longint, zero year for run������ ��������00.0b$ output p�0�����������15.3b$ longint, date in hours�6 �������������TAT ������������054 b$var �(����������� 3 @��@date@�2 �(���������������@ @��@zero@����&���������������@ @���@tau���� ���������������@date@ @���� ���������������@zero@ @�����������������������4���"������������b$do the magic from date to tau���L���:������������@tau @� @date@��P@zero@��@�@���������@���.������������@tau@tau��#@jdofm�@� @datem����\���J������������@tau @tau��@� @datem��P@�?���������@�@�������������������������������� ������������b$cleanup������ ������������ @��@tau��Note������������� @ �<���*�������� @��� No longer need the modal window�,���� �������� @�� @OK ��������������DFCC4D9"�>���,���������d�d"3H%save the record then close the window"���@���.���������d�d "InfoText_SaveRecord"�"I"I?�������""�<�$������������d�d " Generic_Close"co������DFCC4D��.�������������� � FinderToPathn \��   ������������������ ]����������������������������������������DFCC4DJ�>���,��������W�� Info_iPhoto_LoadThumbs�?�������ss������������������������������������������������DFCC4DG��~�6���$����������"0open flux processing window x"���h���V���������� Generic_OpenReopen]]]#Flux_ProcessIDz]x� Flux Window]x� Flux_Processz]]?������������DFCC4DG�Sz�h���V��%k��$k��gSPSets allow users to save information about how the postprocessors are configurednfs�d���R�����������SLand not tie the information to a particular run. Each set stores all the runA���t���b������������SQindependent information about: tables (pd) , time series (aj), maps (aij), slicesS (ajl),���n���\�����������SQand zones (alat). Since a set hides the information about other sets there is alsSo�P���>�����������S9a master set that always shows everything called Default.����������������������d���R������������SMThe version is an error check to make sure that the blobs are read correctly.���F���4���������� S.Here is the #,date,description of each version�n�L���:���������m�bS51, 07/10/02, initial version, has tables, aj, and aij� �2��� �����S2, 08/??/02, minor changeser�h���V�����????SP3, 10/04/02, moved sets interface to postprocessing and the postprocessing procen44�X���F�����S@4, 10/28/02, fixed off by one error in arrays, caused bad counts��0��������S5, 03/24/04, added slices�0��������kZkZS6, 12/13/05, added zones��0�����������111^#�SetsCurrentVersion<���8���&��������#^SetsCurrentVersion<��@������� s�\���J�����������SDcreate the set array to match the sets stored in postprocessing sets���J���8�����������S2also create set of record numbers for quick access��8���&�����������^�#� SetNumArray�����������������"�����������^�/�������#��J���8�����������^������#�SetArray��������#� SetNumArray���6���$��������^�#�SetArray�#� SetNumArray��&����������� ^SetArray_AllOnTop��.������� ����#^SetArray��?���������������������������������������������������DFCC4D3���Z���H������������8AWhat to do if an error occures in the Simulation Library window. ����^���L�������������8DBasicly restore all the records, sort and then kill the bad meathod ����$�������������� �/  �����  ��4���"������������ �1  �����  ���� � @  ������������Yj � ��������������������������������������������������������������DFCC4Dro��:���(����������� � FinderToPathn \� Documentation  ����������������� ������������������������������DFCC4DDa*��B���0���������� Info_iPhoto_LoadThumbs�s@s�@��������ss��������������������������������������������DFCC4DE�,?��@���.�� �� ���7d&sets_process, setup sets window and db��4�������������R�e�@���� ������������7dsetup����(��������������]�C��Default��� �6���$�����������]�7���������Sets����������������������� ]myWind���#� Toolbar_Width���@����������@��������� #� Toolbar_Width���@��������� ��@��������$��"� ��� Sets Summary���� Generic_Close���F� �����������)]F�B�� ������������)�n � �����������)�7dshow it�lO� �����������)]F�B�� ��&�����������)] �myWind���������������)�7d�(������������v�e�7dsetup database��� ������������i�n]����si�$������������t�>]���������ar�$������������t�.]�/��������od�8���&���������.�p]#�SetArray������������������D���2���������d�j]��������#� SetNumArray#�SetArray��������������� � ]]���$������������ � ]�2�����������������������l�>]]�(��������������� ]setName�������������������������[����������������]] �*���������������]�9������������2��� ������������ ] �OK����������������hu��������������������X���F�������������7d? The close box associated with this window pauses the process. ���\���J�������������7dB The window stays ready for use throughout the use of the program.����`���N������������#]Sets_ProcessIDA������������w$ Reset process ID tracking variable.wru����������������w���,����������������7d End of procedure.�����������������������������������������������������������������DFCC4D^�g9X�t���b����(�����FQThis creates the start of an XML tag at the correct level and fixes the input strFing B;�:���(����:�s{F to match the rules for XML tags l��� ��������Z^F input &�0�����������F string, XML tag name �,�,�������r����F level of the tag ���<���*������������%�@������� �tagNameS�.�������������� �tagLevel���0�����������nera%�@������� ���*�$�������r���tagName �EN�&�������r�tagLevel �t ��������r�}&�(�������r� $Ffix characters ��B���0����r�5tagName�tagNameY�p Y�p_���B���0����r�tagName�tagNameY�p?Y�p�LO��������r������.�������r�Fcreate output string ���\���J����r�ff ���Z$��%�tagLevel��Y�p<��tagName��Y�p>Y����������������������������������DFCC4DB�,�*����� �� �� � InfoText_HTML��T#��DFCC4DT�FJu�b���P��'0��&0��gSJThe list of selected years is reset every time the user changes the tab inum�b���P�����C��SKanalyze output. Optional input tells it to clear the saved years instead of���$���������������S setting them.���������~����S������� ��������scalS inputD:�6���$�����������S optional (clear saved years)���� ��������0001S output00���� ��������EMakS noner��&���������������-@YearsPtr$����$���������������@@listLen����:���(������������@%@�@��������@ TabSavedYears����6���$�����������@�@curYears$�@���������������������������������"���������������S save record���"���������������@�5@������������������������� �&��������������Sget years list���X���F������������@YearsPtr$> @PostProcessing_TypeListEmpty� @start_lbs�@��� �4���"��������� @listLen>@@YearsPtr$������������������������F���4��������dS/select all years in the list and undo selection�2��� ������������@ @zTabs� @ pTimeSeries����������������������"���������������S clear array���*���������������@�Y @ TabSavedYears�@��:���(���������L@� @ TabSavedYears�@�@�����������������������������P���>������������S9don't save years when records change (paramter is passed)���.���������������@@�@�?�����������D���2������������ @ TabSavedYears�@�?�������>@��������������D���2������������ @ TabSavedYears�@�@��������>@��������������F���4��������� @ TabSavedYears�@�@��������>@�@������������������������@���D���2�����������S,save selected years if record is not changed���P���>����������� @SelectedElementsInListBox� @start_lbs��@curYears$���J���8����������� @ TabSavedYears�@�?�������>@@curYears$�����������������������Z���H������������SCsave years if there are any, as offsets, otherwise just wipe it out���L���:������������@ @ TabSavedYears�@�?��������>@���������������T���B������������ @ TabSavedYears�@�@��������>@curYears$�@�?�������������������������@���D���2������������ @ TabSavedYears�@�@��������>@�����������������������������@���F���4������������ @ TabSavedYears�@�@��������>@�@������������������������@���������������������8���&������������S select all years and no year set���@���.�������� @PostProcessing_SelLastNYears@listLen����B���0��������@ @ start_lbprt�@�?��������$@�5�����B���0���������%@ @ start_lbprt�@�?��������$@�5��34��������������������(���������������Sresize years list���V���D������������@��w�l Start_obj�@left�@top�@right�@bottom�����|���j������������@��w�l Start_obj�@lefto�@top�@lefto�>�@�@��������@top�>�@�@�������������2��� ������������@[��w�lzAve_@�@�����8���&������������@[��w�l Start_objtoo>�@�����2��� ������������@[��w�lstart_2�@�����4���"������������@[��w�lstart_10��@��������������������@���2��� ������������Srestore old years selection���B���0������������@@ @ TabSavedYears��>@���������������R���@������������S; must match run number or selected years will just be wiped������|������������@@�@������� @ TabSavedYears�@�@�����������X @ TabSavedYears�@�?��������>@����������������|���j���������� @PostProcessing_SelLastNYears @ TabSavedYears�@�?�������� @ TabSavedYears�@�@��������������������������@���@���.��������! @ @start_lbs�@�?��������$@�5��..�@���.������������@ @start_lbs�@�?��������$@�5��������������������@������������������@����������������������4���"������������Sdon't want to run this twice���*���������������@�Y @ TabSavedYears����:���(������������@� @ TabSavedYears�@����������������������������������(���������������Sresize years list���V���D������������@��w�l Start_obj�@left��@top�@right�@bottom�����4���"������������@@bottom����@�@Ѐ����������|���j������������@��w�l Start_obj�@left��@top�@left��>�@�@��������@top�>�@�@����������������������������@���2��� ������������@[��w�lzAve_@�@�����8���&������������@[��w�l Start_objtoo>�@�����2��� ������������@[��w�lstart_2�@�����4���"������������@[��w�lstart_10��@��������������������@����������������������$���������������S call a redraw���>���,������������#@PostProcessing_Button>�>`@�?����������6���$������������@I#@PostProcessing_ProcessID���DFCC4D�SJ�n���\��!�� ��,�7dQshow the permissions window, this code is called from the setup simulations windo�7dw^�B���0��������d���7d+so rw access to model variables is assumed.����������n�����7d�z������ ������������7d input0�<���*��������0001�7d$ ptr to acl subtable (ACL subtable)12�>���,��������EMak�7d' ptr to acl username field (ACL field)�n�&����������������7d ptr to table������ ���������� �7d output�o�,������������[�M�7d none (ACL subtable)�s����r�������������7dQ$wind:=Open form window([Users];"UserPermissions";-Movable form dialog box )`Mo�7dvable form dialog box w���X���F������������]- ��� ��� ��� �aclPtr� �aclUsernamePtr@� �tablePtrt�ia�.�����������]���������������cl�"������������ ]aclPtr� �����*������������ ]aclUsernamePtr@ ����$����������� ]tablePtrt ��������������]a�(�������>���� ]aclPtr����������2��� ����>� ]aclUsernamePtr@�������*�������>� ]tablePtrt�������rP��������>�]w���������>�]�>���,����>�111]�7���������UserPermissions��(l���������>����]wind�������@�����������@��������������@������������@������������?�����������?���������$��"����User Permissions�-1045��8���&����>�����]�(���������UserPermissions�����������>����]��������������������DFCC4Dd�=9cn�(�����!6�� 6��,�7d SelectedElementsTX���� ����F���7d input0���(���������������7d ptr to listbox��<���*����R�����7d$ ptr to array to get back selection���B���0�����^^]- ��� ����listbox�� selectedliste�^�0�����������MUTX]�foundAt��maxsize����"��������������]listbox �����(������������] selectedliste ���,���������������]foundAt���������������2��� ������������]maxsize��listbox�����4���"������������]�maxsize�����������������0��������0001]�foundAt�( �maxsize�09�D���2��������EMak]foundAt���listbox������foundAt��8���&�����������]�foundAt�����?���������8���&�����������]� selectedliste���foundAt���:���(����.� ]foundAt�foundAt����?�������8������������V\]��:���(����������]foundAt�maxsize����?���������������������0001]02������������EMak] S����������������]��������������������������������������DFCC4DA��^���L��!�� ��,�7dFadd to ACL, clear * if it is there since an owner means the run is notF�(�����������7daccessable to all���&������������� ]�Y � arrColSel�� �6���$���� ����]� � arrColSel�����������������6���$�����BB]%��@���������username$�B���������z�����8���&��������7d!get the selected item in the list�a�B���0����� 7p ] UAM_ListSel� �userListu�� � arrColSel��������������C�o�l�*�������������7dcheck for selection���2��� ����\�nfoT]selLen�� � arrColSel���4���"����������]�selLen��������������es� ������������7dremove *���T���B������������]� � arr2ColVars/��?��������������������������V���D����^�0001] � arr2ColVars/��?��������/��?�����������*�00�L���:��������EMak]� � arr2ColVars/��?�����������?��������w���������n����]!������������EMak] S�������������ww{�0�������������7dadd new items to the ACL���8���&��������{{]�i���?���������selLen�{�Z���H��������{{]username$ � arrColVarsr/��?��������/ � arrColSel/�iw�f���T��������ww]�� � arr2ColVars/��?����������username$������?��������w�J���8��������ww] � arr2ColVars/��?����������username$�w������������]������������]����������������� ���������7dsort�<���*��������] � userOwner���?�����������������������]���������������===���������������B{����������������������������DFCC4DC��&�����!6�� 6��,�7dremove from ACL��&�������Դ��� ]�Y � arrColSel�� �6���$����������]� � arrColSel���������������o�6���$���� ����]%��@���������username$����������������^^^�8���&������������7d!get the selected item in the list�B���0����v�0001 ] UAM_ListSel� � userOwner�� � arrColSel�00�������������EMaker�*����������������7dcheck for selection���2��� ������������]selLen�� � arrColSel����4���"��������)]�selLen��������������������������������0�������������7dremove items from the ACL�L���:��������)�]�i��selLen���?�������������?�����������R���@��������]� � arr2ColVars��?��������� � arrColSel�i�������������)]��������֨����]�����������֨������������DFCC4DIV�L�d���R��"��!��,�7dMuam_perm_accept saves the changes back to the database and changes ownership.���t���b����&�MUTX�7dQa warning is generated if you try to remove yourself from a run. Admin users are �7dimmunei���>���,����d��t�o�7d'to warnings since they can do anything.�o���� ����"�MUTX�7d input0ng���� ����������,�7d none0m_���� ����Ů�����7d output���,���������������7d none (ACL subtable)���$��������������]1�accept����"������������� ]accept����p��������������_�U�s�.������������� �7dadmin users are immune��c�$������������_�U]#� UAM_Admin���"�����������0001]accept���00�@���.��������EMak]w&check they left themselves in the listP� �T���B������������]found�� � arr2ColVars��?���������#�UAM_User����\���J����������]�found�����?��������!no in list add back in and reject��\���J����������]dummy � Alert_Alert��@����������@����������@���������� �J���8���������l�t] � arr2ColVars��?���������#�UAM_User��P�<���*����������] � userOwner���?�����������c��������������]�&�l��������������]�a�"������������s�t]accept����e���������������]7d������������EMak]�����������������]�0��������������7dsave changes if accepted�ve�"�����������]�accept� ��b���P��������]�B��#�Simulation_ProcessID2�� p�B��#�InfoText_ProcessIDI���h���V�������������7dQchange acl but don't save if we are in the simulation process or eJournal process���D���2�������������7d-where other things need to be saved specially���0��������������� ]UAM_Perm_ChangeACLI���������������������]���(����������������7dsave each record������������������]���0��������������� ]UAM_Perm_ChangeACLI������(���������������]�3 �tablePtrt�����.��������������� ]��$ �tablePtrt���������������������]������������������]������������������]�&������������������]��������������������������������������DFCC4DA��������!6�� 6��,��~���l�����������7dQhandles the list box in the user manager window, both loads the list and handles �7dchanging records �����������������7d ������ ������������7d input0���� ��������ds:H�7d none0Li���� �������� Cha�7d output�A���� �������������7d none0��������������0001]02�(�����������EMak]���$����4D�D���2�������������7d,load in the whole table used to list things ����4���"���������]� �userID�����������������H���6��������]���@�������� � arrColNames��������������xx�L���:�����������]���@�������� �arrHeaderNames@�����������������8���&��������] � arrColVarsr���������������:���(��������] � arrHeaderVars���������������8���&��������]� � arrVisibler���������������6���$��������] � arrStyles����������������*�����������] � userColsToSet��������������)))%�,������������7dload in data to table����x��������]@ �userListu� � arrColNames� �arrHeaderNames@� � arrColVarsr� � arrHeaderVars� � arrVisibler� � arrStyles��"��������������]�/���������F���4������������]������ � arrColVarsr��?������������<���*������������] �userListu���?��������������������������������(���������������]���$����������������������]��������������DFCC4DC�VL�������!�� ��,��~���l������������7dQhandles the list box in the user manager window, both loads the list and handles �7dchanging records ����������������7d ������ �������������7d input0������ ��������� �A�7d none0����� �������������7d output������ ���������7d none0��������������]�(�����������ccc]���$����cc�D���2���������7d,load in the whole table used to list things ��4���"�����������]� �userID�����������������J���8��������]���@�������� � arr2ColNamesr���������������L���:��������]���@�������� �arr2HeaderNames���������������8���&��������] � arr2ColVars���������������<���*��������] �arr2HeaderVars@���������������8���&��������]� � arr2Visible���������������8���&��������] � arr2Stylesr���������������*�����������????] � userColsToSet���$�����������)�]-�arr2Ptr���������������P���>�������������7d8load in data to table from subtable, this is done manual�������~������������]@ � userOwner� � arr2ColNamesr� �arr2HeaderNames� � arr2ColVars� �arr2HeaderVars@� � arr2Visible� � arr2Stylesr����&���������������]�m �aclPtr�����4���"������������]aclCount$�� �aclPtr������������������������&����������������7ddelete old list���J���8������������] arraySize� � arr2ColVars��?������������Z���H������������]� � arr2ColVars��?�����������?��������� arraySize�����������������������$����������������7d add users in����6���$������������]�aclCount$���������������������������������7dadd���&���������������]�= �aclPtr�����:���(������������]�i���?���������aclCount$����R���@������������] � arr2ColVars��?��������� �aclUsernamePtr@�����&���������������]�> �aclPtr��������������������]������������������������� �������������7dsort���<���*������������] � userOwner���?����������������������������]����������������������(���������������]���$����������������������]����������������������DFCC4DIX� �d���R��!6�� 6��,�7dLchange owner to *, which means everyone has access, this should be multually@���<���*������������7d$exclusive with any users in the list^���$���������������]�listLen����������������Databa�2��� ����h����]listLen^� � userOwner��4���"��������EMak]�listLen�^�������������-�X���F������������]� � arr2ColVars=��?�������^����?���������listLen�������������������]����������������������D���2���������] � arr2ColVars=��?�������^����*�����������������������������DFCC4D/M� O�^���L��!6�� 6��,�7dGThis code returns if the run is the magic run with an unbreakable lock.F�P���>�����������7d9At the moment this is the run called "Sample_Control_Run"�s��������X�����7d�z������ ���������7d Input0������ ������������7d none0���� ��������ds:H�7d OutputLi�:���(�������������7d" boolean, is the lock unbreakable���<���*���������]���������Sample_Control_Runx����� ����������� ]��>��������������]������ ����� ]��>�����������]��������������������������������DFCC4D ��8jg�`���N��&"��%"��gSISetup Run manager to handle things. Run Manager handles the state of runsfn�\���J�������� ��SDin the output folder and determines if they are running and how far.%��b���P�������� ��SKShould add code to handle cache instead of brain damaged non-cache version.���d���R��������SLThere is a second stage to the init because some things can't be setup until@�f���T�����������SOafter the user logs in, eg Run_UserSet is determined by who is the user (duh!).���b���P������������SJThis code now uses semaphores to ensure that no one beats it to the punch.��������������0001S�#@���� ����������S input� ���� ���������f�aS none� ���� ���������� S output�t�6���$���������)�S none (global arrays are set)�t���������������0����� ������������Ssetup���(���������� Run_Critical_Begin%�u�����������)�� �(����������0Sglobal variables��t�b���P������f�o1#@ Run_UseCacheu�wO83use cache for calls instead of direct to disk calls�n����t����� @%@�@��������#@ Run_HomeDisku�wO8Ghome disk is the first volume, used for MacOS X path fix in FindProcess�J���8�����111@1#@ Run_DirtySets�wO8should the sets be updated��L���:�����@1#@ Run_CheckDB�wO8should the database be updated���j���X�����@#@Run_ID_To_Select�wO87id of run to select, used when runs are added to the db�V���D�����RRR@#@ Run_Debug�wO8*debug flag since some stuff runs on timers���\���J��������@�@�@��������#@RunNumberArrayz�@������������wO8 Run Numberd�^���L�����@�#@ RunDateArrayu�@������������wO8Current Date, from old RunArray�\���J�����������@�#@ RunIDArrayR�@������������wO8<Record ID>, from old RunArrayRR�Z���H��������@�#@ Run_RunNumEnd�@������������wO8End Date, from old RunArray�L���:����������5@�#@Run_RunNumStart�@������������wO8 Start Dated��R���@������������@�#@Run_Run_DateCreate%�@������������wO8 Creation date���R���@������������@�#@ Run_RunStatus�@������������wO8Internal db status���J���8������������@�#@Run_RunNumStatus�@������������wO8Status���T���B������������@�#@Run_RunNumScenMast%�@������������wO8Master Scenario���N���<������������@�#@Run_RunNumRunning�@������������wO8 <Running?>d���N���<�������� @�#@Run_RunNumOnDisk�@������������wO8 <On Disk?>d�J���8�����@1#@Run_Run_Recheck�wO8check if run is running?���B���0�����@�@�@��������@vols��@������������������������������&������������Sbasic variables���`���N�������#@ Run_UseCacheu%@��� 3use cache for calls instead of direct to disk calls���"������������@@volsU�������x�������#@ Run_HomeDisku%@volsH�@�?�������?wO8Ghome disk is the first volume, used for MacOS X path fix in FindProcess���Z���H�����#@RunNumberArrayz%@�?��������� !default to first element in array�*����������#@Run_Run_Recheck%@��&������������#@ Run_CheckDB%@����\���J�������#@Run_ID_To_Select%�%`@�@��������� -99 means no record selected��.�����������#@ Run_Debug%@��������������������������<���� ������������Ssets%���(�������������#@ Run_DirtySets%@��(�4���"��������@�@������w�l Run_UserSet����6���$����������@�@������w�l Run_SearchSet��^����������������������� ����������Scleanup�,�&����������� @Run_Critical_End����������������DFCC4D/S�J4�`���N��&\��%\��gSIMap the run status to an icon ref (number) from the picture library, takefn�V���D�������� 5��S>into account if the run is running. Use semaphore for security\��������������S������� ������������S input���4���"������������S index into RunNumberArray������ ��������S output�M�*�����������0001S number (icon ref)00�B���0��������EMak @�� @���@i�@iconRef�@useBlue��k���� ����������@i% @������������������������� ������������Ssetup���(�������|����� @Run_Critical_Begin%�����������|��������,�������|�����Scheck if run is going �4���"����|�����@#@Run_RunNumRunning�@iY����,�������|�����@useBlue%@���������������������|���@���,�������|�����@useBlue%@�@�����������������|�����@L ���������|������ �&�������|����Sassign icon ref����������|�����@�f���T����|�� @#@Run_RunNumStatus8�@iY�@�@��������wO8archived run, can't be run�ap�8���&����|�����@iconRef%@�@ �������� archive���h���V����|�����@#@Run_RunNumStatus8�@iY�@�@��������wO8master scenario, can't be run���>���,����|�����@iconRef%@�@ �������� package icon@���X���F����|�����@#@Run_RunNumStatus8�@iY�@�@��������wO8 completed run���>���,����|�����@iconRef%@�@ ��������� filled circle���d���R����|�>� @#@Run_RunNumStatus8�@iY�@�@��������wO8not on disk, empty circleL�@���.����|����@iconRef%@�@ p�������� lock black icon��Z���H����|����@#@Run_RunNumStatus8�@iY�@������������wO8first hour run���:���(����|�����@iconRef%@�@ �������� play icon@����������������@#@Run_RunNumStatus8�@iY�%@��������������)#@Run_RunNumStatus �@iY�wl@�@���������wO8incomplete runs in eigths���p���^��������aaaa@iconRef%@�@ �������%�#@Run_RunNumStatus8�@iY�%�@useBlue��filling a circle�yy����������������@���>���,��������@iconRef%@�@ �������� empty circle@������������@������������������ ��������Sreturn�&��������������� @Run_Critical_End���"��������������� @��%@iconRef������DFCC4D �,��b���P��'A��&A��gSJFind out which simulations are running from the processes on the computer.um�p���^����������SQCurrently uses the folders on disk to determine which runs to search for (unchachSed)���`���N�����������SHand then searches the running processes using a RealBasic program called���`���N�����������SIRunManager. The Mac version just uses ps -Axc instead of RunManager since���8���&�����������S!runs can be found just as easily.������������������S������� ���������� S input�n�:���(����������S" ptr to list of processes to find�u�\���J���������2�kSE ptr to list of booleans for results (must be size of previous list)����� ����������S output�o�V���D��������� �)S> boolean, at least one process was running (see boolean list)�D�@���.���������� �- @�� @��@runsPtr�@ runningPtrr��l�B���0����������@%@�@��������@path��@ errorStream���:���(���������� @\@ inputStream�@ outputStreamu��i�&�������������@@outFound$��T�.������������2�k@@i�@ runFoldersC��o�4���"����������@%@�@��������@crChars������ ��������� �)@1 @����)�"������������ @runsPtr @����&���������������@ runningPtrr @������� ������������ @��@�����������������������6���$������������@ runFoldersC@@runsPtr)����j���X�����������A@@ runFoldersC�@������������wO8-only check things if there things to look for����������������������"��������������S build tools���J���8������������@#@ PM_Platform�$@���wO8mac version uses ps���@���.�����������S)fill out ps command, man ps for more info��(���������������@pathw�lps -Axc���.���������������@crChars@�Z$@��(����z���h������������@�� Qwindows version uses pulist from the Windows Resources for Win 2k, also supports �� Win XP SP2r���~���l������������SQfills out pulist command, see http://www.microsoft.com/technet/downloads/win2k.msSpx for more info ���B���0������������@path( @ PM_FindFolderw�l Applications����P���>������������@pathi @ PM_MakePath@patha�w�l pulist.exe ?�@�����B���0������������@crChars@�Z$@��&���@�Z$@��(�������������������@����������������������,�����������aaaaSfinal return to quit�D���2������������@*@crChars�@ inputStream�$@�� �������������������:���(��������S"try it and surpress console window)�B���0���������@,w�l_4D_OPTION_HIDE_CONSOLE�w�ltrueh��T���B�����������@+@path �@ inputStream�@ outputStreamu�@ errorStream�����������������������8���&������������S!find if processes are in the list���B���0������������@outFound$@+@ outputStreamu�$@�� ����<���*������������@@i�@�?��������@ runFoldersC����T���B������������@@�@runsPtr)�@ii�@outFound$��@������������������n������������SQcreate a string that prevents names that contain the search string from triggerinSg a false positivea���2��� ������������@#@ PM_Platform�$@������H���6����������&@pathw�l ��@runsPtr)�@ii��@crChars�����������������@���>���,������������@patha@crChars��@runsPtr)�@ii������������������@���<���*������������S%double check that it's really running���H���6������������@@�@pathP�@outFound$��@���������������0���������������@ runningPtrr)�@ii@������� ������������ @��@�������������������@���0���������������@ runningPtrr)�@ii@�������������������@������������������@���0���������������@ runningPtrr)�@ii@�������������������@������������������@�������������������������������������@����������������������$���������������S debug assert���8���&������������S!If (PM_Platform=Windows )&($0)���8���&������������S SET TEXT TO CLIPBOARD($outFound)������ ������������SEnd if ������������DFCC4D �E�x���f��$s��#s��LQSetup_RunModelMac copies the model and modifies things so that the process has th e same nameof�~���l����������Qas the run. On MacOS X this is complicated because the plist must be modified and the binary filea�|�|���j��������Qrenamed. On Windows a simple copy does the same thing as this code. The parent call to this hasn���8���&�����������!already gotten the model and grid�������������������� ��������4th  input���8���&�������� ADO! string ptr (run folder, output)�I�:���(���������� " string ptr (model folder, input)�c�2��� ���������e�t (implied) model and grid�m���� ���������� output�O���� ��������� � none�M�@���.���������� ^- ��� ���� outputPtr��inputPtr$��o�2��� ���������e�t^%��@���������path(��m�L���:����������^%��@��������� modelAppNameo�� modelAppRsrco��$�"������������M�_^�plist�� �$������������ �^ outputPtr ���T�$�������������^inputPtr$ ���M������������������&�����������get model infoh��j���X�����������^ modelAppNameo �GetListItemStrA#� ModelAppsRefo� � modelgrid���@����������l���Z�����������^ modelAppRsrco �GetListItemStrA#�ModelAppsBinRef� � modelgrid���@��������������������������������� �����������copy������n��������NNN ^PM_RecursiveCopy � PM_MakePath�inputPtr$��� modelAppNameo���.app ������ outputPtr��NN�����������������$������������ path to plist���R���@���������^path( � PM_MakePath� outputPtr���Contents��������N���<���������^path( � PM_MakePath�path(�� info.plist������������������������$������������ modify plist���.�����������^docRef���path(����>���,���������^�h�docRef��plist���@ �����������X���F���������^plist���plist�� modelAppRsrco���������?�����������4���"���������^�docRef�����������������.������������^�g�docRef��plist����$������������^ �docRef��������������������*������������change binary name���R���@���������^path( � PM_MakePath� outputPtr���Contents��������H���6���������^path( � PM_MakePath�path(��MacOS�������x���f���������^ � PM_MakePath�path(�� modelAppRsrco����� � PM_MakePath�path(������������������������������,������������change resources name���R���@���������^path( � PM_MakePath� outputPtr���Contents��������L���:���������^path( � PM_MakePath�path(�� Resources�������������������^ � PM_MakePath�path(�� modelAppRsrco���.rsrc����� � PM_MakePath�path(���������.rsrc�����������������������������������������������������������������������������������������DFCC4D/Y�,B�J���8��%��$��gS2Search run list of subset with a particular run idCH����v��������SQsearches are lost if the records are changed in the database since the sets becomSe, this is consistent withe���2��� ��������Show iTunes handles searches���(��������������� �Run_Critical_BeginO���8���&����������� �Run_UpdateSetsz� @ List_Queryi��&������������� #@ Run_CheckDBO@�� �&�������������` @Run_Critical_End�u�����������000100�8���&��������EMak@@�?��������@�@����������$���������������S do the query���@���.���������� @@� @ List_Queryi��O@�������������s�6���$����������@$@���w�l Run_SearchSet��S�R���@��������� �r@@������@�����w�l@�O� @ List_Queryi�O�w�l@��e�"���������������@$@����t���������������@��"���������������@�/@���������6���$��������T�@�t@������w�l Run_SearchSet��������������T�@2��������������������P���>��������S9if the results of the query are empty then do all records�V���D������������@�yw�l Run_UserSet�w�l Run_SearchSet�w�lRun_SearchResult���H���6�����������@@�w�lRun_SearchResult��@���������������>���,������������@Xw�l Run_UserSet�w�l Run_SearchSet����N���<����������� @Alert_ParamText @ List_Queryi�w�l�O�w�l�O�w�l�O���B���0�������� @ Alert_Alert@�?��������@�@��������������������@������������@����������������������������������������������������������DFCC4Dnc�` *:�b���P��%��$��gSJChange which run is currently selected and update everywhere. This code noum�`���N����������SIlonger sets the current record in the toolbar process, this is done on an���F���4�����������S/as needed basis instead to improve performance.�����������������S�o����� �����������S input p_���� ������������S none ������ ���������� S output�d���� ���������_�CS none �l����������������������� ������������Ssetup���(����������� Run_Critical_Begin�����������������J���8�����������S2check if there is anything in the RunNumberArray ��D���2�����������@#@RunNumberArrayz��@��������������������������L� ��(�����������Sget selected item���8���&����|����@cur@{ @RunNumberArrayHier�������������|���B���0����|�S*if no item is selected then pick the firstk�0�������|�@@cur�@�������������Z���H����|�����@cur@�#@RunNumberArray�#@RunNumberArray�@�������������0�������|�111@@cur�@�������������,�������|�#@RunNumberArrayz@cur��������|�@�4���"����|�RRR#@RunNumberArrayz@�?�����������������|����@kk�`���N����|�#@RunNumberArrayz�@�����������#@RunNumberArray�#@RunNumberArray��������|����@���.�������|�Spick the selected item0�T���B����|�111#@RunNumberArrayz�@�����������#@RunNumberArray�@cur�,�������|�#@RunNumberArrayz@cur��������|�@���������|�RRR1�&��������������Supdate the list�@���.��������@tempu#@RunNumberArray�@������������4���"�����������@@B�#@Toolbar_ProcessID�RR�*����������� @Run_UpdateSimControls������������@��������������.�����������Supdate other processes �6���$��������@I#@PostProcessing_ProcessID ��2��� ��������@I#@Simulation_ProcessID(����.�����������@I#@Control_ProcessID����.������������@I#@Cleanup_ProcessID����,������������@I#@Flux_ProcessIDz�������������������@���������������4���� ��������Scleanup�&�����������ayer @Run_Critical_Ends ������������������������������������������������������������DFCC4D��`���N��%��$��gSHSecond stage run init for things that require the user to be selected orfn�F���4���������� S/that the code is run from the toolbar process. �f�������������� �r�e�&�����������0001Ssetup the sets00�$�����������EMak#@ UAM_Admin��c�2��� ������������Sadmins can access all runs���"��������������@�/@���������4���"�����������@�t@������w�l Run_UserSet������������������@���R���@�����rdS;users can only access runs they own or are owned by all (*)���4���"���������@$@���w�l Run_UserSet��0�D���2�����@���@@������@�����#@UAM_User�����>���,���������@@�������x �@�����w�l*����"������������@$@�������������� @���T���B�����x�S=default search is null so give set of all records accessiable���>���,��������@Xw�l Run_UserSet�w�l Run_SearchSet������������D�&������������Ssetup the list���,������������ @RunSort>@�?���������.����������� @RunNumberArrayHier>>@w��2��� ��������� @ RunAlternaten>@�?���������@���.������ @Run_UpdateListz� @RunNumberArrayHier>�����������������������������������������������������������������������������DFCC4D �,3�b���P��%��$��gSJRun_UpdateSets makes sure that the sets match the database and the search.um�d���R�����������SLThis code does not lock the sempahore when it changes Run_DirtySets because@�>���,�����������S'the semaphore is always set externally.�����������������S������� �����������S input���6���$������������S optional ptr to search field���.���������������S none (Run_DirtySets)������ ������������S output���:���(��������0001S# none (Run_UserSet, Run_SearchSet)00�������������EMaker�,���������������Ssetup the basic setsO���(���������������#@ Run_DirtySets����$�������������@#@ UAM_Admin��_�2��� ��������� �Sadmins can access all runs� �"�����������@�/@�������4���"����������@�t@������w�l Run_UserSet�� �������������u�n@�U�R���@����������S;users can only access runs they own or are owned by all (*)��4���"����l����@$@���w�l Run_UserSet����D���2����l�@@������@�����#@UAM_User����>���,����l�@@�������x �@�����w�l*��"�������l�@$@�����������l�@�T���B����l�S=default search is null so give set of all records accessiable�>���,����l�@Xw�l Run_UserSet�w�l Run_SearchSet���(�������l�#@ Run_DirtySetsO@�� ��������l�@���������l��>���,����l����S&if there is a search field then use it �.�������l�@@�O@��������������"�����������S get values8�0�����������@- @��@ List_QueryPtr����(�����������@ List_QueryPtrO @����������������;��*�����������ayerSdo the search queryap�D���2������������@@�@ List_QueryPtr���O@��������������6���$��������@$@���w�l Run_SearchSet��V���D������������@@������@�����w�l@�O�@ List_QueryPtr��O�w�l@���"�����������@$@�������������������������P���>����H����S9if the results of the query are empty then do all records��R���@����H���J@�yw�l Run_UserSet�w�l Run_SearchSet�w�l Run_SearchSet���D���2����H���!@@�w�l Run_SearchSet��@��������������>���,����H���33@Xw�l Run_UserSet�w�l Run_SearchSet�����������H���E@����������H���W@���>���,����H���g@Xw�l Run_UserSet�w�l Run_SearchSet�����������H�����@��������������@���������������������������������������������������������DFCC4D[��F���4��%��$��gS/Update the simulation controls section to match��L���:����^���S5the current run. This builds on the run manager cache���<���*�����4S$instead of directly querying stuff. ���������S����� ����:�����S input �t���� ����z���S none �M���� ��������'S output������ ����f�����S none �B������������������� ���������Ssetup��(������������ Run_Critical_Begin�E����������������&������� �����Sset folder icon�P�B���0���������#@Run_RunNumOnDisk�#@RunNumberArrays����8���&����ƚ�����@[��w�l Sim_FolderNA�@�����H���6���������@���w�lSim_ShowFolder�w�l 3;1;?2002;240����������������@S�8���&�������g@[��w�l Sim_FolderNA�@��ZR�H���6���������@���w�lSim_ShowFolder�w�l 3;1;?2015;240�����������l�����@����������������������*�����������Supdate current date���L���:����"����� @Sim_CurrentDate#@ RunDateArrayu�#@RunNumberArray���,������������@� @Sim_CurrentDate������������H����������� ���������Scleanup���&������� ����� @Run_Critical_End���������������<������DFCC4D[�,A�d���R��%��$��gSMThis handles updates to the setup simulation window based on changes in runs.���d���R����V����SMIf no parameters are passed then this assumes that the call is from elsewhere���h���V�����������SPin the database, usually the toolbar but it could be the user closing the windowll�b���P�����������SKor quitting the program. This code makes fewer destructive changes than the���4���"��������Sold RunArray_Manage code did.������������kZkZS�kZ���� ��������kZkZS input0kZ�`���N��������kZkZSH (optional) kind of change, 1 = import or fake create, 2 = after deletekZ�������������������������������  'Svar �*�������� s[o@ RunIDClickedu� s�6���$�����4�@%@�@��������@ RunNumber��.��������qX@@�)�@�������������(������������@ @��@kind��\� ��������@@kind�) @����������q@<����������������$������������S handle events���������������@���(�����������@@�$@�����*����������� @Simulation_SaveRecord����������������^���L�����kZkZ@@�$@����� T@�$@�� ��� T@�@�?��������kZ�������������kZo{kZ�.�����������kZkZSsetup critical section@kZ�(����������� @Run_Critical_Begin)��������������������4���"��������Sfind the selected element �x���f��������@#@RunNumberArrayz�@�������������� @#@RunNumberArray���wl#@RunNumberArray)���v���d������������#@RunNumberArrayz)@�#@RunNumberArray)�#@RunNumberArray)�@������������@�?�����������<���*������������@#@RunNumberArrayz�wl@�?���������4���"�����������#@RunNumberArrayz)@�?�������������������������@�������������@���`���N��������????#@RunNumberArrayz�@�����������)#@RunNumberArray)�#@RunNumberArray)55������������@�<���*������������@#@RunNumberArrayz�@������������q�@���.��������#@RunNumberArrayz)@#@RunNumberArray)�������������������@����������������(���������������Scache values ����H���6��������@ RunIDClickedu)#@ RunIDArrayR�#@RunNumberArray)�H���6������������@ RunNumber)#@RunNumberArray)�#@RunNumberArray)����������������q�$������������S end critical���&����������� @Run_Critical_End�������������.��������Supdate the records @��*�������� @Simulation_SaveRecord�B���0�����qHS*check if the user is creating a new recordJ�*��������111@ @Simulation_Newz����@���.�����S(adjust list before creating new record ���*�������� @Simulation_Newz)@�������������RRR@11����������������k�(�����������Sgo to new record��J���8�����������@�w�lSetup Simulation, Run ID: �)�@ RunNumber�R�>���,�������� @Simulation_LoadRecord@ RunIDClickedu�������������ccc@cc��������������������������������������������������DFCC4D[��/�p���^��%��$��gSQRun_PostProcessing handles coping the information from the run to the postprocessSornfn�h���V��������SQNow uses the more accurate information from Run Manager. Now uses semaphores for �"�����������/��S safe reads.���$��������������p3@endyear����$���������������@@i�@j����������������M���� �����������Ssetuppu�(�������� @Run_Critical_BeginO�������������????��$�����������S setup tables�D���2��������????@����O#@RunNumberArrayO�#@RunNumberArrayO88�"�������8����@�@������@�H���6��������EMak@�@������#@ RunIDArrayR�#@RunNumberArrayz� V�>���,����`��� @PostProcessing_SetWindowTitle @zTabP�� ����������������� ������������� S copy info�_��������������@@�#@Run_RunNumStart�#@RunNumberArrayt��@�?����������%@�#@Run_RunNumStart�#@RunNumberArrayt��@�?����������n�L���:�����@����O@�#@Run_RunNumStart�#@RunNumberArrayt����������@�^���L�����f@����O@�#@Run_RunNumStart�#@RunNumberArrayt��O�@�?����������������===@QQ�L���:�����@#@ RunDateArrayu�#@RunNumberArrayz�O���������D���2�����c@endyearO#@ RunDateArrayu�#@RunNumberArrayO���������@�D���2�����@endyearO#@ Run_RunNumEnd�#@RunNumberArrayO����������������@���l���Z������������@@�@endyear��@�@����������%@�@endyear��@�@������������.���������������@����O@�@endyear�������������������@���@���.������������@����O@�@endyear��O`@�?�������������������������@���,���������������@@�����wl@��������$���������������@����O@������������������@,�������������X���� �����Scleanup�&�������� @Run_Critical_End������DFCC4DA�ci�n���\��!�� ��,�7dQSpecial version of Run_FindProcess that looks for a single process and returns th�7de^�t���b������������7dQresults, be warned that this call takes about 1/3 of a second so don't use it in �7dloops.s���� ������������7d input0���P���>�������������7d9 process name (excluding exe which will be added for pc)������ �������������7d output���0�����������0001�7d boolean, is it running�09�.�����������EMak]%��@�������� ���ta���� ������������]1 �������F���4��������]���@��������� procArray���?���������8���&��������]�� procRunning���?���������6���$��������RRR] procArray��?������� �������������������k���� ���������7dcall it�P���>����������� ]�� �Run_FindProcesses�� procArray��� procRunning�RR����������������������������������������������������DFCC4DC�,n�"�����!�� ��,�7d setup arrayrf�8���&�����������] � SearchArray���@�����������>���,�������� ] SearchArray��?��������������>���,�������� ] SearchArray��@�����������������>���,������������ ] SearchArray��@�����������������>���,��������0001 ] SearchArray��@����������v���00�>���,��������EMak ] SearchArray��@������������� ���� �������������7dfind���N���<���������� ] List_Find��?����������������� � SearchArray��t����������������������������������DFCC4Dd��Z���H��!�� ��,�7dBUAM_Perm_ChangeACL places the changes to the user permissions intoME�\���J���������7dDthe ACL subtable. This code is linked to the [Model Variables] table��� ���������������7dfor now.������������������7d�zK���� ��������EMak�7d input0r��0����������������7d boolean (save record?)������� �������������7d output���,����������������7d none (ACL subtable)���.���������������]1 ���� saveRecords����&���������������] saveRecords ������������������������4���"�������������7ddelete all current subrecords���&���������������]�m �aclPtr�����>���,������������]�� �aclPtr�������������������&���������������]�= �aclPtr�����&���������������]�` �aclPtr�����&���������������]�m �aclPtr��������������������]����������������������2��� �������������7dadd in subrecords from list���J���8������������]userSize$� � arr2ColVars��?������������:���(������������]�i���?���������userSize$����&���������������]�H �aclPtr�����R���@������������ ]aclUsernamePtr@� � arr2ColVars��?���������i������������������]����������������������0����������������7dsave record if necessary����&���������������]� saveRecords����(���������������]�5 �tablePtrt��������������������]��������������������������������������������������DFCC4D ��r���`��'&��&&��gSQSetup the selections before the permissions are changed and restore things afterwSards.am�p���^����&�SQTechnically I just restores the default sort, can fix if people are really annoyeSd.c������ ��������ߥ(S input���<���*�����������S$ ptr to acl subtable (ACL subtable)7���>���,����R����S' ptr to acl username field (ACL field)�&�����������S ptr to table�0���������� S ptr to field to sort by�e���� ����������[S output�V���� ���������� S none�t�l���Z����������[�- @�� @�� @�� @��@aclPtrD�@aclUsernamePtrz�@tablePtr$�@fieldPtr$��d�.�����������0001@@�7@������������00�"�����������EMak@aclPtr�7 @��r�*���������������@aclUsernamePtrz7 @����$�������P����@tablePtr$7 @����$�������P����@fieldPtr$7 @�����������P�����@���(�������P�@aclPtr�7@���� �2��� ����P�@aclUsernamePtrz7@�����*�������P�@tablePtr$7@�����nk�*�������P�@fieldPtr$7@������������P�@���������P������&�������P�Ssave highlight�8���&����P� @List_HighlightSave7@tablePtr$����������P�������*�������P�Schange permissions�>���,����P�@@�w�lCurHigh��7@�������������T���B����P� @UAM_Perm_Dialog@aclPtrr�@aclUsernamePtrg�@tablePtr$�))��������P�@JJ�R���@����P� @ Alert_Alert@�?��������@�@��������@�@�����������������P����@�����������P�������4���"����P����Sresort and restore highlight���H���6����P����� @List_HighlightRestore@tablePtr$�@fieldPtr$�����������������������DFCC4D(� ;�N���<��'��&��b$7Asserts show debug warnings when a condition is not met�R���@��������2��b$;while not littering the final code with stops. In a release���V���D�����������b$?build just remove the stop from this code and everything is ok.������������������b$������� ��������b$ input�M� ���������������b$ boolean������ �����������b$ output������ ��������/b$ none�*�����������d1 @��@assertD��m�"�����������@assertD @���������������*��������������@ @�" @assert�������������������@�����������������@����������������������������DFCC4DA��b���P��"��!��,�7dJeList_Find sets up the arrays for the find dialog for the eJournal Library�um��������������� ��"���������������7d setup array���8���&�����������] � SearchArray���@����������>���,�������� ] SearchArray��?�������==���������>���,������������ ] SearchArray��@��������==���������>���,������������ ] SearchArray��@��������==������������ �������������7dfind=���N���<������������ ] List_Find��@������������������ � SearchArray���������������������������������������������DFCC4DC��"�����"��!��,��/�������rf�2��� ����������]�1��������������=�������������������������DFCC4DI[+��2��� ��&\��%\��gSset permissions via dialogDT�f���T����������� �List_Permissions@�!����@�!����@������ @eList_SortFieldPtr-��������������000100��������������������������������������������������������������DFCC4D.8�U�f���T��&\��%\��gSOdelete eJournals, this is very dangerious, don't do this if any other processesZ�@���.��������S(are open the depend on the eJournal list������������������S������� �����������S input���� �����������S nonep_���� ������������S output������ �����������S none����������������������F���4����L�aaaaS/setup the sets to remember the existing records�6���$����L������t@������w�l eListViewSet~����&�������L�����@�vw�lUserSet����������L�������b���P����L�����SKdon't delete if any other windows are open, and there are records to delete���:���(����L�����@@�L@�������~@������������ra�:���(����L���@@�L@�������@�?������������ ����L�����@s~w�l�~>��������L����@������ ����L�(4@s~w�ls���������L�����@ �V���D����L�@��� @Alert_ParamText@� @�L@��������@s�w�l�~�w�l�~����R���@����L����� @ Alert_Alert@�@���������@�@��������@�@������������0�������L�����@ @OK��@�?������������� ����L�>� Sdelete��"�������L�����@�B@���������>���,����L�����S&check for locked records, return error ���@���.����L�����@@�w�l LockedSet����@���������������R���@����L����� @ Alert_Alert@�?��������@�@��������@�?������������������L����A@����������L�����@����������L����@�����������L����������� ����L�����Scleanup���,�������L����@�vw�l eListViewSet~����,�������L�����@�uw�l eListViewSet~����Z���H����L����� @eList_ActiveSort @eList_SortFieldPtr~� @eList_SortNamed������&�������L����� @JournalArray_Init�����������L�������������������������������������������������������DFCC4D7NX>�4���"��"��!��,�7dset permissions for eJournal����L���:����d�� ]UAM_Perm_Dialog���!�������!��������������������������������������������������������DFCC4D99�S#�T���B��"��!��,�7d=Monitor keydowns to prevent invalid eJournal names. This code���\���J��������7dDis called directly by the eJournal ID section. Don't allow duplicate.��*��������MUTX�7dname or blank names���2��� ����"���]%��@���������temp��e�*�������N��]1�dup��short�er���������������,��(��������������]���$�������6���$����~�����7dcheck for too show eJournal IDs�$������������]temp.��������f���T�����������] � Unique_Fieldi���������temp������������p��?������������ �����]dup.��������������]7d���� ������������]dup.��or������������{s]t�������������000100�$�����������EMak�7d check length��b�:���(������������]�����������@������������ ������������� ]short.���n�������������M�o]�e� ���������������]short.�����������������n�t]���������������r�o�c�2��� ������]�dup�� p�short����,������������]����.��#���������H���6��������� ]Alert_ParamText������������������������ ������������]�short����R���@��������� ] Alert_Alert��?����������@����������?�����������������������]�R���@��������� ] Alert_Alert��?����������@����������?���������������������]������������]������������]������������������������������������������������������DFCC4D<b��b���P��"��!��,�7dJCheck if a value is unique for a field. This check requires that the field�um�J���8����������7d2be indexed, but does not change the current record������������������7d�z������ ������������7d input0�&������������7d ptr to field�h���V��������0001�7dP ptr to value to check, warning the orignal value passed here will be modified!�23�T���B��������EMak�7d= longint record ID to check for match (pass -1 for no match)������ �������������7d output���\���J��������111�7dD longint: -1 = no match, 0 = matches value passed in, 1 = duplicate�@���.��������]- ��� ����fieldPtr$��valuePtr$����<���*��������)�] ��� �����recordID$��found��$��������������]fieldPtr$ ��or�$�����������]valuePtr$ ���$�������������;]recordID$ �� =������������� ADO]� �������������7ddo match��B���0���������� ]found��fieldPtr$)��valuePtr$)��u�6���$��������]�found����?���������0�����������]�found���recordID$�a�*�����������d]found������������������������///]f�*�����������]found��?�������?������������g]���������������]����������������������$����������������7d return value���� ��������������� ]���found��������������������DFCC4D�[%�f���T��%��$��gSNopen EVA to view a file, assumes EVA is in /Applications/EdGCM Helper Apps/EVAZ����������S����� ������������S input���&��������������S path to file���.��������������^%��@�������� ����@���.����Ϊ�0001^%��@���������filePath$��path(�13�$�������Ϊ�EMak^filePath$ ���S���������Ϊ�������� �������Ϊ��s�hSmake doc���B���0����Ϊ��� ^path( � PM_FindFolder� applications��i�F���4����Ϊ����^path( � PM_MakePath�path(��EVA������J���8����Ϊ�����^path( � PM_MakePath�path(��EVAtmp@����)�4���"����Ϊ����^��path(�� $�������"�������Ϊ����^��path(����������Ϊ�zzz^zz�.�������Ϊ�^fileRef� �path(��2��� ����Ϊ����^�g�fileRef��filePath$���$�����������^ �fileRef���������������$�����������S set doc type�2��� ��������^#� PM_Platform� $�����.�����������111^�path(��EVA_��.�����������^�path(��EVAl�������������^�D���2��������^��path(���.edgcm@�� $�����2��� ��������^��path(���.edgcm����������������^���J���8��������^�path(���.TXT��path(���.edgcm �������������^�������������� �����������Sopen doc��2��� ��������^#� PM_Platform� $�����2��� ��������^ignore��.�)�path(�������������^f�B���0��������^ignore��.�)�path(���.edgcm@��G������������^ ��������������������������������DFCC4D7z�&�������������"0 setup array "De�:���(�����������M SearchArrayM�@�������MM���@���.����������� SearchArrayM�?�������MMMM����M�4�@���.���������d�d SearchArrayM�@��������MMMM����M�4�@���.������������ SearchArrayM�@��������MMMM����M���@���.����������� SearchArrayM�@�������MMMM�v���M���@���.���������d�d SearchArrayM�@�������MMMM����M ���� ����^8�d�d"0find "���P���>���������d�d List_FindM�?�������MM�����MM SearchArrayMM����������������DFCC4DGI�$�������������� List_ShowAll�7{��������DFCC4DL�k�5�"��������  List_Delete������������DFCC4D�8g�"�����$��#��g������rf�"�����������i��^���������"��������������^���������"��������������^������nu�*���������������^������?����������0������������� ^ HelperAppse��?��������a�"�����������0001^�5�������00�"�����������EMak#^Use_EVA������������������������������������������������������������DFCC4Dv�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e����������2�2�^T�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn������������������������������������������������������������DFCC4D9'����������������*�����������nera�@$�����:���(����������� xml_button �@��������������8���&������������[�@Y�p DontReplace�������������������6�8���&������������[�@Y�p DontReplace����������������������2��� ������������ xml_button ��������������*����������������@$���2��� ������������ xml_button �@������������������������ ������������������������DFCC4D '����������������*���������������@$���2��� ������������ xml_button �?������������������� ��������������key>ff����DFCC4D/`'���������������6�*���������������@$���2��� ��������nera xml_button �����������������������ff ��������������Yj������DFCC4Dj1B���������������*���������������MMM�M@$M��MM������������������>���,������������MM MFindMasterFormb�M@M�?�������MM���F���4����\���� Mx�dFind FieldToSearchM FieldToSearchMM���>���,������������MM MFindMasterFormb�M@M�@��������MM���L���:����������� Mx�dFind FieldToSearch eListM FieldToSearchMMSe��������s�������4���"����������� FieldToSearchMM�?�������M����������������"����������������������DFCC4D6 &�������������d�d�*������������d�d�$���B���0���������d�d � dFind SearchTypek SearchTypea�2��� ���������d�d SearchTypekS@���������������������d�dM��������������������������DFCC4DQ�.� &�:���(���������d�d ARRAY STRING(80;FieldToSearch;0)���6���$���������d�dARRAY STRING(80;SearchType;0)���������������d�d���L���:���������d�d2LIST TO ARRAY("dFind FieldToSearch";FieldToSearch)���F���4���������d�d,LIST TO ARRAY("dFind SearchType";SearchType)?��������������DFCC4DA����������������������������������������������������DFCC4D0�,�i)�*������������d�d InfoText_LinkSearch��DFCC4DN �E�0������������� InfoText_LinkListToSearch�������������������������������������������������������������DFCC4D"�i'�(������������� InfoText_LinkAdd\p����DFCC4D �L�/Y=�*�������X �� InfoText_LinkRemove��DFCC4Di����������������������������������������������������DFCC4DT�,�3���������������*�������L������p$����(����������������� �LinkModeLO��������������������8���&������������� �LinkModeL�p��?����������8���&��������� � FieldList�p��?����������0�������������| � FieldList��?���������������������ff��M�8���&������������� �LinkModeL�p��@�����������0��������������� � FieldList����������������������������������.�����������DK@��/ � LinkTablePtrn���V���D���������;$�S �InfoText_LinkFieldPtr � FieldList � SearchListe��������������������M_������DFCC4D[09�������������d�d����,�����������d�dF����FF� MAC001gC9Fp�<���*��������d�dFFF�����FF�����FF�MAC@�FF���$�����������d�dF�FF�����FF ������DFCC4D!����������������������������������������������������DFCC4D&<�{?������'+��&+��g�(�����������{��@�$@���������������������M�6���$�����������S initialize the busy meter to 0���(���������������@ @ vBusyMeterB����0��������������� @ vBusyMeterB-@����������������������ߺ��������F���4����ߺ����S/ set the timer to execute each 15th of a second���(�������ߺ�����@@�@�������������������ߺ��������(�������ߺ�����@@�$@��������������ߺ������ �b���P����ߺ����SJ if the busy meter's value is less than 100, add to it, otherwise reset it@��8���&����ߺ�����@ @ vBusyMeterB�wl@�@�����������B���0����ߺ�� @ vBusyMeterB- @ vBusyMeterB�-�@�@�����������������ߺ�����@���0�������ߺ�d @ vBusyMeterB-@�����������V��������ߺ�����@�����������ߺ�������&�������ߺ�����Semergency exit@��,�������ߺ�����@@�x @"�x @3�����������ߺ��L@���������ߺ�����@�����������ߺ��������(�������ߺ�����@@�$@�� ������������ߺ��������D���2����ߺ�����S, just cancel it if it is called from outside����������ߺ�� @����������ߺ���������������ߺ����@��������������������������������������������������������������DFCC4D4Z����������������������������������������������������DFCC4D|����������������������������������������������������DFCC4DD��������������d�d""���*������������d�d"""�"$"�� ""���,������������d�d "InfoText_DragAndDrop�"���*������������d�d"""�"$"�� ""������n���������d�d "InfoText_DragAndDrop�"" "Pict1"" "ItemName_""I?�������""" " ItemCaption""I?�������"""�4�@���.���������d�d "Title1�" " ItemCaption""I?�������"""�������������d�d""������������������������������������������������������DFCC4D.kg�f�0������������d�d"3Hgo the previous figure�"��R���@���������d�d "InfoText_CaptionPrevNext�" "figNumx"�"f"f?�������""�����������������������������������������DFCC4D<-��<X�,������������d�d"3Hgo the next figure�"���N���<���������d�d "InfoText_CaptionPrevNext�" "figNumx""f?�������""��������������������������������������������������DFCC4D\Z_{�2��� ���� ���� Info_iPhoto_PasteSaveAsMenu����������������������������������������������������������DFCC4Df����������������������������������������������������DFCC4Du����������������������������������������������������DFCC4DR�<4��������������v�*������������d�dfff�f@$f��ff�������������d�d ���������A�d�d����������������������������������������������������������DFCC4DB����������������������������������������������������DFCC4D%����������������������������������������������������DFCC4D����������������������������������������������������DFCC4Dq8T�������������d�d �*������������d�d�$���(������������d�d bNeedRedraw��������������d�d������������������������������������������DFCC4Dop����������������������������������������������������DFCC4D[�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e��������2�2�^~�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn������������������������������������������������������������DFCC4Dg����������������������������������������������������DFCC4DG�������������d�d6�*������������d�d�$���(������������d�d mNeedRedraw�i�������������d�d������������������������������������������DFCC4Df ����������������������������������������������������DFCC4DB2�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e����������2�2�^�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn������������������������������������������������������������DFCC4D,�8���&���������d�d���� Capitalize����������������������������������������������������������DFCC4Dw'����������������������������������������������������DFCC4DlZ/�������������d�dP�*������������d�d�$�����(������������d�d tNeedRedraw���������������d�d������������������������������������������DFCC4D=����������������������������������������������������DFCC4D*����������������������������������������������������DFCC4Dw�������������d�d6�*������������d�d�$���(������������d�d mNeedRedraw�i�������������d�d������������������������������������������DFCC4Dm�������������d�d6�*������������d�d�$���(������������d�d mNeedRedraw�i�������������d�d������������������������������������������DFCC4D Zi#_�������������� �*�����������   � @$ ��  ���(���������������� � �� Subject er������������l mlI����������������������������������������DFCC4D:�.$E��������������um�*���������������}��}@$���}}���b���P��������L�}}�} �Years}�}@������������}�}@} �Years�}@������������}}}�:���(�������������� ��}�� } �Years} �Years}}}�����������������������,������������������ ��}���������������������������������I������������������ ��������������������DFCC4D"r:�������������� �*�������������   � @$ ��  �(��������������� � �� Keepers rs���������������le����������������������������������������DFCC4D�|������"R��!R��,,\�(�����������5��^���:$�������4���"�����������^ �Months�����������������&��������������^� � �� �Months��������������^�*�����������0001^� � ����@�������00������������EMak^ S����������������^������������������������������������DFCC4DM�v�2N�,������������d�d "Cleanup_ShowRunFolder"PDFCC4DW�,#2�&����� �� �� Cleanup_Deletee}�,�������������� ]Cleanup_UpdateNumbers]������������������������DFCC4D�q"�������������d�d"" �*������������d�d"""�"$"��""�2��� ���������d�d " CurrentSpaceD" "CurSpacep"�������������d�d""I������������������������������DFCC4D)�2������%��$��g�GT�(������������� �@�$@�� ��r�0��������������Supdate records & values ��P���>�����������@�@������ @Run_Critical_GetRunN;@�@�������������*���������������SSafe_CurrentState ���*�����������EMak @Cleanup_UpdateNumbers I�8���&������������ @Cleanup_SetYearsList8 @Years����(��������0001@@�$@���07�.��������EMakSsetup record & values ta�P���>���������@�@������ @Run_Critical_GetRunN;@�@�������������*��������SSafe_CurrentState �*������������ @Cleanup_UpdateNumbers�8���&�����111 @Cleanup_SetYearsList8 @Years������������$��������S setup values�&��������RRR @Keepers@� � ����&����������� @Subject@� � ���H���6��������@� @Months��@�?��������@ @Months����6���$�����������@ w�l Months Full� @Months��R��������������(���������������Sunset checkboxes���� ������������@�� ��@��� ���������������@�� ��@���� ���������������@�� ��@���� ���������������@�� ��@�������������������@����������������������������������������������������DFCC4D{�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e� ��������2�2�^�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn `����������������������������������������������������������DFCC4Dk#�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e����������2�2�^ �^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn�[����������������������������������������������������������DFCC4DS��"������������� Flux_Start����������DFCC4Dl�� ������������� Flux_End@�������������DFCC4D<q�*�����������^N>,s�s@$��ss�6���$����ccntl�� ��ss� s sRSFs sRSFsss�����������������hlu��������������������������������������������������DFCC4D��&�������)6^N>, OHT_Setup���&�������p ^N>, OHT_Vertflux_I��������������W��HT������DFCC4D��&������������� OHT_SetupO�$��������������� OHT_Atrans_I��������������������������������������������������������������������������������DFCC4D|��&��������������� OHT_Setup�"������������� OHT_Nov30_I�������������mous������������DFCC4D{��~�&������������� OHT_Setup�$��������������� OHT_OTSpec_I�������������d�d��������DFCC4Dl��~�&������������� OHT_Setup"� �����������^N>, OHT_RSF_Icn����������������HT������������DFCC4D8/�,�.����� 9�� 9���( ( OHT_Setup�@���$�������������� ( OHT_Deepocn_I(��������Ǫ����((DFCC4D= �=��������f0���*�������mp@^N>,OOO�O@$O�� OO�&�����������^N>, Flux_LoadRecord���*��������P��OOO�O@$O��OO���&�������������� Flux_LoadRecord���������������������������������������DFCC4DC�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e��������2�2�^n�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn������������������������������������������������������������DFCC4D8����������������������������������������������������DFCC4D<�mG�(�����b�� b�� �PostProcessing_TabsTX����DFCC4Dp��$������'��&���x�(��������������� @�$@�� ������������������@on�z���h�����������@ #@PostProcessing_Button��P@�?��������wX.fix list to match selection when changing tabs���:���(������������#@PostProcessing_Button@��������������`���N��������0001@ #@PostProcessing_Button�@������������wXupdate for different run�21�(�����������EMak @Run_PostProcessing4D�2��� ������������ @PostProcessing_SetYearsLists���0�����������aaaa @PostProcessing_SummaryLists�0��������������� @PostProcessing_Tab �X����(��������������@�� handle toolbar ���2��� ��������D @PostProcessing_ExternalButton��������������)@��(�����������d@ @�@�����������(���������������@ @�$@������0�����������@���`Ddo we need this call? ���(��������������� @PostProcessing_Load��(��������������� @Run_PostProcessing���2��� ��������� @PostProcessing_SetYearsLists���0��������������� @PostProcessing_Tab �X�,�(���������������@ @�$@������*��������������� @PostProcessing_Timer(�����������������@������������������������������DFCC4D����������������������������������������������������DFCC4D�d�(D�<���*���������d�d "Info_iPhoto_Select�""I?�������""��������������������������������������������������DFCC4Dz�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4Dg�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4DriD`�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dq�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DUI�l�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Db:�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DS�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D_�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D5r�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D;pB0�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D!�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DK�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dn�M�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DFp�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D, "�Ea�@���.���������� Info_iPhoto_ChangeViewee�@��������ee�4��������������������������������������������DFCC4DT�.��������������d�d""�*������������d�d"""�"$"��""���(������������d�d "Info_iPhoto_Load"�*������������d�d"""�"$"�� ""���*������������d�d "Info_iPhoto_Button�"���������������d�d""������������������DFCC4Dl Dmv������ �� ��������������������������DFCC4Dk,�,�T���B�� �� �� InfoText_FullPrevNext � SectionNumber������?�����������������������������������DFCC4DyH�,�P���>�� �� �� }InfoText_FullPrevNext � SectionNumber���?��������������������������������������DFCC4DJ ������ �� ����s��������������������DFCC4D�=��������P��^�*�������P����QQQ�Q@$Q��QQ���(�������P���� Info_iPhoto_Load��*�������PMenQQQ�Q@$Q�� QQ���*�������P���� Info_iPhoto_ButtonQ����������P���� ����������������DFCC4DC_{�2��� ���� ���� Info_iPhoto_PasteSaveAsMenu����������������������������������������������������������DFCC4D S��h�*��������� �Info_iPhoto_Import2���DFCC4D+�P�(�8���&��� �2�2�^�s�ss����������le�$������ �2�2�^ vRecNum�v�ep0��������2�2�^p0�\���J�����2�2�^ vRecNum� �s��s�s of m��s� �Lsre������� �2�2�^np����DFCC4DM����������������������������������������������������DFCC4DD�� �����"��!��, ] eList_FindLbp������������DFCC4Di��"�����"��!��, � eList_ShowAllrf����������DFCC4DrSRn�B���0����f�� eList_ActiveSortRR����Rx�TitleRR������������������������������������������DFCC4D �i'�F���4����g�� eList_ActiveSortRR����Rx�eJournal�RR����������������������������������������DFCC4DPE�i'�D���2����f �� eList_ActiveSortRR����Rx�AuthorPRR0+����������������������������������������DFCC4D*+��&�����"��!��, ]eList_Permissions�������DFCC4D97�,�"�����"��!��, ] eList_Deleteirf����������DFCC4DxL/��0�����&\��%\��gSevent handling for eList�SH��������l���������H���6���������� �@�$@���wO8block double clicks for now�t�X���F��������S@ Filter the double-click so that it does not pass through to 4D.�J�D���2�����������S, This stops 4D from showing the input form. ������������������@A���(�����������0001@@�$@���07�J���8��������EMak @eList_ActiveSort�@�����w�leJournal����ie�r���`������������@@�$@�� �wO8Dan external call means to do the queries specified in the simulation���N���<������������ @List_OutsideFind#@Simulation_ProcessID(��@���������(��������������@@�$@�����@���.������������@@�@�@���������@���������������j���X������������@t��w�lrow_@�@������������@ ���wO8 Black on white for even row text������������������@��n���\������������@t��w�lrow_@�@������������@ ���wO8$Black on light blue for odd row text�����������������@w ����������������@��������������������������������DFCC4D5Dmv������ �� ��������������������������DFCC4D 7�p�(����� �� �� �InfoText_FullPrev�������DFCC4Dk^�`�(����� �� �� �InfoText_FullNext�������DFCC4D?��(�����'A��&A��g�� @ SectionText�TX����������������@����������������������������������������������DFCC4D6{�@���.����`���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D;{�@���.����������� InfoText_CaptionDialog�@����������������������������������������������������DFCC4DG {�@���.����������� InfoText_CaptionDialog�@��������4����������������������������������������������DFCC4D\{�@���.����������� InfoText_CaptionDialog�@����������������������������������������������������DFCC4DD�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D~�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D*O�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DD�Z�2�@���.����������� InfoText_CaptionDialog�?��������4��������������������������������������������DFCC4DO�Z�2�@���.����������� InfoText_CaptionDialog�@���������4��������������������������������������������DFCC4D.O�Z�2�@���.��������ff InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D)�R�:�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dvm�R�:�@���.���������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DB4�R�:�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DZ�@�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dc���@���.���������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DYs�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DF(s�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dc ��@���.������������ InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D �b��@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D/#_�@���.��������nera InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4De_�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DT_�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D�b��@���.����˖���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D#$�b��@���.����j���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D^s�b��@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D;0�b��@���.��������ff InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DQ���@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D/���@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DR���@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DZl���@���.����Ŵ���� InfoText_CaptionDialog�@����������������������������������������������������DFCC4D;s.�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DA�~�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D&I+�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D=u�R�:�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D6&s.�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DEs.�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DUs.�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dks.�@���.������������ InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D=ns.�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DR s.�@���.����8���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dzs.�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D8�,�K�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DjM�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D|M�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D.M�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DTM�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D?M�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D#M�@���.����"���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DM�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D{�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D{�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D3{�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DJ{�@���.����l���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D{�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DVJ{�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4DS{�@���.����������� InfoText_CaptionDialog�@�������nD��������������������������������������������DFCC4D{�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D{�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D{�@���.����`���� InfoText_CaptionDialog�@�������nD��������������������������������������������DFCC4Du[{�@���.����R���� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Dj{�@���.�������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4Df�@���.����������� InfoText_CaptionDialog�@��������4��������������������������������������������DFCC4D� m�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4Dl?���@���.����@���� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4Dfw�m��@���.�������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4DwM�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4DYA�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4DW�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D �R�:�@���.�������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4DEX�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4Di�R�:�@���.��������MUTX pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D1�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp���������������������������������������������DFCC4Dk=�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D5�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D}*�R�:�@���.��������ffff pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D&k�R�:�@���.����>���� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D ,�R�:�@���.�������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4Dy�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D6�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D4�R�:�@���.���������� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4D^ �R�:�@���.����,���� pInfoText_CaptionDialogppp�@�������pp�4��������������������������������������������DFCC4Dm�R�:�@���.����������� pInfoText_CaptionDialogppp�@�������ppnD��������������������������������������������DFCC4D7O4�0�����"��!��, �InfoText_eJournalID_KeydownSH������������������������������������������������������������DFCC4Dbr����������������������������������������������������DFCC4D% �;N>�0���������� (InfoText_Abstract_Keydown(�������������������������������������������������������������DFCC4DEG����������������������������������������������������DFCC4D'����������������������������������������������������DFCC4DI8����������������������������������������������������DFCC4Dm����������������������������������������������������DFCC4D|����������������������������������������������������DFCC4D 0����������������������������������������������������DFCC4D ����������������������������������������������������DFCC4D}UR����������*�����*��������������[���$��������2��� �������*[�l��t��r��b���F���4������������[�P���B8_Text��l��t��r��b�����T���B��������[�b�P�t�P��@��������if enlarged then shrink5{�~���l��������[�P���B8_Text�����������������������������������������t��`��@��������P�b��������������������[[nf����������������[["����������������������������������������DFCC4D)����������������������������������������������������DFCC4DW����������������������������������������������������DFCC4DfN����������������������������������������������������DFCC4DO����������������������������������������������������DFCC4DaE����������������������������������������������������DFCC4Dd����������������������������������������������������DFCC4DhP����������������������������������������������������DFCC4D6����������������������������������������������������DFCC4D|C����������������������������������������������������DFCC4Df@����������������������������������������������������DFCC4DU����������������������������������������������������DFCC4Dt'����������������������������������������������������DFCC4D�`�0�����'0��&0��g �InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Db'�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dm7�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D M�J���8���������� InfoText_Switch2�?����������������������������������������������������DFCC4D9��f�����������������������������������DFCC4D���f���T���������� InfoText_SwitchOrder�?��������@����������������������DFCC4D%M�J���8����֙��� InfoText_Switch2�?��������?�����������������������������������������DFCC4D�Z�2�@���.����������� InfoText_CaptionDialog�@���������4��������������������������������������������DFCC4D�>���,���������d�d "InfoText_AddSub""I?�������""�""������������������������������������������������DFCC4D\O�>���,���������d�d "InfoText_AddSub""I?�������""�""������������������������������������������������DFCC4DY�>���,���������d�d "InfoText_AddSub""I?�������""�""������������������������������������������������DFCC4DM�b��>���,����������� )InfoText_AddSub))�?�������))�))������������������������������������������������DFCC4DDz�b��>���,����������� )InfoText_AddSub))�?�������))�))������������������������������������������������DFCC4Dp�b��>���,����������� )InfoText_AddSub))�?�������))�))������������������������������������������������DFCC4DQ�,�{b�>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4D& �,�{b�>���,������������ InfoText_AddSub�@���������������������������������������������������������DFCC4DU7�,�{b�>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4DX�,�{b�>���,���� !�� InfoText_AddSub�@���������������������������������������������������������DFCC4D3M�,�{b�>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4Dh�,�{b�>���,����������� InfoText_AddSub�@���������������������������������������������������������DFCC4DXc�,�{b�J���8����������� InfoText_Switch2 �@�������������������������������������������������������DFCC4Dv�}a�f���T����`^N>, InfoText_SwitchOrder�?��������@������������������������DFCC4D:�m0�f���T�������� InfoText_SwitchOrder�@���������@������������������������DFCC4D~ZC�J���8����������� InfoText_Switch2X�@���������?�����������������������������������������DFCC4D t�b��>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4D�b��>���,��������^N>, InfoText_AddSub�@���������������������������������������������������������DFCC4Dg�b��>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4DJ�b��>���,��������^N>, InfoText_AddSub�@���������������������������������������������������������DFCC4D �b��>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4D7[�b��>���,���������� InfoText_AddSub�@���������������������������������������������������������DFCC4D0�m0�J���8���������� InfoText_Switch2�@�����������������������������������������������������DFCC4DCP�b��f���T��������^N>, InfoText_SwitchOrder�@���������@������������������������DFCC4DHs"�f���T���������� InfoText_SwitchOrder�@���������@�����������������������DFCC4Dy?��J���8���������� InfoText_Switch2�@���������?�����������������������������������������DFCC4DJs�J���8���������� InfoText_Switch2��@������������������������������������������������������DFCC4D�'*�f���T����������� InfoText_SwitchOrder�@���������@�����������������������DFCC4D8s�f���T����������� InfoText_SwitchOrder�@��������@������������ �����������DFCC4D]os�J���8���������� InfoText_Switch2�@��������?�������������������������������������������DFCC4D�l�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D|=�l�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dt�M+�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D=�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4DV�l�>���,������� InfoText_AddSub�@��������������������������������������������������������DFCC4D<�d�(D�>���,����������� InfoText_AddSub�@��������������������������������������������������������DFCC4DC\���J���8���������� InfoText_Switch2�@����������������������������������������������������DFCC4D<'���f���T���������� InfoText_SwitchOrder�@��������@������������ �����������DFCC4D#)���f���T���������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D-���J���8���������� InfoText_Switch20�@��������?�������������������������������������������DFCC4D���>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4DOV���>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D �,�{b�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4DgQ���>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D=���>���,��������^N>, InfoText_AddSub�@��������������������������������������������������������DFCC4D�,�{b�>���,����������� InfoText_AddSub�@��������������������������������������������������������DFCC4D"?�,�{b�J���8���������� InfoText_Switch2�@����������������������������������������������������DFCC4DH�,�{b�f���T���������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D#�,�{b�f���T���������� InfoText_SwitchOrder�@��������@�������� ���� �����������DFCC4DJ �,�{b�J���8����������� InfoText_Switch2�@��������?�����������������������������������������DFCC4D/:s��>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4DP^�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D���>���,����0�� InfoText_AddSub�@��������������������������������������������������������DFCC4D&��d�(D�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D �R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dv�d�(D�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D>?�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DG�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D �p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D|?�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D(�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dx�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D]�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D1t�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DC�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Db�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DVq�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DE�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dh�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D!�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DM�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D(�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dc�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D\@�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DO>�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DD�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D;�V�J���8����������� InfoText_Switch2�@����������������������������������������������������DFCC4D?�V�f���T����������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D �V�f���T����������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D:�V�J���8����������� InfoText_Switch2�@��������?�����������������������������������������DFCC4Dos.�>���,����������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dns.�>���,�����^^ InfoText_AddSub�@��������������������������������������������������������DFCC4Dys.�>���,�����MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4Ds.�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4D@s.�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dbs.�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dd�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D8u�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Da�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D|�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D.z��k�>���,��������MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D%�d�(D�>���,����.�MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4DP�d�(D�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4D"��k�>���,����&��� InfoText_AddSub�@��������������������������������������������������������DFCC4Df�d�(D�>���,����2�MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D�R�:�>���,��������MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D2�R�:�J���8�����MUTX InfoText_Switch2d�@����������������������������������������������������DFCC4D<"�R�:�f���T����������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D)�R�:�f���T�������� InfoText_SwitchOrder�@��������@�������� ���� ���������DFCC4D$!f�J���8��������� InfoText_Switch2d�@��������?�����������������������������������������DFCC4DZz�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4De^�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D\�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dq�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D$�d�(D�J���8��������� InfoText_Switch2d�@����������������������������������������������������DFCC4D@�R�:�f���T�����^^ InfoText_SwitchOrder�@��������@�������� ���� �����������DFCC4DD�d�(D�f���T����d�Z^ InfoText_SwitchOrder�@��������@�������� ���������������DFCC4DT�d�(D�J���8�����MUTX InfoText_Switch2d�@��������?�������������������������������������������DFCC4D(�'.�>���,�����MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D�8�>���,����������� InfoText_AddSub�@��������������������������������������������������������DFCC4D(0�R�:�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4D5�d�(D�>���,��������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dt�R�:�>���,�����s{ InfoText_AddSub�@��������������������������������������������������������DFCC4D�R�:�>���,�����s{ InfoText_AddSub�@��������������������������������������������������������DFCC4DJo�p:������&\��%\��gd�(�������������@�$@�� ��F�*�������������� @InfoText_DragAndDropx���(�����������@@�$@�� ������n�������� @InfoText_DragAndDropx� @Pict37x�� @ItemNameI�@�@�������,�� @ ItemCaption�@�@�������,�y�0������������STitle37:=ItemCaption{37}���������������@����������������DFCC4D"H�p:������&\��%\��gd�(�������������@�$@�� ��F�*�������������� @InfoText_DragAndDropx���(��������������@@�$@�� ������n����������� @InfoText_DragAndDropx� @Pict38x�� @ItemNameI�@�@�������&�� @ ItemCaption�@�@�������&�y�0���������������STitle38:=ItemCaption{38}���������������@��������������DFCC4D <�p:������&\��%\��gd�(��������������@�$@�� ����*��������������� @InfoText_DragAndDropx���(�����������@@�$@�� ������n������������ @InfoText_DragAndDropx� @Pict39x�� @ItemNameI�@�@�������O�� @ ItemCaption�@�@�������O����0���������������STitle39:=ItemCaption{39}�������������������@����������������DFCC4D\�p:������&\��%\��gd�(��������������@�$@�� ����*�������������� @InfoText_DragAndDropx�(��������������@@�$@�� ������n������������ @InfoText_DragAndDropx� @Pict40x�� @ItemNameI�@�@�������d�� @ ItemCaption�@�@�������d����0��������������STitle40:=ItemCaption{40}������������������@����������������DFCC4D<�R�:�J���8����J�MUTX InfoText_Switch2x�@������������������������������������������������������DFCC4DUU�R�:�f���T�������� InfoText_SwitchOrder�@��������@�������� ���������������DFCC4D3�R�:�f���T����:���� InfoText_SwitchOrder�@��������@���������������������DFCC4DU*�R�:�J���8��������Z^ InfoText_Switch2x�@��������?�����������������������������������������DFCC4DM�>���,�����s{ InfoText_AddSub�@��������������������������������������������������������DFCC4D]dM�>���,���� �MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D@#M�>���,����v����� InfoText_AddSub�@��������������������������������������������������������DFCC4DM�>���,����Z�MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D4BM�>���,�����MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D<%M�>���,����v�MUTX InfoText_AddSub�@��������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D5�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D5�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D:^�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Db;�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DU�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Ds�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DX�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DZ�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D*�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D|�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D$�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D5�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D:�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DqL�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D$�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D��p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dj�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D9�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D@(�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Da�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dji�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D2�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dj�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dr�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DP�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dwa�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DJU�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D]�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D|&�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4Dhi�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4D A�p:�0�����'0��&0��g InfoText_ManagePict@4�SH������������������������������������������������������������DFCC4DK7�R�:�J���8����������� InfoText_Switch2(�@����������������������������������������������������DFCC4DN�R�:�f���T������������ InfoText_SwitchOrder�@��������@�����������������������DFCC4D!�R�:�f���T����B�Z^ InfoText_SwitchOrder�@��������@�����������������������DFCC4D|`�R�:�J���8����������� InfoText_Switch2(�@��������?�������������������������������������������DFCC4Dx��$�J���8����d�MUTX InfoText_Switch2\�@������������������������������������������������������DFCC4D9��$�f���T�������� InfoText_SwitchOrder�@��������@���������������������DFCC4D��$�f���T�����MUTX InfoText_SwitchOrder�@��������@���������������������DFCC4Dp��$�J���8��������s{ InfoText_Switch2\�@��������?�������������������������������������������DFCC4D6 ��$�J���8�����MUTX InfoText_Switch2�@����������������������������������������������������DFCC4D��$�f���T�����MUTX InfoText_SwitchOrder�@��������@�����������������������DFCC4D#k��$�f���T����Z����� InfoText_SwitchOrder�@��������@�����������������������DFCC4D1n��$�J���8����\����� InfoText_Switch2 �@��������?�����������������������������������������DFCC4Dm��$�J���8��������� InfoText_Switch2L�@����������������������������������������������������DFCC4Dc��$�f���T�������� InfoText_SwitchOrder�@��������@���������������������DFCC4D%��$�f���T�������� InfoText_SwitchOrder�@��������@���������������������DFCC4D>��$�J���8����.�MUTX InfoText_Switch2L�@��������?�������������������������������������������DFCC4D��$�J���8����8�MUTX InfoText_Switch2L�@������������������������������������������������������DFCC4DR_��$�f���T�������� InfoText_SwitchOrder�@��������@�����������������������DFCC4DH=�_}Y�f���T�������� InfoText_SwitchOrder�@��������@�����������������������DFCC4Dg=�_}Y�J���8����r�MUTX InfoText_Switch2L�@��������?�����������������������������������������DFCC4DH�v�2N�J���8����d�MUTX InfoText_Switch2 �@����������������������������������������������������DFCC4D�R�:�f���T����*�MUTX InfoText_SwitchOrder�@��������@�����������������������DFCC4D4�R�:�f���T����R���� InfoText_SwitchOrder�@��������@�����������������������DFCC4Dj�R�:�J���8�����MUTX InfoText_Switch2�@��������?�������������������������������������������DFCC4D9�R�:�J���8����R�^^ InfoText_Switch2��@����������������������������������������������������DFCC4D4�R�:�f���T������������ InfoText_SwitchOrder�@��������@�����������������������DFCC4D1�R�:�f���T����r�^^ InfoText_SwitchOrder�@��������@�����������������������DFCC4DXs�R�:�J���8����R����� InfoText_Switch2��@��������?�����������������������������������������DFCC4D;�R�:�J���8��������MUTX InfoText_Switch2L�@����������������������������������������������������DFCC4Dp�R�:�f���T��������Z^ InfoText_SwitchOrder�@��������@���������������������DFCC4Dc�R�:�f���T�������� InfoText_SwitchOrder�@��������@���������������������DFCC4D)�d�(D�J���8�����MUTX InfoText_Switch2L�@��������?�������������������������������������������DFCC4DH�BE^�J���8�����MUTX InfoText_Switch2L�@����������������������������������������������������DFCC4Dg�BE^�f���T�������� InfoText_SwitchOrder�@��������@�����������������������DFCC4DX�BE^�f���T�����Z^ InfoText_SwitchOrder�@��������@�����������������������DFCC4D�BE^�J���8��������� InfoText_Switch2L�@��������?�����������������������������������������DFCC4D-�J���8����X�MUTX InfoText_Switch2�@����������������������������������������������������DFCC4DR-�f���T�����Z^ InfoText_SwitchOrder�@��������@�����������������������DFCC4DJ6�R�:��������������������������������������DFCC4D/-�J���8��������� InfoText_Switch2�@��������?�������������������������������������������DFCC4Dm�b��>���,����������� )InfoText_AddSub))�?�������))�))������������������������������������������������DFCC4D:�9?�>���,����������� vInfoText_AddSubvv�@��������vv�vv������������������������������������������������DFCC4D]�9?�>���,����l����� vInfoText_AddSubvv�@��������vv�vv������������������������������������������������DFCC4D@^�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D:D�9?�>���,�������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D X�9?�>���,�������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4Dkp�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4DZ�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D[8�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D9�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4Df�9?�>���,�������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4DbO�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D!�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4DW�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4D)�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4DF�9?�>���,����������� vInfoText_AddSubvv�@�������vv�vv������������������������������������������������DFCC4DN�9?�>���,���� ���� InfoText_AddSub�@��������������������������������������������������������DFCC4D?9�9?�>���,������������ InfoText_AddSub�@��������������������������������������������������������DFCC4D �9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dj�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D�9?�>���,��������u� InfoText_AddSub�@��������������������������������������������������������DFCC4D �9?�>���,������ InfoText_AddSub�@��������������������������������������������������������DFCC4DK`�9?�>���,������ InfoText_AddSub�@��������������������������������������������������������DFCC4D|�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dm�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4DS�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dq�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D\�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D_�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dt�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Do�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dp�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D:'�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D3�9?�>���,����" �� InfoText_AddSub�@��������������������������������������������������������DFCC4Di�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D]|�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dg�9?�>���,����ȸ�� InfoText_AddSub�@��������������������������������������������������������DFCC4D �9?�>���,��������?�� InfoText_AddSub�@��������������������������������������������������������DFCC4D1�9?�>���,����͐�� InfoText_AddSub�@��������������������������������������������������������DFCC4DN�9?�>���,����}l ev InfoText_AddSub�@��������������������������������������������������������DFCC4D�9?�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D^s�>���,����p InfoText_AddSub�@��������������������������������������������������������DFCC4D2vs�>���,����A0 InfoText_AddSub�@��������������������������������������������������������DFCC4DQs�>���,�������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dn��<X�>���,�������� InfoText_AddSub�@��������������������������������������������������������DFCC4D(s�>���,��������@ InfoText_AddSub�@��������������������������������������������������������DFCC4Dm!s�>���,��������W InfoText_AddSub�@��������������������������������������������������������DFCC4Dd�R�:�>���,��������@ InfoText_AddSub�@��������������������������������������������������������DFCC4D�R�:�>���,�������� InfoText_AddSub�@��������������������������������������������������������DFCC4Did�R�:�>���,�������� InfoText_AddSub�@��������������������������������������������������������DFCC4D}�R�:�>���,��������W�� InfoText_AddSub�@��������������������������������������������������������DFCC4D\T�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D[%�R�:�>���,������������ InfoText_AddSub�@��������������������������������������������������������DFCC4D0�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dt�R�:�>���,��������?�� InfoText_AddSub�@��������������������������������������������������������DFCC4DU3�R�:�>���,����p���� InfoText_AddSub�@��������������������������������������������������������DFCC4DQ�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D -�R�:�>���,������ InfoText_AddSub�@��������������������������������������������������������DFCC4D�R�:�>���,����)���� InfoText_AddSub�@��������������������������������������������������������DFCC4DP�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D6��R�:�>���,����ܺ�� InfoText_AddSub�@��������������������������������������������������������DFCC4D*�R�:�>���,��������l ki InfoText_AddSub�@��������������������������������������������������������DFCC4Da�R�:�>���,��������W�� InfoText_AddSub�@��������������������������������������������������������DFCC4Dp�R�:�>���,��������l et InfoText_AddSub�@��������������������������������������������������������DFCC4D?�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D �R�:�>���,����&@�� InfoText_AddSub�@��������������������������������������������������������DFCC4DJ�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D:�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D*�R�:�>���,���� �� InfoText_AddSub�@��������������������������������������������������������DFCC4D|�R�:�>���,����@�� InfoText_AddSub�@��������������������������������������������������������DFCC4D8^�R�:�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Dr"s�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4Da�yE0�>���,����pA0 InfoText_AddSub�@��������������������������������������������������������DFCC4D<�yE0�>���,���������� InfoText_AddSub�@��������������������������������������������������������DFCC4D*8�yE0�>���,�����0�� InfoText_AddSub�@��������������������������������������������������������DFCC4D< �yE0�>���,����䓰�� InfoText_AddSub�@��������������������������������������������������������DFCC4D�R�:�>���,����>�� InfoText_AddSub�@��������������������������������������������������������DFCC4D=�jJ�:���(�� �� �� ^InfoText_FullOpen��?�������������������������������h���������DFCC4Di�{ �8���&�� �� �� �InfoText_FullOpen�������������ZR���������B��Z w���������ߖ�������������DFCC4D�,�:���(�� �� �� InfoText_FullOpen��@������������������������t�������������������������DFCC4Dsi�,�:���(�� �� �� InfoText_FullOpen��@������������������������n�������������������������DFCC4D2}�,�:���(�� �� �� InfoText_FullOpen��@����������������������������������(�����������DFCC4Dm�,�:���(�� �� �� InfoText_FullOpen��@�����������������������8����������������������DFCC4Dw�{ �8���&�� �� �� InfoText_FullOpen��@��������ZR����������������������������������M������������DFCC4D[�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4D7H�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4D9�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4DA�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR��������������77�������������������������������DFCC4DC�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR����������������M�������������o:Pasc������������DFCC4DIU�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4D.0�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR����������������M������������������������������DFCC4D+�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4D.�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������������������������������������������DFCC4D �{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������MUTX w������������������������������DFCC4D2Y�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�����������}� w�������������JRF1JR������������DFCC4Df�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR��������������U w������������������������������DFCC4Dl�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�����������}� w�������������������������DFCC4D�{ �8���&�� �� �� ^InfoText_FullOpen��@��������ZR�������������W�������������Z������������������DFCC4Dk��0rX�(������������d�d "InfoText_Manager"������DFCC4D~�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e��������2�2�^���^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn������������������������������������������������������������DFCC4DsN����������������������������������������������������DFCC4Dw�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e����������2�2�^ X�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nnp����������������������������������������������������������DFCC4D Y��P&l������������d�d��������������������������DFCC4DP�p�0����� �� ��������?�����������H���6�����MUTX [RundeckViewer_WriteToFile}#�Rundeck_Summary����������������t[[�F���4����������� [RundeckViewer_WriteToFile}#� Rundeck_Textu������������������[[����������������������������������������������������������DFCC4DM�S�������������������������������������DFCC4D)P�S�������������������������������������DFCC4D�p�������������*��������������[���$��� ����J���8�����������[���Simulation Summary: ��`#� Rundeck_Title�������������������[[������DFCC4D[����������������������������������������������������DFCC4D<W�������!�� ��,�e�(�����������]���$������*�����������#]TMP_Run_Recheck�����F���4�����������]��@��������update every two seconds���(���������������]���$�������@���.����������� ]Run_UpdateList@� �RunNumberArrayHiers�������������]��������������������������������������������������������DFCC4Di����������������������������������������������������DFCC4Dzn2aN�6���$���������d�d#"InfoText_Button""I?�������"���2��� ���������d�d"I"#"InfoText_ProcessID�""��DFCC4D8�d�(D�6���$���������d�d#"InfoText_Button""I@��������"���2��� ���������d�d"I"#"InfoText_ProcessID�""��DFCC4D[R�d�(D�6���$���������d�d#"InfoText_Button""I@��������"���2��� ���������d�d"I"#"InfoText_ProcessID�""��DFCC4DX>�d�(D�6���$���������d�d#"InfoText_Button""I@�������"���2��� ���������d�d"I"#"InfoText_ProcessID�""��DFCC4DY�RWk�6���$����W��#InfoText_ButtonMM�@�������M���2��� ����X@����IM#InfoText_ProcessIDMMM��DFCC4D"z��6���$����������#InfoText_ButtonMM�@�������M���2��� ����p���IM#InfoText_ProcessIDMMM��DFCC4D �0� �6���$����Ș����#�InfoText_Button��@�����������2��� ����Ȃ�����I#�InfoText_ProcessID��DFCC4Do�8���&���������d�d# Simulation_Button  S?������� ���4���"���������d�d I # Simulation_ProcessID$  ��������������������������������������������������������������DFCC4DI�d�(D�8���&���������d�d#JSimulation_ButtonJJS@��������J���4���"���������d�dJIJ#JSimulation_ProcessID$JJ��������������������������������������������������������������DFCC4Do�Q?m�4���"���������d�dE#Simulation_ProcessID��4���"���������d�dF#Simulation_ProcessID��8���&���������d�d#Simulation_ButtonS@�����������4���"���������d�dI#Simulation_ProcessID�ul������������������DFCC4D_��8���&���������d�d#Simulation_ButtonS@����������4���"���������d�dI#Simulation_ProcessID$��������������������������������������������������������������DFCC4Dd��<X�������������d�d���*������������d�d�$�����H���6���������d�d Toolbar_Disclosure�TSetsrT�������������������������d�d����������DFCC4Dj �*������������d�d Setup_ShowRunFolder��DFCC4Dd �g�������������d�d""���*������������d�d"""�"$"��""���F���4���������d�d "Toolbar_Disclosure�""�TIBC""T����������""���������������d�d""������������DFCC4D[_G�,������������d�d "Toolbar_IBPI_Keydown�"DFCC4D\�d�(D�������������d�d""���*������������d�d"""�"$"��""���H���6���������d�d "Toolbar_Disclosure�""�TIBPIr""T����������""���������������d�d""����������DFCC4DD�v�2N�������������d�d""et�*������������d�d"""�"$"��""���H���6���������d�d "Toolbar_Disclosure�""�TJList""T����������""���������������d�d""����������DFCC4D^�R-�B���0����������O#InfoPict_ProcessID�p������������6���$�������#InfoPict_Button�?����������2��� ��������I#InfoPict_ProcessID����������dPim��������������������������������������DFCC4D_R-�B���0����������O#InfoPict_ProcessID�p������������6���$����1���#InfoPict_Button�@�����������2��� ����1����I#InfoPict_ProcessID��������������dPim��������������������������������������DFCC4D R-�B���0����k��O#InfoPict_ProcessID�p������������6���$����k����#InfoPict_Button�@�����������2��� ����k����I#InfoPict_ProcessID������������Qim��������������������������������������DFCC4D4�R�:�B���0����������O#InfoPict_ProcessID�p������������6���$�����������#InfoPict_Button�@����������2��� ���������,~I#InfoPict_ProcessID��������P��P����������������������������������������DFCC4Du�qO�8���&����������#Simulation_ButtonKK�@�������K���4���"����T ���[IK#Simulation_ProcessIDKK��������������������������������������������������������������DFCC4Dw�qO�8���&����������#Simulation_ButtonKK�@�������K���4���"���������d�dIK#Simulation_ProcessIDKK��������������������������������������������������������������DFCC4D=!�qO�8���&����������#Simulation_ButtonKK�@�������K���4���"�����������IK#Simulation_ProcessIDKK��������������������������������������������������������������DFCC4D<���8���&����������#Simulation_ButtonKK�@�������K���4���"������������IK#Simulation_ProcessIDKK��������������������������������������������������������������DFCC4D;��<�8���&����;���#Simulation_Buttonvv�@�������v���4���"����;����Iv#Simulation_ProcessIDvv��������������������������������������������������������������DFCC4DQv�&������������d�d Sim_FastForwardH������DFCC4DOf��"������������d�d Sim_Rewindrd����������DFCC4Dg�v�2N� ������������d�d Sim_Pause������������DFCC4D24P�������������d�d���*������������d�d�$�����F���4���������d�d Toolbar_Disclosure�TSimT�������������������������d�d������������DFCC4D �c� ������������d�d Sim_Play��������������DFCC4D �#������%��$��gpGT�(�����������$��p@�$@������(�������������� @Run_Critical_Begin���V���D����0����#@ Run_DirtySets@��� (mark sets as dirty to list is recreated ��&�������0���� @Run_Critical_End�����������������@������������������������������������������������DFCC4D �������!�� ��,]H�(��������������]���$������� �������������� ] Run_Searchu��@���.�������� ]Run_UpdateList@� �RunNumberArrayHiers�� ������������]�������������????���������������������������������DFCC4DIWrN�.�������^N>, Toolbar_EJournal_Count����������������������������������������������������������������DFCC4D/�v�2N�(������������d�d "Toolbar_IBC_View"����DFCC4D n�(������������d�d "Toolbar_IBC_Sort"����DFCC4D7�-�����������������*�����������dTTT�T@$T��TT�d�*�������������� Toolbar_IBC_SearchT�"�����������at������������������������������DFCC4DO���������������*�����������dTTT�T@$T��TT�*�����������f�� Toolbar_IBC_SearchT������������hiob����������������������������������������DFCC4Dl7�o'�B���0����������#InfoPict_ProcessID�@��������������6���$������������#InfoPict_Button�@����������2��� �����������I#InfoPict_ProcessID��������ӅP��t_��������������������������������������DFCC4D�R�:�B���0���������d�d""#"InfoPict_ProcessID��"I"I����������""�6���$���������d�d#"InfoPict_Button""I@�������"���2��� ���������d�d"I"#"InfoPict_ProcessID�""�������������d�d""����������������������������������������DFCC4D vg�������������d�d�����*������������d�d�����$��������&������������d�d �SetArray_Manage��;�������������d�d����������������������������������������������DFCC4Dy �P���>��^�� ^���#(PostProcessing_Button(�@�������\_tcreate new set \m�8���&�����������(I#(PostProcessing_ProcessID������������������������������������DFCC4DR��8� �����^�� ^��� ( Sets_Open(�������������DFCC4Db�d�(D�*������������d�d "JournalArray_Manage"t��DFCC4D �,������ �� �� ��(��������U]���$�������J���8����X�+ ]Toolbar_Disclosures��EJournal���������������V������������]������������DFCC4DZ�@������!�� ��,�<�(�����������U]���$�������F���4����������� ]Toolbar_Disclosures��ESim������������������������������]������������������DFCC4D�,������!�� ��,<�(�������������,]���$����TX�F���4�������� ]Toolbar_Disclosures��List���������������������������������]������������������DFCC4Dd��&������������d�d "Toolbar_Manager"�9������DFCC4Dq�,n�*�����!�� ��, �List_Find_MenuButton2T#��DFCC4DIYI�$�������������� List_ShowAll�7{��������DFCC4D.Cq�@���.���������d�d CList_ActiveSortCCC����CC�LabelCC�4��������������������������������������������DFCC4DT%5�D���2��������d�d CList_ActiveSortCCC����CC� RunNumberCC;����������������������������������������DFCC4D?O�H���6���������d�d List_ActiveSort�v����v DateCreationt��������������������������������������DFCC4DyE�vP�@���.���������d�d List_ActiveSort�����Owner�4��������������������������������������������DFCC4Dz$�D���2������ List_ActiveSorthh����hx� ProjectIDhhԋ����������������������������������������DFCC4D �k�5�"��������  List_Delete������������DFCC4DY�Jjy� �����%��$��g � List_Importbp������������DFCC4D��/�&�����!�� ��, ]List_Permissionsc�������DFCC4DP�,D�@���.��%��$��gS(borrowed some code to trap double clicksKO���������^��������J���8���������S2some kind of hack for the alternating field colors���:���(����������g� @ even_or_odd�@i�@linkLen�NT�0����������� @ even_or_oddO@�@���������������������� ��J���8����������S3 [Customer];"FormDemo_TrapDoubleClick" form method.�������������������$�����������@ formEventO@���������������@���(�������4�����@@�$@������J���8���������S3look in "UserSet" for the currently selected record���*������������SUSE SET("UserSet") �H�(��������@@�$@��������������������X���F����Z�S@ Filter the double-click so that it does not pass through to 4D.��D���2�����������S, This stops 4D from showing the input form. ��������D��� @A�r�����������������f���T�����������SO Now launch a new process that lets the user edit the record in its own window.���(��������������� @Run_Critical_BeginO���J���8�����rrr@recordToEdit_lzO@�#@RunNumberArrayO�@�����r�&����������� @Run_Critical_Endr�(�����������@@�$@�� ���h���V�����������SQexternal calls are used of redo the queries, if a process is specified then there�h���V���������SPis a specific query, otherwise a delete is in progress and all records should be���2��� ������������Sreshown as per the default���@���.��������@#@InfoText_ProcessIDO�O@�������������Z���H��������SBan external call means to do the queries specified in the eJournal�L���:�������� @List_OutsideFind#@InfoText_ProcessIDO��@��������������������EMak@ S�&������������Sshow everythingC�"��������������� @ List_ShowAlls����������D����@{�(�����������X@@�$@���4D�D���2������������@ w�ldFind FieldToSearch� @ FieldToSearch����2��� ������������ @ FieldToSearchO@�?����������@���.���������� @ w�ldFind SearchType� @ SearchTypee��t�0������������� @ SearchTypeeO@�@���������s�(�������������@@�$@�����@���.���������@@�@�@���������@���������������j���X������������@t��w�lrow_@�@������������@ ���wO8 Black on white for even row textO������������������@���n���\����������g@t��w�lrow_@�@������������@ ���wO8$Black on light blue for odd row textOf����������������@������������������@������DFCC4D�f3�<���*���������d�d Twist_Down_Button�TInfoD����������������d�d��������������������������DFCC4DY���������������d�d��<���*���������d�d Twist_Down_Button�TInitD����������������d�d����DFCC4D�S�B���0���������d�d Twist_Down_Button�TOcenD��4���"���������d�d Simulation_OceanMenu��������������d�d����������������������������DFCC4Dj�d�(D�<���*���������d�d Twist_Down_Button�TDiagD���������������������������������������������������DFCC4DXfG�:���(���������d�d Twist_Down_Button�TCO2�����������������������������������������������������DFCC4D"��<���*���������d�d Twist_Down_Button�TForcD����������������d�d��������������������������DFCC4Dv]y�:���(���������d�d Twist_Down_Button�TCH4�����������������������������������������������������DFCC4D/L��:���(���������d�d Twist_Down_Button�TN2O�����������������������������������������������������DFCC4D4�f�<���*���������d�d Twist_Down_Button�TCFC11���������������������������������������������������DFCC4D-w�<���*���������d�d Twist_Down_Button�TCFC12���������������������������������������������������DFCC4DZ&]y�:���(���������d�d Twist_Down_Button�TSol�����������������������������������������������������DFCC4Dit0L�4���"���������d�d Simulation_RunNumber_Keydown\��������������������������������������������������������DFCC4D#�2��� �������� Simulation_InputMenuManage�����������������������������������������������������������DFCC4D3U��<X�4���"���������d�d YSimulation_IStartMenuYY�YY��������������������������������������������������������DFCC4Dy�������������d�dX�*������������d�d�$���:���(���������d�d�o��� rsf_files rsf_files���������������d�d������������������������DFCC4Di�cFT�������������d�d���*������������d�d�$�����B���0���������d�d���� ground_files ground_files���������������d�d����������������DFCC4DD�V[�������������d�d���*������������d�d�$�����F���4���������d�d�k��� observed_files" observed_files"���������������d�d������������DFCC4D2�������������d�dX�*������������d�d�$���>���,���������d�d���� topo_filesS topo_filesS���������������d�d��������������������DFCC4Dq�R�j�������������d�dJ�*������������d�d�$���:���(���������d�d���� veg_files veg_files���������������d�d�����������������������DFCC4DVX�u?�������������d�d���*������������d�d�$�����>���,���������d�d�~��� drag_filesS drag_filesS���������������d�d��������������������DFCC4D i�R�:�������������d�d���*������������d�d�$�����>���,���������d�d���� rtau_filesS rtau_filesS���������������d�d������������������DFCC4D>�R�:�������������d�d���*������������d�d�$���>���,���������d�d���� rplk_filesS rplk_filesS���������������d�dX������������������DFCC4Dt+�4���"���������d�d Simulation_OceanMenu���������������������������������������������������������DFCC4D+V��<X�������������d�d���*������������d�d�$���>���,���������d�d���� ocen_files- ocen_files-���������������d�d��������������������DFCC4D}�|�.�������������� Simulation_OcnTransMenu����������������������������������������������������������������DFCC4Ds)��<X�������������d�d���*������������d�d�$�����>���,���������d�d���� mmld_files- mmld_files-���������������d�d��������������������DFCC4DZ��<X�������������d�d���*������������d�d�$�����>���,���������d�d���� difu_files- difu_files-���������������d�d��������������������DFCC4DF�z�6���$���������d�d !Simulation_TrendCollectCheckbox!��������������������������������������������������������DFCC4D��<X�������������d�d�*������������d�d�$�����>���,���������d�d�n��� basn_files- basn_files-���������������d�d��������������������DFCC4D�?EX������������l1�*����������[���$��������>���,����������[����N � a23sp_filesj � a23sp_filesNN��������������[[������������������DFCC4D|>�,)1�@���.��������7d'blank year if the user types in the box��4�*��������������((�@$(�����,��������������(����(�����������(SP���������������((������������������������������������������������������������DFCC4D �,)1�B���0��������7d)change the year immediatly on data change����*��������cg9((�@$(�����4���"������������((�����@(������������V���D����������� (Simulation_SolarData(�f��1/1/��@(� (����$��������P�((�����������((�DFCC4DRx�p�^���L�������7dEcosmetic issue with box if you're the observed year box it blanks out����4���"����H����[����������������������V���D��������� [Simulation_SolarData2��f��1/1/��T��� ���������S��������Z�����[[�����������������������������������������DFCC4D'4�F&�@���.��������7d'blank year if the user types in the box��4�*�������T�YYY((�@$(�����,���������������(�j���(�����������(����������H����((������������������������������������������������������������DFCC4D)H�F&�@���.��������7d'blank year if the user types in the box��4�*�������������((�p$(�����,��������������(�j���(�����������(�v������������� ��((������������������������������������������������������������DFCC4D F�F&�@���.��������7d'blank year if the user types in the box��*��������������((�p$(���,��������������(�j���(�����������(������������� ��((������������������������������������������������������������DFCC4D9��8�@���.��������7d'blank year if the user types in the box�in�*���������������((�p$(�����,��������������(�j���(�����������(el������������� ��((������������������������������������������������������������DFCC4D{B��8�@���.��������7d'blank year if the user types in the box��4�*���������������((�p$(���,��������������(�j���(�����������(��������������� ��(((����������������������������������������������������������DFCC4Dln�B���0��������7d)change the year immediatly on data change��*�����������((�@$(�����4���"�����������2((�j����@(������������:���(����������� (Simulation_TrendData(�j�������������P�((����������((������������������������������DFCC4DT�p�4���"������}��j��������������������:���(����D��v�d [Simulation_TrendData2��j����������������MUTX[[��������������������������������������DFCC4DaFi�2��� ���������d�d6����6 6CO2_T_TrendType16�@���.���������d�d66 6CO2_T_TrendType1�6C6C@��������66�4�>���,���������d�d 6Simulation_TrendSFGetFile666����66���������������d�d66��������������������������������DFCC4D/�U�2��� ���������d�d���� CO2_T_TrendType2�@���.���������d�d CO2_T_TrendType2�CC@���������4�>���,���������d�d Simulation_TrendSFGetFile� ������������������d�d��������������������������������DFCC4Daf�2��� ���������d�d���� N2O_T_TrendType1�@���.���������d�d N2O_T_TrendType1�NN@���������<�>���,���������d�d Simulation_TrendSFGetFile�������������������d�d����������������������������������DFCC4D�d�(D�2��� ���������d�d@����@ @N2O_T_TrendType2@�@���.���������d�d@@ @N2O_T_TrendType2�@N@N@��������@@�<�>���,���������d�d @Simulation_TrendSFGetFile@@@����@@���������������d�d@@����������������������������������DFCC4D �x�2��� ���������d�d�(��� CH4_T_TrendType1s�@���.���������d�d CH4_T_TrendType1s�CC@���������4�>���,���������d�d Simulation_TrendSFGetFile�)������������������d�d����������������������������������DFCC4DB?�2��� ���������d�d���� CH4_T_TrendType2�@���.���������d�d CH4_T_TrendType2�CC@���������4�>���,���������d�d Simulation_TrendSFGetFile�������������������d�d����������������������������������DFCC4D,e�4���"���������d�d�2��� CFC11_T_TrendType1�B���0���������d�d CFC11_T_TrendType1�CC@�����������>���,���������d�d Simulation_TrendSFGetFile�3������������������d�d������������������������������DFCC4DG�d�(D�4���"���������d�d�6��� CFC11_T_TrendType2�B���0���������d�d CFC11_T_TrendType2�CC@�����������>���,���������d�d Simulation_TrendSFGetFile�7������������������d�d������������������������������DFCC4D}�v�2N�4���"���������d�d*�D���* *CFC12_T_TrendType1*�B���0���������d�d** *CFC12_T_TrendType1�*C*C@��������**�>���,���������d�d *Simulation_TrendSFGetFile***�E���**���������������d�d**����������������������������DFCC4DrP�d�(D�4���"���������d�df�H���f fCFC12_T_TrendType2f�B���0���������d�dff fCFC12_T_TrendType2�fCfC@��������ff���>���,���������d�d fSimulation_TrendSFGetFilefff�I���ff���������������d�dff������������������������������DFCC4D6]�d�(D�2��� ���������d�d�V��� Sol_T_TrendType1�@���.���������d�d Sol_T_TrendType1�SS@���������4�>���,���������d�d Simulation_TrendSFGetFile�W������������������d�d����������������������������������DFCC4Dh�d�(D�2��� ���������d�dD�Z���D DSol_T_TrendType2D�@���.���������d�dDD DSol_T_TrendType2�DSDS@��������DD�4�>���,���������d�d DSimulation_TrendSFGetFileDDD�[���DD���������������d�dDD����������������������������������DFCC4Dc�> ������ �� ��((im�*�����������(!(�!@$(��!!�<���*����L���� (Simulation_PowerToolsLoadSetm!(�!!�����������������((X��������������������DFCC4D<�> ������ �� ��((im�*��������������(!(�!@$(��!!���<���*����������� (Simulation_PowerToolsLoadSetm!(�!!������������������((X��������������������DFCC4D1��R�:�:���(���������d�d Twist_Down_Button�TPow����������������d�d7[����������������������������DFCC4DL�(�����^�� ^��� (Simulation_Create(������DFCC4D?�=�:���(���������� Twist_Down_Buttonx�Dev����������������������������������������������DFCC4D^���������������im�*��������������EEE�E@$E��EE���F���4���������� ����E Epbl_table_filesE Epbl_table_filesEE�����������������X����������DFCC4DL��"�������t������err���4���"������������%��@��������path�����������������f���T������������path � PM_MakePath\�Input � inputFoldersp � inputFoldersp�����0������������d�d � FinderToPathn�pathe�d�����������������������������DFCC4D$���@���.���������� �Simulation_PreviewTrend ��?�������  �4��������������������������������������������DFCC4Do�,�W�@���.�� �� ��� (Simulation_PreviewTrend(�@���������4��������������������������������������������DFCC4D4C�,�W�@���.�� �� ��� (Simulation_PreviewTrend(�@���������4��������������������������������������������DFCC4D$���@���.���������� �Simulation_PreviewTrend ��@�������  �4��������������������������������������������DFCC4D���@���.����8�� �Simulation_PreviewTrend ��@�������  �4��������������������������������������������DFCC4D:���@���.����BP�� �Simulation_PreviewTrend ��@�������  �4��������������������������������������������DFCC4Do�����������X�*�����������^N>,XXX�X@$X��XX���J���8��������������X Xpbl_socean_filesX Xpbl_socean_filesXX�����������������������DFCC4D}\�,�������������X�*�������������XXX�X@$X��XX���J���8���������������X Xpbl_uocean_filesX Xpbl_uocean_filesXX��������{����im������DFCC4DZ�,������������������*�������������XXX�X@$X��XX���F���4��������m������X Xpbl_sice_filesqX Xpbl_sice_filesqXX�����������������������������DFCC4DC�,�����������������X�*�������������XXX�X@$X��XX���F���4��������^N>,����X Xpbl_uice_filesqX Xpbl_uice_filesqXX����������������im����������DFCC4D-]�,���������������X�*�������������XXX�X@$X��XX���F���4����������������X Xpbl_sland_filesX Xpbl_sland_filesXX�����������������������������DFCC4D �,���������������im�*�������}p���XXX�X@$X��XX���F���4����}p��������X Xpbl_uland_filesX Xpbl_uland_filesXX��������}p ~X����������DFCC4D.Am�����������(�(ul��������������������DFCC4D^1�R�:�������������d�d��*������������d�d�$��pc�������������d�d���������������d�d����������������������������������������������������������DFCC4D �R�:�������������d�d��*������������d�d�$��pc�������������d�d���������������d�d����������������������������������������������������������DFCC4De�d�.E������!�� ��,H�(�������P�]���$��� ����>���,����d���]#�Simulation_Button����������������F�4���"��������7dRunArray_ManageRundeckWindow ��$�������.���� ]Run_Simulation@nd�������������]nd�.��������� ]Simulation_ExternalButton�����������]�(����������]���$������$�������@����� ]Simulation_Load���(�������6�����]���$��� ����(����������,�7dbrought to frountTX�:���(����������,]����������`�������������NT�8���&����$�����7d RunArray_ManageRundeckWindow (2)����6���$��������� ]Run_Simulation@��@������������������������]��������������]����������������������������������������������������������DFCC4DY����������������������������������������������������DFCC4D!�v�2N� ������������d�d Sim_PauseS������������DFCC4Dz�c� ������������d�d Sim_Play�wa������������DFCC4DKf��"������������d�d Sim_Rewind������������DFCC4Dv�&������������d�d Sim_FastForward��������DFCC4D8H�������������im�*�������������(EEE�E@$E��EE�(������������� Safe_CurrentStatein�������������O������������������������������������������DFCC4Do E�*�������������V Control_DisclosureU��DFCC4D{�,B�(�����!�� ��,�7dRunArray_Manage TX����DFCC4D;q�,H������%��$��g�GX�(�������L�t���@�$@������(���������� @Run_Critical_BeginO���>���,����~�����#@RunNumberArrayzO#@ControlRunNumberArray�$�0��������������/ @ zDisclosureO@�?��������H���6��������@�@������#@ RunIDArrayR�#@RunNumberArrayz����&������������� @Run_Critical_End�(������������@@�$@�� ����(��������������� @Run_Critical_BeginO���H���6����Z����@�@������#@ RunIDArrayR�#@RunNumberArrayz����&��������)))% @Run_Critical_End�*������������ @Cleanup_UpdateNumbers�������������@��������������������������DFCC4Dn[����������������������������������������������������DFCC4D?�x� �<���*��^�� ^��� (WebAndMailLauncher}1(�@�������11��������������������������������������������������DFCC4Dk`w�<���*��������D WebAndMailLauncherww�@�������ww��������������������������������������������������DFCC4DL����������������������������������������������������DFCC4D1+����������������������������������������������������DFCC4Dw�d�.����� ����} �UAM_Authenticate@�����&�������������� [UAM_Editor_Open[������������[[���������������������������������������������������������������DFCC4D;�z�*M� ����� ���� � UAM_Login��������������DFCC4Dj�d�"����� ���� � UAM_LogoutA��/����������DFCC4D����������������������������������������������������DFCC4DK<�yP�*����� ���� �UAM_Editor_ListBoxs�T#��DFCC4D� ������ ����AM�*��������������[���$��������<���*�����������[���������P�����������������f���T����������� [ arrColVarsr?��?��������? � arrColVarsr?��?����������������������������EMak[[������������������[[����������������������DFCC4D��,�����;��;�� �UAM_PasswordKeydowns2�`DFCC4DJ+X�,����� b��b�� UAM_PasswordKeydown22f�*�������r����\���$��������F���4�����^^ \ arrColVarsr��?�������}��?�����������B���0������������\�(l��� userColsObj���?���������$��8���&����������� \UAM_Editor_MatchSelection�(l����������������)))%\\��������������������������������������������������������DFCC4Df�{�0�����"��!��,] �UAM_Editor_SaveRecord�SH���������������] �����������������]on��������������DFCC4D �Y,@�*����� b��b�� UAM_Editor_Managers����DFCC4DG��,�����;��;�� �UAM_PasswordKeydowns2�ǀDFCC4DV`P�V���D�� �� �� �7d<check password and then clear field. Look in the OK variable}����Z���H�������7dAto see if the password authentication suceeded. A copy is placed ����T���B���������� �7d;in the global UAM_Auth field and the user is stored in the��*�*���������������7dUAM_User field.��V���D�����������] �UAM_PasswordAuthentication� �vUser� � vActualValuec�������������&�0001] ]����������&�EMak]]en�^���L����&�����]dummy � Alert_Alert��@����������@����������@��������������������&��]�&]���������������]]AM����������������] U������DFCC4D3�������;��;����������������������������DFCC4D��&�����!6�� 6��, �UAM_Perm_UserList�������DFCC4D �$S�(�����!6�� 6��, �UAM_Perm_OwnerListsTX����DFCC4D/E�Jjy�$�����!6�� 6��, �UAM_Perm_Accept���������DFCC4D7��"�����!6�� 6��, ] UAM_Perm_AddMrf����������DFCC4D9��$�����!6�� 6��, �UAM_Perm_Delete���������DFCC4D� �"�����!6�� 6��, � UAM_Perm_AllMrf����������DFCC4DIW����������������������������������������������������DFCC4DES����������������������������������������������������DFCC4D}�P�(�:���(��� �2�2�^�s�ss�������������&������ �2�2�^ vRecNum�v�e��������2�2�^�^���L�����2�2�^ vRecNum� �s��s�s of m��s� �Ls��������� �2�2�^nn����������������������������������������������������������DFCC4DT����������������������������������������������������DFCC4DY#�������������d�d�������������������������DFCC4Db1�,�"����� �� �� Sets_Delete(����������DFCC4DFL�,�"����� �� �� Sets_Rename�F����������DFCC4D /�,���&����� �� �� Sets_SaveToFile������DFCC4D)������^�� ^���((���*��������������((�@$(�� �8���&�����������(#(SetArray��@(��������������D���2��������� ��(�(�����#( SetNumArray#(SetArrayr[�(����������� (setName(����(��������������((��������������((et����������������DFCC4DA����������������������������������������������������DFCC4D)�d�.����� ����} �UAM_Authenticate@�����&�������������� [UAM_Editor_Open[������������[[����������������������������������������������������������������DFCC4D_�z�*M� ����� ���� � UAM_Login��������������DFCC4D=b�d�"����� ���� � UAM_LogoutA������������DFCC4D����������������������������������������������������DFCC4D<V�|n�4���"��"��!��,�2clear the current date field����&�����������^����P����������������������DFCC4D�|n�:���(��"��!��,�2"Set the status flag for a run to 0NT�*��������������^�m�������������������������������������������������������������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D +�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D -�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D .�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�7�`���N��#v��"v��,HEach plot area needs to be setup or it will show lots of menus and other�fn�b���P�����������Jstuff. This code hides everything except the plot area itself and removes ����d���R������������Lthe save message and interaction. Basically a call to this code will convertA���\���J�����������Ea 4D Chart into a static plot controled by the code and not the user.D����������������� ������������ input���0��������������� 4D Chart area (longint)���,������������^ ���� chartArea���$������������^ chartArea~ ������������� ADO��0��������cccHide interface elements �cc�Z���H�����^8�� chartArea���?���������������������y@ Hide menus �`���N��������^8�� chartArea���@����������������������y@Hide Chart tools ���b���P�����^8�� chartArea���@����������������������y@Hide Object tools �`���N�����^8�� chartArea���@���������������������y@Hide Scroll bars �Z���H�����^8�� chartArea���@���������������������y@ Hide Rulers������������,��������no save, don't edit ~�N���<�����)))%^8�� chartArea��������������y@Don't interact1����p�����^8�i� chartArea��~P��?���������~P��?���������~P��?���������������������y@No save����������������������������������������DFCC4D�HE�r���`��#��"��,QChart_LinePlot creates a line plot similar to the ones from PlotShop based in a seriesam�t���b������������Qof arrays passed in to the meathod. The lines will automatically be scalled and coloreda���p���^�����������Qto produce decent line plot. All pointers must be to process variables, not to local���8���&������������!variables or the code will crash.������������������� ��������� �S input�E�0������������ �S 4D Chart area (longint)� �\���J���������e�cD n, ptr to list of variable names (1 per plot variable, array text)��H���6��������0 m, ptr to list of periods (x axis, array text)��������������Q o, ptr to list of values (y axis, n*m values where n is the number of plot vari$ables and m is the number of periodsn����� ����������  output� �8���&���������e�s! Plot in 4D Chart area (longint)�e�^���L����������^ ���� ����nAreaID�� nGraphTypen�� nObjectID�� nSizeOption���^���L���������C�o^- ��� ��� ����atCategoriesPtr�� atSeriesPtr�� arValuesPtr�� ����x��������� �^�nDisplay$�� nHorizOffsetH�� nLocation�� nOrientationO�� nReverseKey�� nReverseOrder�� nVertOffset��A�6���$���������n�L^��aOptions$���@����������r�6���$����������^�color��i�� frequency���4���"����������^��aColor���@����������&������������2�^-� minmaxPtr��/�V���D������������^nAreaID ��Ap/ ID of the 4D Chart area to create the graph in���*���������� ^atCategoriesPtr ���n�&���������I�D^ atSeriesPtr ���i�&���������f� ^ arValuesPtr ��� ����������� �S�E�&���������y�clear old graph�1�(����������`^8��nAreaID��,�.������������r�a ^ Chart_Setup�nAreaID����������������l�o�r�*������������t�I Create the graph:�a�:���(������������^ nSizeOption�� atSeriesPtr�ra�^���L���������0^ nGraphTypen��@�������Ap) 4D Chart's Type code for a 2D line graph������~���������� ^ nObjectID�8��nAreaID�� nGraphTypen�� nSizeOption��atCategoriesPtr�� atSeriesPtr�� arValuesPtr�� �0������������I�D^errNum��8� �err��t��������������f� �a�h���V��������� �SP Change so vertical axis starts at zero, rather than the smallest value in data:W�0�V���D�����������"^ minmaxPtr �Chart_LineMinMax� arValuesPtr���@���������50�������������^8�)�nAreaID�� nObjectID������������������������������������������������������ minmaxPtr���?��������� minmaxPtr���@���������� minmaxPtr���@���������� minmaxPtr���@�����������H���6���������1$minmaxPtr:=Chart_LineMinMax ($atCategoriesPtr;0)������|���������QCT SET X REAL SCALE ($nAreaID;$nObjectID;0;0;0;0;$minmaxPtr->{1};$minmaxPtr->{2}; $minmaxPtr->{3};$minmaxPtr->{4})O���Z���H���������BCT SET X REAL SCALE ($nAreaID;$nObjectID;0;0;0;0;1950;2100;100;50)���p���^���������QCT SET X DATE SCALE ($nAreaID;$nObjectID;0;0;0;0;!10/01/58!;!01/01/2100!;3;-1;4;-1) �������������������$������������ setup x axis ������z�����Q$frequency:=(Year of($atCategoriesPtr->{Size of array($atCategoriesPtr->)})-Year of($atCategoriesPtr->{1})+1)/7r���������������^ frequency�atCategoriesPtr���atCategoriesPtr��P�atCategoriesPtr���?�����������?�����������@����������6���$���������^� frequency���?�����������.������������� ^ frequency��?��������P�������������I�D^�������������f� ^8��nAreaID�� nObjectID���������������P��?���������P��?������������ frequency�y@-1 is auto frequency�r����x��������� �S^8�"�nAreaID�� nObjectID������������������������������������������������������P��?���������;��������������c�y^�d���R����������L Read the current legend settings, to preserve the settings we won't change:A���������������r�r^8�&�nAreaID�� nObjectID��nDisplay$�� nOrientationO�� nReverseOrder�� nReverseKey�� nLocation�� nHorizOffsetH�� nVertOffset����������������o�l^�f���T���������c�t^ nOrientationO������������Ap. Change the legend to a horizontal orientation�D�Z���H������������^ nLocation��@�������Ap& and relocate it underneath the graph:�ra��������7����^8�'�nAreaID�� nObjectID��nDisplay$�� nOrientationO�� nReverseOrder�� nReverseKey�� nLocation�� nHorizOffsetH�� nVertOffset�99���������7� ^�H���6����7�0set options, don't show dots on lines, gray grid�D���2����7�^8�V�nAreaID�� nObjectID��aOptions$��@���.����7�^aOptions$���@����������@���������@���.����7�^aOptions$���@�������������������� T�D���2����7��I�D^8�W�nAreaID�� nObjectID��aOptions$���V���D����7��f� ^Color�8�N��@����������@����������@����������F���4����7�� �S.CT SHOW GRID LINES ($nAreaID;$nObjectID;0;1;1)�$����t����7��e�c^8�"�nAreaID�� nObjectID���@������������������������@������������������������������������n����v����7��n�L^8�#�nAreaID�� nObjectID���@����������������������P��?���������Color��P��?���������e����v����7���^8�#�nAreaID�� nObjectID���@����������@����������P��?���������Color��P��?������������������7����(�������7��2�setup color arrayLE�r���`����7�����^aColor����?��������8�N��@���������������������������������y@red���t���b����7��^aColor����@���������8�N����������������������������@�������y@blue���t���b����7�����^aColor����@���������8�N���������������@��������������������y@green���x���f����7�����^aColor����@��������8�N��@ ����������@���������@ ��������y@lt green���<���*����7�����^�i���?����������@��������->�|���j����7�����^aColor���i����@��������8�N���������������������������������������y@black����������7�����^���������7�����^�b���P����7�����Jchange the lines to map to different colors and make them two pixels thick����<���*������������^�i���?��������� nSizeOption���������������S^8�#�nAreaID�� nObjectID���@����������@��������T�i����?���������P��?���������aColor��i���@���������������������������^8�$�nAreaID�� nObjectID���@����������@��������T�i����?���������P��?���������aColor��i�������������������^�������������^�B���0�����������"+Get window dimensions to use for centering ��`���N������������^8� �nAreaID���?���������Left(��Top��Right��Bottom�at�H���6������������0Resize the chart to window size minus 50 points rn�p���^������������^8�M�nAreaID�� nObjectID��Right�P��@���������Bottom�P��@��������rs�6���$����������,Center the chart horizontally ti�b���P��������kZkZ^8�D�nAreaID�� nObjectID��Left2��Top2(��Right2��Bottom2�kZ�j���X��������kZkZ^Locate��Right�P�Left(��P�Right2�P�Left2�����@��������kZ�L���:��������kZkZ^8�L�nAreaID�� nObjectID��Locate��Top2(�kZ�������������kZkZkZ�������������kZkZkZ�L���:��������kZkZ4 Deselect the graph, so it displays without handles:kZ�F���4��������^8�K�nAreaID�� nObjectID����������������������������$�������������0 ^��� nObjectID��������������DFCC4D �m7�V���D��$}��#}��L>Quit dialog on import to work around bugs in Setup SimulationsB�Z���H�����������CThis code is mostly copied from Alert_Alert since I didn't want to I�*�������*����modify it too much.�����������*��������&�������*�EMakGet the strings���R���@����*�0001^AlertStr$ �GetListItemStrA#� AlertList���@��������00�6���$��������EMak^pos���;��AlertStr$�r��`���N������������#^ AlertTitleA�� �AlertStr$���?���������pos�P��?�����������N���<��������#^ AlertText�� �AlertStr$��pos����?��������!��������������$����������� do the dialog�8���&��������^�7�������� AlertQuit��T����������������^myWind��������@����������P��@�������������@����������P��@���������P��?���������P��?��������$��'�����y@ Open a modal window�2��� ��������^�(�������� AlertQuit���$�����������^��myWind���������������������� �����������quit���0�����������^ �OK���?������������ �������� ^Do_Quit��������������^������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7I�M�t���b��#v��"v��, Generic_OpenReopen��#�Transient_ProcessID��Transient Window��Transient_Process�����������������������������������������������������������DFCC4D /�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�E�0�����$}��#}��LOpen the transient dialogSH���� �����������^������&���������������^�C�Default����6���$��������^�7�������� TransientCO2�m����������������� ^myWind���#� Toolbar_Width���@����������@ŀ��������#� Toolbar_Width���@����������@��������$��"���T�� Generic_Close����,�������������^�� Transient CO2������ ��������^F�B��$�����������^ �myWind�������������6���$�����????^�(�������� TransientCO2�::���������^��8���&�����#^Transient_ProcessID������������������������������������������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 0�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�E�&�����#v��"v��, Transient_Manage�������DFCC4DZ�w������#��"��,�(���������������^��$�������0����������� ^ Chart_Setup �CO2_PlotC����.�������������� ^ RunNumber�RunID576����"�������������� ^Label�����,�������������� ^UsernameU�studenton�(������������� ^CO2��@s33330��,��������������� ^CO2Year��@ �������0��������������� ^ TrendValuer��?����������*��������������� ^Start��@ �������(��������������� ^End��@ ���������*��������������� ^ StartDate��� ���(�����������_inf ^EndDate���  �������������tring>������������^��������������������������DFCC4D/F�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DN��k�$�����#v��"v��, Transient_Trend���������DFCC4D�>�8���&��$G��#G��L� � categoriesa��������������ZR�4���"�����������^� �seriesZ���?���������4���"�����������^� �valuesZ������������������������������������*���������������^ �End�Z �Start������� ����������basics�Ty�8���&���������� ^series����?�������Z�CO2��\���J����������`^lenZ �End�Zp �Start�Z���@��������Apan extra year on each end�/�@���.��������� �^� � categoriesa���������������len���<���*��������^� �valuesZ���������������len�� ��������������^valZ �CO2�$����������������������������������� �������������` set years���4���"��������^�i���?���������len��N���<��������6categories{$i}:=Add to date(!00/00/00!;Start+$i-1;1;1)0� �L���:�������� ^ categoriesa��iZ �Start�Z��i�Zp��@���������(�������z����values{$i}:=$val����(�������z�$val:=$val*$mult���������z�^���������z��&�������z�Exponential (%)� �������z�111 Step(ppm)���$�������z� Constant(ppm)�$�������z� Linear (ppm)��������z�RRR^11�>���,����z����^ � TrendType���?��������y@exp�R���@����z�^multHZ � TrendValuer���@���������Z���?��������6���$����z���� ^values����?�������Z�valR�4���"����z�^�i���@����������len��,�������z���� ^values���iZ�val���,�������z�^valZ�val���multH����������z����^���N���<����z����� ^values���lenZ �valuesZ��len�Zp��?�������i�@���.����z�^ � TrendType���@���������y@stepZ�6���$����z� ^values����?�������Z�val��4���"����z� ^�i���@����������len��>���,����z� ^values���iZ�val�Z� � TrendValuer��������z���^�.�������z� ^values���lenZ�valm�@���.����z�^ � TrendType���@���������y@const�6���$����z� ^values����?�������Z�valJ�4���"����z�����^�i���@����������len�t��>���,����z����� ^values���iZ�val�Z� � TrendValuer����������z�����^1�B���0����z�^ � TrendType���@��������y@linear �6���$����������� ^values����?�������Z�val��4���"�����������^�i���@����������len����,�������������� ^values���iZ�val���2��� �����������^valZ�val�Z� � TrendValuer����������������^���N���<����������� ^values���lenZ �valuesZ��len�Zp��?�����������������������^��������������������b���P����������� ^Chart_LinePlotA �CO2_PlotC� � categoriesa� �seriesZ� �valuesZ������������������^����������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �r�d���R��#v��"v��,LFeed in arrays as lists of values and returns min/max values for both lines.A���H���6��������1Also returns incriments for major and minor ticks������������������������� ����������� input�&����������� ptr to arrayh�:���(��������0" truncation (# of decimal digits)������ ��������EMak outputr��2��� ������������ ptr array of min/max/inc���.�����������^- ��� �����aPtr(��(��������������^ ����trunc����6���$�����������^�min��max��len��i���4���"�����������^� �minmaxR���@����������� �����������^aPtr(~ ����� �����������^trunc~ ����������������,�����������^len~��aPtr(���(�����������^min~��@������,�����������^max~�~P��@������4���"�����������^�i���?���������len��4���"��������^�aPtr(���i�0�min����,�����������^min~�aPtr(���i������������^���4���"��������^�aPtr(���i�~�max��,�����������^max~�aPtr(���ikk������������^������������^JJ��������������H���6����������� ^minmaxR���?�������~��_�min��trunc����H���6������������ ^minmaxR���@��������~��_�max��trunc����z���h������������ ^minmaxR���@��������~��_�max�~P�min�~���?�����������@���������trunc����p���^������������ ^minmaxR���@�������~��_ �minmaxR���@�����������@����������trunc����2��� ������������^�trunc�����������������F���4������������^ �minmaxR���@������������?�����������>���,������������ ^minmaxR���@��������~��?�������������������������^���F���4������������^ �minmaxR���@����������?�����������>���,������������ ^minmaxR���@�������~��?�������������������������^������������������^���$��������������� ^��~� �minmaxR��������������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<X�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DQ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<Y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DS�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.5����������������������������������������������������DFCC4DV�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA��0�����$G��#G��L Chart_Saveh �CO2_PlotC�SH������������������������������������������������������������DFCC4DC�>�<���*��$G��#G��L%Take the plot and save is as an image���������������*4���� ����������� input���"�������t���� 4D chart������ �������  output�k�0����������  boolean (did they save)�o�*��������s^ ����chartID�� ��������������^�pic���"�����������0001^chartIDZ ��00�������������EMaker�D���2������������^picZ�8� �chartID��ZP��@������������6���$������������^vRef(Z� ��Z��JPEG����0���������������^ �OKZ���?�����������*�������.�^f�vRef(��pic���"�����������m.^ �vRef(�������������t^�����������z����^�����������������^������������������������������������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DW�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DX�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 5�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZv�&������������d�d Sim_FastForwardH������DFCC4Df��"������������d�d Sim_Rewindrd����������DFCC4D �v�2N� ������������d�d Sim_Pause������������DFCC4D/K�c� ������������d�d Sim_Play��������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<Z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 8�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dh �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�,� ��r���`��������tNQSetup_RunLunar copies the model and the Lunar REALbasic shell that supports the mtNodelp���p���^�� ���tNQinto the run folder. The new version no longer needs to modify the plist but it dtNoes���n���\����tNQneed to add a WhatToRun file with the code that is needed to start the model. ThitNs�X���Fo-tNAcode is now cross-platform since Mac and Windows are using Lunar.#E����tN�s���� tN input�8���&tN! string ptr (run folder, output)�:���(tN" string ptr (model folder, input)��2��� tN (implied) model and grid���� ������tN output������ tN none�@���.-0 @�t @�t@ outputPtrt@inputPtr$�>���,��������@%0@�@�������t@path�t@outpath��n���\@%0@�@�������t@ modelAppNameot@ modelAppShellt@ shellPostfixht@ appPostfixa�"�����@10@foldH��$�����@ outputPtr @��$�����@inputPtr$ @���������&�����������tNget model infoD��j���X��@ modelAppNameo @GetListItemStr0#@ ModelAppsRefot @ modelgrid@�@����������l���Z��@ modelAppShell @GetListItemStr0#@ModelAppsBinReft @ modelgrid@�@������������6���$���@gcmName @ GetModelNamet0������������ �&����aaaatNplatform stuffD�2��� �������@0#@ PM_Platform��$@����(����PI����@ appPostfixaw��d�.���������@ shellPostfixhw�.app��� �����������@foldH@��������������@���,���������� @ appPostfixaw�.exe���.�����������@ shellPostfixhw�.exe��� ���������@foldH@�������w,@����������������(�������@���tNcopy Lunar shellt���l���Z��������@pathH @ PM_MakePath0@inputPtr$�t@ modelAppShell���@ shellPostfixht@foldl���h���V��������@outpath @ PM_MakePath0@ outputPtr�t@gcmName���@ shellPostfixht@foldl�@�2���  � � @0#@ PM_Platform��$@�����"������������tN copy Lunar����>���,��������� @PM_RecursiveCopy<0@pathet@outpath��������������������.�����tNrename binary & helpers�N���<����������@pathH @ PM_MakePath0@outpathtw�Contentst@����H���6����������@pathH @ PM_MakePath0@pathatw�MacOSt@�������z����������@0 @ PM_MakePath0@pathatw�Lunar-Mac OS (Mach-O PowerPC)t@�t @ PM_MakePath0@pathat@gcmNamet@����N���<����������@pathH @ PM_MakePath0@outpathtw�Contentst@����L���:����������@pathH @ PM_MakePath0@pathatw� Resourcest@�����������������@0 @ PM_MakePath0@pathatw�"Lunar-Mac OS (Mach-O PowerPC).icns`t@�t @ PM_MakePath0@pathat@gcmName���w�.icnst@����������������@0 @ PM_MakePath0@pathatw�"Lunar-Mac OS (Mach-O PowerPC).rsrc`t@�t @ PM_MakePath0@pathat@gcmName���w�.rsrct@���������������������$�������������tN path to plist���Z���H����������@pathH @ PM_MakePath0@inputPtr$�tw�Lunar Info.plistt@���������������������.�������������tNread from special plist���.�������������@docRef@0@pathe���>���,��.@�h0@docReft@plistt@�@ �������..�$�������������@ 0@docRef��������������������4���"���tNreplace dummy with model name�L���:���������@plist@�0@plisttw� ***Replace***t@gcmName����������������������(���������������tNreplace app plist���N���<������������@pathH @ PM_MakePath0@outpathtw�Contentst@����N���<������������@pathH @ PM_MakePath0@pathatw� Info.plistTt@����.���������������@docRef@0@pathe���4���"������������@0@docReft@��������������.���������������@�g0@docReft@plist���$���������������@ 0@docRef������������������@���.���������������@0@pathHt@outpath������������������@����������������������"���������������tN copy model����f���T������������@pathH @ PM_MakePath0@inputPtr$�t@ modelAppNameo���@ appPostfixat@����`���N������������@outpath @ PM_MakePath0@ outputPtr�t@�������@ appPostfixat@����.���������������@0@pathHt@outpath����������������������D���2������������tN,create WhatToRun document with name of model'���J���8������������@pathH@�������@ appPostfixa���@�Z0$@��&���V���D������������@outpath @ PM_MakePath0@ outputPtr�tw� WhatToStartt@����6���$������������@0@0@outpath��$@�����$���������������@�0@outpath������������������@���4���"������������@ docref_full@ 0@outpath���2��� ������������@0#@ PM_Platform��$@�����d���R������������@�g0@ docref_fullt@�0@pathet@�Z0$@��&t@�Z0@�@����������0���������������@0@outpathtw�R*ch������������������@���:���(������������@�g0@ docref_fullt@0@pathe������������������@���(���������������@ 0@ docref_full���������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<[�> ������ �� ��((im�*�����������(!(�!@$(��!!�<���*����L���� (Simulation_PowerToolsLoadSetm!(�!!�����������������((X��������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D :�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ;�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D <�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D =�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D >�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ?�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�l3�x���f��$}��#}��LQInfoText_Find puts up a find dialog and then searches the text and/or figure capt ions of theof�|���j����>����QeJournal window for the text in question. If you're looking for text then the result is selected���|���j�������� ��Qwhile for figure captions the edit window for them opens. This code also saves info so that you ���8���&�����������!can search for the next instance.�������������������$��������������� search setup���:���(������������^1� searchTexts�� searchImagese����6���$����� ^Search_InProgress��������������������������(�����������show find dialog����<���*��������^�7�������� Find eJournal����������������^����P��@����������@������������P��@�����������@����������P��?���������P��?���������P$��"���Find in eJournal�y@-1045���6���$����������^�(�������� Find eJournal��������������^���������������*�����������search the results�0�����������^ �OK���?���������`���N����������� ^InfoText_FindSearchj � SearchTexte� � FieldToSearch�y@ start searchy������������^������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dm�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D����������������������������������������������������DFCC4DP$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2Z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA��r���`��$o��#o��LQFind an additional instance of text you are searching for since 4D can only highlight am�,��������������one item at a time. 5�������������������h���V������������ ^InfoText_FindSearch� � Search_Text��������������y@continue the old search������������������������������������������������������������������������������DFCC4D.7�,k9x�r���`��$o��#o��LQThis code provides the engine for find to search the eJournal text and image captions.am�t���b����r��QYou can either start a search or continue an existing search based on process variablesn���t���b�������Qthat auto save the position of the search in a fashion transparent outside this method.u����������������L�hi���� ����������� input���<���*�����������% ptr to the search text (can be nil)�d���R�����������M search mode: 0 = continue old search, 1 = all, 2 = text, 3 = image captions����� ��������0001 output00�*�����������EMak none (changes UI) I�0���������������^- ���� searchTextPtr����.�������~��� ^ ���� searchModes��=�\���J���������o�u^1� searchTexts�� searchImagese��searchContinued��continue$��i�Z���H���������d� ^�fieldNum$�� fieldCountf�� fieldStartf��pos��subpos5���(������������� ^ searchTextPtr5 ����&������������� ^ searchModes5 ��hT�$������������o�u^continue$5��rc��������������d� ^���� �����������setupie������������^����r��������^� searchModes�������������������������� �Search_InProgress��y@continue old search�0�������������^ searchModes5 � Search_Mode�s�*�����������r^searchContinued5����<���*���������� ^ �Search_LastType���?���������s�&������������e�x^ searchTexts5���������������� �^�&�������������)^ searchTexts5�����������������^��<���*��������^ �Search_LastType���@������������(�������h��� ^ searchImagese5���d�������������e�x^�P�d���R��������� �^ � Search_Mode���?���������  � Search_Mode���@������������(�������������)^ searchImagese5�����������������^ s�(�����������^ searchImagese5����������������^ S�������������� ^��\���J���������e�x^� searchModes���?��������y@any, loop over all field firstx�$�&������������ �^ searchTexts5����(�������������)^ searchImagese5����4���"���������� ^ Search_Text5� searchTextPtrj���*�����������111^searchContinued5���F���4��������^� searchModes���@���������y@ text only�&������������� ^ searchTexts5����(������������e�x^ searchImagese5����4���"��������� � ^ Search_Text5� searchTextPtrj�=�*�������������)^searchContinued5����R���@����������^� searchModes���@���������y@figure captions only5�e�&������������o�s^ searchTexts5����(�������������^ searchImagese5����4���"��������@ ^ Search_Text5� searchTextPtrj8�*���������������^searchContinued5��������������)�^ S�$�����������^continue$5��5���������������^����������������^�B���0�����������+search the full text including the abstract�>���,�������� Run^�continue$���� searchTexts�����������������@���.��������(set starting position and starting field��*�����������^ fieldCountf5�����kZ�\���J��������^�searchContinued��� �Search_LastField�5 � fieldCountf���^���L��������Fsearch first field manually since we need to start at a weird position �,��������������^pos5 �Search_LastPosA���6���$��������^ fieldStartf5 �Search_LastFieldce������������^p�(�����������RR^pos5������������rc�0�����������^ fieldStartf5������������������������^p�������������^���� ��������search�D���2��������^�fieldNum$�� fieldStartf�� fieldCountf��R���@�����������^ �ItemListI��fieldNum$��������������y@is text��b���P��������^pos5 � PositionPosj � Search_Text� �ItemTextI��fieldNum$��pos��B���0��������^�pos�5�������������y@ found stringy���b���P������������^� �ItemTextI��fieldNum$j��pos��pos�5��� � SearchTexte�����P���>������������ ^Search_LastField5�fieldNum$Apfield search stopped on���N���<������������ ^Search_LastType5��?�������Apstart search on text5�f���T������������ ^Search_LastSubPos5��?�������Ap*subimage to start on should be default (1)����n���\������������ ^Search_LastPosA5�pos�5��� � Search_Text�y@#position in field search stopped on���@���.������������^fieldNum$5� fieldCountf�5���@�������ag����������������^S����������������^f����������������^�������������������^����������������^����������������������6���$������������search the figure captions only���|���j������������^�continue$���� searchImagese����fieldNum$� � fieldCountf�5���@�������������������������������@���.������������(set starting position and starting field��*���������������^ fieldCountf5��������\���J������������^�searchContinued��� �Search_LastField�5 � fieldCountf�����^���L������������Fsearch first field manually since we need to start at a weird position ���,���������������^pos5 �Search_LastPosA���2��� ������������^subpos�5 �Search_LastSubPos s�6���$������������^ fieldStartf5 �Search_LastField������������������^s�(���������������^pos5������������rc�,���������������^subpos�5��?����������0���������������^ fieldStartf5��?�������������������������^s�����������������^���� ������������search���D���2������������^�fieldNum$�� fieldStartf�� fieldCountf����V���D������������^ �ItemListI��fieldNum$�5�������������y@ is pictureT���b���P������������^�i��subpos5� �ItemListI��fieldNum$�y@search picture captions���\���J������������^subField$5�fieldNum$�5P��?���������eu��@��������5��i���f���T������������^pos5 � PositionPosj � Search_Text�j � ItemCaption��subField$��pos����B���0������������^�pos�5�������������y@ found stringy�e�D���2������������ ^InfoText_FullOpen�fieldNum$��subField$�mC�P���>������������ ^Search_LastField5�fieldNum$Apfield search stopped on���P���>������������ ^Search_LastType5��@��������Apstart search on images���L���:������������ ^Search_LastSubPos5�subpos5Apsubimage to start on5d �n���\������������ ^Search_LastPosA5�pos�5��� � Search_Text�y@#position in field search stopped on���@���.������������^fieldNum$5� fieldCountf�5���@�������to����������������^S����������������^f�,���������������^subpos�5��?�������������������������^������������������^s����������������^�������������������^���� ������������cleanup���$���������������^�continue$����L���:������������^�fieldNum$�� fieldCountf�5���@����������������������������^���:���(������������ ^Search_InProgress5�5P��?���������6���$������������^Apsave search in progress infoA���v���d������������ ^Search_InProgress5���������y@9record id of search in progress, 0 means no active search���8���&������������^� searchModes�5����������������J���8������������ ^ Search_Mode5� searchModesApwhat fields to searchse����������������^����������������^ S����������������^���:���(������������ ^Search_InProgress5�5P��?�������������������������^����������������������������DFCC4D+��z���h��$o��#o��LQSearch a block of text for an instance of a string. To a second instance of a str ing the textcfs�R���@�����h:must be copied past the last instance and then researched.X������������������� ����������� input���,�������������� ptr to search text5�$�������������� ptr to text��(�����������4th  old search pos��u���� �������� ADO output�o�~���l����(�����Q position of found text, 0 means no result, otherwise returned relative to the original positionu���>���,����(�����^- ��� ����textPtr�� searchPtr����D���2����(�����^ ��� �����oldPos5��newPos5��len�d �"�������(�����^�text(�oc�$�������(�����^ searchPtr5 ��t�"�������(�����^textPtr5 ��t�"�������(�����^oldPos�5 �����,���������������^newPos�5����������������������������������� ������������setup5�.���������������^len5���textPtr���������������������^���� ������������search���,���������������^�len�5�oldPos5�������������������� ^�~���l�����������^�oldPos5�5�������������y@Ecopy the old text if necessary to find another instance of a variable���2��� ��������0001copy sub-block of old text00�<���*��������EMak^text(5�� �textPtr���oldPos5��>�(���������������^textPtr5��text(�����������������^�����������������^�"����������� search text��B���0��������^newPos�5��� searchPtr���textPtr���������������^������������^t�������������^���� �����������cleanup��"����������� ^��5�newPos5��������������������������������������������������������DFCC4D @�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.:�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D A�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�gt�d���R��$o��#o��LMThis code appends a piece of text to the mega blob that the html is stored in���J���8��������2to replace old code that used text limited to 32k.(��������������������� ����������� input�*�������������  string to append�e���� ����������  output�i�2��� ��������0001 none (single stored blob)00���� ��������EMak^ ���r���������������������D���2���������o�l^*� ���� �htmlBlobh�$��� ��T����������������_�p�a����������������������������������������������������DFCC4D B�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/O�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dx`�,E�`���N��$s��#s��LIFind the first word break before the position requested. Word breaks for fn�^���L����2����Gthis purose include space and return but not hypenation since the rules���d���R��������Mare too complicated for that. The result is a string (not text) for the first�f���T������� On characters before the word break. If no word break is detected then the whole�o�F���4����������/of the string before the character is returned.�t������������0001�03���� ��������EMak intputr��,��������������� ptr to string/textE���4���"���������� postion to search before/at�1���� ����������  output�n�0�������������  string with word break���*������������� ^- ����strPtrE�� �2��� ����������^ ����maxPosE��pos��$�:���(�����������^%��@�������� �����resultE����"��������������^strPtr�E ���"�����������^maxPos�E �����������������^�P���>��������d8if the string is shorter than the max length just use it�:���(��������///^���strPtrEj��j@�maxPosE��*�����������^result�E�strPtrEj�������������g^r�@���.��������)find the word break and use the substring��N���<��������^�pos��maxPosE���@����������EP��?����������n���\��������^�strPtrEj!�pos"E�� �� �strPtrEj!�pos"E���Z$���&����\���J�����������^result�E�� �strPtrEj���?���������pos�EP��?�����������,������������=^posE�EP��?�������00������������lll}^co������������^�R���@��������;if we can't divide the string just include the whole length�0�����������qqr^�pos�E��������������*��������������^result�E�strPtrEj������������������^����������������^���������������������� ������������cleanupul�"�������������� ^��E�resultE������������������������������������������������DFCC4D/P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/Q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D C�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�q"�������������d�d"" �*������������d�d"""�"$"��""�2��� ���������d�d " CurrentSpaceD" "CurSpacep"�������������d�d""I������������������������������DFCC4D E�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�f�6���$��'&��&&��gSopen cleanup from the list view��6���$����������� �List_HighlightSave77@���������>���,�����������@@�w�lCurHigh��7@�������������$�����������0001 @Cleanup_Dialogz06������������EMak@ S�R���@������������ @ Alert_Alert@�?��������@�@��������@�@��������������������������@���D���2������������ @List_HighlightRestore7@������7@����������������������������������������������������������������������������������������DFCC4D �M�"�����$u��#u��L List_Cleanupsrf����������DFCC4D/R�(W�b���P��&m��%m��gSJThis is an alternate way of starting cleanup if it is used as a dialog boxum�b���P�����������SKinstead of standalone. The dialog box version comes from the Sim Library so���f���T�����0001SNit handles multiple runs instead of a single run. This code must resepect the 00�B���0��������EMakS*current selection used by the Sim Library.� �@���.������������@top�@leftP�@bottomD�@right����������������000100� �����������EMakSdo setup���.��������������� @ Cleanup_Setup$@�"����������������� &�����,�����������S Ssetup dialog and show �F���4��������@top@��`@�@���������@�?�������� �H���6����4�����@left�@��`@�@���������@�?����������6���$����4����@bottom�@top��@�@����������6���$����4�����@right@leftt��@�@����������d���R����4����� @myWind�@�@leftn�@top�@right�@bottom��$@�"��w�lCleanup����6���$����4�����@�(@��� ���w�l Cleanup List���������4�����@����������4����ra���� ����4�����Scleanupap�(�������4�� @�Y @ CleanupRuns��A�"�������4�����@�@��� ������"�������4�d@�/@��� ���m��������������������������������������������������DFCC4D\�0�p���^��$u��#u��LQMake the current selection out of the highlighted records and save the old selectionfn�,�����������to be restored later.���������������o����� ����2����� input���\���J����`�����E optional ptr to table to use, uses [Model Variables] if unspecified�����������������L��,�����������^- ����tablePtr$����.�����������^����������������$���������������^tablePtr$ ��������������������^���*������������ �^tablePtr$���������������������� ^��������������000100�(�����������EMaksetup selections�4D�6���$������������^�tablePtr$���CurHigh����6���$��������0001^�t�tablePtr$���CurSel�00�&�����������EMak^�v�CurHigh��(���������������^�2�tablePtr$����������DFCC4D�3�^���L��$u��#u��LGRestore a previously saved selection and put the highlight back as wellN������������ �������� ����������� input�\���J�����������E optional ptr to table to use, uses [Model Variables] if unspecified���f���T������������O optional ptr to field to use, uses [Model Variables]Run Number if unspecified���������������L��@���.��������^- ��� ����tablePtr$��fieldPtr$��.�����������????^���������������;;�$�����������t> ^tablePtr$ ���$�����������^fieldPtr$ ��||���������������^���*�����������^tablePtr$��������*�����������^fieldPtr$������1������������^������������������(�����������111restore selection���&�����������^�v�CurSel��6���$��������^�tablePtr$���CurHigh��>���,��������RRR^�1�tablePtr$���fieldPtr$������&��������������^�u�CurSel��&�����������^�u�CurHigh�����������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\i�,�d���R��'��&��b$LCreate or update the list of years for the cleanup window, disables the list@���:���(�����������b$"if there are no years to process. ������������������b$������� �����������b$ input�.��������������b$ ptr to list of years����� ���������y�eb$ output����� ��������TAT b$ noneMM�,�����������137 - @��@yearsPtr$�32�2��� �������� @ @i�@j�@ startYear� �$��������������@yearsPtr$ @������������������J���8��������b$3get date range if applicable or just disable things�^���L��������@  @ CleanupStarte�@�������������� @RunSpaceR�w�NAh���L���:��������@j @ CleanupEndl�P @ CleanupStarte��@�?��������0�����������111@ startYear @ CleanupStarte�0�����������@� ��w�Years�@���2��� ��������@� ��w�Months�@���,�����������RRR@� ��w�Subject����,��������������@� ��w�Keepers��B���0��������@� ��w�Delete all the stuff and more����������������@���0�����������@� ��w�Years�@���2��� ������������@� ��w�Months�@�����,���������������@� ��w�Subject����,���������������@� ��w�Keepers����B���0������������@� ��w�Delete all the stuff and more�������������������@C������������������"���������������b$ clean array���@���.������������@ @ @yearsPtr$7��@���������������P���>������������@� @yearsPtr$7�@�?��������@ @yearsPtr$7��������������������@����������������������,���������������b$check if a run exists���:���(������������@ @ CleanupStarte�@����������������������������������0���������������b$rebuild array with years����>���,������������@� @yearsPtr$7�@�?��������@j����.���������������@ @j�@���������������*���������������b$build list of years���2��� ������������@ @i�@�?��������@j����X���F�����������@yearsPtr$7�@i@�  @ startYear��@i�P@�?������������������������@���.���������������b$restore year selection���D���2������������@found@� @yearsPtr$7�@�  @�� �������2��� ������������@ @found�@���������������*���������������@yearsPtr$7@found������������������@���0���������������@yearsPtr$7@�?����������D���2������������@�� ��@�  @yearsPtr$7�@�?��������������������������@������������������@������������������@����������������������"���������������b$ reset month���:���(������������@ @ CleanupStarte�@���������������2��� ������������@ @� � ���@���������������&��������������� @Months�@� � ��������������������@������������������@��w@���0��������������@S@�����@ dateRange����,�����������@�@ dateRange��wl��H���6�������� @ CleanupEndl~@�@ dateRange�@�?��������������������@�������������ls�,�����������111Sfix dates internally~���:���(��������@ @ CleanupStarte�~@������������k�,�������<���@�� ��~ @ CleanupStarte�J�*�����������@� � ��~@�?����������*�����������@� � ��~@�@��������"�����������@�5@��� ������������������@����������������2��� ��������Ssetup window/dialog numbers�j���X����������� @Cleanup_UpdateNumbers��;this is called again to update other parts of the interfaceR����������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�%������&m��%m��g|�(�������������@�$@������8���&����������� @Cleanup_SetYearsList8� @Years��������������������$���������������S setup values���&�����������0001 @KeepersN@� � ��00�&�����������EMak @SubjectN@� � ����H���6������������@� @Months��@�?��������@ @Months������6���$��������@ w�l Months Full� @Months��;�,������������  @Months�N@�@�������#������������������(�����������Sunset checkboxes�� �����������@�� ��N@�ה� �����������@�� ��N@�� �����������@�� ��N@�� �����������111@�� ��N@���� �����������@�� ��N@�������������������&��������������Ssetup run list��.��������������@@����� @RunList��������������@����������������DFCC4D_�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D F�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�dO�h���V��$��#��LQDisplay dialog for errors accumulated during import. These errors are shown in a fs�>���,�����������&list for each record that is imported. ������������������� ������������ input���4���"����������  ptr to run number imported��g�*�������������S number of misses�$���� ����������� output������ �������� noner��0�������������^- ���� runNumberPtru�� �*������������(�^ ����missed0��g�$���������������^�listRef����(������������(�^ runNumberPtru0 ���i�"��������������^missed�0 ������������������"����������� load values�8���&��������^listRef0�� Import Errors��T���B�������� ^ RundeckTitlen0 �GetListItemStrA�listRef���?���������R���@��������111 ^ RundeckDesc0 �GetListItemStrA�listRef���@����������V���D�������� ^ RundeckDesc0�� � RundeckDesc��^0�� runNumberPtru���V���D�������� ^ RundeckDesc0�� � RundeckDesc��^1��� �missed0������������������*�������\����cleanup array list��f���T����\�^� � RundeckErrors��missed0�0���?����������@��������0P�missed0����������\��&�������\�error dialog h�>���,����\�^�7��������Rundeck Errors�����������\�^myWind�0�����0P��@�����������@������������0P��@�����������@����������0P��?���������0P��?��������$��'����0��8���&����\�����^�(��������Rundeck Errors����$�������\�����^��myWind0�� ���������\����������� ����\�����cleanup���$�������\�����^y�listRef��*�������\�����^�Y � RundeckErrors��*�������\�����^�Y � RundeckTitlen��(�������\�����^�Y � RundeckDesc������������\�������������������������������DFCC4D0�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.;�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�dO�f���T��$��#��LNThis code removes an error from the list and returns a decrimended error countZ���������������������� ����������  import�i�.�������������  string to search for�r�$�������������� error count������ ����������� outputp_�$�����������0001 error count06�<���*��������EMak^%��@�������� ����errorStr$�� �:���(��������)))%^ ���� ����missed-��found��$�����������^errorStr$- ���"���������������^missed�- �����������������ӡ�B���0��������^found-�� � RundeckErrors��errorStr$��6���$��������^�found�-�-P��?���������4���"��������^� � RundeckErrors��found�t �:���(������������^missed�-�missed-�-P��?�������������������������^����������������������� ������������cleanupse�"�������������� ^��-�missed-��������������������������������������������������������������DFCC4D O�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D`�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D Q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D R�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D S�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dn�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Da�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9 �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9!�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D T�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DEb�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D,���:���(��&��%��gS"open a window be under the toolbarNT�&����������������Cw�lToolbar����>���,�����������@<w�lAbout EdGCM 4D�w�lAboutBox��������~������������ @myWindD@�@�@��������@�@��������@�@��������@�@���������@�@��������$@�"��w�lEdGCM 4D�����.���������������@�(@������w�lLogo"����$���������������@� @myWind��h�����������������������������������DFCC4D V���b���P��%5��$5��gSKopen a new process under MacOS X to create a window to be under the toolbarum�,�������6���^#�Logo_ProcessIDA����������������������b���P�����������SJmac only window to show when toolbar is hidden, this get's its own process����2��� ������������^#� PM_Platform� $�������n���\��������#^Logo_ProcessIDA�=�ToolbarLogo_Process�#� StackSize��ToolbarLogo_Process�������������^������������������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D W�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DEc�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�:�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP����������������������������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/T�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Db�8g������$��#��L7�(��������������^��$�������(���������������^3� lastBackupl����,��������������^2�lastBackupTimeA��.��������������^�lastBackupStatus���<���*������������^%��@���������lastBackupInfoA����F���4��������0001^x$��6��� lastBackupl��lastBackupTimeA�00�L���:��������EMak^x$��6���lastBackupStatus��lastBackupInfoA�w����������������� ^ BackupState�Last backup on ���� � lastBackupl���� at 2�����lastBackupTimeA�����Z$���&����lastBackupInfoA����������������^�B��������������������DFCC4D�������$��#��Lw�����������������������DFCC4D<]�������$��#��L�����������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dc�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�5d�0�����$��#��L BackupOften��?�������SH�*��������������^������?����������"���������������^�5�����������������������������������������������������DFCC4D !�������$��#��L7�(��������������^��$�������*����������� ^ BackupOften�������(��������������^��$������*��������������^���� � BackupOften���"�����������0001^�5�������00������������EMak^ S��������������������������������������������������DFCC4D "�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<_�E������$��#��g�(�����������^��$$�������*������������� ^ HelperAppse�������(��������������^��$$������*��������������^���� � HelperAppse���"���������������^�5����������2��� ��������????^������$��?���������"�����������111#^Use_EVA���������������^�"�����������#^Use_EVA�����������������^���������������^������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Da�w�h���V��'��&��b$PThe GCM uses dates based on hours from the reference year and 365 day years (no fs�h���V�����������b$Pleap year). This code initializes the arrays used to convert between the 4D date���f���T�����������b$Otype and the model hours (tau). Thus you can take dates and get back tau's likeD�$�����������TAT b$ taue and tauo ������������ b$�01���� ��������TAT b$ inputMM���� �������� b$ nonekW���� ��������TAT b$ outputMM���� �������� b$ nonekW�������������������������������b$var�2��� ������������� #@jdofm�@�@���������$�����������@ @listRef����� ��������@ @i��������������LLL��*�����������b$get list of valuesH�8���&�����������@listRef@ w� Months JDOFM�������������������� ������������b$convert�<���*�����������@ @i�@�?��������@�@�����������R���@��������#@jdofm�@i@�  @GetListItemStr @listRef�@i��������������@����������������� ��������b$cleanup�$�����������@y @listRef�ackupl�@������������@������������@�@��������pl�.�������>�����@@�!� @ lastBackupl�����������>�����@w����������>�����@���`���N����>�����@@�����@�@���������wO8(monthly, ensure it has been a month days����h���V����>�����@ lastBackupl%@@ lastBackupl�@������������@�?��������@���������������.�������>�-� @@�!� @ lastBackupl�����������������@w�����������������@������������������@�����������������@���Z���H��������SBsince the pref path is bad try to change it to the database folder�B���0�������� @Backup_PrefWrite @ PM_UpOneLevel@����������������@������������� )����� �������� ))Scleanup �"���������������@�@������������������������������������DFCC4D #�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D $�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4De�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<`�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�E�P���>��$��#��LT8Should we use EVA or not, should we stay or should we goXT����������T� ���� ���������9T input������ �����������T none������ �����������T output�P���>��������0001T9 should you use eva (boolean, also in Use_EVA variable)17���� ��������EMak^1 ����r��������������������� �����������0001Tsetup db�05�"�����������EMak^���������l�"���������������^�/����������"�����������EMak^�2�������LL�����������������^�2��� ��������key>^������$��?��������In�"������������y�>#^Use_EVA���r�������������g�e^�>�"������������o�m#^Use_EVA����������������g�>^U��������������r�i^���� ���������y�>Tcleanup��"������������j�u^���������R�"������������r�< ^��#�Use_EVA� ����������������������DFCC4D %�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<a�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D &�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �>L{�X���F��'A��&A��gS@Select the last n years from the years list. If the shift key is�LP�X���F���������S@held down then the current selection is used to determin how to ����.�����������Sadvance the selection. ��������������scalS�dG���� �����������S input�>���,����~�0001S& (optional) number of years to select 00�8���&����~�EMakS! (optional) first line to select���V���D����~������@listLen�@firstSel$�@selCount$�@selLenn�@first����&�������~��a�r@-@YearsPtr$���,�������������@selLent>@�@��������X�.������������a�r@first>�>`@�?���������.������������� @@�>@������������� ���� ���������L�e@ @����"�������������-@selLen�> @��S�.������������e� @@�>@�?���������e���� ���������� @ @���l� ������������L�e@first> @����������������-@��������������e� @�h��������������������.���������������Scheck for a valid list���X���F���������L@YearsPtr$> @PostProcessing_TypeListEmpty @start_lbs�@�����4���"������������@listLen>@@YearsPtr$����4���"������������@@listLen�>@���������������f���T������������@@YearsPtr$�@�?�������}���w�l<NA>�wO8check against special case����������������������� ���������������S get years���,������������ @PostProcessing_GetYears����������������������N���<�����������S6handle shift first year, where incriment the selection0���B���0��������KK�@@���I@�����>@����������������Z���H�����������SBif the selection is less than the length requested just extened it���P���>������������@@�����>`@�����>�@�?���������wl@selLen�����D���2������������@first>@�@YearsPtr$�@� @���������P���>������������@�� 6otherwise move the selection to the next $selLen years ���V���D������������@first>@�@YearsPtr$�@� @�����>�@�?���������������������������@������������������@����������������������>���,������������S&set selection length, can be passed in ���2��� ������������@@first�wl@���������������J���8������������@firstSel$>@listLen�>`@selLen��>�@�?�������������������� @��(�����������@firstSel$>@first�D���2�������� ))@@firstSel$�>�@selLene��>@listLen�))�J���8���������6@firstSel$>@listLen�>`@selLen��>�@�?�������;<����������������@������������������@���6���$������������@@firstSel$�wl@�?�����������.���������������@firstSel$>@�?�������������������������@����������������������F���4������������S/change selection to first year of new selection���>���,������������@ @start_lbs�@firstSel$�$@�5�����:���(������������@selLene>@selLen��>`@�?����������N���<������������S7[PostProcessing]Start Year:=Num($YearsPtr->{$firstSel})���L���:������������S4[PostProcessing]End Year:=[PostProcessing]Start Year>����������������������8���&������������S change the rest of the selection���4���"��������9@@selLen��>@������������::�8���&������������@@i�@�?��������@selLen�����F���4������������@ @start_lbs�@i�>�@firstSel$�$@�5��������������������@���R���@������������S:[PostProcessing]End Year:=[PostProcessing]End Year+$selLen������������������@����������������������.���������������Sscroll to new selection���B���0������������@ @start_lbs�@firstSel$�>�@selLene�������������������@������������������@����������������������*���������������Scheckup on buttonsG���2��� ������������ @PostProcessing_EnableButtons��������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D '�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D (�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D )�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D *�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D +�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7Q�v3�f���T��$��#��gTOLoop over the prt2html program for each file the user wants to convert from prtZ�f���T����������TOformat to html. prt2html is then run on each file. Also copy the prt and column�"�R���@�����������T:files and rename them so that other programs can use them.��6���$�����������^��averages$���@�������������� ������������^�i����@���.������������^%��@���������prtName��prtBase����6���$��������� � ^%��@��������� diag_path��_��������������s� �a�,������������"�tTget info from dialog�a�:���(���������t�m^averages$���?������� ������u�:���(���������l�d^averages$���@�������� �������:���(���������+�^averages$���@�������� �� ����M�:���(����������^averages$���@������� �� ����_�:���(��������� � ^averages$���@������� �� ���� �:���(���������p� ^averages$���@������� �� ����o�:���(���������=�[^averages$���@������� �� ����b�:���(���������l�d^averages$���@������� ������m�:���(���������e�s^averages$���@������� ������ �:���(��������� � ^averages$���@������� ������t�:���(���������C�E^averages$���@������� ������)�:���(����������^averages$���@������� ������s�:���(����������^averages$���@������� ������s�:���(���������T�^averages$���@������� �������:���(���������l�e^averages$���@������� ������(�:���(����������^averages$���@������� ������$�:���(��������� �p^averages$���@������� ��������������������������2��� ������������Tsetup paths and input files���H���6������������^ diag_path � PM_FindFolder�DiagnosticsApps����N���<������������^�� diag_path��� prt2html.stop��$$�������<���*������������^�� diag_path��� prt2html.stop�������������������^����������������������8���&������������T!run prt2html to create html files��� ��������������� ^ prt2html_Ir����������������������X���F������������TAloop over the months and seasons and copy SuSpect and Excel files���<���*������������^�i���?����������@�����������,���������������^�averages$��i �����������������������8���&������������^prtBase �prt2html_ToPath�i����6���$������������^prtName�prtBase���_Prt%����������������������>���,������������T© text files for SuSpect (Mac only)���2��� ������������^#� PM_Platform�$$����������n������������^ � PM_FindFolder�postprocessing����prtName� � PM_FindFolder�tables0����prtName����T���B������������^ � PM_FindFolder�tables����prtName��SSPP%����T���B������������^ � PM_FindFolder�tables����prtName��TEXT%�����������������������8���&������������^��?��������$��@������������:���(������������^prtName�prtBase���_Regions�������n������������^ � PM_FindFolder�postprocessing����prtName� � PM_FindFolder�tables0����prtName����T���B������������^ � PM_FindFolder�tables����prtName��SSPP%����T���B������������^ � PM_FindFolder�tables����prtName��TEXT%�������������������^������������������^����������������������<���*������������T%was copy tab delinated file for Excel���8���&������������^��?��������$��@������������8���&������������T!copy tab delinated file for Excel���2��� ������������^#� PM_Platform�$$�������6���$������������^prtName�prtBase���.xls%������������������^ � PM_FindFolder�postprocessing����prtBase���_Budgets�� � PM_FindFolder�tables0����prtName����T���B������������^ � PM_FindFolder�tables����prtName��XCEL%����T���B������������^ � PM_FindFolder�tables����prtName��TEXT%����:���(������������^prtName�prtBase���_Reg.xls�������������������^ � PM_FindFolder�postprocessing����prtBase���_Regions�� � PM_FindFolder�tables0����prtName����T���B������������^ � PM_FindFolder�tables����prtName��XCEL%����T���B������������^ � PM_FindFolder�tables����prtName��TEXT%�������������������^���6���$������������^prtName�prtBase���.xls%������������������^ � PM_FindFolder�postprocessing����prtBase���_Budgets�� � PM_FindFolder�tables0����prtName����:���(������������^prtName�prtBase���_Reg.xls�������������������^ � PM_FindFolder�postprocessing����prtBase���_Regions�� � PM_FindFolder�tables0����prtName�������������������^������������������^�������������������������������������^������������������^����������������������`���N������������THwait to make sure summaries catches html files, prt2html needs to finish���� ���������������^done(�����$���������������^ tickCount�������������������^���.���������������^C�B���@�����������N���<������������^�� diag_path��� prt2html.stop��$$�������.���������������^C�B�����������������<���*������������^�� diag_path��� prt2html.stop���� ���������������^done(��������������������^���R���@������������ ^�done(�� � tickCount����@��������`������.���������������^C�B����������������������������������������������������������������������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<c�X��~5� �����$��#��g������bp�>���,�������� ^Simulation_PreviewTrend��?�����������������������^��������������������������������������������������������DFCC4D�X��~5� �����$��#��g��'����bp�>���,����������� ^Simulation_PreviewTrend��@��������������������������^on������������������������������������������������������DFCC4D[�X��~5� �����$��#��g������bp�>���,����������� ^Simulation_PreviewTrend��@������������������������^��������������������������������������������������������DFCC4DT�X��~5� �����$��#��g��1����bp�>���,����������� ^Simulation_PreviewTrend��@�������������������������^on������������������������������������������������������DFCC4D7R�X��~5� �����$��#��g��C����bp�>���,����������� ^Simulation_PreviewTrend��@�������������������������^on������������������������������������������������������DFCC4D9"�X��~5� �����$��#��g��U����bp�>���,���������� ^Simulation_PreviewTrend��@�������������������������^��������������������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dv�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dg�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dh�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Di�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9#�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D -�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dk�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DQ4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dl�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D'�S�2��� �������%�@�������path�T#��������������T�d"�2��� ���������J�# PM_Platform�@$���W�B���0������������path PM_FindFolder� ApplicationsY@^�^���L������������pathi PM_MakePathpatha�PermissionsAndOwnership.app����2��� �����������ignore�.�)path)�������������������R���@��������ff Alert_Alert�@���������@��������@�����������������������@����������������������������DFCC4D .�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dm�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dn�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D /�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Do�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 0�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�G\C�(�����%��$��g Assign_PickDocumentTX����DFCC4Dp�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dq�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dh�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dr�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/W����������������������������������������������������DFCC4Ds����������������������������������������������������DFCC4D�h~������%f��$f��g|�(��������������^�� $�������(�������<���� ^PostProcessing_View����������������^������������������������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D5�P�(�8���&��� �2�2�^�s�ss����������le�$������ �2�2�^ vRecNum�v�ep0��������2�2�^p0�\���J�����2�2�^ vRecNum� �s��s�s of m��s� �Lsre������� �2�2�^np����DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7�������������d�d6�*������������d�d�$���(������������d�d mNeedRedraw�i�������������d�d������������������������������������������DFCC4D9$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.=�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.>�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2_�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA<�yP�*����� ���� �UAM_Editor_ListBoxs�T#��DFCC4D 5�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.?�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.@�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA��f���T��%��$��gSOThis gets the list and returns a pointer to it. As a second option the list canZ�<���*���������S$be cleared and reset to say "<NA>". ���� ��������S input�M�$��������������S ptr to list���.���������������S emtpy list (boolean)���0�������������^- ��� �����listPtr���,���������������^1 ���� everclear����H���6����������^���@�������� � arrColNames���������������A�L���:������������^���@�������� �arrHeaderNamesA�����������������8���&������������^ � arrColVarsr����������������:���(��������^ � arrHeaderVars����������������8���&��������????^� � arrVisibler��������������::�6���$��������^ � arrStyles���������������"�����������^listPtr ���$�����������^ everclear ����������������.�����������Sclear and recreate list����x��������^@�listPtr�� � arrColNames� �arrHeaderNamesA� � arrColVarsr� � arrHeaderVars� � arrVisibler� � arrStyles����$�������������^� everclear��B�x���f������������^� � arrColVarsr���?�����������?��������� � arrColVarsr���?�������������������������������� ���������������S add empty���L���:������������^� � arrColVarsr���?�����������?�����������R���@������������ ^ arrColVarsr���?�����������?������� �<NA>���@���.������������^�listPtr����?��������$��5��������������������^����������������������.���������������Sreturn array to handle���8���&������������ ^�� � arrColVarsr���?�������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9'�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9(�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.A�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9)�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9*�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q�����������������������������������DFCC4D�|F5�^���L��%��$��gSFSelectedElements in the list box are returned to an array which should N�@���.�����������S(be empty when it is passed as a pointer.������������������S�o����� �����0001S input00�.��������EMakS pointer to a listboxta�@���.���������S( pointer to an array of longint (empty)������� ��������S output��4���"��������)S none (in array of longint)���B���0��������^- ��� ����listbox�� selectedliste��0�����������^�foundAt��maxsize��"�����������^listbox ����(�����������^ selectedliste ���,�����������^foundAt�������������D���2�����������^maxsize��listboxo�����?��������0�����������^�foundAt��maxsize����D���2��������^foundAt���listboxo�����foundAt��8���&������������^�foundAt��P��?�����������8���&�����)))%^� selectedlisteo��foundAt����:���(�����^foundAt�foundAt����?�������2����������^���(��������x^foundAt�maxsize���������^�����������,^����������������������������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9-�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DE�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9.�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.B�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2`�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.C�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D:�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/V�^Z%�^���L��%f��$f��gSGThis code searches the list of processed years in the output folder andN�b���P�����������SKgenerates a list of year ranges that exist. This range is sent a ptr to the�b���P�����������SKarray. There is no checking for missing files so if a user manual deletes a���`���N������������SIpart of the files then things may not work. The default return value is 1���.�����������0001Selement which is "<NA>"00������������EMakS�ia���� ��������S input���� ��������S none���� ��������????S output==�T���B��������S< ptr to array[1..n] of strings which are year ranges to addA�&�����������^�Y � PostYears��F���4��������^���@�������� � PostYears���?���������F���4�����������^���@��������� postNames���������������6���$��������^%��@���������postPath$���&�����������^�len��i����� ������������^- ������<���*�������� ^ PostYears���?�������,�<NA>�������������� �����������S get files�H���6��������^postPath$, � PM_FindFolder�postprocessing��L���:��������^ �PM_DocumentListo�postPath$�o� postNames������������������������� ������������Ssetup���.���������������^len,�� postNames����6���$������������^� � PostYears���?������������������������������T���B������������S<search through all files for new year ranges and add to listA���4���"������������^�i���?���������len����\���J������������^postPath$,�� � postNames��i���@����������@�����������L���:������������^�� � PostYears��postPath$������������������4���"������������^ � PostYears��postPath$�������������������^������������������^���&���������������^� � PostYears�������������������^������������������������� ������������Scleanup���&��������������� ^��,o � PostYears����������������������������������������������������������������DFCC4Dt�,@�d���R��%f��$f��gSMThe .DS_Store file causes problems in file listings and can be created by the���f���T����������gSNMacOS X Finder and transfered to PCs so this code is run on both platforms. ItZ�^���L��������SGtakes any list and removes the .DS_Store file without making any other ���d���R�����kTSLmodifications. This code takes in an array for the list and for the path andAU�d���R��������TSLthen return the cleaned up list. This code should be able to replace most ofA�8���&����*����S!the DSStoreMustDie and list code.�������������S������� ���������S input���.�������������gS ptr to string (path)��F���4��������S. ptr to array of strings (directory contents)���� ������������S ouput���*��������������S boolean (success)���*��������������^- ����pathPtr����0��������0001^- ���� fileNamesPtri�09�,�����������EMak^�DSStoreMustDieA�ns�*��������������^1 �����success����F���4������������^���@��������� tempNames�����������������"�����������^pathPtr, ���k�(���������������^ fileNamesPtri, �����"�����������^success,���C��������������������8���&��������^��pathPtr��� $�����4���"������������^�pathPtr��� tempNames����>���,��������kT`^�� tempNames��,`�������������k�J���8��������kW^DSStoreMustDieA,��� tempNames�� .DS_Store�k�<���*��������kV^�DSStoreMustDieA�,`��������������:���(��������kSH^�� tempNames��DSStoreMustDieA��>���,��������T9�^�� tempNames��,`��������������"�����������T�^success,����������������T�^T������������T�^T�"���������������^success,��������������������^���:���(��������^�� tempNames�� fileNamesPtri���������������^������������^|��������������������� ��������Scleanup�"����������� ^��,�success������������������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D90�L�>���,��%��$��gS&reset orbital parameters to the modern ��"�������٪���� � Orbit_Modernb���H���6����������� �Alert_ParamText@�����w�l�>�w�l�>�w�l�>����R���@���������0 @ Alert_Alert@�?��������@�@��������@�?������������������������������������������������������DFCC4DA�Bq�0�����%��$��g���� �Pow_T_TrendType1SH�>���,����������^ �Pow_T_TrendType1� ��@������������X���F�����������SASimulation_TrendSFGetFile (->[Model Variables]Solar Trend1 Value)����������:����^on������������DFCC4D7S�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D91�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D92�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7T�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D93�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�R������&b��%b��g�T�(���������������@�$@������X���F������������ @PostProcessing_ProcessedToYears� @ processYear�� @ startYear����2��� �������� @PostProcessing_EnableButtonsbf����������������@������������DFCC4D;�.]�d���R��%��$��gSLTake the current selection in the processed years and apply it to the years A���f���T�����������SNlist instead of just here. This allows the old code to work ok, and it is more�"�������&����S consistent.������������������S������� ���������� S input�k�4���"����������S ptr to array (processYears)�P�2��� ��������0001S ptr to array (startYear)00���� ��������EMakS outputr��2��� ������������S none (changed selection)���J���8������������^- ��� ����processYearsPtr�� startYearPtrt����B���0��������^%��@��������� startYear��endYear��8���&�����������^�startPos$��endPos ��i����*��������������^processYearsPtr ��Y�(��������������^ startYearPtrt ����������������������<���*��������S%check that there are years to process�~���l��������^��processYearsPtr �� `����������������� startYearPtrt �� `���������������L���:��������^�processYearsPtr ���?���������<NA>I��0�����������Sfind years in years list��t���b��������^ startYear �� �processYearsPtr ��processYearsPtr ���?����������@��������kk�r���`�����������^endYear �� �processYearsPtr ��processYearsPtr ���@����������@����������H���6��������^startPos$ ��� startYearPtrt �� startYear��R���@��������^endPos� ��� startYearPtrt ��endYear��startPos$��������������������(�����������Schange selection��^���L��������^�startPos$� `����������������endPos � `���������������X���F�������� ^PostProcessing_SelYears �start_lbs��startPos$��endPos ���������������^JJ������������^���������������^������������������DFCC4D �m&�t���b��%��$��gSQSelect any range of years from the years list. This code is a generalization of tShe old ���t���b����$��ZSQSelNYears. This code also moves the scrollbar to show the years that have been seSlecteda����������b� S����� ������������S intput���2��� ����l����S ptr to list (years list)���6���$���������S number (first item to select)���6���$�����������S number (last item to select)������ ����P����S output���� �������� PopS none���8���&���������� ^- ����listPtr��YearsPtr$��e�\���J����������^ ��� ����firstSel$��lastSel��listLen��selLen��i��>�"�����������0001^listPtr ��00�$�����������EMak^firstSel$ ���)�"��������������^lastSel �����������������.�����������Scheck for a valid list�T���B��������^YearsPtr$ �PostProcessing_TypeListEmptyX�listPtr�������4���"��������^listLen��YearsPtr$�����4���"��������^�listLen�`��������������f���T��������^�YearsPtr$����?���������<NA>�y@check against special case�������������������F���4�����������S/change selection to first year of new selection��>���,�����������^�listPtr���firstSel$�$��5���8���&�����������^selLen��lastSel�P�firstSel$����������������8���&��������S change the rest of the selection�4���"�����������^�selLen�`����������������8���&��������^�i���?���������selLen��F���4��������^�listPtr���i���firstSel$�$��5��������������^����������������^�������������111��.�����������Sscroll to new selection�B���0��������)�^�listPtr���firstSel$���selLen�\2������������^U������������^����������������������������������������������������DFCC4D94�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D95�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D96�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D98�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA �p������&b��%b��g�T�(�������������g�@�$@���TX�B���0����8����@ @ start_lbprt�@�?��������$@�5�����B���0������������@ @ start_lbprt�@�?��������$@�5�����2��� ����(���� @PostProcessing_EnableButtons���������)))%@�����������������������������DFCC4D9:�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.E�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.F�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dv�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 8�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D 9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D :�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ;�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D =�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9;�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D=�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2a�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dx�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D >�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/Xy� �`���N��%6��$6��gSIReturn the path to the subfolder in postprocessing that the program wantsfn�^���L�����������SGbased on the complex code to build the folder path. This is not in path���`���N�����������SHmanager because it needs values from [PostProcessing] which violates the����N���<���������� S7seperation between Path Manager and the rest of the db.�]�������������� S��`���� ���������� S input�s�<���*���������P�MS$ string, type: "zonal" or "average"~�i�R���@�����0001S: boolean, true means folder (hence add \ or : at the end)00�B���0�����EMakS* * (optional), use Unix path char instead��e���� ���������S output���*�����������S string, new path(��>���,�����^%��@�������� ���� folderTypef���,��������^1 ����asFolder$��8���&�����^%��@�������� �����path(��&��������^ folderTypef~ ��<�$��������^asFolder$~ �������������.�����������Sadjust for folder type�4���"�����^� folderTypef� �zonal����0��������^ folderTypef~� _AllSeas_�������������^���,��������^ folderTypef~�_Avg_���������^�����������"��������S create path�h���V�����^path(~������~�� folderTypef�~��� �������~��-�~��� �������.���������� ^��~`��@����������[�"������������S unix style#cs�z���h���������^path(~ � PM_MakePath � PM_FindFolder�postprocessing��$���path(��asFolder$��$����������������^�n���\���������^path(~ � PM_MakePath � PM_FindFolder�postprocessing���path(��asFolder$����������������^��������������^���� ���������Sreturn��� ������������ ^��~�path(M_��������������������������������������������������������������DFCC4D.J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+��V���D��'A��&A��gS>Copy zonal files from the AllSeas folder into the Zonal folderB�b���P�����������SKso that the user can see them. This code was based on PostProcesssing_Plots�6���$�����������Sbut modfied for zonal (AllSeas)���j���X�������������%@�@��������@ srcfoldername�@destfoldernamez�@filename$�@ filename2����6���$��������0001@%@�@��������@destpath$�00�4���"��������EMak@%@�@��������@srcpath�ke� ���������������@@len����:���(������������@�@ alat_enabledl�@���������������P���>���������� @�@�@��������@alat_fileextension-�@�������������l��������������N�u�m�.�������������)Screate the folder name��p���^����������=@ srcfoldername-@�����-�w�l _AllSeas_�-�@� @������-�w�l-�-�@� @������e�j���X����������)@destfoldernamez-@�����-�w�l_�-�@� @������-�w�l-�-�@� @������I��������������P�o�w�B���0��������f4S+create paths and create folder if necessary �F���4���������)� @srcpath- @ PM_FindFolderw�lpostprocessing��a�R���@����������I@srcpath- @ PM_MakePath@srcpath�@ srcfoldername�@���D�>���,��������� �@destpath$- @ PM_FindFolderw�lzones��a�X���F���������� @destpath$- @ PM_MakePath@destpath$�@destfoldername-�@���a�8���&���������N�u@@@destpath$����$@�����&�������������)@@destpath$����������������=@���������������� ��"������������N�uS copy files8��V���D����������)@@�����@ alat_enabledl�@�����@alat_fileextension-��e�2��� ����������=@len-@@ alat_enabledl��s�4���"������������@@i�@�?��������@len���,��������������@@ alat_enabledl�@i������v��������4@filename$-@�����-�w�l_�-�@�@alat_fileextension��@i�w�l �w�l�-�wO8remove trailing spaces���P���>������������S8If (PM_Platform#Power Macintosh )`pc files end in xls�8�2��� ��������@���S$filename:=$filename+".xls"@����� ������������SEnd if ���:���(������������@ filename2-@filename$�-�w�l.xls��L���:��������� S4don't overwrite files, but copy if not already there-���^���L������������@@ @ PM_MakePath@destpath$�@ filename2�@������$@������~���l������������@ @ PM_MakePath@srcpath�@filename$�@��� @ PM_MakePath@destpath$�@ filename2�@������2��� ������������@#@ PM_Platform�$@������,���������������Sretype files for eva-���X���F�����������A@ @ PM_MakePath@destpath$�@ filename2�@���w�lTEXT����X���F������������@ @ PM_MakePath@destpath$�@ filename2�@���w�lEVA_��Q���������������@������������������@������������������@�����������������@��������������������������DFCC4Dy�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ?�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D @�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.K�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DV�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9=�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9>�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.Q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.R�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�h~������%f��$f��g|�(��������������^�� $�������(��������������� ^PostProcessing_View��������������^������������������������������������������������DFCC4Dz�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9?�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9@�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9A�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D"�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9B�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.S�,�(�����%f��$f��g PostProcessing_ViewTX����DFCC4D+�EZt�B���0��&\��%\��gS*pick what view command to use based on tabpt������������������.���������������@� @ pTimeSeries����P���>����:���� @PostProcessing_TypeViewHierw�lplots�� @ plots_hierl�u�(��������������@@� @pMaps���n���\���������� @PostProcessing_TypeView� @ maps_hier�w�lmaps�@������������@�����%�w�l.��e�,������������w� @@� @ pVertical��a�r���`���������� @PostProcessing_TypeView� @ slices_hier�w�lslices�@������������@�����%�w�l.���*��������������@@� @pZonal�����P���>�����0001 @PostProcessing_TypeViewHierw�lzones�� @ zones_hiero�17�*�����������EMak@@� @pTables� I�v���d��������aaaa @PostProcessing_TypeView� @ tables_hier�w�ltables�@�@��������w�l.avg�%�@���������������������@��������������������������������DFCC4D9C�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA"�{w}�^���L��%f��$f��gSGThis code searches the list of processed years in the output folder andN�f���T�����������SNgenerates a list of folders the represent already processed years. The default�|�@���.�����������S)return value is 1 element which is "<NA>"���������������S������� ������������S input������ �����������S none������ ��������� �S output��P���>���������t� S8 ptr to array[1..n] of strings which are folders to add��t�(�����������^�Y � PostFolders��H���6��������^���@�������� � PostFolders���?�����������F���4��������^���@��������� postNames��������������J�6���$��������111^%��@���������postPath$��0�����������^%��@���������avg��4���"��������^�len��i��runidLen$����� ��������RRR^- ������>���,����������� ^ PostFolders���?�������-�<NA>.�$�����������^avg�_Avg_������������������ �����������S get files�H���6��������)�^postPath$ � PM_FindFolder�postprocessing����8���&��������^��postPath$�� $�����4���"������������^�postPath$�� postNames�����������������������>���,������������^�� postNames��`�������������������������������������� ������������Ssetup���.���������������^len�� postNames����8���&������������^� � PostFolders���?�����������0���������������^runidLen$������������������������������b���P������������SJsearch through all folders for those that contain "_Avg_" add them to list����4���"������������^�i���?���������len����Z���H������������^��� postNames��i-��`�runidLen$����@�����������"��������������^� postNames��i-!��runidLen$����@��������"� �avg!���@��������"���� postNames��i-!��runidLen$����@��������"� �avg!���@��������"���� postNames��i-!��runidLen$����@�������"� �avg!���@�������"�����l���Z�������^postPath$�� � postNames��i-��runidLen$����@����������@���������$�6���$����������^ � PostFolders��postPath$��s����������������^������������������^������������������^���(���������������^� � PostFolders�������������������^������������������^������������������������� ������������Scleanup���(��������������� ^��@ � PostFolders����������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9E�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.T�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D A�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D|�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D B�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9F�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D C�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D E�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dv�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D}�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9G�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9H�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9I�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.V�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9K�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9O�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D J�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D K�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D� <�b���P��%g��$g��gSJThis code enables or disables the debug log provided by 4D 2004.3. See theum�\���J����\��J��SD4th Dimension 2004.3 Addendum in the Language section for more info.����������������1S����� �����������S input��� ��������������S <none>����� �����������S output��� �����������S <none>�(����������������@ debugStated������������������2��� ��������????Sfind and toggle debug state��2��� ��������@ debugStated@$@�%�"���8���&��������@@ debugStated�@�������������2��� ������������@$@�%�"�@�?��������������������111@���2��� ��������@$@�%�"�@������������������������@��������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D L�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D M�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D N�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D~�t�*�����&\��%\��g �Toolbar_CreateReport8T#��DFCC4D<l�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxa�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dv�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dh�t�.�����%}��$}��gSopen assignment window��t���b����������� �Generic_OpenReopena#@Assignment_ProcessID>�w�lAssignment Window�w�lAssign_Process�����������������������������������������������������������������������DFCC4DL�t�f���T��%}��$}��gSOopen the assignment window so the user can see the list of current assignments.Z�D���2����x����S,only admin users can change the assignments.������������������M�4���"������� �7@������w�l Assignments��g�p���^�����������@wind�a@@������w�l Assignments�$@�'� �#@ Toolbar_Width�@�@����������������������@���� ��������toi@������"�����������@�@�������"�������������{@�/@������c�������������000100�4���"��������EMak@�(@������w�l Assignments�ke����������������@���������������������:���(������������#@Assignment_ProcessID8a@�����������������������������������DFCC4DT6�,�$�����%}��$}��g �Assign_ListBoxz���������DFCC4D�;�t�"�����%��$��g � Assign_Deleterf����������DFCC4DP�x�&�����%}��$}��g �Assign_NewDialog�������DFCC4D O�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D��z���h��%��$��gSQhandles the list box in the assignments wind, both loads the list and handles chaS nging recordsfs���������������S ������ ����ʒ��� S input�n�0�������������S optional (refresh list)�a���� ���������� S output�n���� ����������S none�l������������ �����J���8��������@�$@����x @�4@����������������D���2�������� ADOS,load in the whole table used to list things No�2��� ��������0001@� @assID�@������������00�H���6��������EMak@�@�@�������� @ arrColNames�@������������ V�L���:������������@�@�@�������� @arrHeaderNamesz�@���������������8���&�����������@ @ arrColVarsr�@���������������:���(��������62j@ @ arrHeaderVars�@��������������8���&��������@� @ arrVisibler�@�������������6���$��������@ @ arrStyles�@�������������*�����������@ @ assColsToSets�4��������������,�����������Sload in data to table����v�����������@@ @assCols� @ arrColNames� @arrHeaderNamesz� @ arrColVarsr� @ arrHeaderVars� @ arrVisibler� @ arrStyles��"�������������@�/@�������T�.�����������@@����� @assName��:���(��������@ @assCols�@�?���������4��F��������������������(���������������@@�$@������ ��������������� @ Assign_View������������������@����������������������������������������������DFCC4D<m�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�1`�n���\��%��$��gSQCreate new assignments through a dialog box that is opened. If the user chooses OSKf�r���`�����������SQthen the code is run to determine if the record can be created. This code also chSecks ���4���"�����������Sif the user is an admin user.������������!���S������ ������������S input���D���2��������0001S, * (optional, edit existing record instead)14���� ��������EMakS outputr��*���������������S none (new record)�������������������@���.������������S)optional parameter to edit current record���(���������������<1 @ AssEditMode����&��������������� @ AssEditModel@��H�.��������������@@�l@���������������&��������������� @ AssEditModel@���������������@�����������������"��������������S open dialog����������������@�@��@�@���������l`@�@��������@��@�@���������l`@�@��������@��@�@���������l�@�@��������@��@�@���������l�@�@��������$@�'��w�lCreate Assignment�wO8 Open a modal windowl�4���"������������@�(@������w�l KeyConcepts���������������@�����������������������>�����������DFCC4D[�^�P���>��%��$��gS9check if the user is an admin before showing some buttonsXT�L���:���������� �#@UAM_UsePasswords���@���x #@ UAM_Admin���d�0��������������@[��w�lbut@`�@������������Ͼ����@on��������������������������������������������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<n�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�i3�� �����%}��$}��g � Assign_Newsbp������������DFCC4D6`��H���6��'��&��b$0Generic code to do open and reopen for processes�DO�X���F�����scalb$@replaces almost all the code in xxx_Open with a generic version.� @�`���N����*�b$HIf the process window is closed then it is opened. If the process window���d���R�������b$Mis open and in front then it is closed. If the process window is not in front�e�@���.�����scalb$)and open then it is brought to the front._S���� ���������b$ input��(������������b$ process id ptrz���&�������\�����b$ process name$ss�8���&����"�����b$ process startup procedure name������ ����Ɯ�����b$ outputdP���� ���������b$ noness�0������������- @��@ processIDPtrr���&������������@ @ processID�rz�>���,���������@% @�@�������� @��@ processName��$�>���,������� @% @�@�������� @��@ processProc�nd�(��������@ processIDPtrr @�nd�&�������.�scal@ processID @�7 a�&�������������@ processName @� d�&�������D����@ processProc @������������\����������������^@[�6���$����~���@ @ processID�@��������������>���,��������@ @J @ processID��@�@�������� h�4���"����b����� @Restart_Process @ processID����������������@b$�B���0�����|b$+close front window or bring window to front��4���"��������(@ @ @��8@ processID�pe�2��� ������� @ Generic_Close @ processID� w������������@���&�������4���@F @ processID�@��������Ǩ����@ �������������@ ��������V�����@�Z���H��������@ processIDPtrr7@= @ processProc�#@ StackSize�@ processName����������������@b$��6�����@���R���@����6����� @ Alert_Alert@�@���������@�@��������@�@���������������������������@�&������������������@����������������������������������������������������������DFCC4DT�?nn� �����%��$��g � Assign_Viewbp������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DI]�A�`���N��%��$��gSICreate a new record for assignments or alter the existing record based onfn�`���N����������SHthe value of AssEditMode (true means to replace the values in the record���8���&��������S!instead of creating a new record.�����������������S�o����� ������� S input� �2��� ��������� �S pointer (name as string)� �(���������������S integer (type)����0������������%S pointer (text as text)������� ��������0001S output00�*�����������EMakS none (new record) I�<���*������������- @�� @��@namePtr�@textPtr����*�����������EMak@ @��@typeNum�@�"���������������@namePtr9 @����"�����������@typeNum9 @��"��������������@textPtr9 @�th����������������@�N���<�����������S7check that the value isn't empty then create or replace�>���,������������@@�@textPtr���9@�@�����������.�����������@ @ AssEditMode���@����"�����������@�D@������eP������������@��(�����������@����9@namePtr��&�����������@����9@typeNum�(��������������@����9@textPtr��"�����������@�5@�������"�����������@�/@������xz����������������@ ��,����������� @Assign_ListBoxz��us������������@�&�6���$��������Sif too short a name just reject���������������@�&�����������������@��������������������������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnf�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D���~���l��&\��%\��g  Generic_Openn#@PostProcessing_ProcessID�w�lPostProcessing Window�w�lPostProcessing_Process�~����������������������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D���n���\��&\��%\��g Generic_Openn�#@Assignment_ProcessID>�w�lAssignment Window�w�lAssign_Process�f������������������������������������������������������������DFCC4D Q�t�,�����&\��%\��g �Simulation_Open����DFCC4DP&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D R�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9Q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA#�,A�.�����%��$��g �Assign_NewDialog�����������������������������������������������������������������DFCC4DC�6ue�^���L��%��$��gSFView the currently selected assignment. This requires that you pass in0N�\���J��������SDthe list of assignments and assumes that the visable names match the4���$��������������S record names.��������������S�o����� ���������� S input�e�$�����������0001S none (list)06���� ��������EMakS outputr��2��� ������������S none (open file/web page)������������������@�2��� �������� ADOScheck there are assignments��4���"��������� @Assign_FindRecord@����J���8��������S2based on the assignment type open file or web page����������������@S�F���4��������@@�����@�?��������wO8file , open it�4���"��������kkk@@@������$@���O8�0��������������@found4@.�)@������������������@f�H���6����������� @Alert_ParamText@�����w�l�4�w�l�4�w�l�4����R���@�������� @ Alert_Alert@�?��������@�@��������@�@���������������������@ A�@���.��������@@�����@�@���������wO8 url, web ))�(���������������@@��������� �����������111@�� unknown��R���@�������� @ Alert_Alert@�?��������@�@��������@�@���������������������@ A������������RRR@11����������������@��������������������������DFCC4DA$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�,A�Z���H��%��$��gSBon open I need to know if this is an edit or a new record. If it'sME�X���F�����������SAan edit then the proper info is loaded. If edit is called with no���<���*�����������S%record selected then it acts like new�������������������*������������� Son loading the form�I�(������������a�m@�$@����s�.���������������Sclean variables on load���"����������� @Name9w�l�9� �������������� @Url9w�l�9���&�������������� @filenamef9w�l�9��(�������������� @R1l9@��������������(�����������) @R2�9@���������������������������"�����������S if editing8�&�����������@ @ AssEditMode��(�����������Sassume this fails�&����������� @ AssEditMode9@�������������������,�����������Sfind and load record9�P���>��������@ @Assign_FindRecord@��� @assName� @assNameE��kk�J���8��������S2based on the assignment type open file or web page��$��������������� @Namea9@����������������������@���<���*������������@@�����@�?��������wO8file9���(��������������� @R19@�?����������(��������������� @filenamef9@�������&��������������� @ AssEditMode9@����:���(������������@@�����@�@���������wO8url���(��������������� @R2�9@�?����������"��������������� @Url9@�������&��������������� @ AssEditMode9@�������������������@���"���������������S do nothing8������������������@�������������������������������������@������������������@������������������@����������������������������������������������������������������DFCC4D<o�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9R�G\C�D���2��%��$��g@�$@���� @�$@������0��������������@ @R2�@���������������(�������������� @R1�l@�������������(�������������� @R2�l@�?������������������������@��������������0001@02������������������������������������������������������DFCC4DI^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2b�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7V�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9S�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�H�F���4��%��$��g�@�w�lhttp://� @Url��@��������������0�������J���� @UrlXw�lhttp://�X� @Url����������J�����@���&�������J�@ @Url���������������������������������������������������������DFCC4D<r�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<s�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D S�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�'�^���L��%��$��gSFThis code use the optimized find in index commands to find records and0N�b���P������������SJselect the requested record from the database. You can call this code with���b���P�����������SJno parameters and the current selected item in the list will be found. You�V���D�����������S?can also pass the pointer to a string and it will be look for. ������������������S������� ������������S input���.������������m�eS boolean (goto record)�>�>���,���������� S& ptr (optional, string to search for) �o���� ���������m�eS output� �0�������`�S boolean (was it found)����2��� ����`��%@�@��������@name���"�����������@@found��@���.��������111@1 @��� @��@ gotoRecordg�@isHerec��&�����������@ gotoRecordg/ @��"�����������@isHere�/@��������������RRR1�,��������������Scopy string if passed�.�����������@@�/@�?���������6���$�����������Sstring was passed in ptr, copyR���� ��������@- @���"�����������@name�/ @����������d�@�<���*��������????S$nothing passed use current selection/99�<���*��������)�@@ @assName��/@�������������4���"��������@name�/ @assName� @assName�������������� c@c�P���>��������ƽ@namea/w�l!@#$%^&*(wO8random illegal string������������@Z������������@��������������"�����������S find in db8�6���$��������@found/@@�����@name���6���$����x���@@found�/�/`@�?�����������"�������x�";@isHere�/@�w�&�������x�I@@ gotoRecordg���,�������x�_g@�@������@found���������x�@��������x�@���������x� ����� ����x�????Scleanup==�"�������x� @��/@isHere��C����������������������������DFCC4D<t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�G\C�J���8��'��&��b$3delete the currently selected record from the list,CH�N���<�������b$7I've choosen not to give a warning, they need to select���8���&��������b$!and then click to do this anyway.�����������������b$������� ������������b$ input ������ �����������b$ none ���� �����������b$ outputp_���� ������������b$ none ���4���"����j� @Assign_FindRecord @����"�������j����@�: @��������,�������j���� @Assign_ListBoxz ��YY��������j����@����������@������������DFCC4D9T�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D%�[�@���.��%��$��g�@ formEvent�@lengthe�@MaxEntry$�KO�.��������������@MaxEntry$,@�@�����������������������������$�����������@ formEvent,@���������������#�@AM��������������P���>�����@@ formEvent�$@����� @ formEvent�$@��+����*�������� �@lengthe,@�@���2��� �����k@@length��,@MaxEntry$�w�*�����������{@lengthr,@MaxEntry$g�������������F1^c�>���,��������1g9sS& remove excess characters during entry w�D���2��������B@4,@� @�@�?��������@MaxEntry$�s����������������@���2��� ������������SmyCount:=$MaxEntry-$length������������������@��DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D8��zh�(�����%��$��g R1ll@�����������TX�(�������������� @R2�l@�?�����������������������������������DFCC4D �Sz�(�����%��$��g �Assign_PickDocumentTX����DFCC4D2c�G\C�b���P��%��$��gSKPick a document to use for the link. This code uses the new Select Documentum�f���T����v����SOcommand that allows for better control of the directories. The result is placed���\���J����T����SDback in value in the dialog so no explicit variable passing is done.lD����������� S��e���� ���������� S input�c���� ��������S noneࡱ���� ��������S output���� ��������S noneࡱ�0�����������A� defaultDIRdl@�?����������H���6����߆�0001@filter�lw�l JPEG;TEXTwO8 jpg;txt for windows 15�.�����������EMak@titlelw�l Select file:lta�,���������������@option�l@��������������&���������������@filename$lw�l�l���T���B�����@filename$l@@ defaultdird�w�l*�@title�@optiont��0�����������@ @OKt�@�?���������(����������� @R1l@�?��������(����������� @R2l@������������,�����������`O @filenamefl @DocumentD�������������`8@ ��������DFCC4D>�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dng�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxb�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxc�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7W�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP'�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7X�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D51�J�"���������( ( XML_Export�(���������������(������������������������������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D T�s=�0�����%��$��g � FinderToPathnw�lData�SH������������������������������������������������������������DFCC4D/Z�s=�H���6��%��$��gS1this goes to the following web page for the aboutDO�:���(��������g�� WebAndMailLauncher%@�@��������������������������������������������������DFCC4D�s=�,�����%��$��gSthis goes to the FAQ$���:���(����P���� WebAndMailLauncher%@�@��������������DFCC4D�s=�,�����%��$��gSthis goes to the FAQ$���:���(����������� WebAndMailLauncher%@�@��������������DFCC4D U�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DV�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�A�b���P��'&��&&��gSJThis code sets up a semaphore to lock a critical section of code where theum�`���N������������SHrun arrays are being modified. Multiple processes modify these arrays so���b���P��������SJa semaphore must be used. This code makes sure that things are consistent.�`���N�����������SIUses ref counts so that multiple being/end blocks can be embedded without���(���������������Scausing problems.������������������S������� ����0�����S input������ ����0����S none������ ����0�����S output���`���N����0�����SI none (code can't handle errors right now, should return failure values)�����������0��������&�������0�����Ssetup refcount���:���(����0����@�R @UpdateRunArray_refcount�����4���"����0�����@ @UpdateRunArray_refcount����<���*����0�� @UpdateRunArray_refcountc@���������������������0�����@�����������0��������D���2����0�d@@�w�lUpdateRunArray�@�@���������l�$�������0�����S debug assert:@�*�������0�����@@�w�lPiro���.�������0�����@@�w�lmshopsin������������0�����@�����������0��L@����������0�����@����������0�����@�����������0��������*�������0�����Sincriment refcount���Z���H����0����� @UpdateRunArray_refcountc @UpdateRunArray_refcount�c�@�?�����������������DFCC4D V1�^���L��%��$��gSGLeave a critical section of code an release the semaphore so that otherN�b���P����N����SKprocesses can modify the run arrays. Release semaphore only if the refcount���D���2���������u�tS-is one, otherwise just decriment the refcount�p�������������� S��`���� ���������� S input�a���� ����������S none�{���� ��������S output����� �����������S none���������������er�&���������������Ssetup refcount���:���(��������@�R @UpdateRunArray_refcount���4���"���������I�D@ @UpdateRunArray_refcount��<���*��������111 @UpdateRunArray_refcount@�����������������������@���������������<���*�����S$if refcount is one release semaphore���D���2��������@ @UpdateRunArray_refcount�@�?���������.�����������@�w�lUpdateRunArray�������������@��������������*�����������NNNSdecriment refcount��Z���H�������� @UpdateRunArray_refcount @UpdateRunArray_refcount�`@�?������������������������������������������������������������������������������������DFCC4D W�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D,�,�H���6��%��$��gS0Disable the run manager so that work can be done�DO�(��������Ff�� pRun_Critical_Begin���.����������#p Run_Debug@�?��������_�&������������ @Run_Critical_End�P����������������������������������DFCC4D X�M+�Z���H��%��$��gSCRun_Critical_GetRunN allows a single value from the run array to beME�Z���H����ը����SCreturned without making the pair or calls to run_critical_begin and���V���D�����������S?run_critical_end. You can only get the current runID or runName��������^����S������� ��������EMakS inputr��:���(������������S" longint (1 = runName, 2 = runID)������ ������������S output���6���$���������=�S pointer to string or longint�o�*�������(� �� @��@runType���*�����������@- @���@runPtre��*�����������@ @ RunCriticalID��>���,��������@%@�@�������� @RunCriticalNumber��"�����������@runType @����������д� ��6���$������������Swait for sempahore to free up, ���(��������������� @Run_Critical_Begin����������������������$���������������S get the value����������� �@���N���<��������  '@@runType�@�?��������wO8run name (runnumber) �P���>��������@ @RunCriticalNumber#@RunNumberArray�#@RunNumberArray���4���"������������@runPtrb @RunCriticalNumber���@���.������������@@runType�@�@���������wO8run id���H���6����� � @ RunCriticalID#@ RunIDArrayR�#@RunNumberArray���0�����������{{@runPtrb @ RunCriticalID������������@��������������,�����������Srelease the semaphore�&�������ɼ� � @Run_Critical_End���������������TTT�$�����������@���S return value���"��������������� @��@runPtr�ra����������������������������������������������DFCC4D7���������&�����&m��%m��g#@ ALERTLIST���&��������������@#@ ALERTTEXT����8���&������������@%@�@��������#@ ALERTTITLEA����2��� ������������@#@ASSIGNMENT_PROCESSID(���.��������������@#@CLEANUP_PROCESSID����*���������������@#@ CM_PROCESSIDM����,���������������@#@CM_UPDATEIMAGES����2��� ������������@#@CONTROLRUNNUMBERARRAY����.���������������@#@CONTROL_PROCESSID����.�����������@#@CURRENTGROUPVERS�RI�.��������aaaa@#@CURRENTLINKSVERS��0������������@#@DRAGTRANSFERCAPTION����.���������������@#@DRAGTRANSFERPICT��,���������������@#@ELIST_PROCESSID� �,���������������@#@FLUX_PROCESSIDz����2��� ������������@#@INFOCAPTION_PROCESSID����,�������������@#@INFOPICT_BUTTON����0���������������@#@INFOPICT_PROCESSID����*��������������@-#@ INFOPICT_PTRN����,���������������@#@INFOTEXT_BUTTON����0��������������@#@INFOTEXT_PROCESSID���,��������������@#@LIST_PROCESSIDz����,�����������4@#@LOGO_PROCESSIDz����,���������������@#@MODELAPPSBINREF� �*�����������@���@#@ MODELAPPSREFO�� �*���������������@#@ MODELGRIDSREF�ra�*���������������@#@ MODELNAMESREF��(�����������-� @#@ NEWENDDATEN� � ���������������@-#@NIL��<���*������������@%@�@��������#@PICTINFOTOOLBAR����4���"������������@1#@PICTINFOTOOLBARCHANGED����0���������������@#@PICTINFOTOOLBARREC����8���&�����������A@%@�@��������#@ PM_DATABASE��6���$������������@%@�@��������#@PM_EDGCM���:���(������������@%@�@��������#@ PM_EDGCM_UNIX����(���������������@#@ PM_LISTREFP����*���������������@#@ PM_PATHASCIIM����8���&������������@%@�@���������#@ PM_PATHCHAR����(���������������@#@ PM_PLATFORM����<���*������������@%@�@��������#@PM_PLATFORMNAME����,���������������@#@PM_PLATFORMVERS����$���������������@#@PM_VERS����<���*������������@%@�@��������#@POSTDEFAULTSETz����2��� ������������@#@POSTPROCESSING_BUTTON���6���$������������@#@POSTPROCESSING_PROCESSID����$�����������@#@POSTTAB��,�����������@#@PREF_PROCESSIDz�))�<���*���������%@%@�@��������#@PROGRESSMESSAGE��6���$������������@%@�@��������#@QUERYSTR����.���������������@#@RUNDECK_PROCESSID����,���������������@#@RUNDECK_SUMMARY����*���������������@#@ RUNDECK_TEXTU����:���(������������@%@�@��������#@ RUNDECK_TITLE����2��� ������������@#@RUNLISTREINITTOOLBAR(����(���������������@1#@ RUN_CHECKDB����&���������������@#@ RUN_DEBUG����*���������������@1#@ RUN_DIRTYSETS����:���(������������@%@�@��������#@ RUN_HOMEDISKU����.���������������@#@RUN_ID_TO_SELECT����,���������������@1#@RUN_RUN_RECHECK����*���������������@1#@ RUN_USECACHEU����0�����������.@#@SETSCURRENTVERSION�.�(���������������@#@ SETS_BUTTON����,���������������@#@SETS_PROCESSIDz����,���������������@#@SETUP_PROCESSID����.���������������@#@SIMULATION_BUTTON����2��� ������������@#@SIMULATION_PROCCOUNT(����2��� ������������@#@SIMULATION_PROCESSID(����.���������������@1#@SIMULATION_SAVED����8���&������������@1#@SIMULATION_TWISTDOWNCHANGED����&���������������@#@ STACKSIZE����,���������������@1#@TMP_RUN_RECHECK����.���������������@#@TOOLBAR_PROCESSID����*���������������@#@ TOOLBAR_WIDTH����0���������������@#@TRANSIENT_PROCESSID����&���������������@1#@ UAM_ADMIN����&���������������@1#@UAM_AUTH����(���������������@#@ UAM_LISTREF����8���&������������@%@�@��������#@ UAM_MESSAGE����,���������������@\#@UAM_PRIVATEKEYz����4���"������������@1#@UAM_PRIVATEONETIMEAUTH����*���������������@#@ UAM_PROCESSID����.���������������@1#@UAM_USEPASSWORDS����6���$������������@%@�@��������#@UAM_USER����$���������������@1#@USE_EVA����<���*������������@%@�@��������#@VERSIONOFEDGCMz����8���&������������@%@�@��������#@ XML_VERSION����0�������� ��(�b1b#bCM_PRIV_SCANIMAGESb���.�������� ��(�{1{#{CM_PRIV_SCANINPUT{�0�������� ��(�{1{#{CM_PRIV_SCANOUTPUT{p�:���(����� ��(�{{#{UAM_EDITOR_NOPASSWORDWARNING{��������������������������������DFCC4DZ���������L���:����� ��(��@�������#ALERTPARAMTEXTA�����������H���6����� ��(��@�������# CM_FOLDERSTC�������������J���8����� ��(��@�������# CM_IMAGETYPESC����������'�R���@����� ��(��@�������#DRAGTRANSFERFILENAMED�����������<���*����� ��(��#EJOURNAL_COUNTLE�������������2��� ����� ��(��#JDOFMJ�������������J���8����� ��(��@�������# JOURNALARRAYNJ����������'�<���*����� ��(��#JOURNALIDARRAYLJ�������������:���(����� ��(��# RUNDATEARRAYAR�����������2�8���&����� ��(��# RUNIDARRAYAR�����������L���:����� ��(��@�������#RUNNUMBERARRAYLR������������P���>����� ��(��@�������#RUNNUMBERARRAYSORTMR�����������B�:���(����� ��(��# RUN_RUNNUMENDR�������������>���,����� ��(��#RUN_RUNNUMONDISKRR�������������>���,����� ��(��#RUN_RUNNUMRUNNINGR�������������@���.����� ��(��#RUN_RUNNUMSCENMASTMR�����������2�<���*����� ��(��#RUN_RUNNUMSTARTR����������EW�>���,����� ��(��#RUN_RUNNUMSTATUSSR�������������:���(����� ��(��# RUN_RUNSTATUSR���������� N�6���$����� ��(��#SETARRAY�S�������������8���&����� ��(��# SETNUMARRAYS����������#�@���.����� ��(�b�b#bRUN_RUN_DATECREATEbbR����������b�2��������������������������������������������������������DFCC4D���������������&��%��g��(��������������� @ 3D BUTTON1D����.���������������@ @3D RADIO BUTTON1����8���&����������C@%@�@�������� @ 4D_VERSIOND��E�$�������������C@ @90790JK���&�������������@ @90790JK19���&�������������I@ @ 90790JK10��U�&������������A�B@ @ 90790JK11���&�����������@���@ @ 90790JK12����&������������ �@ @ 90790JK13��T�&������������C�E@ @ 90790JK14��L�&������������A�N@ @90790JK29���&������������ �@ @90790JK39��T�&������������D�E@ @90790JK49���&�������������@ @90790JK59��)�&������������ �@ @90790JK69��T�&������������E�A@ @90790JK99��D�6���$������������@%@�@�������� @ACCSPACEA���$���������������@- @ACLPTRC����,��������������@- @ACLUSERNAMEPTRz����$���������������@ @ADDUSER����8���&������������@%@�@�������� @ ALLFOLDERSL����$���������������@ @ALLUSER����$���������������@ @ASPACER����*���������������@ @ ASSCOLSTOSETS����(���������������@1 @ ASSEDITMODE����$���������������@ @B1_ADDT����$���������������@ @B2_ADDT����"���������������@ @BACKD����(���������������@ @ BACKUPOFTEN����8���&������������@%@�@�������� @ BACKUPSTATE����$�����������@ @BCANCEL��$�����������@ @BDELETE��$����������� @ @BFIRSTE��"�������������@ @BLAST��(���������������@1 @ BNEEDREDRAW����"���������������@ @BNEXT����&���������������@ @ BNEXTPAGE���� ���������������@ @BOK����&���������������@ @ BPREVIOUS����*���������������@ @ BPREVIOUSPAGE����$���������������@ @BUTTON1����$���������������@ @BUTTON2����$���������������@ @BUTTON3����$���������������@ @BUTTON4����$���������������@ @BUTTON5����&���������������@ @ BVALIDATE����$���������������@ @CANCELB����*���������������@ @ CFC11_T_VIEWC����*���������������@ @ CFC12_T_VIEWC����(���������������@ @ CH4_T_VIEWH����(���������������@ @ CLEANUPENDL����(���������������@ @ CLEANUPMODE����*�����������6 @ @ CLEANUPSTARTE�>>�$���������������@1 @CLOSEDP���� ���������������@ @CO2����$���������������@ @CO2YEAR����&���������������@ @CO2_PLOTC����(���������������@ @ CO2_T_VIEWO����&���������������@ @CONTINUEC����$���������������@ @COPIEDU����*���������������@ @ CURLINKSVERSR����,���������������@ @CURRENTITEMVERS����.���������������@ @CURRENTLINKSVERS����4���"������������@ @CURRENTRUNRECORDNUMBER����*���������������@ @ CURRENTSPACER����&���������������@ @CURSPACEC����<���*������������@%@�@�������� @DATABASEVOLUMEz���� ���������������@ @DEL����(���������������@ @ DELETEUSERE����$���������������@ @DEV_NEW����(���������������@ @ DEV_NOCLICK����(���������������@ @ DONTREPLACE����:���(������������@%@�@�������� @ EDGCM_VERSION����,���������������@ @EJOURNAL_CREATE����,���������������@ @EJOURNAL_DELETE����0���������������@ @EJOURNAL_DUPLICATE����,���������������@ @EJOURNAL_ELINKS����.���������������@ @EJOURNAL_RUNDECK����*���������������@ @ EJOURNAL_WEBO����$���������������@3 @ENDDATE����(���������������@ @ EVEN_OR_ODD����(���������������@ @ EXTRAHEIGHT����$���������������@ @FIGNUME����6���$������������@%@�@�������� @FILENAMEF����&���������������@ @ FILE_HIER����8���&������������@%@�@�������� @ FILE_PROMPT����,���������������@ @FINDMASTERFORMz����@���.������������@%@�@�������� @FLOATING_RUN_NUMBER����(���������������@ @ FOLDERNAMEO����(���������������@ @ FOLDERTEXTO����6���$������������@%@�@�������� @ FREESPACE����$���������������@ @FSPACEA����&���������������@ @ FULLTEXT1����&���������������@ @ GROUPVERS����2��� ������������@1 @HANDLINGDELETESECTION����$���������������@ @HEADER1����*���������������@ @ HEADUSERNAMEA����(���������������@ @ HELPERAPPSE����$���������������@1 @HIDDENA����"���������������@ @HJKKE����2��� ������������@%@�@�������� @HTML�����&���������������@\ @HTMLBLOBH����:���(������������@%@�@�������� @ HTML_BROWSERM����6���$������������@%@�@�������� @ IBC_QUERY����"���������������@ @IBUT1����"���������������@ @IBUT2����>���,������������@%@�@�������� @IMAGESFOLDERPATH����8���&������������@%@�@�������� @ IMPORTNAMEM����(���������������@ @ IMPORTPICTM����8���&������������@%@�@�������� @ IMPORTSIZEM����(���������������@ @ IMPORTTEXTM����$���������������@ @INFO77T����@���.������������@%@�@�������� @INFOCAPTION_FIGURE����>���,������������@%@�@�������� @INFOCAPTION_FNAME����.���������������@ @INFOCAPTION_PICT����6���$������������@%@�@�������� @INFOTEXTI����,���������������@ @INFO_V_ENDYEARz����.���������������@ @INFO_V_STARTYEAR����.���������������@ @INIT_INPUTBUTTON����<���*������������@%@�@�������� @INPUTFOLDERPATH����6���$������������@%@�@�������� @ INPUTPATH����>���,������������@%@�@�������� @INPUTSPECIALPATH����.���������������@ @INVISIBLE BUTTON1����.���������������@ @INVISIBLE BUTTON2����.���������������@ @INVISIBLE BUTTON3����0���������������@1 @ISORIGINALFILEJPEG����"���������������@ @ITEMI����,���������������@1 @ITEMDELETEBLOCK����&���������������@ @ITEMVERSI���� ���������������@ @JKH����"���������������@ @JKH1V����$���������������@ @JKH110R����$���������������@ @JKH111R����$���������������@ @JKH112R����$���������������@ @JKH113R����$���������������@ @JKH114R����"���������������@ @JKH12����"���������������@ @JKH13����"���������������@ @JKH15����"���������������@ @JKH16����"���������������@ @JKH17����"���������������@ @JKH19����$���������������@ @KEEPERS���� ���������������@ @KKE����2��� ������������@%@�@�������� @LABEL����*���������������@- @ LINKFIELDPTRN����&���������������@ @LINKMODEL����*���������������@- @ LINKTABLEPTRN����8���&������������@%@�@�������� @ LIST_QUERYI����,���������������@ @LOADEDLINKSVERS����&���������������@ @ MAPS_HIER����6���$������������@%@�@�������� @MAXSPACEM����:���(������������@%@�@�������� @ MESSAGE_TEXTS����(���������������@1 @ MNEEDREDRAW����.���������������@1 @MODIFIED_RUNDECK����$���������������@ @MSPACEE����$���������������@ @MYWINDE����(���������������@ @ N2O_T_VIEW2����2��� ������������@%@�@�������� @NAME�����(���������������@ @ NEWENDDATEE����"���������������@ @NEWER����$���������������@ @NEWUSER����.���������������@ @NUMBER_OF_GROUPS����.���������������@ @OCEANMODELISTREF����8���&������������@%@�@�������� @ OCEANSPACEC����(���������������@ @ OLDMENUITEM����*���������������@ @ OLDWINDOWPROC����"���������������@1 @OPENI����$���������������@ @OSPACED����6���$������������@%@�@�������� @OTSPPATHO����>���,������������@%@�@�������� @OUTPUTFOLDERPATH����8���&������������@%@�@�������� @ OUTPUTPATHU����,���������������@\ @PASSWORD_CRYPTz����<���*������������@%@�@�������� @PASSWORD_PLAINz����6���$������������@%@�@�������� @PATHCHARP����8���&������������@%@�@�������� @ PATHTOIMAGE����"���������������@ @PCC1T����"���������������@ @PCC2T����"���������������@ @PCC3T����"���������������@ @PCC4T����"���������������@ @PIC1T����"���������������@ @PIC2T����"���������������@ @PIC3T����"���������������@ @PIC4T����"���������������@ @PICT1����$���������������@ @PICT10I����$���������������@ @PICT11I����$���������������@ @PICT12I����$���������������@ @PICT13I����$���������������@ @PICT14I����$���������������@ @PICT15I����$���������������@ @PICT16I����$���������������@ @PICT17I����$���������������@ @PICT18I����$���������������@ @PICT19I����"���������������@ @PICT2����$���������������@ @PICT20I����$���������������@ @PICT21I����$���������������@ @PICT22I����$���������������@ @PICT23I����$���������������@ @PICT24I����$���������������@ @PICT25I����$���������������@ @PICT26I����$���������������@ @PICT27I����$���������������@ @PICT28I����$���������������@ @PICT29I����"���������������@ @PICT3����$���������������@ @PICT30I����$���������������@ @PICT31I����$���������������@ @PICT32I����$���������������@ @PICT33I����$���������������@ @PICT34I����$���������������@ @PICT35I����$���������������@ @PICT36I����$���������������@ @PICT37I����$���������������@ @PICT38I����$���������������@ @PICT39I����"���������������@ @PICT4����$���������������@ @PICT40I����$���������������@ @PICT41I����$���������������@ @PICT42I����$���������������@ @PICT43I����$���������������@ @PICT44I����$���������������@ @PICT45I����$���������������@ @PICT46I����$���������������@ @PICT47I����$���������������@ @PICT48I����$���������������@ @PICT49I����"���������������@ @PICT5����$���������������@ @PICT50I����$���������������@ @PICT51I����$���������������@ @PICT52I����$���������������@ @PICT53I����$���������������@ @PICT54I����$���������������@ @PICT55I����$���������������@ @PICT56I����$���������������@ @PICT57I����$���������������@ @PICT58I����$���������������@ @PICT59I����"���������������@ @PICT6����$���������������@ @PICT60I����$���������������@ @PICT61I����$���������������@ @PICT62I����$���������������@ @PICT63I����$���������������@ @PICT64I����$���������������@ @PICT65I����$���������������@ @PICT66I����$���������������@ @PICT67I����$���������������@ @PICT68I����$���������������@ @PICT69I����"���������������@ @PICT7����$���������������@ @PICT70I����$���������������@ @PICT71I����$���������������@ @PICT72I����$���������������@ @PICT73I����$���������������@ @PICT74I����$���������������@ @PICT75I����$���������������@ @PICT76I����$���������������@ @PICT77I����$���������������@ @PICT78I����$���������������@ @PICT79I����"���������������@ @PICT8����$���������������@ @PICT80I����"���������������@ @PICT9����*���������������@ @ PICTBUTTON10C����(���������������@ @ PICTBUTTON2����(���������������@ @ PICTSCREENI����,���������������@ @PICTURE BUTTON1����,���������������@ @PICTURE BUTTON2����&���������������@ @PICTURE1P����&���������������@ @ PICTURE10����&���������������@ @ PICTURE11����&���������������@ @ PICTURE12����&���������������@ @ PICTURE13����&���������������@ @ PICTURE14����&���������������@ @ PICTURE15����&���������������@ @ PICTURE16����&���������������@ @PICTURE2P����&���������������@ @PICTURE3P����&���������������@ @PICTURE4P����&���������������@ @PICTURE5P����&���������������@ @PICTURE6P����&���������������@ @PICTURE7P����&���������������@ @PICTURE8P����&���������������@ @PICTURE9P����(���������������@ @ PLOTS_HIERL����0���������������@ @PLOTS_HIER_COUNTER����&���������������@ @POSTPAGEP����(���������������@ @ PROGRESSBAR����6���$������������@%@�@�������� @PRTSPACEP����$���������������@ @PSPACEC���� ���������������@ @R1P���� ���������������@ @R2P���� ���������������@ @R3P����$���������������@ @REPLACE����(���������������@ @ ROW_FIELD5O����6���$������������@%@�@�������� @RSFSPACER����$���������������@ @RSPACEC����$���������������@ @RULER1C����$���������������@ @RULER2C����*���������������@ @ RUNALTERNATEN����*���������������@ @ RUNCRITICALID����>���,������������@%@�@�������� @RUNCRITICALNUMBER����8���&������������@%@�@�������� @ RUNDECKDESC����:���(������������@%@�@�������� @ RUNDECKTITLEN����6���$������������@%@�@�������� @ RUNFOLDER����6���$������������@%@�@�������� @ RUNNUMBER����0���������������@ @RUNNUMBERARRAYHIER����$���������������@ @RUNSORT����6���$������������@%@�@�������� @RUNSPACER����$���������������@ @RUSPACE������� ������������@ @S����&���������������@ @SAVEDATAS����&���������������@ @ SAVESPACE����8���&������������@%@�@�������� @ SEARCHTEXTE����8���&������������@%@�@�������� @ SEARCHWORDE����.���������������@ @SEARCH_INPROGRESS����.���������������@ @SEARCH_LASTFIELD����,���������������@ @SEARCH_LASTPOSz����.���������������@ @SEARCH_LASTSUBPOS����,���������������@ @SEARCH_LASTTYPE����(���������������@ @ SEARCH_MODE����8���&������������@%@�@�������� @ SEARCH_TEXT����*���������������@ @ SECTIONNUMBER����(���������������@ @ SECTIONPICT����,���������������@ @SECTIONPICTTEXT����(���������������@ @ SECTIONTEXT����:���(������������@%@�@�������� @ SECTIONTITLEC����4���"������������@%@�@�������� @SETNAME����*���������������@ @ SETS_SHOWSETT����(���������������@ @ SHOWFOLDERH����"���������������@1 @SHOWN����,���������������@1 @SIMULATION_NEWz����,���������������@3 @SIM_CURRENTDATE����,���������������@ @SIM_SHOWFOLDERz����(���������������@ @ SLICES_HIER����(���������������@ @ SOL_T_VIEWO����&���������������@ @ SPLITTER1����(���������������@ @ SPLITTER10P����(���������������@ @ SPLITTER11P����(���������������@ @ SPLITTER12P����(���������������@ @ SPLITTER13P����(���������������@ @ SPLITTER14P����(���������������@ @ SPLITTER15P����(���������������@ @ SPLITTER16P����(���������������@ @ SPLITTER17P����(���������������@ @ SPLITTER18P����(���������������@ @ SPLITTER19P����&���������������@ @ SPLITTER2����(���������������@ @ SPLITTER20P����(���������������@ @ SPLITTER21P����(���������������@ @ SPLITTER22P����(���������������@ @ SPLITTER23P����(���������������@ @ SPLITTER24P����(���������������@ @ SPLITTER25P����(���������������@ @ SPLITTER26P����(���������������@ @ SPLITTER27P����(���������������@ @ SPLITTER28P����(���������������@ @ SPLITTER29P����&���������������@ @ SPLITTER3����(���������������@ @ SPLITTER30P����(���������������@ @ SPLITTER31P����(���������������@ @ SPLITTER32P����(���������������@ @ SPLITTER33P����&���������������@ @ SPLITTER4����&���������������@ @ SPLITTER5����&���������������@ @ SPLITTER6����&���������������@ @ SPLITTER7����&���������������@ @ SPLITTER8����&���������������@ @ SPLITTER9����&���������������@3 @ STARTDATE����*���������������@1 @ STARTENDREADY����&���������������@ @START_10S����"���������������@ @STOPT����$���������������@ @SUBJECT����:���(������������@%@�@�������� @ SUMMARY_TEXTM����&���������������@- @TABLEPTRT����(���������������@ @ TABLES_HIER����D���2������������@%@�@�������� @TEMPORARY_RESERVED_NAME����*���������������@ @ TEMP_RUNDECKM����(���������������@ @ TEXT COUNTE����&���������������@ @TEXTPICTT����8���&������������@%@�@�������� @ THUMBFOLDER����4���"������������@%@�@�������� @TITLE1�����4���"������������@%@�@�������� @TITLE10����4���"������������@%@�@�������� @TITLE11����4���"������������@%@�@�������� @TITLE12����4���"������������@%@�@�������� @TITLE13����4���"������������@%@�@�������� @TITLE14����4���"������������@%@�@�������� @TITLE15����4���"������������@%@�@�������� @TITLE16����4���"������������@%@�@�������� @TITLE17����4���"������������@%@�@�������� @TITLE18����4���"������������@%@�@�������� @TITLE19����4���"������������@%@�@�������� @TITLE2�����4���"������������@%@�@�������� @TITLE20����4���"������������@%@�@�������� @TITLE21����4���"������������@%@�@�������� @TITLE22����4���"������������@%@�@�������� @TITLE23����4���"������������@%@�@�������� @TITLE24����4���"������������@%@�@�������� @TITLE25����4���"������������@%@�@�������� @TITLE26����4���"������������@%@�@�������� @TITLE27����4���"������������@%@�@�������� @TITLE28����4���"������������@%@�@�������� @TITLE29����4���"������������@%@�@�������� @TITLE3�����4���"������������@%@�@�������� @TITLE30����4���"������������@%@�@�������� @TITLE31����4���"������������@%@�@�������� @TITLE32����4���"������������@%@�@�������� @TITLE33����4���"������������@%@�@�������� @TITLE34����4���"������������@%@�@�������� @TITLE35����4���"������������@%@�@�������� @TITLE36����4���"������������@%@�@�������� @TITLE37����4���"������������@%@�@�������� @TITLE38����4���"������������@%@�@�������� @TITLE39����4���"������������@%@�@�������� @TITLE4�����4���"������������@%@�@�������� @TITLE40����4���"������������@%@�@�������� @TITLE41����4���"������������@%@�@�������� @TITLE42����4���"������������@%@�@�������� @TITLE43����4���"������������@%@�@�������� @TITLE44����4���"������������@%@�@�������� @TITLE45����4���"������������@%@�@�������� @TITLE46����4���"������������@%@�@�������� @TITLE47����4���"������������@%@�@�������� @TITLE48����4���"������������@%@�@�������� @TITLE49����4���"������������@%@�@�������� @TITLE5�����4���"������������@%@�@�������� @TITLE50����4���"������������@%@�@�������� @TITLE51����4���"������������@%@�@�������� @TITLE52����4���"������������@%@�@�������� @TITLE53����4���"������������@%@�@�������� @TITLE54����4���"������������@%@�@�������� @TITLE55����4���"������������@%@�@�������� @TITLE56����4���"������������@%@�@�������� @TITLE57����4���"������������@%@�@�������� @TITLE58����4���"������������@%@�@�������� @TITLE59����4���"������������@%@�@�������� @TITLE6�����4���"������������@%@�@�������� @TITLE60����4���"������������@%@�@�������� @TITLE61����4���"������������@%@�@�������� @TITLE62����4���"������������@%@�@�������� @TITLE63����4���"������������@%@�@�������� @TITLE64����4���"������������@%@�@�������� @TITLE65����4���"������������@%@�@�������� @TITLE66����4���"������������@%@�@�������� @TITLE67����4���"������������@%@�@�������� @TITLE68����4���"������������@%@�@�������� @TITLE69����4���"������������@%@�@�������� @TITLE7�����4���"������������@%@�@�������� @TITLE70����4���"������������@%@�@�������� @TITLE71����4���"������������@%@�@�������� @TITLE72����4���"������������@%@�@�������� @TITLE73����4���"������������@%@�@�������� @TITLE74����4���"������������@%@�@�������� @TITLE75����4���"������������@%@�@�������� @TITLE76����4���"������������@%@�@�������� @TITLE77����4���"������������@%@�@�������� @TITLE78����4���"������������@%@�@�������� @TITLE79����4���"������������@%@�@�������� @TITLE8�����4���"������������@%@�@�������� @TITLE80����4���"������������@%@�@�������� @TITLE9�����(���������������@1 @ TNEEDREDRAW����(���������������@ @ TOOLBARLENO����2��� ������������@1 @TOOLBARRESETSELECTION����&���������������@ @ TRENDTYPE����(���������������@ @ TRENDVALUER����,���������������@ @TREND_DEFAULTSz����(���������������@ @ TREND_ORBIT����4���"������������@ @UPDATERUNARRAY_REFCOUNT����0���������������@%@�@�������� @URL����6���$������������@%@�@�������� @ USEDSPACE����*���������������@ @ USERCOLSTOSET����6���$������������@%@�@�������� @USERNAMEU����$���������������@ @USPACEM����*���������������@ @ VACTUALVALUEC����*���������������@ @ VACTUALVALUE2����(���������������@ @ VBUSYMETERB����&���������������@2 @VHDOCREFV����"���������������@ @VIEWC����8���&������������@%@�@�������� @ VIEWERNAMEI����&���������������@ @VIEWMODEV����*���������������@ @ VLASTPOSITION����,���������������@ @VLASTPOSITION2z����"���������������@ @VPSWD����$���������������@ @VPSWD2O����4���"������������@%@�@�������� @VRECNUM����2��� ������������@%@�@�������� @VUSER����"���������������@ @WBOTR����(���������������@ @ WINDOWPROCI����&���������������@ @ WINDOWREF����"���������������@ @WLEFT����$���������������@ @WRIGHTR����"���������������@ @WTOPH����4���"������������@%@�@�������� @XMLTEXT����(���������������@ @ XML_BUTTONM����,���������������@ @ZBOTTOM_DIVIDER����*���������������@ @ ZCFC11_BUTTON����*���������������@ @ ZCFC12_BUTTON����(���������������@ @ ZCH4_BUTTON����(���������������@ @ ZCO2_BUTTON����(���������������@ @ ZDEV_BUTTON����*���������������@ @ ZDIAG_BUTTONI����(���������������@ @ ZDISCLOSURE����*���������������@ @ ZFORC_BUTTONO����*���������������@ @ ZINFO_BUTTONN����*���������������@ @ ZINIT_BUTTONN����*���������������@ @ ZJLIST_BUTTON����,���������������@ @ZLOCKINTERFACEz����,���������������@ @ZLOCKINTERFACE2����&���������������@ @ ZLOGOLOCK����(���������������@ @ ZN2O_BUTTON����$���������������@ @ZNOMOVE����*���������������@ @ ZOCEN_BUTTONC����(���������������@ @ ZONES_HIERO����(���������������@ @ ZPOW_BUTTON����(���������������@ @ ZSOL_BUTTON����"���������������@ @ZTAB_����6���$����� ��(�b%bb%@�������b b DIAGSPACEb���$�������� ��(� DSPACE���0�������� ��(�- ELIST_SORTFIELDPTR���<���*����� ��(�%%@������� ELIST_SORTNAMED���"�������� ��(� PMAPS���(�������� ��(� POW_NOCLICK �$�������� ��(� PTABLES���(�������� ��(� PTIMESERIES���&�������� ��(� PVERTICAL���$�������� ��(� PZONALC���2��� ����� ��(� SETBUTTONTEXTALREADY���$�������� ��(� START_2���&�������� ��(� ZAVERAGEN���(�������� ��(� ZAVERAGE_1E���(�������� ��(� ZAVERAGE_3E���(�������� ��(� ZAVERAGE_4E���&�������� ��(� ZEXTRACT_���(�������� ��(� ZEXTRACT_2E���(�������� ��(� ZEXTRACT_3E���.�������� ��(� ZINFO_STATUSLOCKE���&�������� ��(� ZSETUNSET���(�������� ��(� ZSETUNSET1U���(�������� ��(� ZSETUNSET2U���(�������� ��(� ZSETUNSET3U���(�������� ��(� ZSETUNSET4U���*�������� ��(� ZTIMEEXTRACTL���(�������� ��(� ZTIMESERIES��������������������������������������������DFCC4D ��������l�H���6����� ��(��@������� A23SP_FILESA�����������N���<����� ��(��@������� ALTERNATE_FOLDERSA�������������J���8����� ��(��@������� ARR2COLNAMESLA����������'�8���&����� ��(� ARR2COLVARSA�����������L���:����� ��(��@������� ARR2HEADERNAMESA�����������<���*����� ��(� ARR2HEADERVARSSA�����������8���&����� ��(� ARR2STYLESVA�������������8���&����� ��(�� ARR2VISIBLEA�����������H���6����� ��(��@������� ARRCOLNAMESA���������� �6���$����� ��(�� ARRCOLSELA�����������8���&����� ��(� ARRCOLVARSSA���������� �L���:����� ��(��@������� ARRHEADERNAMESSA������������:���(����� ��(� ARRHEADERVARSA����������� �6���$����� ��(� ARRSTYLESA�������������8���&����� ��(�� ARRVISIBLEAA�������������4���"����� ��(�� ASSCOLSA�����������"�2��� ����� ��(�� ASSIDA�������������4���"����� ��(�� ASSNAMEA�����������"�H���6����� ��(��@������� BASN_FILESAB�������������8���&����� ��(�� CATEGORIESAC�����������@���.����� ��(�� CFC11_T_TRENDTYPE1C�����������2�@���.����� ��(�� CFC11_T_TRENDTYPE2C�����������2�@���.����� ��(�� CFC12_T_TRENDTYPE1C�����������2�@���.����� ��(�� CFC12_T_TRENDTYPE2C�����������2�>���,����� ��(�� CH4_T_TRENDTYPE1EC�������������>���,����� ��(�� CH4_T_TRENDTYPE2EC�������������H���6����� ��(��@������� CLEANUPRUNSC�������������>���,����� ��(�� CO2_T_TRENDTYPE1EC�������������>���,����� ��(�� CO2_T_TRENDTYPE2EC�������������4���"����� ��(�� COLUMN1C�������������4���"����� ��(� CURPTRAC�������������>���,����� ��(�� DEV_MODELGRIDMENUD�������������>���,����� ��(�� DEV_MODELNAMEMENUD�������������@���.����� ��(�� DEV_MODELTURBOMENUD�����������2�H���6����� ��(��@������� DIFU_FILESUD�������������H���6����� ��(��@������� DRAG_FILESUD�������������0�������� ��(�� ENDE�����������"�F���4����� ��(��@������� FIELDLISTF�������������:���(����� ��(�� FIELDTOSEARCHF����������� �F���4����� ��(��@������� FILETYPESF�������������F���4����� ��(��@������� FILE_LISTF�������������:���(����� ��(�� FIRSTANDLASTHF����������T�H���6����� ��(��@������� FOLDERNAMESF�������������P���>����� ��(��@������� FOLDERSPECIALNAMESF�����������B�J���8����� ��(��@������� FULLFILENAMESF����������,�J���8����� ��(��@������� GROUND_FILESSG����������,�:���(����� ��(�� GROUP_HEIGHTSG����������&�H���6����� ��(��@������� GROUP_NAMEHG�������������8���&����� ��(�� GROUP_STATEG�������������:���(����� ��(�� GROUP_VISIBLEG����������� �6���$����� ��(�� IBC_SORT�I�������������6���$����� ��(�� IBC_VIEW�I�������������:���(����� ��(�� IMAGEFOLDERSEI����������� �>���,����� ��(�� IMAGEFOLDERSMENUEI�������������H���6����� ��(��@������� IMAGESFILESI�������������J���8����� ��(��@������� IMAGESFOLDERSI����������,�H���6����� ��(��@������� INPUTFILESEI�������������J���8����� ��(��@������� INPUTFOLDERSSI����������,�4���"����� ��(�� ISTART�I����������%�8���&����� ��(�� ITEMCAPTIONI�����������:���(����� ��(� ITEMLINEPICTSI����������%�6���$����� ��(�� ITEMLIST�I�����������6���$����� ��(�� ITEMNAME�I�����������6���$����� ��(� ITEMPICT�I�����������:���(����� ��(� ITEMPICTLABELI����������%�6���$����� ��(� ITEMTEXT�I�����������F���4����� ��(��@������� LINKSLISTL�������������<���*����� ��(�� LINKSLISTFIELDNL����������IT�>���,����� ��(�� LINKSLISTFIELDNUML�������������>���,����� ��(�� LINKSLISTTABLENUML�������������:���(����� ��(�� LINKSLISTTYPEL����������%�J���8����� ��(��@������� LINKSLISTWORDL�����������6���$����� ��(�� LIST BOX1L����������RD�6���$����� ��(�� MAPSINFO�M�������������8���&����� ��(�� MAPSMONTHSOM���������� �6���$����� ��(� MENUPTRA�M�����������4���"����� ��(�� MINMAXRM�����������H���6����� ��(��@������� MMLD_FILESOM�������������:���(����� ��(�� MODELANDGRIDDM���������� U�6���$����� ��(�� MODELGRIDM�������������:���(����� ��(�� MODELGRIDINFOM���������� V�D���2����� ��(��@������� MONTHS�M����������2{�>���,����� ��(�� N2O_T_TRENDTYPE1MN�������������>���,����� ��(�� N2O_T_TRENDTYPE2MN�������������L���:����� ��(��@������� OBSERVED_FILESEO������������H���6����� ��(��@������� OCEN_FILESIO�������������>���,����� ��(�� OCEN_M_MODE_MENUMO�������������H���6����� ��(��@������� OTSP_FILESEO���������� �J���8����� ��(��@������� OTSP_FOLDERSMO����������� �H���6����� ��(��@������� OUTPUTFILESO�������������J���8����� ��(��@������� OUTPUTFOLDERSO����������W�L���:����� ��(��@������� PBL_SICE_FILESNP�����������L���:����� ��(��@������� PBL_SLAND_FILESP�������������N���<����� ��(��@������� PBL_SOCEAN_FILESMP�������������L���:����� ��(��@������� PBL_TABLE_FILESP����������CO�L���:����� ��(��@������� PBL_UICE_FILESSP����������DI�L���:����� ��(��@������� PBL_ULAND_FILESP����������FO�N���<����� ��(��@������� PBL_UOCEAN_FILESMP�������������4���"����� ��(� PICTPTRP����������_F�D���2����� ��(�� POP-UP/DROP-DOWN LIST1�P�����������H���6����� ��(��@������� POSTFOLDERSP�������������F���4����� ��(��@�������  POSTYEARSP�����������>���,����� ��(�� POW_T_TRENDTYPE1P�������������8���&����� ��(��  PROCESSYEARP�������������H���6����� ��(��@�������  RPLK_FILESRR�������������0�������� ��(�� RSFR�����������"�F���4����� ��(��@�������  RSF_FILESR�����������H���6����� ��(��@�������  RTAU_FILESRR�����������J���8����� ��(��@�������  RUNDECKERRORSR�����������8���&����� ��(�  SEARCHARRAYS�����������H���6����� ��(��@�������  SEARCHLISTYS�����������8���&����� ��(��  SEARCHTYPEYS����������T�4���"����� ��(�� SERIES�S������������8���&����� ��(��  SLICESINFOYS���������� �>���,����� ��(�� SOL_T_TRENDTYPE1S�������������>���,����� ��(�� SOL_T_TRENDTYPE2S�������������2��� ����� ��(�� STARTS�����������6���$����� ��(��  STARTYEARS������������6���$����� ��(�� START_LB�S�������������8���&����� ��(��  START_LBPRDS���������� �:���(����� ��(��  TAB CONTROL1YT����������?�8���&����� ��(��  TABLESINFOLT�������������2��� ����� ��(�� TABS�T�������������:���(����� ��(��  TABSAVEDYEARST����������R�<���*����� ��(�� TIMESERIESINFOET����������p�6���$����� ��(� TITLEPTR�T�����������:���(����� ��(��  TOOLBARHEIGHTT����������R�H���6����� ��(��@�������  TOOLBARNAMET�������������:���(����� ��(��  TOOLBARSTATETT���������� R�<���*����� ��(�� TOOLBARVISIBLEET����������UN�H���6����� ��(��@�������  TOPO_FILESIT�������������6���$����� ��(�� USERCOLS�U�������������4���"����� ��(�� USERID�U������������6���$����� ��(�� USERLIST�U�����������6���$����� ��(��  USERLIST2U�������������6���$����� ��(��  USEROWNERU�������������8���&����� ��(��  USEROWNER2IU�������������6���$����� ��(�� USERUSER�U�������������4���"����� ��(�� VALUES�V������������F���4����� ��(��@�������  VEG_FILESV�������������F���4����� ��(��@�������� WILDCHAR�W�������������J���8����� ��(��@�������  XML_DUPLICATEX����������� �@���.����� ��(�� XML_DUPLICATE_TYPEIX�����������2�F���4����� ��(��@�������  XML_LABELX�������������J���8����� ��(��@�������  XML_RUNNUMBERX���������� S�B���0����� ��(��@������� YEARSY�������������6���$����� ��(��  ZONESINFOZ����������ER�4���"����� ��(�b�b bRUNLISTbbR����������b˛������DFCC4D/[��������[�������&*��%*��g��,���������������SSIMULATION_DUPLICATE%���8���&������������1 @Simulation_Duplicate(� @�����H���6������������@% @Simulation_Duplicate(�@�@�������� @������������������������&��������������SSETUP_RUNFOLDER���2��� ������������@1 @Setup_RunFolder� @������2��� ������������@- @Setup_RunFolder� @������������������������*���������������SINFOTEXT_LOADTHUMB ���6���$������������@ @InfoText_LoadThumb%� @������������������������*���������������SCM_IMAGESSCANFOLDER���6���$������������@- @CM_ImagesScanFolder� @�����6���$������������@- @CM_ImagesScanFolder� @�����6���$��������aaaa@- @CM_ImagesScanFolder� @��||�������������������,�����������SINFOTEXT_ONDATACHANGE�8���&��������@ @InfoText_OnDataChange� @���8���&���������@ @InfoText_OnDataChange� @�������������������&���������������SSETUP_RUNINPUT���2��� ������������@1 @Setup_RunInputz� @�������������������������(���������������SCM_IMAGESSCANADD����D���2������������@% @CM_ImagesScanAdd�@�@�������� @�����D���2������������@% @CM_ImagesScanAdd�@�@�������� @�����D���2������������@% @CM_ImagesScanAdd�@�@�������� @�����4���"����������&@- @CM_ImagesScanAdd� @�����4���"������������@- @CM_ImagesScanAdd� @������������������������$���������������S PM_WEBLAUNCH���@���.������������@% @ PM_WebLaunch_�@�@�������� @������������������������ ���������������SRUN_PATH%���<���*������������@% @Run_PathR�@�@�������� @�������������������������"���������������S CAPITALIZE8���>���,��������9@% @ CapitalizeA�@�@�������� @���99�>���,������������@% @ CapitalizeA�@�@�������� @������������������������,���������������SSIMULATION_LOCKUNLOCK���8���&������������@1 @Simulation_LockUnlock� @������������������������"���������������S UAM_ENCRYPT���.���������������@- @ UAM_Encrypt� @�����.���������������@- @ UAM_Encrypt� @������������������������&���������������SDATE_TO_STRING���B���0������������@% @Date_To_Stringz�@�@�������� @������2��� ������������@ @Date_To_Stringz� @�����2��� ������������@3 @Date_To_Stringz� @������������������������2��� ������������SCM_INPUTSCANFILENAMETOTYPE���>���,������������@- @CM_InputScanFilenameToType�� @������>���,������������@- @CM_InputScanFilenameToType�� @�����>���,������������@- @CM_InputScanFilenameToType�� @�����>���,������������@- @CM_InputScanFilenameToType�� @������������������������&���������������SUAM_GETLISTITEM���B���0������������@% @UAM_GetListItem�@�@�������� @������2��� ������������@ @UAM_GetListItem� @������������������������$���������������S FINDERTOPATH���@���.������������@% @ FinderToPathN�@�@�������� @������������������������*���������������SCLEANUP_DELETEFILES���F���4������������@% @Cleanup_DeleteFiles�@�@�������� @�����6���$������������@1 @Cleanup_DeleteFiles� @������������������������&���������������SGETLISTITEMSTR���B���0������������@% @GetListItemStrz�@�@�������� @������2��� ������������@ @GetListItemStrz� @�����2��� ������������@ @GetListItemStrz� @������������������������*���������������SCM_INPUTSCANFOLDERK���6���$������������@ @CM_InputScanFolder%� @�����6���$������������@- @CM_InputScanFolder%� @�����6���$������������@- @CM_InputScanFolder%� @�����6���$������������@- @CM_InputScanFolder%� @������������������������"���������������S LONGINTTOI4���>���,������������@% @ LongintToI4�@�@�������� @������.���������������@ @ LongintToI4� @������������������������(���������������SELIST_ACTIVESORT����4���"������������@- @eList_ActiveSort� @�����D���2������������@% @eList_ActiveSort�@�@�������� @������������������������*���������������SCLEANUP_FOLDERCALCY���6���$������������@ @Cleanup_FolderCalc%� @������F���4������������@% @Cleanup_FolderCalc%�@�@�������� @������������������������&���������������SINFOTEXT_ADDSUB���2��� ������������@ @InfoText_AddSub� @�����2��� ������������@1 @InfoText_AddSub� @������������������������$���������������S PROGRESS_OPEN���0���������������@ @ Progress_Open� @������@���.������������@% @ Progress_Open�@�@�������� @������������������������&���������������SXML_ARRAYTOTEXT���2��� ������������@ @XML_ArrayToText� @������2��� ������������@- @XML_ArrayToText� @�����B���0������������@% @XML_ArrayToText�@�@�������� @�����2��� ������������@ @XML_ArrayToText� @��������������������������� ������������SMAPS_I���*���������������@1 @Maps_Ir� @�������������������������.���������������SPROPERTIES_LAUNCHVIEWER���:���(������������@- @Properties_LaunchViewer� @�����J���8������������@% @Properties_LaunchViewer�@�@�������� @������������������������$���������������S CM_INVALIDATE���0���������������@- @ CM_Invalidate� @�����0���������������@ @ CM_Invalidate� @������������������������"���������������S XML_EXPORT2���>���,������������@% @ XML_Export2�@�@�������� @������������������������.���������������SSIMULATION_PREVIEWTREND���:���(������������@ @Simulation_PreviewTrend� @������������������������$���������������S PM_FINDFOLDER���@���.������������@% @ PM_FindFolder�@�@�������� @������@���.������������@% @ PM_FindFolder�@�@�������� @������������������������ ���������������S LIST_FIND���,���������������@ @ List_Find� @�����,���������������@- @ List_Find� @�����,���������������@- @ List_Find� @������������������������"���������������S REALTOF18.5���>���,������������@% @ RealToF18.5�@�@�������� @������.���������������@ @ RealToF18.5� @������������������������*���������������SXML_COLLATERECORDS���6���$������������@ @XML_CollateRecords%� @������F���4������������@% @XML_CollateRecords%�@�@�������� @�����F���4������������@% @XML_CollateRecords%�@�@�������� @������������������������"���������������S RUN_ON_DISK���.���������������@1 @ Run_On_Disk� @������.���������������@- @ Run_On_Disk� @������������������������,���������������SSIMULATION_SOLARDATA%���8���&������������@3 @Simulation_SolarData(� @������������������������"���������������S RUN_TO_DATE���.���������������@3 @ Run_To_Date� @������.���������������@- @ Run_To_Date� @������������������������,���������������SSIMULATION_TRENDDATA%���8���&������������@- @Simulation_TrendData(� @�����8���&������������@- @Simulation_TrendData(� @�����8���&������������@- @Simulation_TrendData(� @������������������������4���"������������SPOSTPROCESSING_SETWINDOWTITLE���@���.������������@ @PostProcessing_SetWindowTitle� @������������������������$���������������S STARTUP_CHECK���0���������������@ @ Startup_Check� @�������������������������,���������������SUAM_EDITOR_SAVERECORD���8���&������������@1 @UAM_Editor_SaveRecord� @�������������������������*���������������SINFO_IPHOTO_SELECT���6���$������������@ @Info_iPhoto_Select%� @������6���$������������@ @Info_iPhoto_Select%� @��������������������������� ������������SPM_NAME���:���(������������@% @PM_Name�@�@�������� @������:���(������������@% @PM_Name�@�@�������� @�����*���������������@1 @PM_Name� @������������������������$���������������S CM_TIMESTAMP���0���������������@ @ CM_TimeStamp_� @������0���������������@3 @ CM_TimeStamp_� @�����0���������������@2 @ CM_TimeStamp_� @������������������������,���������������SINFOTEXT_DRAGANDDROP%���8���&������������@ @InfoText_DragAndDrop(� @������8���&������������@- @InfoText_DragAndDrop(� @�����8���&������������@- @InfoText_DragAndDrop(� @�����8���&������������@- @InfoText_DragAndDrop(� @������������������������&���������������SFILELISTBYTYPE���B���0������������@% @FileListByTypez�@�@�������� @�����2��� ������������@1 @FileListByTypez� @�����2��� ������������@1 @FileListByTypez� @�����2��� ������������@- @FileListByTypez� @�����2��� ������������@- @FileListByTypez� @�����2��� ������������@- @FileListByTypez� @������������������������,���������������SINFO_IPHOTO_LOADTHUMB���8���&������������@ @Info_iPhoto_LoadThumb� @������������������������,���������������SINFOTEXT_HTMLPICT2JPG���H���6������������@% @InfoText_HTMLPict2Jpg�@�@�������� @������H���6������������@% @InfoText_HTMLPict2Jpg�@�@�������� @�����H���6������������@% @InfoText_HTMLPict2Jpg�@�@�������� @�����8���&������������@- @InfoText_HTMLPict2Jpg� @�����8���&������������@ @InfoText_HTMLPict2Jpg� @������������������������.���������������SRETRIEVE_VARIABLE_BLOB���L���:������������@- @Retrieve_Variable_Blob%� @�@�?�����������:���(������������@- @Retrieve_Variable_Blob%� @�����:���(������������@- @Retrieve_Variable_Blob%� @�����:���(������������@- @Retrieve_Variable_Blob%� @�����:���(������������@- @Retrieve_Variable_Blob%� @�����:���(������������@- @Retrieve_Variable_Blob%� @�����:���(������������@- @Retrieve_Variable_Blob%� @������������������������ ���������������S TIMESTAMP���,���������������@ @ TimeStamp� @������,���������������@3 @ TimeStamp� @�����,���������������@2 @ TimeStamp� @������������������������$���������������S TWISTDOWN OLD���0���������������@ @ TwistDown Old� @������������������������$���������������S TIMESERIES_I���0���������������@1 @ TimeSeries_IM� @�������������������������*���������������SWEBANDMAILLAUNCHER���6���$������������@ @WebAndMailLauncher%� @������������������������(���������������SINFO_IPHOTO_PASTE���4���"������������@- @Info_iPhoto_Paste� @�����D���2������������@% @Info_iPhoto_Paste�@�@�������� @������������������������.���������������SINFOTEXT_DELETESECTION���:���(������������@ @InfoText_DeleteSection%� @�����:���(������������@- @InfoText_DeleteSection%� @������������������������(���������������SFINDOTSPECFOLDER����D���2������������@% @FindOTSpecFolder�@�@�������� @������4���"������������@- @FindOTSpecFolder� @�����4���"������������@- @FindOTSpecFolder� @������������������������&���������������SPM_COPYFORTRAN���2��� ������������@ @PM_CopyFortranz� @������2��� ������������@ @PM_CopyFortranz� @�����B���0������������@% @PM_CopyFortranz�@�@�������� @�����B���0������������@% @PM_CopyFortranz�@�@�������� @�����2��� ������������@ @PM_CopyFortranz� @�����B���0������������@% @PM_CopyFortranz�@�@�������� @�����2��� ������������@ @PM_CopyFortranz� @�����2��� ������������@1 @PM_CopyFortranz� @������������������������,���������������SSIMULATION_ISTARTMENU���8���&������������@1 @Simulation_IStartMenu� @������������������������$���������������S PROCESS_NAME���@���.������������@% @ Process_NameO�@�@�������� @������0���������������@ @ Process_NameO� @������������������������.���������������SFILELISTSPECIALREGIONS���:���(������������@- @FileListSpecialRegions%� @�����:���(������������@- @FileListSpecialRegions%� @�����J���8������������@% @FileListSpecialRegions%�@�@�������� @������������������������&���������������SPROCESS_NUMBER���2��� ������������@ @Process_Numberz� @������B���0������������@% @Process_Numberz�@�@�������� @������������������������*���������������SCALENDAR_DATETOTAU ���6���$������������@ @Calendar_DateToTau%� @������6���$������������@3 @Calendar_DateToTau%� @�����6���$������������@ @Calendar_DateToTau%� @������������������������.���������������SINFO_IPHOTO_UPDATEINFO���:���(������������@1 @Info_iPhoto_UpdateInfo%� @������������������������*���������������SPROCESS_STATE_NAME���F���4������������@% @Process_State_Name%�@�@�������� @������6���$������������@ @Process_State_Name%� @������������������������*���������������SCALENDAR_YEARTOTAU���6���$������������@ @Calendar_YearToTau%� @������6���$������������@ @Calendar_YearToTau%� @�����6���$������������@ @Calendar_YearToTau%� @������������������������&���������������SRUN_UPDATELIST���2��� ������������@- @Run_UpdateListz� @�����2��� ������������@ @Run_UpdateListz� @������������������������(���������������SSAFE_CURRENTSTATE���4���"������������@- @Safe_CurrentState� @������������������������(���������������SINFOTEXT_FULLOPEN���4���"������������@ @InfoText_FullOpen� @�����4���"������������@ @InfoText_FullOpen� @������������������������.���������������SSAFE_CURRENTSTATEUPDATE���:���(������������@- @Safe_CurrentStateUpdate� @������������������������&���������������SPREF_CHOOSEAPP���2��� ������������@- @Pref_ChooseAppz� @������������������������ ���������������SABOUTBOX%���,���������������@ @AboutBoxA� @�������������������������2��� ������������SSIMULATION_OCNTRANSMENUSET���>���,������������@- @Simulation_OcnTransMenuSet�� @������������������������,���������������SINFOTEXT_HTMLPICTHTML���8���&������������@ @InfoText_HTMLPictHTML� @�����8���&������������@ @InfoText_HTMLPictHTML� @�����8���&������������@ @InfoText_HTMLPictHTML� @�����H���6������������@% @InfoText_HTMLPictHTML�@�@�������� @�����H���6������������@% @InfoText_HTMLPictHTML�@�@�������� @������������������������.���������������SPOSTPROCESSING_AVERAGE���:���(������������@1 @PostProcessing_Average%� @�������������������������(���������������STWIST_DOWN_UPDATE���4���"������������@ @Twist_Down_Update� @�����4���"������������@1 @Twist_Down_Update� @������������������������2��� ������������SPOSTPROCESSING_GETYEARRANGE���>���,������������@- @PostProcessing_GetYearRange� @�������������������������6���$������������SPOSTPROCESSING_SETSRESTOREINFO���B���0������������@- @PostProcessing_SetsRestoreInfo� @�����B���0������������@- @PostProcessing_SetsRestoreInfo� @�����B���0������������@- @PostProcessing_SetsRestoreInfo� @�����B���0������������@- @PostProcessing_SetsRestoreInfo� @�����B���0������������@- @PostProcessing_SetsRestoreInfo� @�����B���0������������@- @PostProcessing_SetsRestoreInfo� @������������������������,���������������SCLEANUP_SETYEARSLIST%���8���&������������@- @Cleanup_SetYearsList(� @������������������������(���������������SGO_BACK_ONE_LEVEL���D���2������������@% @go_back_one_level�@�@�������� @������D���2������������@% @go_back_one_level�@�@�������� @������������������������(���������������SINFOTEXT_HTMLPICT���4���"������������@ @InfoText_HTMLPict� @������4���"������������@- @InfoText_HTMLPict� @�����D���2������������@% @InfoText_HTMLPict�@�@�������� @�����4���"������������@ @InfoText_HTMLPict� @�����4���"������������@ @InfoText_HTMLPict� @�����4���"������������@ @InfoText_HTMLPict� @�����4���"������������@ @InfoText_HTMLPict� @������������������������4���"������������SPOSTPROCESSING_LAUNCHANDWAIT���@���.������������@1 @PostProcessing_LaunchAndWait� @������P���>������������@% @PostProcessing_LaunchAndWait�@�@�������� @������������������������"���������������S PATHTONAME8���>���,������������@% @ PathToNameA�@�@�������� @������>���,������������@% @ PathToNameA�@�@�������� @������������������������&���������������SSETS_SUMMARIZE���2��� ������������@- @Sets_Summarizez� @�����2��� ������������@- @Sets_Summarizez� @�����2��� ������������@- @Sets_Summarizez� @�����2��� ������������@- @Sets_Summarizez� @�����2��� ������������@- @Sets_Summarizez� @�����2��� ������������@- @Sets_Summarizez� @������������������������$���������������S XML_TEXTTO4D���0���������������@- @ XML_TextTo4DL� @�����0���������������@ @ XML_TextTo4DL� @�����0���������������@ @ XML_TextTo4DL� @������������������������,���������������STRENDSETTER_I_BOOLEAN���H���6������������@% @trendSetter_I_Boolean�@�?�������� @������8���&������������@1 @trendSetter_I_Boolean� @������������������������,���������������STRENDSETTER_I_CLEANUP���H���6������������@% @trendSetter_I_Cleanup�@�@�������� @������������������������*���������������SRUNDECKVIEWER_OPENx���6���$������������@ @RundeckViewer_Open%� @������������������������"���������������S SUMANDPD2.I���.���������������@1 @ SumAndPd2.I� @�������������������������&���������������SLIST_ACTIVESORT���2��� ������������@- @List_ActiveSort� @�����B���0������������@% @List_ActiveSort�@�@�������� @������������������������.���������������SINFO_IPHOTO_CHANGEVIEW���:���(������������@ @Info_iPhoto_ChangeView%� @������������������������(���������������SRUNDECK_VALIDATE����4���"������������@1 @Rundeck_Validate� @�������������������������(���������������SPM_RECURSIVECOPY����4���"������������@ @PM_RecursiveCopy� @������D���2������������@% @PM_RecursiveCopy�@�@�������� @�����D���2������������@% @PM_RecursiveCopy�@�@�������� @������������������������2��� ������������SSIMULATION_CREATESUBRECORDS���>���,������������@- @Simulation_CreateSubrecords� @������������������������0���������������SINFOTEXT_FULLLOADSECTION����<���*������������@ @InfoText_FullLoadSection� @������������������������,���������������SRUNDECK_DECIMALFORMAT���H���6������������@% @Rundeck_DecimalFormat�@�@�������� @������8���&������������@ @Rundeck_DecimalFormat� @������������������������.���������������SPOSTPROCESSING_SETTABLE���:���(������������@- @PostProcessing_SetTable� @�����:���(������������@1 @PostProcessing_SetTable� @������������������������(���������������SLIST_OUTSIDEFIND����4���"������������@ @List_OutsideFind� @�����4���"������������@- @List_OutsideFind� @������������������������.���������������SRUNDECK_FORCINGSLENGTH���:���(������������@ @Rundeck_ForcingsLength%� @������:���(������������@1 @Rundeck_ForcingsLength%� @�����:���(������������@ @Rundeck_ForcingsLength%� @�����:���(������������@ @Rundeck_ForcingsLength%� @�����:���(������������@ @Rundeck_ForcingsLength%� @�����:���(������������@ @Rundeck_ForcingsLength%� @�����:���(������������@ @Rundeck_ForcingsLength%� @������������������������"���������������S PM_MAKEPATH���>���,������������@% @ PM_MakePath�@�@�������� @������>���,������������@% @ PM_MakePath�@�@�������� @�����>���,������������@% @ PM_MakePath�@�@�������� @�����.���������������@1 @ PM_MakePath� @������������������������(���������������SSETS_COLLECTINFO����4���"������������@- @Sets_CollectInfo� @�����4���"������������@- @Sets_CollectInfo� @�����4���"������������@- @Sets_CollectInfo� @�����4���"������������@- @Sets_CollectInfo� @�����4���"������������@- @Sets_CollectInfo� @�����4���"������������@- @Sets_CollectInfo� @������������������������(���������������SINFOTEXT_SWITCH2����4���"������������@ @InfoText_Switch2� @�����4���"������������@ @InfoText_Switch2� @������������������������&���������������SALERT_PARAMTEXT���B���0������������@% @Alert_ParamText�@�@�������� @�����B���0������������@% @Alert_ParamText�@�@�������� @�����B���0������������@% @Alert_ParamText�@�@�������� @�����B���0������������@% @Alert_ParamText�@�@�������� @������������������������*���������������SSTORE_VARIABLE_BLOB���H���6������������@- @Store_Variable_Blob� @�@�?�����������6���$������������@- @Store_Variable_Blob� @�����6���$������������@- @Store_Variable_Blob� @�����6���$������������@- @Store_Variable_Blob� @�����6���$������������@- @Store_Variable_Blob� @�����6���$������������@- @Store_Variable_Blob� @�����6���$������������@- @Store_Variable_Blob� @������������������������0���������������SRUNDECKVIEWER_WRITETOFILE���<���*������������@- @RundeckViewer_WriteToFile� @������������������������4���"������������SSIMULATION_POWERTOOLSLOADSET���@���.������������@1 @Simulation_PowerToolsLoadSet� @������������������������6���$������������SPOSTPROCESSING_TABLESCLEARFILL���B���0������������@1 @PostProcessing_TablesClearFill� @������������������������*���������������SGENERIC_OPENREOPEN���6���$������������@- @Generic_OpenReopen%� @�����F���4������������@% @Generic_OpenReopen%�@�@�������� @�����F���4������������@% @Generic_OpenReopen%�@�@�������� @������������������������.���������������SPOSTPROCESSING_VALIDATE���:���(������������@1 @PostProcessing_Validate� @������:���(������������@ @PostProcessing_Validate� @������������������������"���������������S PRT2HTML_I8���>���,������������@% @ prt2html_IR�@�@�������� @������������������������0���������������SPOSTPROCESSING_TIMESERIES���<���*������������@1 @PostProcessing_TimeSeries� @�������������������������4���"������������SPOSTPROCESSING_TYPEHIEREMPTY���@���.������������@- @PostProcessing_TypeHierEmpty� @������������������������*���������������SINFOTEXT_LINKDIALOG���6���$������������@ @InfoText_LinkDialog� @�����6���$������������@- @InfoText_LinkDialog� @�����6���$������������@- @InfoText_LinkDialog� @������������������������2��� ������������SPOSTPROCESSING_TYPELISTHIER���N���<������������@% @PostProcessing_TypeListHier�@�@�������� @�����N���<������������@% @PostProcessing_TypeListHier�@�@�������� @�����>���,������������@- @PostProcessing_TypeListHier� @�����>���,������������@ @PostProcessing_TypeListHier� @�����>���,������������@ @PostProcessing_TypeListHier� @������������������������,���������������SINFOTEXT_FULLPREVNEXT���8���&������������@ @InfoText_FullPrevNext� @�����8���&������������@ @InfoText_FullPrevNext� @������������������������$���������������S PM_UPONELEVEL���@���.������������@% @ PM_UpOneLevel�@�@�������� @������@���.������������@% @ PM_UpOneLevel�@�@�������� @������������������������(���������������SOHT_SAVEANDLAUNCH���4���"������������@ @OHT_SaveAndLaunch� @�����D���2������������@% @OHT_SaveAndLaunch�@�@�������� @�����D���2������������@% @OHT_SaveAndLaunch�@�@�������� @������������������������,���������������SUAM_COMPAREPASSWORDS%���8���&������������@1 @UAM_ComparePasswords(� @������8���&������������@\ @UAM_ComparePasswords(� @�����8���&������������@\ @UAM_ComparePasswords(� @������������������������0���������������SSIMULATION_GROUPCHANGEALL���<���*������������@1 @Simulation_GroupChangeAll� @������������������������$���������������S TRENDSETTER_I���@���.������������@% @ trendSetter_I�@�@�������� @�����@���.������������@% @ trendSetter_I�@�@�������� @�����0���������������@1 @ trendSetter_I� @�����@���.������������@% @ trendSetter_I�@�@�������� @������������������������0���������������SSIMULATION_TRENDSFGETFILE���<���*������������@- @Simulation_TrendSFGetFile� @������������������������0���������������SINFOTEXT_FULLSAVESECTION����<���*������������@ @InfoText_FullSaveSection� @������������������������*���������������SCM_IMAGESSCANQTTYPE���6���$������������@- @CM_ImagesScanQTType� @�����6���$������������@- @CM_ImagesScanQTType� @������������������������&���������������SRUNDECK_CREATE���2��� ������������@1 @Rundeck_Createz� @�����2��� ������������@1 @Rundeck_Createz� @������������������������(���������������SINFOTEXT_SHOWHIDE���4���"������������@ @InfoText_ShowHide� @�����4���"������������@ @InfoText_ShowHide� @������������������������,���������������SINFOTEXT_LINKWILDCHAR���8���&������������@ @InfoText_LinkWildchar� @�����8���&������������@- @InfoText_LinkWildchar� @������������������������6���$������������SPOSTPROCESSING_TYPELISTTIMEHIER���R���@������������@% @PostProcessing_TypeListTimeHier�@�@�������� @�����B���0������������@- @PostProcessing_TypeListTimeHier� @������������������������,���������������SSIMULATION_LOADRECORD���8���&������������@ @Simulation_LoadRecord� @������������������������0���������������SINFOTEXT_CAPTIONPREVNEXT����<���*������������@ @InfoText_CaptionPrevNext� @�����<���*������������@ @InfoText_CaptionPrevNext� @������������������������"���������������S SETS_CREATE���.���������������@1 @ Sets_Create� @�������������������������&���������������SPRT2HTML_TOPATH���B���0������������@% @prt2html_ToPath�@�@�������� @������2��� ������������@ @prt2html_ToPath� @������������������������*���������������STOOLBAR_DISCLOSURE3���F���4������������@% @Toolbar_Disclosure%�@�@�������� @�����6���$������������@ @Toolbar_Disclosure%� @������������������������.���������������SPOSTPROCESSING_TYPEVIEW���:���(������������@- @PostProcessing_TypeView� @�����J���8������������@% @PostProcessing_TypeView�@�@�������� @�����:���(������������@ @PostProcessing_TypeView� @�����J���8������������@% @PostProcessing_TypeView�@�@�������� @������������������������,���������������SRUNDECK_SUMMARY_TREND���8���&������������@ @Rundeck_Summary_Trend� @������H���6������������@% @Rundeck_Summary_Trend�@�@�������� @�����8���&������������@- @Rundeck_Summary_Trend� @�����8���&������������@- @Rundeck_Summary_Trend� @�����H���6������������@% @Rundeck_Summary_Trend�@�@�������� @�����8���&������������@- @Rundeck_Summary_Trend� @�����8���&������������@- @Rundeck_Summary_Trend� @������������������������.���������������SINFOTEXT_CAPTIONDIALOG���:���(������������@ @InfoText_CaptionDialog%� @������������������������.���������������STRENDSETTER_I_TRENDINFO���:���(������������@ @trendSetter_I_TrendInfo� @������:���(������������@- @trendSetter_I_TrendInfo� @�����:���(������������@- @trendSetter_I_TrendInfo� @�����:���(������������@- @trendSetter_I_TrendInfo� @�����:���(������������@- @trendSetter_I_TrendInfo� @������������������������,���������������SINFOTEXT_LINKFIELDPTR���8���&������������@- @InfoText_LinkFieldPtr� @������8���&������������@ @InfoText_LinkFieldPtr� @������������������������2��� ������������SUAM_PASSWORDAUTHENTICATION���>���,������������@1 @UAM_PasswordAuthentication�� @������N���<������������@% @UAM_PasswordAuthentication��@�@�������� @�����N���<������������@% @UAM_PasswordAuthentication��@�@�������� @������������������������ ���������������S OHT_SETUP���,���������������@1 @ OHT_Setup� @�������������������������2��� ������������SPOSTPROCESSING_TYPEVIEWHIER���N���<������������@% @PostProcessing_TypeViewHier�@�@�������� @�����>���,������������@- @PostProcessing_TypeViewHier� @������������������������(���������������STWIST_DOWN_BUTTON���4���"������������@1 @Twist_Down_Button� @������D���2������������@% @Twist_Down_Button�@�@�������� @�����4���"������������@1 @Twist_Down_Button� @������������������������$���������������S GENERIC_CLOSE���0���������������@ @ Generic_Close� @������������������������,���������������SSIMULATION_OCEANMENU%���8���&������������@1 @Simulation_OceanMenu(� @������������������������(���������������SSIMULATION_CREATE���D���2������������@% @Simulation_Create�@�@�������� @������������������������"���������������S XML_TAGEND8���>���,������������@% @ XML_TagEndM�@�@�������� @������>���,������������@% @ XML_TagEndM�@�@�������� @�����.���������������@ @ XML_TagEndM� @������������������������,���������������SINFOTEXT_SWITCHORDER%���8���&������������@ @InfoText_SwitchOrder(� @�����8���&������������@ @InfoText_SwitchOrder(� @�����8���&������������@- @InfoText_SwitchOrder(� @�����8���&������������@- @InfoText_SwitchOrder(� @������������������������&���������������SRESTART_PROCESS���2��� ������������@ @Restart_Process� @������������������������$���������������S XML_FINDFIELD���0���������������@- @ XML_FindField� @������0���������������@- @ XML_FindField� @�����@���.������������@% @ XML_FindField�@�@�������� @������������������������&���������������SSETS_COUNTARRAY���2��� ������������@ @Sets_CountArray� @������2��� ������������@- @Sets_CountArray� @������������������������$���������������S OHT_VALIDATE���0���������������@1 @ OHT_ValidateT� @������0���������������@1 @ OHT_ValidateT� @������������������������(���������������SINFOTEXT_HTMLTEXT���4���"������������@ @InfoText_HTMLText� @������4���"������������@- @InfoText_HTMLText� @�����4���"������������@ @InfoText_HTMLText� @������������������������*���������������SCM_OUTPUTSCANFOLDER���6���$������������@ @CM_OutputScanFolder� @�����6���$������������@- @CM_OutputScanFolder� @�����6���$������������@- @CM_OutputScanFolder� @�����6���$������������@- @CM_OutputScanFolder� @������������������������(���������������SSETUP_COPYFILES2����4���"������������@1 @Setup_CopyFiles2� @������4���"������������@- @Setup_CopyFiles2� @�����4���"������������@- @Setup_CopyFiles2� @�����4���"������������@- @Setup_CopyFiles2� @�����D���2������������@% @Setup_CopyFiles2�@�@�������� @�����4���"������������@ @Setup_CopyFiles2� @�����D���2������������@% @Setup_CopyFiles2�@�@�������� @������������������������(���������������SUAM_AUTHENTICATE����4���"������������@1 @UAM_Authenticate� @�������������������������&���������������SXML_TEXTTOARRAY���2��� ������������@- @XML_TextToArray� @�����B���0������������@% @XML_TextToArray�@�@�������� @������������������������2��� ������������SSIMULATION_DELETESUBRECORDS���>���,������������@- @Simulation_DeleteSubrecords� @������������������������(���������������SCLEANUP_SPACECALC���D���2������������@% @Cleanup_SpaceCalc�@�@�������� @������4���"������������@ @Cleanup_SpaceCalc� @������������������������,���������������SRUNDECK_CREATE110FILE���8���&������������@ @Rundeck_Create110File� @������������������������*���������������SINFOTEXT_SAVERECORD���6���$������������@ @InfoText_SaveRecord� @������������������������&���������������SGETMODELANDGRID���2��� ������������@- @GetModelAndGrid� @������������������������*���������������SPM_RECURSIVEDELETE���F���4������������@% @PM_RecursiveDelete%�@�@�������� @������������������������ ���������������S PM_LAUNCH���<���*������������@% @ PM_Launch�@�@�������� @������������������������*���������������SCM_IMAGESINVALIDATE���6���$������������@- @CM_ImagesInvalidate� @�����6���$������������@- @CM_ImagesInvalidate� @�����6���$������������@- @CM_ImagesInvalidate� @������������������������"���������������S ALERT_ALERT���.���������������@ @ Alert_Alert� @������.���������������@ @ Alert_Alert� @�����.���������������@ @ Alert_Alert� @�����.���������������@ @ Alert_Alert� @������������������������$���������������S XML_TAGBEGIN���@���.������������@% @ XML_TagBeginL�@�@�������� @������@���.������������@% @ XML_TagBeginL�@�@�������� @�����0���������������@ @ XML_TagBeginL� @������������������������&���������������SUAM_PERM_DIALOG���2��� ������������@- @UAM_Perm_Dialog� @�����2��� ������������@- @UAM_Perm_Dialog� @�����2��� ������������@- @UAM_Perm_Dialog� @������������������������"���������������S UAM_LISTSEL���.���������������@- @ UAM_ListSel� @�����.���������������@- @ UAM_ListSel� @������������������������2��� ������������SSIMULATION_UNBREAKABLELOCK���>���,������������@1 @Simulation_UnbreakableLock�� @�������������������������*���������������SRUN_STATUSTOICONREF���6���$������������@ @Run_StatusToIconRef� @������6���$������������@ @Run_StatusToIconRef� @������������������������(���������������SRUN_FINDPROCESSES���4���"������������@1 @Run_FindProcesses� @������4���"������������@- @Run_FindProcesses� @�����4���"������������@- @Run_FindProcesses� @������������������������(���������������SSETUP_RUNMODELMAC���4���"������������@- @Setup_RunModelMac� @�����4���"������������@- @Setup_RunModelMac� @������������������������&���������������SRUN_UPDATESETS���2��� ������������@- @Run_UpdateSetsz� @������������������������&���������������SRUN_SIMULATION���2��� ������������@ @Run_Simulationz� @������������������������*���������������SRUN_FINDONEPROCESS���6���$������������@1 @Run_FindOneProcess%� @������F���4������������@% @Run_FindOneProcess%�@�@�������� @������������������������*���������������SUAM_PERM_CHANGEACL���6���$������������@1 @UAM_Perm_ChangeACL%� @������������������������(���������������SLIST_PERMISSIONS����4���"������������@- @List_Permissions� @�����4���"������������@- @List_Permissions� @�����4���"������������@- @List_Permissions� @�����4���"������������@- @List_Permissions� @��������������������������� ������������SASSERT���*���������������@1 @Asserte� @������������������������$���������������S UNIQUE_FIELD���0���������������@ @ Unique_FieldI� @������0���������������@- @ Unique_FieldI� @�����0���������������@- @ Unique_FieldI� @�����0���������������@ @ Unique_FieldI� @������������������������2��� ������������SPOSTPROCESSING_TYPEVIEWEVA���N���<������������@% @PostProcessing_TypeViewEVA��@�@�������� @������������������������"���������������S CHART_SETUP���.���������������@ @ Chart_Setup� @������������������������&���������������SCHART_LINEPLOT���2��� ������������@ @Chart_LinePlotz� @������2��� ������������@ @Chart_LinePlotz� @�����2��� ������������@- @Chart_LinePlotz� @�����2��� ������������@- @Chart_LinePlotz� @�����2��� ������������@- @Chart_LinePlotz� @������������������������(���������������SCHART_LINEMINMAX����4���"������������@- @Chart_LineMinMax� @������4���"������������@- @Chart_LineMinMax� @�����4���"������������@ @Chart_LineMinMax� @������������������������"���������������S CHART_SAVE8���.���������������@ @ Chart_SaveH� @������������������������&���������������SSETUP_RUNLUNAR���2��� ������������@- @Setup_RunLunarz� @�����2��� ������������@- @Setup_RunLunarz� @������������������������*���������������SINFOTEXT_FINDSEARCH���6���$������������@- @InfoText_FindSearch� @�����6���$������������@ @InfoText_FindSearch� @������������������������"���������������S POSITIONPOS���.���������������@ @ PositionPos� @������.���������������@- @ PositionPos� @�����.���������������@- @ PositionPos� @�����.���������������@ @ PositionPos� @������������������������(���������������SINFOTEXT_HTMLADD����4���"������������@ @InfoText_HTMLAdd� @������������������������ ���������������S WORDBREAK���<���*������������@% @ WordBreak�@�@�������� @������,���������������@- @ WordBreak� @�����,���������������@ @ WordBreak� @������������������������*���������������SLIST_HIGHLIGHTSAVE*���6���$������������@- @List_HighlightSave%� @������������������������,���������������SLIST_HIGHLIGHTRESTORE���8���&������������@- @List_HighlightRestore� @�����8���&������������@- @List_HighlightRestore� @������������������������$���������������S CLEANUP_SETUP���0���������������@ @ Cleanup_Setup� @������������������������(���������������SXML_IMPORTERRORS����4���"������������@- @XML_ImportErrors� @�����4���"������������@ @XML_ImportErrors� @������������������������.���������������SXML_IMPORTERRORSCLEANUP���:���(������������@ @XML_ImportErrorsCleanup� @������J���8������������@% @XML_ImportErrorsCleanup�@�@�������� @�����:���(������������@ @XML_ImportErrorsCleanup� @������������������������"���������������S PREF_USEEVA���.���������������@1 @ Pref_UseEva� @�������������������������4���"������������SPOSTPROCESSING_SELLASTNYEARS���@���.������������@ @PostProcessing_SelLastNYears� @�����@���.������������@ @PostProcessing_SelLastNYears� @������������������������4���"������������SPOSTPROCESSING_TYPELISTEMPTY���@���.������������@- @PostProcessing_TypeListEmpty� @������@���.������������@- @PostProcessing_TypeListEmpty� @�����@���.������������@1 @PostProcessing_TypeListEmpty� @������������������������0���������������SSELECTEDELEMENTSINLISTBOX���<���*������������@- @SelectedElementsInListBox� @�����<���*������������@- @SelectedElementsInListBox� @������������������������6���$������������SPOSTPROCESSING_GETPROCESSEDYEAR���B���0������������@- @PostProcessing_GetProcessedYear� @�������������������������&���������������SPM_DOCUMENTLIST���2��� ������������@1 @PM_DocumentList� @������2��� ������������@- @PM_DocumentList� @�����2��� ������������@- @PM_DocumentList� @������������������������6���$������������SPOSTPROCESSING_PROCESSEDTOYEARS���B���0������������@- @PostProcessing_ProcessedToYears� @�����B���0������������@- @PostProcessing_ProcessedToYears� @������������������������.���������������SPOSTPROCESSING_SELYEARS���:���(������������@- @PostProcessing_SelYears� @�����:���(������������@ @PostProcessing_SelYears� @�����:���(������������@ @PostProcessing_SelYears� @������������������������4���"������������SPOSTPROCESSING_SUBFOLDERPATH���P���>������������@% @PostProcessing_SubFolderPath�@�@�������� @������P���>������������@% @PostProcessing_SubFolderPath�@�@�������� @�����@���.������������@1 @PostProcessing_SubFolderPath� @������������������������4���"������������SPOSTPROCESSING_GETYEARFOLDER���@���.������������@- @PostProcessing_GetYearFolder� @�������������������������&���������������SASSIGN_DORECORD���2��� ������������@- @Assign_DoRecord� @�����2��� ������������@ @Assign_DoRecord� @�����2��� ������������@- @Assign_DoRecord� @������������������������(���������������SASSIGN_FINDRECORD���4���"������������@1 @Assign_FindRecord� @������4���"������������@1 @Assign_FindRecord� @�����4���"������������@- @Assign_FindRecord� @������������������������,���������������SRUN_CRITICAL_GETRUNN%���8���&������������@- @Run_Critical_GetRunN(� @������8���&������������@ @Run_Critical_GetRunN(� @������������������������(���������������SXML_IMPORTCLEANUP���4���"������������@ @XML_ImportCleanup� @������4���"������������@- @XML_ImportCleanup� @�����4���"������������@ @XML_ImportCleanup� @�����4���"������������@ @XML_ImportCleanup� @������������������������.���������������SSIMULATION_DATE_CONVERT���:���(������������@- @Simulation_Date_Convert� @�����:���(������������@- @Simulation_Date_Convert� @������������������������"���������������S XML_EXPORT8���.���������������@- @ XML_ExportM� @�������������� ��(����.�������� ��(���POSTPROCESSING_VALIDATE���:���(����� ��(�$$ $POSTPROCESSING_VALIDATE$ $�$������������ ��(�$�$�������� ��(��� GETMODELNAMEN���@���.����� ��(�$%$ $ GETMODELNAMEN$$G@�������$ $��$�<���������� ��(�$�&�������� ��(���BACKUP_PREFREAD���B���0����� ��(�$%$ $BACKUP_PREFREAD$$B@�������$ $��$������������ ��(�$�(�������� ��(���BACKUP_PREFWRITEA$�D���2����� ��(�$%$ $BACKUP_PREFWRITEA$$B@�������$ $�$������������ ��(�$�$�������� ��(��� GENERIC_OPENR���0�������� ��(�$-$ $ GENERIC_OPENR$ $�$�,�@���.����� ��(�$%$ $ GENERIC_OPENR$$G@�������$ $�$�<�@���.����� ��(�$%$ $ GENERIC_OPENR$$G@�������$ $�$�<���������� ��(�$�0�������� ��(���INFOTEXT_SETCAPTIONALABEL��<���*����� ��(�$-$ $INFOTEXT_SETCAPTIONALABEL$ $�$���<���*����� ��(�$-$ $INFOTEXT_SETCAPTIONALABEL$ $�$���<���*����� ��(�$$ $INFOTEXT_SETCAPTIONALABEL$ $�$������������ ��(�$�.�������� ��(���INFOTEXT_CREATEFIGARRAYAL�:���(����� ��(�$-$ $INFOTEXT_CREATEFIGARRAY$ $�$������������ ��(�$� �������� ��(��� CM_RESCAN��,�������� ��(�$1$ $ CM_RESCAN$ $�$���,�������� ��(�$1$ $ CM_RESCAN$ $�$���,�������� ��(�$1$ $ CM_RESCAN$ $�$������������ ��(�$�0�������� ��(���POSTPROCESSING_CLEARFILLL���<���*����� ��(�$-$ $POSTPROCESSING_CLEARFILL$ $�$������������ ��(�$�4���"����� ��(���CLEANUP_FOLDERPOSTPROCESSINGg$�@���.����� ��(�$$ $CLEANUP_FOLDERPOSTPROCESSING$ $��$�<�@���.����� ��(�$-$ $CLEANUP_FOLDERPOSTPROCESSING$ $�$�<������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9V�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.W�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D X�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D Y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC� NO�P���>��%��$��g �Simulation_Date_Convert) @Info_v_EndYeare�)@�����XT����������������������������DFCC4DI_�y?�R���@��%��$��g �Simulation_Date_Convert @Info_v_StartYearC�@�����DE��������������������������DFCC4D<k�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<v�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<w�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DI`�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dp�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dr�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.X�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DR�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9W�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<x�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�?��������KO��������������������������������������������DFCC4D�,�<���*��%��$��g Info_iPhoto_LoadThumb@�?����������������������������������������������������������DFCC4D[�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�@���������KO��������������������������������������������DFCC4DT�,�<���*��%��$��g �Info_iPhoto_LoadThumb@�@�����������������������������������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA'�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Ds�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIa�2�Z���H��%��$��gSCThis code adjusts the raw import for some changes from 2.1->3.0 andME�@���.�����������S(allows for more complex import behavior.����������>����S�o����� �����S input�.�������v�)))%S pointer (run number)�*�������X�����S longint (version)�H�<���*��������S$ longint (number of missing fields)%���� ����N�0001S output00�<���*��������EMakS$ longint (number of missing fields)%`�0���������������- @��@ runNumberPtru����@���.������������@ @�� @�� @���@versu�@missedb����(���������������@ runNumberPtru% @���� ���������������@versu% @����"���������������@missed�% @�����������������������2��� ������������Scleanup version 2.1 imports���2��� ��������@���@@verse�@������������@��f���T������������@����% @GetListItemStr%#@ ModelNamesRef�@�@��������wO8use 1.0.7 model���`���N������������@����% @GetListItemStr%#@ ModelGridsRef�@�@���������wO8use 8x10%����������p�@���������p�����H���6����p����S1change model version to 1.0.7 if it isn't already���Z���H����p����@@������� @GetListItemStrz#@ ModelNamesRef�@�@����������f���T����p�@����% @GetListItemStr%#@ ModelNamesRef�@�@��������wO8use 1.0.7 model���������p�@���������p��r���`����p�SQchange orbit values to modern if they aren't already set, which is frequent on imSportg�z���h����p�@@�w����@��������������=@�y����@��������������=@�x����@��������������"�������p� @ Orbit_Modernb��������p����@�����������p��D���2����p�S,save the new record and reload the interface�6���$����p� @Run_Simulationz@�?������������������p�J�*�������p�Snote missed fields"k�4���"����p�@@missed��%@��������������������p�@JJ�v���d����p�@@vers��@������������wO8?ignore errors from 2.1 imports, this is barely supported anyway�,�������p����Sno errors that count%���R���@����p����� @Alert_ParamText@ runNumberPtru��w�l�%�w�l�%�w�l�%����R���@����p����� @ Alert_Alert@�?��������@�@��������@�@������������Z���H����p�����@@vers��@�?��������wO8"handle errors from 2.3-2.4 imports@���J���8����p���S3remove bogus errors, these fields are unused in 2.5�X���F����p�����@missed�% @XML_ImportErrorsCleanupw�l Collect_SLP�@missedp����Z���H����p�����@missedp% @XML_ImportErrorsCleanupw�l Computer_Name�@missedp����d���R����p�����@missedp% @XML_ImportErrorsCleanupw�lLongitude_of_Perihelion�@missedp����Z���H����p�����@missedp% @XML_ImportErrorsCleanupw�l Model_64_bit%�@missedp����6���$����p� Sreport remaining errors if any�4���"����p�@@missedp�%@�������������F���4����p� @XML_ImportErrors@ runNumberPtru�@missedb���������p�@�8���&����p�@�� handle errors for other imports�4���"����p�Slist errors for other imports�F���4����p����� @XML_ImportErrors@ runNumberPtru�@missedb�����������p�����@ x��������p�����@� �������p�����S no errors @��������p�����@���������p����� @���� ����p�����Scleanup���"�������p����� @��%@missed�l����������������������������DFCC4D+!�,>�d���R��%��$��gSMThis code resets the orbital parameters of a run to the default modern values���"���������� S which are:8�:���(����F��ZS#[Model Variables]OmegaT=OMEGT=282.9���>���,����6��� S'[Model Variables]Axial tilt=OBLIQ=23.44�h�@���.����������gS)[Model Variables]Eccentricity=ECCN=0.0167f �b���P��������SKA lot of this code is derived from orbpar which Gary wrote and is avalible ���H���6����ה��� S1online at http://aom.giss.nasa.gov/srorbpar.html �b�X���F����(�����SAand info from Mathworld http://mathworld.wolfram.com/Ellipse.html`�������������S�Mo���� �����������S inputVa���� ����f����S none���� �����������S outputp_�.�������D�V�S none (altered record)�*�����������������y���*@�@s33330�or�*�����������@�x���*@�@Q���*�����������????@�w���*@�?p:~��������������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxe�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7P�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DZ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9Y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[��2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7Z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7_�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D����������������������������������������������������DFCC4D<|�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D [�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/\����������������������������������������������������DFCC4DY�d�(D�<���*���������d�d "Info_iPhoto_Select�""I?�������""��������������������������������������������������DFCC4D�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4D<}�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4DiD`�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D[�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DT�l�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D7`�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D9Z�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DA(�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DC�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DIb�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D.YB0�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D+"�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D?�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D �M�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D2e�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Df���@���.����H�� Info_iPhoto_ChangeViewee�?�������ee�4��������������������������������������������DFCC4Dt�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�@���������KO��������������������������������������������DFCC4D�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�?��������KO��������������������������������������������DFCC4Dw�,�<���*��%��$��g Info_iPhoto_LoadThumb@�?����������������������������������������������������������DFCC4D �,�<���*��%��$��g �Info_iPhoto_LoadThumb@�@�����������������������������������������������������������DFCC4Dd�d�(D�<���*���������d�d "Info_iPhoto_Select�""I?�������""��������������������������������������������������DFCC4D4�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4DI�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@��������""��������������������������������������������������DFCC4DQ5iD`�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dnh�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DF�l�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DL�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DP(�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dj�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dxf�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D52B0�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4D"�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dv�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Du�M�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4DEd�d�(D�<���*���������d�d "Info_iPhoto_Select�""I@�������""��������������������������������������������������DFCC4Dh���@���.����H�� Info_iPhoto_ChangeViewee�?�������ee�4��������������������������������������������DFCC4DIc�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.Z�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�@���������KO��������������������������������������������DFCC4D+#�,�@���.��%��$��g �Info_iPhoto_LoadThumb�x`@�?��������KO��������������������������������������������DFCC4D@�,�<���*��%��$��g Info_iPhoto_LoadThumb@�?����������������������������������������������������������DFCC4D �,�<���*��%��$��g �Info_iPhoto_LoadThumb@�@�����������������������������������������������������������DFCC4D \�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/]���^���L��&��%��gSFHandle conversion from database years to interface years when a record0N�\���J��������SEis loaded, the form loads or the user changes the data. This code is ���V���D��������scalS>a little complicated since it handles both start and end dates\�����������������S�o����� ������������S input���0���������������S pointer (year variable)���(�����������0001S pointer (field)07�>���,��������EMakS' optional (is this a record load call)����� ������������S output���<���*���������� S% none (field or variable is altered)� �B���0���������a�r- @�� @��@yearPtr�@ yearFieldPtre���0���������������@@addYear�@addDayr����4���"���������r� @%@�@��������@varName�� �"�������������0@yearPtr> @��D�(������������@ yearFieldPtre> @�������������������,���������� Sdetermine var passed>���P���>��������@@yearPtr�@varName�@ vlTableNumv�@ vlFieldNumv����T���B�����D@@�w�lInfo_v_StartYear�@varName��>@������������~�X���F���������S@for start year add a year since we start in dec of previous year����,������������@addYear>@�?���������,�����������@addDay�>@�?����������������������@�b���P������ SKfor end year don't add a year, but do stop at the end of Dec (really Jan 1)��,������������@addYear>@��������������,������������@addDay�>@�@����������������������@�������������������(������������Sdecide what to do������������� @���L���:�����KK�@@�>@�@���������wO8load value on load record���H���6��������@yearPtr�>@�@ yearFieldPtre���>�@addYear��>���,��������@@�$@���wO8set variable type���.������������@ @Info_v_StartYear����,������������@ @Info_v_EndYearz����T���B���������@@�$@���wO8'set year or revert if year range is bad���8���&���������S!good range, convert to model dateN�`���N���������@@yearPtr��>@�?����������,@yearPtr��wl@�@ @�����������p���^���������@ yearFieldPtre�>@��������@yearPtr��>`@addYear�@�@��������@addDay�����������������@���4���"���������Sbad range, revent to old date���H���6���������@yearPtr�>@�@ yearFieldPtre���>�@addYear���������������@���������������@������������������������������������������������DFCC4D<~�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D Y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ����������������������������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\��2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7Y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�,�(�����&��%��g�@�$@�� �TX�\���J��������SEensure that clicking here selects the next window as the front window���(�������������@wind %@@��F�,������������G� @proc %@@wind �� ������������0001@02�2��� ��������EMak@@proc �@������������Ma�0��������������Sdo nothing for no process�<���*�����������@@proc��#@Assignment_ProcessID=���"���������������@F@procg����<���*����r���@@procg�#@Simulation_ProcessID=���"�������r��G� @F@procl���@���.����r�����@@procl�#@PostProcessing_ProcessID����"�������r��s�s@F@procP���6���$����r���@@procP�#@List_ProcessID%��S�"�������r�����@F@proc_���8���&����r����@@proc_�#@Rundeck_ProcessID����"�������r�����@F@proce���8���&����r�� @@proce�#@Control_ProcessID�].�"�������r�����@F@procr����8���&����r�d@@procr�#@Cleanup_ProcessID�z�"���������������@F@procn� 9�:���(������������@@procn�#@InfoText_ProcessID�����"���������������@F@procT����6���$������������@@procT�#@eList_ProcessID����"������������L@F@proct����:���(������������@@proct�#@InfoPict_ProcessID�����"��������������@F@procP����6���$������������@@procP�#@Pref_ProcessID%����"��������������@F@proc_����6���$���������@@proc_�#@Flux_ProcessID%����"������������@F@proc_����6���$���������@@proc_�#@Sets_ProcessID%����"������������@F@proc_����4���"���������@@proc_�#@ UAM_ProcessID����"����������� � @F@procP����:���(������������@@procP�#@Transient_ProcessID����"���������������@F@procs�������������������@������������������@������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DG�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D _�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/_hR �`���N��&��%��gSIThis code gets the name of the model for the current run. If the optionalfn�b���P����׶�:��SKparameter is passed then the name of the shell is passed instead. For older���b���P������������SJversions of the model the shell name is the same as the run number, but if���b���P�����������SJLunar is used then the shell name is different. This code hides the acutal�0��������������Simplimentation for this.�������������������S������� ������������S input���D���2������������S- optional (shell name instead of model name)������ ������������S output���:���(��������KK�S# string (shell name or model name)���6���$�������������@ modelgrid�@�@������������<���*������������@%@�@�������� @���@ modelname����������������d���������������������D���2��������@���S- no parameters, just return name in all cases��.���������������@@�@���������������(���������������@ modelname%@�������������������� @���@���.�����������S)get the shell name based on model version���6���$��������D @GetModelAndGrid�@ modelgrid��H���6������������@@ modelgrid�@�?�������� @�@��������D�6���$������������@ modelname%w�lGCM-�%�@���������������������@w �(���������������@ modelname%@������������������� @������������������@������������������������� ������������Scleanup���$��������������� @��%@ modelname��������������������������������������������������������������DFCC4D2i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DH�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D `�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/a�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9X�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA)�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\Am�����������(�(ul��������������������DFCC4DB�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D a�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9[��p���^��&*��%*��gSQRead in the backup preferences file. Want to find out what the path is since thatS isfn�p���^�����������SQnot accessible through any offical API. An example on the 4D partner website showSedt���4���"�����������Show to read this value, see:����z���������� SQhttp://www.4dpartnercentral.com/4DACTION/Web_Solutions/Show.PublicCase?tCaseID=41S056&LPartnerID=206507&LUserID=0�t�������������t�hS������ ����:�0001S input00���� ��������EMakS noner����� ����"��� S output�a�8���&���������t�hS! string, path to backup location��8���&����T��� �%@�@��������@path�� @����k�8���&���������t�h@@ elementRef1�@ elementRef2���2��� �����������@@ separator�@StrPtrt����"���������������@value%w�l�%�����������(�`d���"�������(�����S build path8���4���"����(�@���@pathe% @ PM_UpOneLevel@����N���<����(�����@pathp% @ PM_MakePath@patha�w�l Preferences�@�����J���8����(�����@patha% @ PM_MakePath@patha�w�lBackup�@����N���<����(�-� @patha% @ PM_MakePath@patha�w�l Backup.xml��@������������(��������8���&����(�����S test path, do nothing on failure���4���"����(�����@@@patha��$@��������������(��������,�������(��LSopen the XML document���,�������(�����@ref1%@@path������������(��������0�������(�����@ @OKt�@�?�����������`���N����(�����@ elementRef1%@`@ref1e�w�l&/Preferences4D/Backup/Settings/General�������n����(�����@ elementRef2%@`@ elementRef1�w�l/General/DestinationFolder�wO8 find Destination folder element%�����������(�� ���"���������������S read value8��`���N�����������@@ elementRef2�@value�wO8) get element value for destination folder��"���������������@@ref1e�������������������@������������������@������������������������� ������������Sreturn��� ��������������� @��%@value����������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dni�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D��v���d��&*��%*��gSQWrite the path in the backup preferences file. Want to find set the path is sinceS that iser�p���^����4��� SQnot accessible through any offical API. An example on the 4D partner website showSedt��4���"��������scalShow to read this value, see:te����z��������SQhttp://www.4dpartnercentral.com/4DACTION/Web_Solutions/Show.PublicCase?tCaseID=41S056&LPartnerID=206507&LUserID=0��������������scalS�dG���� ���������S input���8���&������������S! string, path to backup location������ ������������S output������ �����������S none���D���2��������0001�%@�@��������@path�� @��@newPath�14�8���&��������EMak@@ elementRef1�@ elementRef2����2��� ������������@@ separator�@StrPtrt����"�����������d@newPath^ @�m�������������������"��������������S build path8���4���"������������@patha^ @ PM_UpOneLevel@����N���<��������@pathp^ @ PM_MakePath@patha�w�l Preferences�@��RA�J���8��������d@patha^ @ PM_MakePath@patha�w�lBackup �@����N���<������������@patha^ @ PM_MakePath@patha�w�l Backup.xml��@���������������@�����8���&������������S test path, do nothing on failure���^���L������������@@@patha��$@�����%@@newPath��$@�������������������-� ���,���������������Sopen the XML document���,���������������@ref1^@@path� ��������������������0���������������@ @OKt�@�?�����������`���N���������L@ elementRef1^@`@ref1e�w�l&/Preferences4D/Backup/Settings/General�������n������������@ elementRef2^@`@ elementRef1�w�l/General/DestinationFolder�wO8 find Destination folder element^N��������������������"���������������S read value8���b���P������������@d@ elementRef2�@newPath�wO8) set element value for destination folder���,���������������@^@ref1a�@patha����"������������ @@ref1a�������������������@�����������������@�������������������������������������������������������DFCC4D/c� �,����� ���� �UAM_Editor_NewRecord2���DFCC4D7a�������������������������������������������������������������DFCC4D b�K�0�����&*��%*��gSchange the backup folder�SH�2��� ���������q��%@�@��������@path��������������������M�&��������������Spick the folder���N���<������������@path�%@w�l%Please pick a folder for the backups:����0���������������@ @OKt�@�?�����������2��� ������������ @Backup_PrefWrite@pathu������������������@��DFCC4D c�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/b�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D��B-�.����� ���� �UAM_Editor_DeleteRecord�����������������������������������������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA*�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �:xi������'��&����(��������� @�$@������(��������������� @PostProcessing_View�@��������t����@������������������������������������������������DFCC4D2k�7f������%f��$f��g|�(��������������^�� $������(�������������� ^PostProcessing_View������������������^������������������������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9]�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9_�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DI�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DJ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9`�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7b�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7c�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9a�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DId�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2l�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DD�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9b�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA+���`���N��'&��&&��gSHGeneric code to do open and reopen for processes, DOES NOT CLOSE WINDOWSfn�X���F��������a��S@replaces almost all the code in xxx_Open with a generic version.����J���8����^����S3If the process window is closed then it is opened. ���f���T������������SOIf the process window is not in front and open then it is brought to the front.������ �����������S input�(��������0001S process id ptr�07�&��������EMakS process name���8���&���������S process startup procedure name���0������������- @��@ processIDPtrr���&������������@@ processID����>���,�����d@%@�@�������� @��@ processName�� �>���,���������@%@�@�������� @��@ processProc����(��������@���@ processIDPtrrn @����&������������@ processIDn @�����&������������@ processNamen @����&��������� @ processProcn @�������������������������D@�6���$���������@@ processID�n@�������������>���,���������@@J@ processID��n@�@�����������4���"�������� @Restart_Process@ processID����������������@=�B���0������ S+close front window or bring window to front���4���"���������@@@��@ processID����B���0���������S*Generic_Close ($processID) do nothing here���������������@���&������������@F@ processID����������������@������������ @��������������@���Z���H��������@ processIDPtrr�n@=@ processProc�#@ StackSize�@ processName���������������@��������������������������������������������������������DFCC4DC���b���P��&\��%\��gSJOpen the eJournal window and the Image Browser window. The eJournal shouldum�b���P��������SJopen first so that the Image Browser can open further over. Also check for���X���F��������w��S@some errors since two windows are being opened at the same time.������������������S�o����� ��������0001S input00���� ��������EMakS noner����� ������������S output������ ������������S none���"��������aaaa@state���:���(���������@state~@J#@InfoText_ProcessID��������������������6���$���������Sopen eJournal, do not close it���l���Z��������� @ Generic_Openn�#@InfoText_ProcessID~�w�lInfoText Window�w�lInfoText_Process�������������������<���*�������S%wait for the ejournal window to open |�L���:���������@@state�$@� ���x @state�$@� ������:���(���������@state~@J#@InfoText_ProcessID�����.�����������@C@B�@�@������������������4@���.������������@C@B�@������������������������@�����:���(������������S#open Image Browser, do not close it���n���\������������ @ Generic_Openn�#@InfoPict_ProcessID~�w�lInfoPict Window�w�lInfo_iPhoto_Process���������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D4��F���4��'0��&0��gS.set the caption and label based on the sources��J���8�����������S2passed in to the function, this ensures a constent��.��������������Ssetting for the values�����������������S������� ������������S input���8���&��������EMakS pointer (to array of pointers)��>���,������������S& pointer (to array of figure numbers) ���<���*������������S$ integer (which array value to use)~������ �����������S output������ ����6�ǜdS none��>���,����6������- @�� @��@ labelsPtr�@figsPtr����2��� ����6�@���@ @��@figNumr�@pos�@��$���������������@ labelsPtr~ @�w �"���������������@figsPtr~ @��"�����������O� @figNum�~ @�����������������������$���������������S find in array��:���(������������@pos~@�@figsPtr��@figNumr���F���4������������@@pos�~@������������wO8found, now label~���������������L@ labelsPtr��@figNumP�~w�lFigure �~�@� @pos��~�w�l. @�~�@�  @ ItemCaption�@figNump�@�?��������@�@��������������������������@���8���&������������@ labelsPtr��@figNumP�~w�l�~���������������@��������������DFCC4DK�\�d���R��&\��%\��gSLCreate an array of figures and return it using the ItemList to determine if @���V���D�����������S?a section has images or not. The base value of the array is 0. �����������������S�o����� �����������S input p_�N���<�������0001S7 pointer (pointer must be to ARRAY LONGINT($<name>;81)00���� �������EMakS outputr����� �����������S none ���*��������������- @��@figsPtr����6���$�����������@@count�@cur�@i�@j��"��������������@figsPtr~ @���$�������������@count~@�����������������������>���,�������� S'build array with out of bounds set to 0���@���.�����������@figsPtr��@�����������~@��������������(����������d@cur~@�?�������Q�6���$�����������@@i�@�?��������@count���>���,�����������@ @ItemListI�@i�~@���������������B���0�����������@@j�@�?�������� @ItemListI�@i�� �b���P�����������@figsPtr��@cur~@i�~@�?���������@�@���������~�@j���2��� ��������L@cur~@cur�~�@�?����������������������@�����������������@�����������������@���8���&�����������@figsPtr��@cur~@�����������������������������������������������������DFCC4D9c�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA,��X���F��&\��%\��gSAupdate all the figure labels, this has to be done in a few placesLP�D���2��������S,when figures are added or removed or loaded.������ ������������@i����2��� �����������@�@figsP�@�@���������������������������,�����������0001Ssetup array labels ~08�:���(��������EMak @InfoText_CreateFigArray�@figsT�����������������������,�������l�����Supdate figure labels~���<���*����l����@@i�@�?��������@�@�����������V���D������������ @InfoText_SetCaptionALabel� @ ItemPictLabel��@figsP�@i�������������������@����������������DFCC4D9e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA-�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dxg�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DM�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D`n�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dh�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DG\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DW�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D0�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dx�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D^6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA.��-�,�����&b��%b��g �PostProcessing_AverageG��DFCC4DC��-�,�����&b��%b��g �PostProcessing_AverageG��DFCC4DIe��-�,�����&b��%b��g �PostProcessing_AverageG��DFCC4D._��-�,�����&b��%b��g �PostProcessing_AverageG��DFCC4D+�.�h���V��'A��&A��gSPSet the Average and Extract buttons based on the values in the processYear list.fs�p���^����޲����SQThis code partially replicates the features of EdGCM 2.3-2.5 while retaining enouSghi���h���V�����scalSPsmarts to only enable Averaging if it is needed. Some extra code is inserted for���$�����������scalS time series.ut�@���.�����������d1@hasFolderAverage�@ hasFolderTime���������������������.��������������Sdetermine state of run���(�������ʮ�����Scheck time series���f���T������������@ hasFolderTime- @PostProcessing_Validate@�@����������� @ pTimeSeries����&�������`�����Scheck averages �H�d���R�����������@hasFolderAverage- @PostProcessing_Validate@�@����������� @pMaps������������������@���.������������S)activate/deactive buttons for time series���(�����������0001@@ hasFolderTime�07�2��� ��������EMak@���w�l zTimeExtract-�Ma�0���������������@���w�l zTimeSeries�����������t�dd@���2��� ����t�����@���w�l zTimeExtract-����0�������t�@���@���w�l zTimeSeries�����������t�����@�����������t��������>���,����t�O� S&activate/deactive buttons for averages ���,�������t�����@@hasFolderAverage����.�������t�����@���w�l zExtract@����.�������t�����@���w�l zAverage@�����������t�����@���.�������t��L@���w�l zExtract@����.�������t�����@���w�l zAverage@�����������t�����@��������������������������������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIf�E�*�����!�� ��, PostProcessing_CreateT#��DFCC4D.`�E�*�����!�� ��, PostProcessing_CreateT#��DFCC4DE�E�*�����!�� ��, PostProcessing_CreateT#��DFCC4D �E�*�����!�� ��, PostProcessing_CreateT#��DFCC4DF�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DI\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2m�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DJ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�<B�2��� ��&j��%j��g �Simulation_LockUnlock@��DT����������������������������������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DH�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �q"�������������d�d"" �*������������d�d"""�"$"��""�2��� ���������d�d " CurrentSpaceD" "CurSpacep"�������������d�d""I������������������������������DFCC4D2ni#_�������������� �*�����������   � @$ ��  ���(���������������� � �� Subject er������������l mlI����������������������������������������DFCC4Df�.$E��������������um�*���������������}��}@$���}}���b���P��������L�}}�} �Years}�}@������������}�}@} �Years�}@������������}}}�:���(�������������� ��}�� } �Years} �Years}}}�����������������������,������������������ ��}���������������������������������I������������������ ��������������������DFCC4Dvr:�������������� �*�������������   � @$ ��  �(��������������� � �� Keepers rs���������������le����������������������������������������DFCC4D�X4������$y��#y��L7�(�������nj�^��$�������4���"����������^ �Months����������������&��������������^� � �� �Months�����������������^���*���������������^� � ����@���������������������0001^02������������EMak^ S����������������������������������DFCC4Dw�B�$�����&m��%m��g Cleanup_Deletez����������������� ��������������������������������������������������DFCC4D4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DK�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DM�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIg�v�2N�(������������d�d "Toolbar_IBC_View"����DFCC4D.a�(������������d�d "Toolbar_IBC_Sort"����DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DI�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw��b���P��&m��%m��gSKPaste new entry into the Image Browser by using the Info_iPhoto_Import codeum������������S������� ����������S input��*�����������S none (clipboard)���� ���������� S output�s���� ��������� �S none�v�$��������������@newPict����������������000100����n��������EMakSQ valid clipboard, not from this app already, does not need any selection since thSis is a paste inton��P���>������������S8the image browser, not a replacement of a specific image����d���R�����������@@$@����@��������������@w�l4Dim��$@�������$���������������@ @newPict����<���*�����߬d@@d@newPict��@�@�����������$������������@�Y@newPict���0��������@��� @Info_iPhoto_Import�����������������@���������������@������������-� ������������������������������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D"�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DJ�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DK�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �o"������%f��$f��g|�(��������������^�� $�������(��������������� ^PostProcessing_View��������������^������������������������������������������������DFCC4D2o�Sz�R���@��%f��$f��g Alert_Alert��?����������@����������@���������DE��������������������������DFCC4Dg��fA�.�����&m��%m��g �PostProcessing_TimeSeries���������������������������������������������������������������DFCC4Dw�E�*�����!�� ��, PostProcessing_CreateT#��DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIh����������������������������������������������������DFCC4D.b�B�(�����&m��%m��g Cleanup_ForDummiesNTX��������������� ����������������������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D4�H������&m��%m��g��(����������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIi�v@��0�����&m��%m��gSbasic cleanup for dummiesSH�����������,������������� Ssetup useful defaults�a� ����������������� ��7@��� ��������������@�� ��7@���� ���������������@�� ��7@���� ���������������@�� ��7@���� �����������0001@�� ��7@�05�@���.��������EMak@�� ��7@�  @Years�@ @Years�K����,��������������� @Years7@ @Years����*�����������@� � ��7@�?��������,�������������� @Subject7@�?����������,�������������� @Keepers7@�@��������YY�*��������������@� � ��7@�@����������*���������������@� � ��7@�@���������,����������� @Months�7@�@������� �"�����������@�5@��� �����������������&�����������Sdo the cleanup�,����������� @Cleanup_Deletez�������������������������������������������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIj�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIk�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dx�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9k�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Df��`���N��'&��&&��gSHThis code safely rescans the folders you wants and (optionally) has yourfn�`���N������SHprocess wait for this to finish before handing back control. This fixes ���b���P������������SKproblems where the access to cache manager was sometimes done through other���"�������P����S processes.8��������������TAT S�IM���� ������ �S input��0�������������S boolean (update input)��t�0���������������S boolean (update output)�0��������������S boolean (update images)��>���,��������0001S& optional (wait for update to finish) 00���� ��������EMakS outputr��D���2������������S, none (may wait until CM process completes)���*���������������1 @�� @�� @���������������������>���,�������� S'need all semaphores to set update flags�6���$������� @setn@�w�l$CM_OutputScan��l�4���"������v�_@setn@�w�l $CM_InputScan���6���$���������@setn@�w�l$CM_ImagesScan���,����������;#@CM_Priv_ScanInputn @���.��������� �#@CM_Priv_ScanOutputnn @���.������������#@CM_Priv_ScanImagesnn @����.����������@�w�l$CM_OutputScan����,������������@�w�l $CM_InputScan����.�����������@�w�l$CM_ImagesScan������������4���"������������S do the scan���*��������@���@@#@ CM_ProcessIDM�� ��������������@��<���*���������S$optionally wait for scan to completen���.��������� @@�n@�@�����������.������������@C@B�@�@�����������<���*���������@@J#@ CM_ProcessIDM����$@� �����.������������@C@B�@�@�����������������������@���.�����������A@C@B�@���������������������������@������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�H�P���>��'��&��`D9build the view menu which is used in both the Toolbar andXT�,�������*��`Din the Image Browser����������������� ��&�������Φ����`Ddo full update���*���������� `Dget list of imagesH�e�"��������TAT �/ @��� ���D �0�������r�����@S @�� ��� @IBC_ViewI��b�&��������������(@� @IBC_ViewI���"�����������`D setup menu0���F���4���������@� @IBC_ViewI�@�?��������@�@������������:���(����T����� @IBC_ViewI�@�?�������w�All���8���&��������� @IBC_ViewI�@�@��������w�-���.�������b����� @IBC_ViewI@�?����������2��� ���������`Dfix order in image browser��"�����������aaaa@�/ @��� �����2��� ����h�����@�1 @��� ���@�� �������������������������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/d�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D k�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU��2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9l�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+&�,�@���.��'+��&+��g �PostProcessing_ClearFill @ zSetUnset�KO��������������������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7d�eK/z�.�����'+��&+��gSSet the clear/fill list�������������S������� ��������scalS inputD:�$��������������S ptr to var������ �����������S outputp_���� ��������0001S none00�,�����������EMak- @��@fieldPtr$�ns�$���������������@fieldPtr$- @�����������������������8���&������������@@fieldPtr$��@�?�����������(�������������� @PostProcessing_Fill�����������������@���*��������������� @PostProcessing_Clear8������������������@�����������������������������������������������������������DFCC4D9m�eK/z�B���0��'+��&+��g �PostProcessing_ClearFill @ zSetUnset1S�pt������������������������������������������DFCC4DA0�eK/z�B���0��'+��&+��g PostProcessing_ClearFill � @ zSetUnset2S�pt������������������������������������������DFCC4DC�eK/z�B���0��'+��&+��g PostProcessing_ClearFill � @ zSetUnset3S�pt������������������������������������������DFCC4DIl�eK/z�B���0��'+��&+��g PostProcessing_ClearFill � @ zSetUnset4S�pt������������������������������������������DFCC4D f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnk�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dg�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP)�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.l�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9n�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.m�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.n�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.o�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.s�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9o�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.v�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2r�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9r�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA!�5d�F���4��'+��&+��gS.Caculate the size of the postprocessing folder�����������S�!���� ����������gS inpute �(�����������S ptr to run name������ �����TAT S outputMM�&��������������S longint, sizeme�*��������������- @��@runPtrD��F���4����������@ @���@calcSize$�@namelen�@len�@i��$�2��� ��������� �@%@�@��������@path����2��� ��������0001@%@�@��������@temp��00�H���6��������EMak@�@�@��������@ folderListf�@������������ V�"�����������0001@runPtr� @�00�.�����������EMak@calcSize$@�����������ta��������������������4���"����� �Scheck that the folder exists��d���R�����5��@path� @ PM_MakePath @ RunFolder�w�l diagnostics_��@runPtrd�@��V�R���@������V@patht @ PM_MakePath@patha�w�lpostprocessing�@���%�4���"������@@@patha��$@���0�2��� �����!@@path�@ folderListf�l�0��������l�V@len@@ folderListf� ��D���2��������@namelen@�@runPtr����@�?����������0��������D@@len�@������������v�4���"���������@@i�@�?��������@len����V���D���������@temp�@� @ folderListf�@ie�@nameLen�@�@����������������������@w �.������������@@temp��w�l_Avg_����>���,������ @calcSize$@calcSize$��@�@��������.������������@@temp�w�l_AllS����>���,���������@calcSize$@calcSize$��@�@9��������������������@���������������@���������������@������������ @��������������������� ��������Sreturn���$����������� @��@calcSize$����������������������������������������������������DFCC4Du�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DEe����������������������������������������������������DFCC4D l�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D m�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9s�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D o�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DN�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DEf�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dy�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DP+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9v�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.w�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIm�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<^�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9w�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�,4�Z���H��'0��&0��gSCSelf contained code to manage an PICT so that I can change the codeME�@���.�����������S)in one spot for all these %^&@ing images.���������������S������� ������������S input���2��� ������������S pointer (object pointer)������ ������������S output������ ����������S none�N�(����������������- @��@self�����4���"����������@%@�@��������@varName��u�P���>������������@@tableNum$�@fieldNum$�@itemNum�@ sectionNums��� ���������������@selfi @�������������������ra�6���$������������Sgenerate info about where I am���J���8��������� @@selfi�@varName�@tableNum$�@fieldNum$��X���F������������@itemNum@� @� @varName�@�@��������@�@����������tH����p������������@ sectionNums@�_@itemNum�`@�?��������� @�@���������@��������������@�?��������������������dj�&���������������Sperform actions����������������@��(���������������@@�$@�� ����*��������������� @InfoText_DragAndDrop8@��(������������L@@�$@�� ����t���b������������ @InfoText_DragAndDrop8@selfT�� @ItemNameI�@itemNum�� @ ItemCaption�@itemNum����@���.������������@@�$@����x @�$@������D���2������������ @InfoText_FullOpen@ sectionNums�@itemNum�������������������@����������������������������������������������������DFCC4DIn�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7f�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7g�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DM�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7h�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2s�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dg�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dz�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIo�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnl�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DV�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DO�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DT7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnm�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D����������������������������������������������������DFCC4DP,�q*;Y�������'0��&0��g���������������������������DFCC4D r�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/e�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D t�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7i�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7j�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D v�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/f��|-�f���T��'A��&A��gSNCreate a folder at the path specified with the permissions set to 777 so that Z�f���T����b����SNother users can use it. This fixes a problem where the default permissions for���f���T�����������SNnew folders is 755 on MacOS X. Windows always runs without a security model soD�d���R���������SLthis isn't a problem in Win 2k/XP. If the folder cannot be created then the @��J���8��������dS2functions returns false, otherwise you get a true.������������S����� ������������S input���<���*��������0001S$ string (path for folder to create)-12���� ��������EMakS outputr��*���������������S boolean (success)���\���J���������� �%@�@�������� @��@path��@enclosingFolder�@ folderNamef��f�*�������������@1 @���@success���(������������a�m@@ pathStatusp��p�<���*����������@@command�@inm�@out�@err�� � ���������������@patha- @��"�����������O� @success-@����������������KK�++� ��������������S test path��2��� ������������@ pathStatusp-@@pathS�� ����������,4���$������������S check status����������@���@���L���:���������@@ pathStatusp�$@���wO8folder already exists���"������������@success-@��b���P�����O� @@ pathStatusp�$@���wO8*there is a document of the same name (bad)��"������������@success-@����������������@@ pathStatusp���$@�����:@ pathStatusp���$@���wO8Fthere is no existing folder or file create it, check permissions first0���:���(���������S#test permissions under MacOS X only���2��� ���������@#@ PM_Platform�$@������������������A���@���.���������S)split path into enclosing folder and name �B���0���������@enclosingFolder- @ PM_UpOneLevel@pathp����>���,���������@ folderNamef- @PM_Name@patha�@�����r���`���������@ folderNamef-@�@ folderNamef�w�l:�w�l�-�wO8%remove trailing path seperater if any�������������������4���"���������Sset currend working directory���P���>���������@,w�l_4D_OPTION_CURRENT_DIRECTORY�@enclosingFolder��������������������<���*���������S%create the folder at the command line���N���<���������@command-w�lmkdir -m 777 '�-�@ folderNamef�-�w�l'���<���*�����@+@command�@inm�@out�@err����������� )��`���N����� ))SHcheck for errors, if the string $err is empty then there were no errors ))�8���&��������@@�@err��@������������;B�"������������@success-@����������������@���"������������@success-@����������������@���r���`���������@�� Qwindows always has permissions to create folders so I don't bother to check anyth�� ing���"������������@@pathe����"������������@success-@��������������0@��,������������@�� fallback is failure���"������������@success-@����������������@�������������������$������������S return value���"������������ @��-@success��������������������������������������������������������������DFCC4D w�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D x�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D/g��|-�d���R��'A��&A��gSLCreate a document at the path specified with permissions set to 777 so that @���f���T����X����SNother users can use it. This fixes a problem where the default permissions for���d���R������������SLnew files is 644 on MacOS X. Windows always runs without a security model so@���b���P��������SJthis isn't a problem in Win 2k/XP. If the file cannot be created then the �Z���H������������SBfunctions returns a blank time, otherwise you get a docRef (time).���������������� S��`���� ���������n�tS input��:���(����������"S" string (path for file to create)�L�H���6��������� � S1 string (optional, file type for Mac or windoz) �s���� ����@��� S output�e�2��� ����@��t�S time (doc ref, 0 is bad)� �Z���H����@�� ��%@�@�������� @��@path��@enclosingFolder�@fileName$��r�*�������@���;@2 @���@success�� �(�������@�����@@ pathStatusp����<���*��������O� @@command�@inm�@out�@err���� ���������������@patha- @�j������������������� ���������������S test path���2��� ������������@ pathStatusp-@@pathS�����������������L���$���������������S check status� ���������������@���L���:������������@@ pathStatusp�$@���wO8folder already exists���"������������S stay blank8���b���P���������@@ pathStatusp�$@���wO8*there is a document of the same name, open����.������������@@�@�?�����������.������������@success-@@pathe����������������@���4���"�����O� @success-@@pathe� @�������������KK�@++������������@@ pathStatusp���$@�����I@ pathStatusp���$@���wO8Fthere is no existing folder or file create it, check permissions first0��:���(���������S#test permissions under MacOS X only���2��� ���������@#@ PM_Platform�$@����������������������@���.���������S)split path into enclosing folder and name���B���0���������@enclosingFolder- @ PM_UpOneLevel@pathp����<���*���������@fileName$- @PM_Name@patha�@���������������������4���"���������Sset currend working directory���P���>���������@,w�l_4D_OPTION_CURRENT_DIRECTORY�@enclosingFolder�������������������J���8������������S3create the file at the command line and permissions��D���2��������@command-w�ltouch '�-�@fileName$�-�w�l'�<���*�������� ))@+@command�@inm�@out�@err� ��������������6/�4���"������������Sset currend working directory���P���>������������@,w�l_4D_OPTION_CURRENT_DIRECTORY�@enclosingFolder�����������������������0���������������Sset the file permissions����H���6������������@command-w�l chmod 777 '�-�@fileName$�-�w�l'���<���*������������@+@command�@inm�@out�@err�������������999�`���N������������SHcheck for errors, if the string $err is empty then there were no errors ���8���&������������@@�@err��@���������������<���*������������S%set doc type if requested and open it���.���������������@@�-@�?�����������(���������������@@path�� @��������������������@���.���������������@@path��w�lTEXT7�������������������@���.���������������@success-@@pathe�����������"����@P�p���^����"�����@�� Qwindows always has permissions to create files so I don't bother to check anythin�� g���.���������������@@�@�?�����������.���������������@success-@ @pathe�������������������@���4���"������������@success-@ @pathe� @��������������������@������������������@������������������@����������������������$���������������S return value���"����������� @��-@success��������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7k�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7l��|-z�f���T��'A��&A��gSOGetYearRange determines the maximum number of complete years worth of acc filesZ�p���^�����������SQfor the current run based on the current contents of the acc folder (not the cachSe).���`���N������������SHThis code detects any gaps in acc files that in old versions (2.0 & 2.1)���h���V��������SPmight cause a year range to fail. Records are ordered by month/year (see Finder)�Z���H���������E�nSCand then checked over to see the range for each month. The name is:�e�*������������� SDEC1901.accControl�a�d���R���������l�oSLmonth (3 char), year (3 char), .acc (4 char), run number (20 char) = 30 char@� �f���T���������t�hSOAn array is used to cache the values from the db, this takes as much as 400K if�_�h���V����������SPthere are 1000 years of acc files. The acc names are assumed to fit into 31 char�a�&�������������(Sto save memory.������������������������ ���������Y�eS output�e�R���@���������I�NS: ptr to array[1..2] of longint (first year and last year)�n�:���(���������$�i� @ FirstAndLastr�@�@����������=�0������������m�e@%@�@���������@mon��m�4���"���������h�e@%@�@��������@accname��g�B���0��������0001@@yeara�@curmone�@len�@i�@j�00�4���"��������EMak@�@firstse�@�@��������ke�2��� ������������@�@lasts�@�@�����������$������������ �m@1@missing��n���� ���������1�)@- @����`�D���2���������r�s@�@�@���������@months��@�������������L�F���4��������� � @�@�@��������@accNames$�@�������������r�4���"���������v�e@%@�@��������@accPath��a�8���&���������r�m@%@�@��������@ failedNamef���(�������������@@ failedCount��r��������������A�T�O���� ��������Ssetup�B���0�������� ))@@curmonC�@�?��������@�@��������))�:���(���������6@firsts��@curmon�3@�����������-�8���&������������@lasts�@curmon�3@�����������������������������@���2��� ������������@ w�lMonths�@months�����:���(������������@accPath3 @ PM_FindFolderw�lacc�����������������������$���������������S debug assert���*���������������@@�w�lPiroK����.���������������@@�w�lmshopsin�����*���������������@ failedNamef3w�lNA0���0���������������@ failedCount3@�����������������������������@������������������@����������������������6���$��������9Sloop over records in acc folder::�J���8������������@ @PM_DocumentList@accPath�@accNames$�����&���������������@�@accNames$�����������������������.���������������@len3@@accNames$����,���������������@curmone3@�������������� ���������������@mon3w�l�3���&���������������@i3@�?�����������������������������&���������������SFor ($i;1;$len)���&���������������@@i� �@len����2��� ������������@accname3@accNames$�@i���,���������������Sis the month the same������������������@@mon!@�?�������"�@accname!@�?�������"���@mon!@�@��������"�@accname!@�@��������"���@mon!@�@��������"�@accname!@�@��������"����V���D������������@year�3@� @� @accname�@�@��������@�@������������R���@������������@lasts�@curmon�3@lasts�@curmon��3�@�?����������D���2������������S,only incriment the year if it is consecutive���P���>������������@@year��@lasts�@curmon��3�@�?������������R���@������������@lasts�@curmon�3@lasts�@curmon��3�@�?���������������������7@99�$���������������S debug assert���*���������������@@�w�lPiroK����.���������������@@�w�lmshopsin�����,���������������@ failedNamef3@accname���B���0������������@ failedCount3@ failedCount�3�@�?�������������������������@������������������@������������������@���4���"������������@�� check if it's a legit month���L���:������������@mon3@� @accname�@�?��������@�@������������6���$������������@year�3@�@months��@mon����|���j������������@@yearh�3@��������������@year��wl@�@��������wO8#if it's a new month setup the month���V���D������������@year�3@� @� @accname�@�@��������@�@������������:���(������������@curmon�3@curmon��3�@�?����������^���L������������@@curmon��wl@�@��������wO8$ensure that there are only 12 months3���4���"������������@firsts��@curmon�3@yearo���2��� ������������@lasts�@curmon�3@yearo���J���8������������@�� 0bogus files also ensure that years aren't listed3���0���������������@i3@len�3�@�?����������>���,������������@firsts��@�?�������3@�����������������������������@���$���������������@�� bogus file ��� ���������������@mon3w�l�3������������������@������������������@������ ������������SEnd for���.���������������@i3@i�3�@�?�������������������������@������������������@����������������������f���T������������SOcalc first and last year by looping over years, fails if any months are missing���R���@������������ @ FirstAndLastr�@�?�������3@firsts��@�?����������P���>������������ @ FirstAndLastr�@�@��������3@lasts�@�?����������B���0������������@@curmon��@�?��������@�@�����������j���X������������@@firsts��@curmon��3@������������wO8"update first and last if necessary@���V���D������������@@firsts��@curmon��3 @ FirstAndLastr�@�?�����������N���<������������ @ FirstAndLastr�@�?�������3@firsts��@curmon�������������������@���T���B������������@@lasts�@curmon��wl @ FirstAndLastr�@�@������������L���:������������ @ FirstAndLastr�@�@��������3@lasts�@curmon�������������������@���>���,������������@�� %leave if there are any missing months���D���2������������ @ FirstAndLastr�@�?�������3@��������������D���2������������ @ FirstAndLastr�@�@��������3@��������������,���������������@curmon�3@�@�������������������������@������������������@����������������������$���������������S debug assert���*���������������@@�w�lPiroK����.���������������@@�w�lmshopsin�����0���������������@@len�3@���������������6���$������������@@w�ldebug��$@������$���������������@�w�ldebug�������������������@���0���������������@docRef�3@ w�ldebug����0���������������@w�ldebug�w�lR*chK����4���"������������@@i�@�?��������@len����N���<������������@�g@docRef��@accNames$�@i�3�@�Z$@��&��������������������@���<���*������������@@i�@�?��������@�@�����������z���h������������@�g@docRef��@� @firsts��@i��3�w�l,�3�@� @lasts�@i��3�@�Z$@��&��������������������@���l���Z������������@�g@docRef��@ failedNamef�3�w�l �3�@� @ failedCount��3�@�Z$@��&�����$���������������@ @docRefC�������������������@������������������@������������������@������������������������� ������������Scleanup���*��������������� @��3 @ FirstAndLastr��DFCC4DU�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU"�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU#�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7m�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU'�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU(�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU)�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7n�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.x�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU-�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D+'�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.y�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D z�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dd�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D4�*Y�D���2��%��$��g PostProcessing_SelLastNYears���@�������������������������������������������������DFCC4DQ�*Y�D���2��%��$��g PostProcessing_SelLastNYears���@�������������������������������������������������DFCC4DU.�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D {�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA5�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D |�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D2u�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D }�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�j4�^���L��'A��&A��gSFmakeNetCDF_mdi creates the metadata used by spotlight from information0N�N���<�����������S6in the database and supports both makeNetCDF programs.0���������������S������� ������������S input���8���&�����0001S! name of program: Maps, Vertical11�,�����������EMakS name of output filens�6���$������������S count of variables processed���<���*�������������%@�@�������� @��@diagName$����>���,�����������@%@�@�������� @��@ diagOutName����*���������������@ @��@counter����6���$���������� @%@�@��������@ diag_path��t�"������������r�n@@diag_���$�������������@diagName$7 @��k�&�������������$@ diagOutName7 @���"������������� @counter7 @��N����������������(�.������������g�Swrite out metadata file�c�.������������i�oS'kMDItemAuthors', owner��8���&��������� �@diagt7@�����7�@�Z$@��&��(�2��� �����������S'kMDItemComment', diag type�H���6��������@diag&7@diag&�7�@diagName$�7�@�Z$@��&��D���2��������S,'kMDItemContactKeywords', edgcm.columbia.edu�T���B������������@diag&7@diag&�7�w�ledgcm.columbia.edu�7�@�Z$@��&����B���0��������S*'kMDItemContentType', application/x-netcdf�V���D��������@diag&7@diag&�7�w�lapplication/x-netcdf7�7�@�Z$@��&��6���$��������S'kMDItemCreator',edgcm version�^���L��������@diag&7@diag&�7�w�lEdGCM ��7�#@VersionOfEdGCM7�7�@�Z$@��&��:���(��������S"'kMDItemDescription',run #, label �\���J�����������@diag&7@diag&�7�@�����7�w�l: @�7�@�����7�@�Z$@��&����D���2�����������S,'kMDItemHeadline', run #, type, years, label������������������@diag&7@diag&�7�@�����7�@diagName$�7�w�l for years �7�@� @������7�w�l-�7�@� @������7�w�l: @�7�@�����7�@�Z$@��&����4���"������� S'kMDItemKind', maps and years�a����|���������� @diag&7@diag&�7�@diagName$�7�w�l for years �7�@� @������7�w�l-�7�@� @������7�@�Z$@��&��i�B���0������������S+'kMDItemNumberOfPages', number of variables���N���<������������@diag&7@diag&�7�@� @counter��7�@�Z$@��&����4���"������������S'kMDItemOrganizations', edgcm���T���B������������@diag&7@diag&�7�w�ledgcm.columbia.edu�7�@�Z$@��&����6���$������������S'kMDItemProjects', scenario id���D���2������������@diag&7@diag&�7�@�����7�@�Z$@��&����2��� ������������S'kMDItemTitle', run number���D���2������������@diag&7@diag&�7�@�����7�@�Z$@��&����6���$������������S'kMDItemVersion', model version���D���2��������@diag&7@diag&�7�@�����7�@�Z$@��&��<���*��������S%'kMDItemWhereFroms', computer, and os�b���P��������@diag&7@diag&�7�@�7�w�l, @�7�#@PM_PlatformName�7�@�Z$@��&�������������������,���������������Swrite out the .I file���H���6������������@ diag_path7 @ PM_FindFolderw�lDiagnosticsApps����H���6������������@ docref_full7@ @ diag_path�7�@ diagOutName����2��� ������������@#@ PM_Platform�$@������|���j������������@�g@ docref_full�@�@�@diage�@�Z$@��&��@�Z@�@����������w�l:�w�l/��������������������@���:���(������������@�g@ docref_full�@@diage��������������������@���(���������������@ @ docref_full����D���2������������@@ diag_path�7�@ diagOutName�w�lR*chh�����������������������,���������������Sdelete the stop file7���P���>������������@@@ diag_path�7�w�lmakeNetCDF.stop��$@������>���,������������@�@ diag_path�7�w�lmakeNetCDF.stop�������������������@����������������������DFCC4DU/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D ~�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9|�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DC�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[!�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU0�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D["�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[#�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[$�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dnn�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D.|�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9}�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIp�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DA6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DN�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DR�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU1�3�(�����'A��&A��g^� @ SectionText�TX����DFCC4D7o�3�,�����'A��&A��gU� @SectionPictText���DFCC4D\ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D9~�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[&�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D['�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[(�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[)�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[*�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[+�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[,�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[.�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[/�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[1�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIq�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[2�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DIr�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[4�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[5�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4Dw�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[6�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[9�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[:�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D[;�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�5*Y�Z���H��'��&��`DCHandle the on timer events for the Analyze Output window. This codeME�^���L��������`DGmanages to change the buttons for the years list and to update the list���6���$������������`Dof output files (if they exist)�����������������`D�o����� �����������`D intputp_���� ��������`D none���� ��������????`D output==���� ��������0001`D none00�������������EMaker�N���<������������`D6buttons, timers only trigger if the window is in front@���D���2��������kZkZn @ @��#@PostProcessing_ProcessID�kZ���� ��������kZo{@ @�@�B���0��������kZkZ@ @SetButtonTextAlready(��0@�@���������o{�F���4��������o{kZ`D.SET FORMAT(*;"start_2";"Next 5;;;0;1;0;8;;;;")Do{�H���6��������kZkZ`D0SET FORMAT(*;"start_10";"Next 10;;;0;1;0;8;;;;")�ch�:���(��������kZkZ@� �X�w�start_2�w�Next 5�kZ�<���*��������o{kZ@� �X�w�start_10��w�Next 10�kZ�:���(��������kZo{ @SetButtonTextAlreadyH@�@��������kZ������������kZkZ@`D������������kZkZ@ T�B���0��������kZkZ@ @SetButtonTextAlready(�@�@���������kZ�F���4��������kZkZ`D.SET FORMAT(*;"start_2";"Last 5;;;0;1;0;8;;;;")DkZ�H���6�����������`D0SET FORMAT(*;"start_10";"Last 10;;;0;1;0;8;;;;")����:���(������������@� �X�w�start_2�w�Last 5����<���*��������@� �X�w�start_10��w�Last 10����:���(�������� @SetButtonTextAlreadyH@�?�����������������������@������������������@����������������������:���(������������`D#lists, mostly incriment timer count���8���&������������@ @ TimerCounti�@���������������.��������������� @PostProcessing_TimerCheck������������������@������������������@����DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D��f���T��'��&��`DNThis code sets up the arrays so that the timer can check if the output foldersb�f���T����� ��`DNhave changed. This code is set when you start a post-processor and it runs for�|�n���\������`DQfive minuates or until the change occurs or the run changes. The input is a folde`Dr���d���R�����..`DMto watch which then gets before and after snapshots. If a file is going to be.�Z���H����$�scal`DCmodified then it must be deleted before or no change will be noted.��������������scal`D�dG���� ��������`D input���8���&��������TAT `D! string, path to folder to watch08���� �����������`D output���� ������������`D none���B���0������������% @�@�������� @�� @WatchFolderPath����.�����������0001@ @WatchFolderCount<�00�P���>��������EMak@� @�@��������@WatchFolderContents�@��������������*��������������� @WatchFolderPath @������������b�aaaa��\���J����b�����@ @PM_DocumentList 7 @WatchFolderPath�7@WatchFolderContents�����.�������b�����`Don success start timer�0�������b����� @ TimerCounti@�?����������F���4����b����� @WatchFolderCount<@ @WatchFolderContents� ��������b�����@���`���N����b���`DHon failure start timer anyway, this just means that the folder was empty���0�������b����� @ TimerCounti@�?����������6���$����b���� @WatchFolderCount<@��������������������b�t4@����������������������������������������������������DFCC4DIs�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7p�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D{�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D7q�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DU5��y�`���N��'��&��`DIThis code does the timer check and redoes the listing if anything changesfn���������������`D ������ �����������`D input���� ���������� `D none�i���� ����������>`D output����� ��������0001`D none00�L���:��������EMak� @�@��������@folderContentsz�@������������w��������������000100�$�����������EMak`D update timer���B���0������������ @ TimerCounti @ TimerCounti��@�?����������������������������� ��������������`D do action��P���>����Z�����@ @�b @ TimerCounti�@�@���������@���������������"�������Z�����`D list folder���X���F����Z�����@ @PM_DocumentList 7 @WatchFolderPath�7@folderContentsh�����<���*����Z�����`D$see if the number of files has grown���J���8����Z�����@ @ @folderContentsz�� @WatchFolderCount(�@��>���,����Z�����`D'update list in interface and stop timer���0�������Z��� @ TimerCounti@��������������0�������Z����� @PostProcessing_SummaryLists����������Z�����@L ��������Z�����@����������Z����@w ���������Z������8���&����Z�� `D!kill old timer after two minuates�8���&����Z�����@ @ TimerCounti�@�@�����������0�������Z����� @ TimerCounti@���������������������Z�����@����������������������������������DFCC4DA7�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D\ �2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4DO�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D<�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFCC4D�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������������������������������DFDBPR��^P@������������������������������������DFCC4Dno�C �b���P��'��&��`DKThis code finds if a process has a window and returns the reference. If theum�Z���H�����)E��`DCreference is 0 then there is no window for the process in question.���������������`D������� ����R�..`D inputD:�@���.��������scal`D) longint of process number to search forCo���� �����������`D output���T���B��������`D= longint of the window ref or 0 if no window for the process���@���.������������ @��� @��@ processID�@ windowRef����$�����������0001@ @winLenR�06�8���&��������EMak@� @ windowListw�@��������������$���������������@ processID @����.�����������aaaa@ windowRef@������������������������������<���*������������`D$find out if the process has a windowpl�.���������������@ @ windowListw��X����4���"������������@winLen�@ @ windowListw����8���&������������@ @i�@�?��������@winLen���@�F���4����������@ @ @ windowListw�@i��@ processID����6���$������������@ windowRef@ windowListw�@i��4���"�����������@i@winLen���@�?���������������������4@������������������@ �������������@�����$���������������`D return valuew �$��������������� @��@ windowRefd�������������DFCC4D�>�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q@1 @ simWindowOpen��"DFCC4D%�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qeric_Close #@Simulation_ProcesDFCC4D3�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q��������(@ simWindowOpen@�DFCC4Dh�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q������)@)��force immediateDFCC4D[B�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qel/grid, path���J���8����������DFCC4D[C�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q @Rundeck_Validate<�@��DFCC4D\�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q������������ @ PM_Launch @temDFCC4DS���F���4��'��&��`D/Update toolbar to match edit simulations window�p���^�����������`DQthis code no longer changes the record but it does match the other stuff. Semapho`Dres���<���*������������`D%block access while things are checked���(����������� Run_Critical_Begin��<���*�������� #@RunNumberArrayz�@������������!!�4���"��������#@RunNumberArrayz@�?�������kk������������@�������������cccc�N���<��������`D6check if current selection in list needs to be changed �D���2��������`D-$cur:=Selected list items(RunNumberArrayHier)���0���������������`DIf ($cur#RunNumberArray)���D���2������������@} @RunNumberArrayHier�#@RunNumberArrayH������� ������������`DEnd if ���&��������������� @Run_Critical_End<���*��������������� @Run_UpdateSimControls���&��������������� @Toolbar_IBC_View<���&��������������� @Toolbar_IBC_Sort<��.STARTGCM�@�����4���"������������@ @ @tempu��$@������.���������������@docRef_@  @tempe����$���������������@  @docRef��������������������@������������������@���V���D������������`D>model is not running and shell is not running, try to start it���"���������������`D start model���R���@������������@tempe @ PM_MakePath @output_pathname�@gcmName�@�����*��������������� @ PM_Launch @tempa�������������������@���"���������������@success@����*���������������#@TMP_Run_Recheck@�������������������@������������������@����������������������:���(������������`D"reopen setup window if it was open���(���������������@ @ simWindowOpen����$��������������� @Simulation_Open���*���������������`Dwait for it to open���\���J������������@ @Process_FindWindow #@Simulation_ProcessID(��@���������������.���������������@C @B�@�@��������������������������@������������������@���������������������� ���������������`Dlock run���2��� ������������@ @�m����@���������������"���������������@ @success����6���$������������#@Simulation_Button@�@�������������������������@���2��� ������������@I #@Simulation_ProcessID(�������������������@����������������������4���"������������#@Setup_ProcessID@����������������� AllSetJDFCC4DM�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](q���������� OHT_Deepocn_I�0+�DFCC4DL�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qGo_WebeJournalEx���������������DFCC4DEg�2������!�� ��,I�(�������L����]���$������$����������� ]Run_ChangedRun@nd�(�����������U]���$�������@���.�����������]} �RunNumberArrayHiers���?�����������$�������������� ]Run_ChangedRun@�����������������](qistpulate�����������#q��������]DFCC4D:j�,J�F���4��'��&��`D.handle the external buttons set in the toolbarD�4���"����6�™(`Dor elsewhere in the interface|�����������������`���N�����O2��� #@Simulation_Button�@�?��������wXCreate, now does fake createwer�2��� ����@�scal @Simulation_FakeCreate �X�:C�J���8��������scal@ #@Simulation_Button�@�@���������wXDeletegh�&�������@���� @Simulation_Delete���j���X������� @� w�Setup Simulation, Run ID: �� @Run_Critical_GetRunN+ @�?��������7��o�L���:���������� @ #@Simulation_Button�@�@���������wX Duplicate�M�2��� �������� @Simulation_Duplicate( @���N���<����|�����@ #@Simulation_Button�@�@��������wX Rundeck T���,������������ @Simulation_ViewRundeck���L���:���������@ #@Simulation_Button�@�@��������wX Scenario ���(�����������aaaa @Simulation_MakeSen�N���<���������@ #@Simulation_Button�@�@��������wX Lock record���2��� ��������d @Simulation_LockUnlock @��dk�N���<������������@ #@Simulation_Button�@�@��������wX extend runT���*�������������� @Simulation_ExtendRun(���V���D���������@ #@Simulation_Button�@�@��������wXupdate current date���2��� ����������� @Simulation_UpdateCurrentDate���.�����������aaaa@I #@Toolbar_ProcessID��L���:������������@ #@Simulation_Button�@�@��������wXopen all���:���(�����IHDR @Simulation_GroupChangeAll @Openl�tS�L���:��������Z@ #@Simulation_Button�@�@��������wX close all2�<���*����N����� @Simulation_GroupChangeAll @Closedt�.�N���<�����������@ #@Simulation_Button�@�@��������wX edit linksT��$��������0001 @Simulation_LinkR�L���:������������@ #@Simulation_Button�@�@��������wX view edit��� �����������0001 @ eList_OpenLnd�P���>��������EMak@ #@Simulation_Button�@�@��������wX make scenario�(�����������TAT @Simulation_MakeSen1 �,����������� S @I #@eList_ProcessID�59�P���>������������@ #@Simulation_Button�@�@��������wX import record��� ��������������� @ XML_ImportM���P���>������������@ #@Simulation_Button�@�@��������wX export record��� ��������������� @ XML_ExportM���P���>������� @ #@Simulation_Button�@�@��������wX close window� �&������������ � @Simulation_Close<�u�X���F���������p�o@ #@Simulation_Button�@�@��������wXduplicate a scenario� �2��� ������������ @Simulation_DuplicateScenario���L���:���������� @ #@Simulation_Button�@�@��������wX Duplicate�n�2��� ��������� � @Simulation_Duplicate( @���n�X���F���������p�o@ #@Simulation_Button�@�@��������wXexport run with path� �D���2���������n�@filePath$ @ PM_FindFolder w� CurrentRun���x�\���J��������žd@filePath$ @ PM_MakePath @filePath$�@������w�.xml�@��� �2��� ������������ @ XML_ExportM 7@filePath$����R���@��������@���@ #@Simulation_Button�@�@��������wXsetup the model���$��������������� @Setup_StartGCMzw �T���B������������@ #@Simulation_Button�@�@��������wXcatch extra cases��������������� @�������������������@���������������������r���`������������`DQHack to change records and then duplcate for new, otherwise just reset the button`D to 0��>���,������������@ #@Simulation_Button�@�?�����������6���$���������L#@Simulation_Button@�@��������2��� ������������@I #@Simulation_ProcessID(�������������������@���6���$������������#@Simulation_Button@�����������������������������@�� not running, trDFPS4Dr^���B���~��,��������@Y�������@r�����@r�����t�������������H�H����@Rg(����H�H����(����d���������������������h������ ��������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.print.PrintSettings.PMColorMode</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMColorMode</key> <integer>3</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PrintSettings.PMCopies</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMCopies</key> <integer>1</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2006-06-28T19:35:47Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PrintSettings.PMDestinationType</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMDestinationType</key> <integer>1</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PrintSettings.PMFirstPage</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMFirstPage</key> <integer>1</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2006-06-28T19:35:47Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PrintSettings.PMLastPage</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMLastPage</key> <integer>2147483647</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2006-06-28T19:35:47Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PrintSettings.PMPageRange</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PrintSettings.PMPageRange</key> <array> <integer>1</integer> <integer>2147483647</integer> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2006-06-28T19:35:47Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PrintSettingsTicket</string> </dict> </plist> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.print.PageFormat.PMHorizontalRes</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMHorizontalRes</key> <real>72</real> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PageFormat.PMOrientation</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMOrientation</key> <integer>1</integer> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PageFormat.PMScaling</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMScaling</key> <real>1</real> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PageFormat.PMVerticalRes</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMVerticalRes</key> <real>72</real> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PageFormat.PMVerticalScaling</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMVerticalScaling</key> <real>1</real> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.subTicket.paper_info_ticket</key> <dict> <key>com.apple.print.PageFormat.PMAdjustedPageRect</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMAdjustedPageRect</key> <array> <real>0.0</real> <real>0.0</real> <real>734</real> <real>576</real> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PageFormat.PMAdjustedPaperRect</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMAdjustedPaperRect</key> <array> <real>-18</real> <real>-18</real> <real>774</real> <real>594</real> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PaperInfo.PMMatchPaper</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PaperInfo.PMMatchPaper</key> <true/> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PaperInfo.PMUnadjustedPageRect</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PaperInfo.PMUnadjustedPageRect</key> <array> <real>0.0</real> <real>0.0</real> <real>734</real> <real>576</real> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PaperInfo.PMUnadjustedPaperRect</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PaperInfo.PMUnadjustedPaperRect</key> <array> <real>-18</real> <real>-18</real> <real>774</real> <real>594</real> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PaperInfoTicket</string> </dict> <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PageFormatTicket</string> </dict> </plist> print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.PaperInfo.PMUnadjustedPaperRect</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PaperInfo.PMUnadjustedPaperRect</key> <array> <real>-18</real> <real>-18</real> <real>774</real> <real>594</real> </array> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>2003-04-16T18:27:51Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PaperInfoTicket</string> </dict> <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PageFormatTicket</string> </dict> </plist> tProcessing_Timer��������������������PostProcessing_TimerCheckSetup����������PostProcessing_TimerCheck������U5�����������������������������DFPICT' ������� ���������������������� ����������������������H���H����������� t������܀�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""����������������������������������������������� ���� ��������Ձ���������������������������������������������DFPICT' ������� ���������������������� ����������������������H���H����������� th�������������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""������������������������� �� ���� ��� ��� ������e��� e;���� e;��� e;��� �;� ��� �;��������������������������������������������������DFPICT' h������� ���������������������� ����������������������H���H����������� td������3�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""�������������������������� �� ������������������������ �� �����������������������DFPICT' b������� ���������������������� ����������������������H���H����������� t8������M�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""������������������������� �;���;;�;��;;������� ������ �� �� ��������� �� �����������������������������DFPICT'G L������� ���������������������� ����������������������H���H����������� t ������_�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""�������������������������� �� ��� ��� �������*�����*����**������ ����������������������������������������������������������DFPICT'6 ������� ���������������������� ����������������������H���H����������� t������{�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""������������������������ ������ �;���� ��;��� ;� �;�;��;���������� �� ����DFPICT ����� � � ���������� ��� ��������� ����� � � ����� � ���������H���H�����������K,������p�������ff�33������̙� ff� 33� ��� � ��ff�33����ff�ff�ff�ffff�ff33�ff���33�33�33�33ff�3333�33��������� ���!��ff�"��33�#�����$�%�&�'ff�(33�)���*�+�,̙�-ff�.33�/���0̙�1̙�2̙�3̙ff�4̙33�5̙���6ff�7ff�8ff�9ffff�:ff33�;ff���<33�=33�>33�?33ff�@3333�A33���B���C���D���E��ff�F��33�G�����H�I�J�Kff�L33�M���N�O�P̙�Qff�R33�S���T�U�V�Wff�X33�Y���Zff�[ff�\ff�]ffff�^ff33�_ff���`33�a33�b33�c33ff�d3333�e33���f���g���h���i��ff�j��33�k�����lff�mff�nff�offff�pff33�qff���rff�sff�tff̙�uffff�vff33�wff���xff�yff�zff�{ffff�|ff33�}ff���~ffff�ffff�ffff�ffffff�ffff33�ffff���ff33�ff33�ff33�ff33ff�ff3333�ff33���ff���ff���ff���ff��ff�ff��33�ff�����33�33�33�33ff�3333�33���33�33�33̙�33ff�3333�33���33�33�33�33ff�3333�33���33ff�33ff�33ff�33ffff�33ff33�33ff���3333�3333�3333�3333ff�333333�3333���33���33���33���33��ff�33��33�33����������������ff���33��������������̙���ff���33�����������������ff���33��������ff���ff���ff���ffff���ff33���ff�����33���33���33���33ff���3333���33����������������������ff�����33�����������ٻ�����ڪ�����ۈ�����ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�������������������������������������ww�����UU�����DD�����""�����������wwwwww�UUUUUU�DDDDDD�""""""������������� � ����� � ������ �� ��� ��� ��3� �����3������3�� ��� �3������3������3������3������3������3������3�������3���������3� ���3���������������������������������������������������������DFPICTt����� � � ����H���H������� � ������8BIM������� � Grphbj�� ����� � ������ � ���������H���H��������������������H#��� ��������wwwwww�ffffff�DDDDDD� ��``� ����������� � ����� � ��3�3�3� "�3:"3 � "� 3:3"3 � 33"� 3:3"3 � 3133"� 3:3133"3 � 3133� 3:313333 � 3133c3� 3:31533c33 � 313U33c3w� 3:3153U3c3ww3 � 313U33c3w� 3:36c3U3c3w�3 � C36c33c3w�p 3:C36c3c3w�s� C36cc3w��3:C36c3ws3� C3�w�3 :C33wws33 � C3ww� 3:Cws3 � w�3:s3�3�������DFPICT 0����� � � ����H���H������� � ������8BIM������� � Grph�� ����� � ��4��������������������������������@���������� � ���Vrle ����������appl�������� � �H���H����� Animation�����������������������(�(@������� ��������%``%����������@@����������""�����������CC���������NN�������CC�����""�������@@���%%````%%���@@�������""�����CC�������NN���������CC�����������""����������@@����������%``%����������������� � ��������H���H���� ������������������� � ����� � �@!1 ؃T.!0t ֚O.$+j̗c�!`=&� |cY8+!��h&!5|c5$��yGB=?0� FQ�8j|[D?�5 =B=5.m~mL8�. ce^VO5)++�)F�T.��c[TIBI`?!�� ݤ~reO=G=B=��K�� కD.��ꗈ~ocTImѩ`D��ɿ~th~|jG5��O�ĕ!��︮~o`QLөD$��dz|oj|I3��P�&��[L+�� ̽wh[Tm?+ �� ֿ|~8+��Q�� 3jore= �¸wm`e:�ѽjo^�G� �)L&�Ǹytjw[!� ǽ~tG!�D� I���µ`Q?V� ̿~o|e)+�|@D�:3�¸ݕLB� ̟o|mhB3�=���¸?L)�©OteG:��<����νyB38�ǿLhL=!��<����®~|tmD.�¿hjO8& ��~?��D[3�e̽~trh[^j�^ֿww++&��VA��Ɂm�`Ǻto^QoӤ�VǸ|yO$0��OE��te+�rꫵºyjV^̟I�hǽt.8��`I��LΆm5�񚦩|tmcQĮV�~ν|oO$.��tI��!jjo[.�wh^TGtݿ|I�Ǹ~oo) ��HV�m`Q5�~m`VI=[꺦mG&�ν ~rce[��I�rO$ �8y~~|yrj^QB83³^:�3ݵ |j`T!�+K� �m[3�trom h`VLD8.|Q0 �絰weYLjQ�O��oYQ8� mmjee`^ YQI?3Lc`jG�֜yocTYt� L�:�y|G�`ec^YTOLIGB8.ݳ`wV0�|yrmh[Lh�J��5ǚ=��oTYYTLDB=580^w0��y~~tme^YQ+VD)!��oH�I̿$��hrLI D:5.+5��`rrtohe`VOwBQI)��Y?�j���j B=:850+.w0��^e`[[YVO=^T5��V;��8�� :.&$I�� YLD?=+) ��2�h�I$ �B=3+$ �:6^T� r~�jĽ~.�`%ݚΕ����������DFPICT  �����(�&� ����H���H�������(�&������8BIM�������(�&Grph�� �����(�&��J��������������������������������@����������(�&���Vrle ����������appl��������&�(�H���H����� Animation�����������������������(�(@�������(��������,Hd���������:T�������� /u�����������:u��������� /uk�������CT�������������f�����������������J]�����~����"����[r����T������� "������� f���������������d�������+U���������������������U�������a���������������������||�������W������^'������-A������ ��������������������A�������f55���������a����������k7�����������n뒈A����������>̉3!�����������o@ �����������������(�&��������H���H���� �������������������(�&�����(�&�@^]_^b  _ bf ��i�hƨǪɩ�mѹ з ԾhԼƝԬ׽Ȟ֯پ̞دn ƵʿӸʬ!ȴӸɮɵþػͭr ˬǹŴϦѼ"̭ǺŴͧӽª!üϮʻȷѫԿsºȹջű#żɸغIJ!;ؿȷs#ƨƿķϻƬ˧ƾŶлȭ(˩ȽԻɰsFĺĻñŖȼǽ´Ș'ʾǵŴɘsq̭Ǯ˯ǮҰ˲ůq ˼Эá״˺Ѭ¤״"ͿӭǨܶ�rGտ¥ǹ¾Ծŧǻ%¿Ħ̾rGƚɰȜ˲%˞ʹp!Թî"ӷî!ٻdzr"ݦؼظިֻٷ "᧩ڽܺsqØřțq%ﴷ  s#HrHr19p!"!r"""r""q!""p ̺ ʼ"m Ĵñ ˺o!̺!ʻ!o!ȼ!Ǽ!»o!!ν!Ʊo!Ƕ!Ƕ!νo!ѳӴ!Թh  �����������������������������������������������DFPICTN b������$� ����H���H��������$������8BIM��������$Grph�� ������$��R��������������������������������@�����������$���Vrle ����������appl��������$��H���H����� Animation�����������������������(�(@��������� �����%ZZ%����������%ZZ%����� ����II��������II���� ���I��I������I��I��� ��&��&����&��&���]]��]]� ������ ����  ��  ��  ���� k��kk��k A����AA����A !ee!!ee!  ,ii,  ,ii,  $0QwwQ0$$0QwwQ0$  '069::960'  '069::960'  �$,0220,$��$,0220,$� �� !$$! ���� !$$! �� ���  ������  ���������������$��������H���H���� ��������������������$������$�@S��֧}aa}�U99U�֧}aa}�U99U�֧}aa}�U99UM��oTo�G,G�oTo�G,G�oTo�G,Gg��^T�T^��6,,6�^T�T^��6,,6�^T�T^��6,,6^�oT�To�G,,G�oT�To�G,,G�oT�To�G,,G7�T��},}��T��},}��T��},}�U�|T��T|��T,,T��|T��T|��T,,T��|T��T|��T,,T�R�^T�T^��6,,6��^T�T^��6,,6��^T�T^��6,,6�R^T�T^ꪂ6,,6‚^T�T^ꪂ6,,6‚^T�T^ꪂ6,,6‚RvT�TvN,,NƗvT�TvN,,NƗvT�TvN,,NƗRT�Tխq,,qT�Tխq,,qT�Tխq,,qaiT��TiխA,,AiT��TiխA,,AiT��TiխA,,AO؝ZT Zưu2, 2uƗ؝ZT Zưu2, 2uƗ؝ZT Zưu2,2uƗ[љgT gꪂ¼q?, ?q‚љgT gꪂ¼q?, ?q‚љgT gꪂ¼q?,?q‚mk�ϰo[[o��eG33Ge��ϰo[[o��eG33Ge��ϰo[[o��eG33Ge�mk���¸—����¸—����¸—�mk���Ÿŭ����Ÿŭ����Ÿŭ�m!�Հ�X¾­X �Հ�X¾­X"�Հ�X¾­Xh�� ߿��� �ƹ·�� ߿��� �ƹ·�� ߿��� �ƹ·������������������������DFPICTN!������� ����H���H��������������� ������������#����������� /A��������H���H�����������������/A�������� RRNRNRNNRNR!Btw{ww{{w{wwwwww{!Jc:g[c:g[g[c:g[g[gZk{g[g[k{g[g[Nc:c:N_:c:�c;c: Nc:_59R____c:__!R__:)k)K->Z__:_c:__:c:_:!Vc:_)k)K)k)K-lJt__:c:_c:__Zc:g[)k)l)k)l1R_c:g[c:c;!_cZg[-l-l)k)l-l)k-l-l=g[cZg[c:c:k|k|--l-l-9Rg[k|k|k{k|!c9k|o|-11-1Rk|ok|k|ok|og:oo115JSk|oooo|o!g[os>Bg[ososoososo!gZww_swswwsswwwsw�k[w wwwwwwwwwww{!gZ{{{{w{{{{{{{{{{ BF1F1BF1BF1F1BF1Bo{o{kZo{kZo{kZo{�kZ�����������������������������������������������������������DFPICTN������<� ����H���H��������<������8BIM��������<Grph�� ������<��J��������������������������������@�����������<���Vrle ����������appl��������<��H���H����� Animation�����������������������(�(@�����������pp����pp���99��99�________�99��99���pp����pp�������������<��������H���H���� ��������������������<������<�@Q�X[\] \[X��X[\] \[X��X[\] \[X��X[\] \[X��X[\]] \[X��X[\]\[Xv�Y[ ɖ[Y�YZJACFGHFG DCKZY�Y[ ɖ[Y�YZJACFGH�GFG DCKZY�Y[ ɖ[Y�YZJACEGH�GFGCKZYkUZZUUXDSkw{z{z{|}~{pXEXUUZZUUXDSkw{z{|} ~{pXFXUUZZUUXDRiw{z{z{{z�{|}~~{pWEXUnVVVHURGVVVVHU RHVV VVGTRHVUբtSStUUCöiPPiDUUբtRSt#UUC~õiOPiEUU բsRRsUUB~õiOOiEU#TũqJKIHJHpԺSTU qJKIHJHp5ƪUSSŨpIKHHJHoԺTSVŨpIKHHJHo ƪUTT pIJHHIHo ԺTTUpIJHHIHoƪUTQķsMOMNMKsQQcYķsMOMNMKsoQQ÷rMNMMMKrQQc÷rMNMMMKroQQösMOMMMJrQQcösMOMMMJrnQ OƒMQRORPIſOOpƒMQRORPIqONőLQROQROIſONpLQROQROIpON�3őLQRONOQROIľONoőLQRONOQROIƿpOLrOSSSUQMqLLsrOSSSUQMqwLLrOSSRTPKqLLtrOSSRTPKqwLKrOSSRTQLpƿLKsrOSS RTQLpwLQJXQVWUSUTMUIJwXQVWUSUTMUwIIXPVWUSTSMTIIwXPVWUSTSMT wII3XPVWUSTSMTIIwXPVWUSTSMTwI5GYQWYWTVTMVĿGGuYQWYWTVTMV|GGYPWYWTVSMVĿGGuYPWYWTVSMV |GG-YPWYWTVTMUþFGuYPWYWTVTMU{FCV{PVWUSTSMzCCw{PVWUSTSMz}CD{PUWUSTSLyDDw{PUWUSTSLy}DD3{PVWURTRMyDDw{PVWURTRMy}DAMSSQOKAAw6MSSQOKyAAɥMRSPOJAAvMRSPOJyAAȥMRSPOJAAvMRSPOJxA ?΂OQPOL ý>?s΂OQPOL'}>>΁NQQPPOOLý?>s΁NQQPPOOL }?>͂NQQPNL¼>>s͂NQQP NL|><ʃNNPONKľ<<sʃNNPONKȿr<<ɂMNOOMKž<<sɂMNOOMKȿr<<+ɁMNOOLKľ<<rɁMNOOLKȿr<:8ݯ|YX|þ::fݯ|YX|Ǹd::9ܮ|XX|ý::eܮ|XX|Ǹd::ܮ|XW|½::eܮ|XW|Ƹd:6~G}86J¢I88ƾ}88J âI86~ž}66J¡I66X\369wȰ;33Y\63:xȰ;66X\669wǯ~:63�[[3:ji:3\\3;ji;3[�[3 :j i:33�11Ql kP1-�118EYcdc�acdccZE71-�11QlkQ1-�118EYcdc�acdeccZE81-�-1Qk�kQ11�-18EYc�acdccZE811Q�,0/0 /0,��,0/0 /0,��,0/0 /0,��,0/0 /0,��,0/00 /0,��,0/0/0,�����������������������������������������DFPICT�p������� ����H���H��������������� �����������1����������!�� � ��(�2�#Missing�(�K�(Image���������DFPICT G�����K� ����H���H�������K������8BIM�������KGrph�� �����K���������K��������H���H���� �������������������K�����K�@�����JʰwkddWZnqͷ¨||�_ɗkWHA;:948:;<>DCU{ umfeb[^adhev°{bSNHJNILPOV[d`p�ktB&"1W\TYJEG>;;9/03.!.?Tz۲گnoy|ykfe_RQWQ7@Xtڱ|{tub]gXVVPKBNK2>Vp߶�`4?rgu`YZXRGFBAA>0.Fzܸ@`ТieginrpjffdS7@d@`Ҩ}z{|z{~qjbde_TSNNPWH2>a߸@`�c)'vrbzo`jiVOLOL90,#6Q0��Ͽ}poqpoy{~z_QI;-Kp0���Ͽ"묍ougmn_XTWVH=<2)Im0��ϿU@7WOalitj[XONPH=.)$EM��@�����p0�@pp0�0`@�@ �� @� �%Εvu}}zxwvsp~rcND;,^c��@�����p0�@pp0�0`@�@ �� @� �%Т{xbqymqmb_YWYUK>92&\a��@������p0�@pp0�0`@�@ �� @� �Az(8\aW{}shYQUVM:J@0��@�� ��0�P �Pp0���0� @@'𾏃~|ywtyd9300%(b@0��@�� ��0�P �Pp0���0� @@'¢rjkc{|wpd\_^VL<81+ (`@0��@� ����0�P �Pp0���0� @@H*Zf`}v[CBHD+A0�@��p��00�0pP���Pp0�������*㨎~|x~z}vS4,+(#[0�@��p���00�0pP���Pp0�������*㶦~inhyeYXTOD:3.'#Y0�@��p����00�0pP���Pp0�������yCLr~u{sT@FGH43�`��0����`��@��@�`� P���@���`��0,ଖ~|ĵ}|z`7*' F�`��0�����`��@��@�`� P���@���`��0,޾xvz}ubVTSRF91+"E�`��0������`��@��@�`� P���@���`��0z @ fäslRIHEE63�@��`�����`�0��0�����@��0���@.ⳡ~ر{u^:*$&F�@��`������`�0��0�����@��0���@.¾wq`WTPQI8/("E�@��`�������`�0��0�����@��0���@dF  Q̰kTMB<CB0;�����`��`��`���`�����`�����@(黪}ĽwynV0.2& S�����`���`��`���`�����`�����@(¿n`YVPOM@2-)  P����`�����`��`���`�����`�����@qA%!  �b@03?7%'%>��� �0����P���������@��P�@��@1󾵷ѿigueFFA0[��� �0����P���������@��P�@��@�&ʴژ~eVURJE;70%X��� 0������P���������@��P�@��@vX)4!" J˽Ǣ[:/57;7+!X���@��@����@�@��������@,Ⱥŵ~vgnlj_L9#x����@��@����@�@��������@+¼Ƣy]XSFCHG8+v����@��@����@�@��������@y #$%#!! @{շʜ}tOBL24<8)%b���0��p�@��@��@���@��`��` � ��@.Ծν|ektfMC1���0���p�@��@��@���@��`��` � ��@-½t|r\_YTHFE61(���0���p�@��@��@���@��`��` � ��@w0 $#!  B~ǼƲrdhc`oeF=7;0&-���`����� ���@��������@.׽º|wpmYH7>���`������ ���@��������@.½phkednl`QGF;1+=���`������ ���@��������@j\$#"!(nasǿf^rdhdZJ;8:2%X�@��﯀P��`��p�`����`��@� ��@.ź}rpcM<(x�@��﯀P���`��p�`����`��@� ��@.tjgshigaVJGE<0(t�@��﯀P���`��p�`����`��@� ��@c)$&%$" \Lgšbd_V[G=?BA6-!���`��� ��� ���������@0l^C60-���`�� ��� ���������@&¾zzhge_aTMNH>4+#,���`��� ��� ���������@iX&&''%#$$#"!! ! "$I`*7BA[`BDKB&C����0@@ ��@������@��P���@¾ZB;2,*_����0@@ �@������@��P���@+čd[`cROQOPI@80'\����0@@ ��@������@��P���@-$'&%%&&$#�"! !Lw>_I91(}���00�0`����� ���0���� ����@0ˌxjME?70' ���00�0`���� ���0���� ����@)ÿșygX[[ZXPG>6,! ���00�0`����� ���0���� ����@m '&%$#$""#" ct(3@M��� ����������@���@���@��`���@2˞ub\VRKD=6.$ h��� ���������@���@���@��`���@*ÿʝwdvph^VMD<3' e��� ����������@���@���@��`���@;#'�&'�%$#""! +~!5B(�p��p�`��`�@�����@���@����� ����@�.ߜxf`YSLE?81'6�p��p�`��`�@����@���@����� ����@.Ƚ~jzph^UMF@7+5�p��p�`��`�@�����@���@����� ����@%&'&$$%&%$#! .A&Q/ #,j�@��`@����������@���@��� ������@/뵏{|ib[TMF@91*�@��`@���������@���@��� ������@-Ǻwzri`WPH@7. �@��`@����������@���@��� ������@a ('%$�%$�"!�"! /lxht@26J���� ���@���@���0�����@�`��@ $¼𥃏vnd\VOHB;2+  c���� ��@���@���0�����@�`��@$Ƕ}tkcZRKB8.$`���� ���@���@���0�����@�`��@yB$(' $%$##$$#$##"! EI); %�����p�`���������� ������@4ÿ»~xqe^XQJD=4,#2�����p�`��������� ������@-}z~vme]UNE;1&1�����p�`���������� ������@1&())(' &''%##"!!$$"�! ! WV*7=c���@� �������Ͽ���������@ �P��@ÿ忕yse^XRLF?7-$���@� ������Ͽ���������@ �P��@½{xof_WPG=3'���@� �������Ͽ���������@ �P��@+'('(*-%&�$"! !�  Tl !"1$^���`����������@������������@4ý̈́xwvw{hXSMGA8/&~���`���������@������������@-¼ymg`YRJ@5*z���`����������@������������@#',,-)')/&'&%""!!"#!!  !!  !mM7A]�P���p��P� ��� ��@@�0�0��P����` �@��@4þϵ{uok`UNHB:2({�P���p��P� ��� ��@@�0�0��P����` �@��@� }xojbZTKA7-x�P���p��P� �� ��@@�0�0��P����` �@��@x &'252%'&#""!!"!    P/!E�0��� ��� ��@�`��0�P���������ߟ����@4ľ}{unjdcd]QIA92* ]�0��� ��� ��@�`��0�P���������ߟ����@¾{wrlc\SKC8."[�0��� ��� �@�`��0�P���������ߟ����@n''%)3*&'&%&%%#"!   )D.!2�����` ��������������`�` � ��@5{wwpea[YVKB92* G�����` ��������������`�` � ��@}xpje^VLB8/#E�����` �������������`�` � ��@ f%)'',-&&%$#!"!� +=^O^V/"������P���@��@����P��������@4z`\XYMC;2*2������P���@��@����P��������@5ľviusrlf_WMC9/$1������P��@��@����P��������@^#%''(+($#$"!"!!"! ! 8#0mtqX(���@���������������0���@���@4ÿ}䵼t\XWMF<5-#%���@���������������0���@���@5dprdlkg_XOE:/%%���@��������������0���@���@ \$##$&**&$"##$"! 5&evigV-�p��p0��p��@`p��P�������`�������@4ɾ~üoUNG<3+"'�p��p0��p��@`p��P�������`�������@5z}tjmvi`ZQF;0%'�p��p0��p��@`p��P�������`�������@l$#$*&$%%$#$#�"!  H{_lS�@����@��@ 00��@0�����@�`��� ����@4˸ָQMF>4, .�@����@��@ 00��@�0�����@�`��� ����@4–uv`ku]YQF;2&-�@����@��@ 00�@0�����@�`��� ����@!$#""%%$%$ #$"!"!! !! +٨rrTSjg*%���@�@�@0�@0����0�0@�����`��4ٵ|ƹdIF=6-7���@�@�@0�@�0����0�0@�����`��4Αg|y|pZYoufXQF=3$6���@�@�@0�@0����0�0@�����`�� $!##$$""#"$#�"!  ym}p{z]Pg^A+��� ��@��00�`0�p�p��0�`ߟ0��P������4ܳ|Ŀ~RE=5+ @��� ��@��00�`�0�p�p��0�`ߟ0��P������4¿zdskvxdZid`YRF<3$?��� ��@��00�`0�p�p��0�`ߟ0��P������) ! "#$"!!##"#! !rnm|xmgjXEF!30�@p@����P� ��p�`߯p ����@`@ ��`��P���@���4ఱľP<5+ J0�@p@����P� ��p�`߯p ����@`@ ��`��P���@���4ÿihfwwoil]O[TF;1$H0�@p@����P� ����p�`߯p ����@`@ ��`��P���@��� 2 ! "##"!#" oofeupteJCAK1Ep����0��0@�0@�p0�@���@@�0@쮬){üa;6+ ^p����0��0@�0@�p0�@���@@�0@4gf``qpshTOLWTG<1"\p����0��0@�0@�p0�@���@@�0@; ! ! �qmjY]eclgOM?>,`@�@�0��P ����p �Pp �0@@�`� ��� @��{ }v_>5*@�@�0��P ����p �Pp �0@@�`� ��� @��$|b_TZbcmjXWLIPI;0 |@�@�0��P ����p �Pp �0@@�`� ��� @��Vi!  !!"! !�ojeV\_\Z[VE@8(s`@pp@߯`@߯`@pπ #|vŶs`B3*`@pp@߯`@߯`@pπ�$¿~a\SX\]`_]RMFLK:.`@pp@߯`@߯`@pπ�    !"! d|_[^ZYULGA:65)'�$~yq{tmU2(4-¿nYVYWXYOLJB?DF9-3� 8   ! �HrbaWWOHB>52.0 H3}{ryqg`@& b�i]]UWPKGD;>9*_�o � yXt`WKD>7540))u }zywowncXM34̼tXq]WMGC=;>;66*� ��``[]YE76860/) ,3ޞ}zwvotǰzsi\SG4< Ἲ"^]Y\YH;<@A=;5(;�I�$yec_YO?;:933)_&}{xuovҨyrfXPB.$r`Y]ZSDC?>4%z�!tɥg^dXSPE?:660%" ڙ }zvskym^VN@%- ڲ!d]ZZWTLGB@A;1!-�a�1NO\SSMH@944'W0~{xtk~ɦ{{sdXRD,w #{PTX[XPLF?=>2(s�+ ƘUPU_ZXID=50,&.閑}zvqtͮui]UK53.驪WPT\_\PJB;970#2�x�h]elVUD;6/."o/|wtkҫocVP>)/ßaX^dY\OF;564/�:%ƥaqnJG;.&" ?ݿ-~~}{xvpuѽ~q^QFA/% X.}w]dbPOD=:375* V�.�%`_rwTJ3)Ⓟ~}|zywqwzq`E?:3+ 9+ᤜwoy\hmVLKLIA:0"8�' FrR5"*ڐ}|zwvuuvtwtaKC=7/%/0ܢYxxs}poum[WQNE=4).�(dhkmF"(ܐ~~{zywurrouϣtPIE?81*,.ݣj~rszgYVOH?7.!+�8Cԡ{lca)y"}zxxvsrrjgKMKGA:4.$) 㭏ܘnaZYWPJB:2((�d&i$$}z~}{zzyzzxuusrpng]RML GB=5/'1Ēpqlc^ZXWQKD;3+0�,  Itm>=t qtwywutsroojtZZWSPOLHC?70)S 韆~sowlkfa]ZVRMF>6-"Q�qm$,VT& I%麳nuuspnmlklhpg`[WSQOMIB=82*"(c&ž~~}~|gbrsolha^[VRMF?7/$'`� Z3='1f$ninnlkiged`scXZ`SMJGC?71+!Cu$}~}{xvtsnifljhg_YWRMG?7/%At�{ J!%E!ڙjdihfdb`^XZ\WUWNIGC?:2*0\!ݢ{uyxvtqmlhcdda`ZVRMGA9//Z�sJ)Pݖe]\ZVWTQONNMIFDB=7.!7kޟumlieeb_][ZWSQLIF?4&7i�h{Odg:?@9.#"9_߿~wj\MC?920-5O¡tfWMG@9628O}�VǷdzI ';DeԯӈTD98J_gʊ\LA>N`h߳�> ӷ~ѫ Ŧۭ ܯ����������������������������������������������������DFPICT_l������� ��H���H������������ ����������������������H���H����������� ������&����@@@@���������tt�����ffffff�__xx� UUUUUU� 333333� """"""� BB� de����������������������@� ���������� ��� �/�� �"/�� �""/�� �""/�� �"b2/�� ���3b6/�� ��c3b6/�� ��&3b6/�� ��ȏcb6/� ��ȏb6/� ��,Ţb6/�� ��",ɯr&/w�  ��R")w"/ww ��R)w"/ww ��Yw"/ww ��[w"/ww ��[w"/ww ��[w"/ww� ["/ww � /wp �ww� �p�p����� �������������DFPICT�8������0� ����H���H��������0������� ������0�DFPICT ����� � � ����H���H������� � ������� ����� � � ����� � ���������H���H�����������0�����������������ff��33����������̙��ff��33������������ff��33������ff��ff��ff��ffff��ff33��ff����33��33��33��33ff��3333��33������������������ff����33��������������ff��33����������̙��ff��33������̙��̙��̙��̙ff��̙33��̙����ff��ff��ff��ffff��ff33��ff����33��33��33��33ff��3333��33������������������ff����33��������������ff��33����������̙��ff��33������������ff��33������ff��ff��ff��ffff��ff33��ff����33��33��33��33ff��3333��33������������������ff����33��������ff��ff��ff��ffff��ff33��ff����ff��ff��ff̙��ffff��ff33��ff����ff��ff��ff��ffff��ff33��ff����ffff��ffff��ffff��ffffff��ffff33��ffff����ff33��ff33��ff33��ff33ff��ff3333��ff33����ff����ff����ff����ff��ff��ff��33��ff������33��33��33��33ff��3333��33����33��33��33̙��33ff��3333��33����33��33��33��33ff��3333��33����33ff��33ff��33ff��33ffff��33ff33��33ff����3333��3333��3333��3333ff��333333��3333����33����33����33����33��ff��33��33��33��������������������ff����33������������������̙����ff����33����������������������ff����33����������ff����ff����ff����ffff����ff33����ff������33����33����33����33ff����3333����33��������������������������ff������33��������������������������������ww������UU������DD������""��������������������������������������������ww������UU������DD������""��������������������������������������������ww������UU������DD������""������������������wwwwww��UUUUUU��DDDDDD��""""""��������������� � ����� � �������� � ���� ���� ���������������������������� ��� ������������������������������������������ ��� � � �+�� �V�����++$��+*e++�PQ_ �V�V&)e _��5 M++VqS 5Mw+Vś )2+ö)M䶼+ )S+M))})q齵�M)q2üqMqȺP ɵ˕qMMq긶Ҋ+}qqе̮,!湕MM}ȴ֋ff鸹qqq常кf�!鸹qwMqĶ �wwqʽҮ��㕹��㹷W���¼W��ž´Ү+����ҮԂ+���VW+�++ �]+��+�� ��+����ӭ�����W���+������������������������������������������������������������DFPICT������ � ����H���H�������� ������� ������ ���������� ��������H���H��������������� ������ �� VRNsNsJRNsJRRRFQ^ss VB9BNSNsRJRJRVZcsVBVs^BNs^F1^ VVwwskZ^=9=B Rck:g9^{JRNsNsJRV^wo{RVRF1 Rsg9Zs{o{VVZJRV{w�c^�JRV{cs{{sg9c�NsRsskZg9kZg9kZNs VskZo{�Ns Rwws�Ns Vw{w{w{{w{{Ns�R{{Ns �R�NsNscc^c^�Ns�������������DFPICT:������� ����H���H��������������� ����������@��������������H���H���� ������L�����������������@� ����������19�19����1�1����������k�����k��k�1�1k��Μ��Μ��cΔ�Δ�c��1�1Μ�1k&���c��c��- �Μ1c �Μk9 �kc)�1 �9c �k�c$�1�c�k���9�9���1�1���������������������������������������������������������������������DFPICT ~������� ����H���H��������������� ������������������������H���H����������~X,FD�������������� 7878787878787�~�~�~ 7W==7NN7676767676767676�76?76_76׿76XWXWXWXWXWXWXWX������������������������������������������������������������DFPICT������� ����H���H��������������� ����������@��������������H���H���� ������L`�����������������@� ������&sc{sccZs {cRZRk1&cRJ11skRR91k{{scB))k0 ֥sRB1c ƜsZB1c{kRB1)Z1/{{scB!k޽Ƅ{sJ!kƭ{cRR1c1ޥ޽9BJ1!�έZB)޵{ZRR9!1/{B)k!��cεƭ{ZR{9�cέsZk9!�Z1/{1΄{kJcR)�9絥ssc9!�9έskZ9!�91/sssBRZcJ11�)ƭ{kJB!ƭ{kJB!.R1!)Rkks1!!!{ J9){RB)1#skRkJcRRJ11{scB!1skkscB!)1/l!�RƵ絜ZRB1�RsscZJ9!�J1 έ9"�罽֥c91){έ{cRJB1{1/ޭ{JR֥c9))R֭kcJB1)J1֥sZ9!B ΥkR9)B ֜sRJ9)91ֵ{ZB1)Z ƥcJ1)Z έ{ZB1)R'眭sZkޜ{ck ތkZc������������������������������������������DFPICT&L������� ����H���H��������������� ���������� ��������������H���H���������D��������������!VRNsNsJRNsJRRRFQ^s!VB9BNSNsRJRJRVZcVBVs^BNs^F1^!VVwwskZ^=9=B!Rck:g9^{JRNsNsJRV^wo{RVRF1!Rsg9Zs{o{VVZJRV{w�c^JR V{cs{{sg9cNsRsskZg9kZg9kZNsVskZo{NsRwwsNs!Vw{w{w{{w{{NsR {{NsRNsNscc^c^Ns���������������������������������������������DFPICT �����3�4� ����H� �H� �����3�4������8BIM�������3�4Grph�� �����3�4��P��������������������������������@����������3�4���Vrle ����������appl��������4�3�H� �H� ��� Animation�����������������������(�(@�������3�����������������������h��������,������k8�����K8����8E������� ������5������ .������&���������� ������������������������������������������������������ ����������� ����������������������������������������������������������������������������������������������������������������������������������������������������������A������������$������������ ������������������������������������������������������������������ ���������� ���������� �����������������������������������������������������������������������������3�4��������H� �H� �� �������������������3�4�����3�4�@"Ž孄뭄'ޥcsZR k{cR* BJ::{ JRJZBJ{4 굽꽌11:1 굌:BB:BB:B5 εŽν )11)1)1)k 1::1:1:)c8{)1)!!)B)11)1))B;{sksZ)!!Jk)!)!B>ΜssksJ!!{Z!){?|{kkss潥B!kνR)k@ Δ{s�Δ{J!c浔c1c@ ﵌scsk浌{skckcΥ{k@ֵΔskkckc͵Δskkckcnj浌ss> Ōsc�ŌsZckc t{ޭs�@ŔssckcŔssckcu޵ss@ k{{ksckc k{kkcsctkk{s{k;ZZkckc{cckckcucBZ{{{k:ZZkkŭsZZcks{ZJB1Jks;Ŕmֽkkm~s{ZJJ:)!Ru:ΜuŽkkessZJB:1!L6ŜgŭksVtysRBJB1!)?7Ŝ~νkc^� tkRBJ:1!67ΜŽkk`t ycZJJB1!)88Ŕνccjwy kJJBB1!C7Ŝ潽kktusZRJJB1!M8Ŕ 潵kcnsy ZRJR:1!H7ŜŽkkptyZRJB:1!J8�Δ 浽ccrsy{RRBJB1!M8Ŝ潵kkutyRJJBB:)Q8�޵kkwry{RRJJB)!S8Ŝ ޽ks pyZJJBB:!_8Ŝƽ޽kknk{RJ�:1!!S7޽޵kk{s{RJBB:!n8ֽ޵kk s{{RJBJ:1!!y7Ŝ޽ks {{{RRJJ:1!)�7Ŕ ޭcc{{sJRJB:1!7潜޽ks{{{RJBJB1!)9ֵֽkc{{{JJBB:)!!8Ŕ ֵks{sRRJJB1)7ֽ ֵcc {{RJJBB)!7 ޽ εks 茔{sJRJJB))3 ֽ ccsJ:1!4 εν ├skk 甔kRJB:1!1 ޵ν sks{cc ksRJJ:!1 浭 ޔsscZRZcsތkkcR1:. έ{{kcRZRZs skZZRZZc(֭{֔sccRckܔ{kZR�k%{{sZRZkscZZRs!JRk{JBJckJJBZk{)!k{))c{))Z:RBR:R�����������������������������������������DFPICT ������$� ����H���H�������$������� �����$����H�����$��������H���H���������&&�����$�����$���VVVVV�!!!!!�������������������������DFPICT ������$� ����H���H�������$������� ����$����H�����$��������H���H�����������������������$����$���VVVVV�!!!!!�������������������������DFPICTN������0� ����H���H��������0������8BIM��������0Grph�� ������0����������0��������H���H���� ��������������������0������0�@rJrJrJJrJrJrJJrJrJrJJ8rrJnJrrJnJrrJJnJ8rrJJrrJJrrJJJ8rrJJrrJJrrJJJ8r{ЎrJVnJr{ЎrJVnJr{ЎrJJVnJrJrJrJJ&r�rJ�bJr�rJ�bJr�rJJ�bJCr{rJVzJr{rJVzJr{rJJVzJCrrJnJrrJnJrrJJnJ8rrJJrrJJrrJJJ8rrJzJrrJzJrrJJzJ8rrJzJrrJzJrrJJzJ8rrJzJrrJzJrrJJzJ8rrJzJrrJzJrrJJzJ8rrJzJrrJzJrrJJzJ8rrJzJrrJzJrrJJzJ>r{rJVJr{rJVJr{rJJVJ=r��rJ�z�Jr��rJ�z�Jr��rJJz�JrJrJrJJrJrJrJJrJrJrJJrJrJrJJ����������DFPICT';z������� ����H���H��������������� ����������<��������������H���H���������tP��������������=sskZkZso{so{skZso{so{so{so{o{kZso{so{skZso{so{ �o{�o{ �g9�kZ; kZ51915ww{www{{51955g9=^5551{wsw{w{{{{5111c=c1515Rs{sww{wszww{{{{Z1555^=c55515Rswszo8{{sss{{{Z11515^=c1g9R5)J)JJ0ZZ^ZVRZ^^bB)J51Z5c%^kZssV)J)JZc#ccswF1B1�^%ckZo{{{^gc%g9o{s{bgc%^cs{^gc%cg9w{{bk^%ckZw|s^gc%cg8sbg8^%coZo{w{Zgc%coYkZwgg^%^s{ozo|{^gc%kZsw{{^cg9%^{s9ozwFFc%cwzww{Rs-k)JZ{^=c1{Ns51-Eb^^bb^bb^bF-k11V{5^=c51551NTw{www{{s|{{w{{Z51551c=^5=11NSgYo{{w{{wswow{{{s{V1551c=c1155gYgkZw{{{{{{wwwsw{ww9119^;c91119c8k:g9gYs{s{wsszszsyssyo[151c �g9�c �c�cg9^RNsRNsRNsRZg9���������������������������������������������������������������DFPICT ������#�(� ����H���H�������#�(������8BIM�������#�(Grph�� �����#�(����������������������������������@����������#�(���Vrle ����������appl��������(�#�H���H����V� Animation�����������������������(�(@�V������#������ ����������1����������!s ����������Y��������� G���������-C/UYr��������!mR�����Ym��������"�� [&��+)���-���0��� T5���-L��$c���v���M��� 4���+���#{ ���K%���:'���3)���*xϲ#��� L̽xjgd`R9 ����A¹rjgda_\ZWVSPMKIGE:) ���� /Mbw~zsle^XURPLJIGFDCA@>=;98630)  ����#1AIKFDBA?><;97531.,*(%#! � ������%/20.+)'%"  ��������� ����������������������#�(��������H���H���� �������������������#�(�����#�(�@���� �������$fC�Ċ`�ˆ�/� z2 $r� ܘaOSWZ� ɬ�K܈C $(+2/j+k�nOPX[`dhhv+k�ϰw+k�e��Q! $).147<>7���{SIRY\cehjlpsi���ڸ��cl8 J(h",-69=@CJNI�ĎbBQn]befknrtw}y��l{= IQ+@n;FHMPV`^x�ϙiFG@edssy|杬�èbc)¸�x$J  XPDRWZcfmnc�$qCCIPJra{�$ҦZPw �";�v$�D $oZb^lou{o�#oENQUV[ͷۤ�#T�+ �м�v$�;Ӈӎ@ƅ�#JTXYi؈YzZߵz?ѥ�#ח7W) 4Ɩa*p�v$� !;ͶӡȺ[}Gy�#N\_lɦqœ+ܽf<i�#D 6 � )fA $�v$�6%.,O٥]o.6j�#hafhǩb$yli`,?_ϴ�#b  'b80) �t�"{/;@ϡ�"dpwVoQu艸�"ɮe   �  �x$�7>Roörrfҵ�$�ixBzu{]zrsn�$�R�    "^�t�"m?G۹cԍh@;"hYG�"mo~մ3ozM͊ڒ[^AvRZ&�"mU+#   !  �yw��bZdbpafm⏡jhUR^J����sIB5:7TP}hk5w"J����]A  &- J��t�"j^ZF_.W>:56}{t�"bLH郓 *;񢺻GtS`KGt�$E"2  #!.(t��yw��gC;68`BJv����`q<w`\=N`d����    5B��t�"?Ke•=`8D!v�"?GS먡cxPZ .�$?   �    #'Z��v�Nm6-f8>JS#����apM8c8[k%s����c  'Q��n�-18>G4%9ةl�OE[Ve(uJ,#CAܲ�  ){©��v�$-5KM�#M#鵆YOQVh����=PVdY9d p�%V#뽒jadj���� � T ˩��n�G78F:&8 PƒbOQSV[`ft�ZXUh_<[T̝radgkpv~�= Jֲ��u� (=ḄoPQSV[aglqw}��� .@?ATѬ~bdgkpw��� <۽��k�CvثTSVX]cv�Sܵgfjmsz�/iĥ��s�j黒qpv���j}|����j̮��Y�۸ݼYZ&�ۺݼYZ&�ۻݼYZ&�?� ~Lz{nPT �� ~Lz{nPT �� ~Lz{nPT �� ���� �������������������������������������������������������������DFPICT����� �� ����H���H������� �������� ����� �����<����� ���������H���H���������hg����� ������ ���{S2Xr!gZ wF!!>vZc^65o&{skowwB%65Rg9g9kZo{so{*kJ.{ %Zg9o{s{�:w,_~6"}]]; t R%[{�:W4{S?_7.*]; tR 0>Uws*94 {OK7]* S1)ok|2z6K_C*9:!6 tR)s{s6 O2*956  uRBuw{:w"\"Z sBF_>&26) t sc{:> SF2F.;>3Ns^g9g9V t 2o{;w RpJRR7] 2Rg9w{{w[  c9W1!JRR:* B2c{ {": V=:V PNtZ>*= %..72Y6O~S~;  Ft=:VJZN*] t t "|"}; > :4=oo{c;*"~  \ __65:{B&< >__ ?_256o*] >.7666565622266465:V65J( >& >3Zcg9�c_�kZ9_^"~< .g9w{ s???_\ s s g[9:; Nw cG"~ u ^={ u R65_;k}_~G?7~  6Z=[] t u t ]< ??&NskZ=: t t:!  >__JR^w9" tNsZt >?__;>3Zs;{ *7Vo{k{-S u  >>??"FRZo{{;{ r 25^wsBU t 2Ns^s{8{ Q 64c{wg9N2 *>3NsZg9w4% t"c{sR6W26FtJtFTBTFSNtRZckZs{0c:0 &N[N2Y6y[g9g9kZo{kZkZo{sw{ {F 2yRckZs{ wg9ZVZ^cg9o{w��������������������������������������������������������DFPICTA� ����H���H��A������� A����"A��������H���H���������� 3$� 3(AA��� Awwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwo{wwww���������������������������������������������������DFPICTN�����:�;� ����H���H�������:�;������8BIM�������:�;Grph�� �����:�;����������������������������������@����������:�;���Vrle ����������appl��������;�:�H���H����X� Animation�����������������������(�(@�X������:����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:�;��������H���H���� �������������������:�;�����:�;�@"wvxwvx��k��k�$�i��i�%i�i�$i�i�#i�i�$h���h�#i�i�$h�h��"�h�h���9�i�AE�i��AE�@i�[a�i��[a�A��i�-7�i��-7�=��h��{��h���{��<��h����h�����9�������������7��b��r�y��i�b���r�y��i<�`��P�U�a`���P�U�a?��]�+1�^]��+1�^@�]� �]]�� �]?��]��]]���]=]����]]�����]=]����]]�����]=]��`�l�]]���`�l�]?]�B�M�]]��B�M�]@]�!+�]]��!+�]L]� �]]�� �]m۷hUON\f~]�� (>pxod`iTN- �]]��� (;^_ZVU^PL, �]lǞh*JgZOH<91%A]��2lpkxd_U<;>�]]���3sztld[UIHH6:<�]rѮi+`hliRQF*B]�}�hyrro~pJ+><P]��}�qysql[XR=%<:PwʟA*qltziMJ,b]�Zf�Dx|T/% a]��Zf�F{xqw|o]VE5# _zɡ&^`DG-c]�9E��c~Ӵ|S) u]��9E��djUQD/ szʞ,Nٻ]9=( k]�#"�HӼwnI8 ]��!"�Jǿ|dSL;. |y"ӭ7!$  "(%!ԿyE7:/]�#6־nmU.]��!6Żt\QH<%w"i#$# -/;BpͼhfdL;4!]�" Ŀzùwe=%]�� ¿h \I>+%y"У%$&$$#!;*4WĨ^K[PE6# g\�" ^ÿR\뼢sN5" y\�� _[eiaWNNB/ w}l'&%$#$B1To0D'\�$»^"wɌoT?4#\��"h )ncd\L;%݀0$'%&%$%C2 '@O@$, y�&a 1u|^SH;) ��#l ,{xtaPB. ̃Ҙ"'(&$$#$C2 .QNA!8҄�,d =lWJ=-C҄��#,n6|eUE2Bɔv"(')'&""B3  %NN.ɀ�Jýa 8~oQA0ɀ��Jk?}|^J7ǔ]#/*)(&#"B2  1J?(ǀ�),ǽ_EuuT6!ǀ��,h Ey^=#ǔO *.&%&#"A2  *3!xǀ�#ǿ`>UA#ǀ��#i C]G&ǓF%)($$"#B2  0#e�"½`)QC$z���k .YJ(wƔ N$$&%%$$C2  [V)nƀ� ¾` *xZ;#ƀ�� i )ghC(ǔٶd""#A2  S|~Rsǀ�^ !nP7#ǀ�h $\jT?'ǔ y !!"! "@1  Ar|ZG3ǀ�x]]f5"ǀ��f Kx}aOR@&ǔ Ő  ! !@1 #vh_\R@/ǀ�N\ :ɶg:�Rf Dg\^XJI@#Ǔ ѥ5 !A2 "B=hd]OA72%Eǀ�\ 3uݺ|lI S�ǀ�d 8\ZPF>=9! Qȓm=.=I6!_V=73+�U(l~ouaL# �_,wr\VB??7 рǓǡ&2*,I;%%yZVH;6')ǀ�?[Q|rvßnY@1ǀ�?eYqWYMCA21zǓy#/6*R[UF9, ǀ�uxq|bL' ǀ�{SZ[K<8& xǓ=H“jkM0# Bǀ!}{oЬbJ6 Qǀ!caQD:4 Nvȡzr(&l5+ȟw~{wus`D7'5ȟw{y}slTMA,5m; $yfD")w}|yvqv}WF</ 2xg_RE4 1&vDSB&Է~rsvtrl]OIF@3 N&Ēv~maXSH9! LO͒' %3i}eggciqYXNI@1zˍwxxujgje[TI7xCz)[xfaVTTMB7*+k蹄tofa_WK@0.k=۾ȿp3'1VǩbKQqiRUq�����������DFPICTr������� ����H���H��������������� ����������>��������������H���H����������X-�������������� �w!wg9VVR^o{{sso{'^kZsswsVo{g9Vww{F1/ wcwwso{^ZNs-k{^Nsg9g9R={6w^o{wwkZJR1=B5^kZRkZs^F1{{6kZwso{g9=!Ro{{kZZcwo{=wo{R,ckZg9cJR%)Rwo{Z)J{JR5s4 {kZZVF195E Nsso{c9Ns{Rc1s9 {o{swo{B51A$A"VO R{o{s^=RZkZkZ9s9sg9w s%)!F199EB]^^5wswo{g9sg9JR=w=ww^V!Rs{Nr5IADMcn&fg9-kZco{w{wsJRc;ZBo{c59^EIQvhZ5ccRkZ{ww{g9JRV6Z-kJR!VcIMMAbcVoZB9B55F1g9+V9s gI5Fb^JsoZR1{F1o{sFcZBkZNs= sVkZV9kZRQE^{ o{Ro{V1lkZRs5$QjVO{# kZJRsV%)o{cBEIeMC]R w'g9BsVscZR9FEDIAUcEw)w1sw cwc^F(A#EM�=Fw%^^kZwscV9a=<85G!VNsVscJR%@,$=kZ-kRg9= A-'k9sV^g��������DFPICTN�����@�� ����H���H�������@�������8BIM�������@�Grphbj�� L������ HLino��mntrRGB XYZ �� ��1��acspMSFT����IEC sRGB�������������������-HP �����������������������������������������������cprt��P���3desc�����lwtpt�����bkpt�����rXYZ�����gXYZ��,���bXYZ��@���dmnd��T���pdmdd�����vued��L���view�����$lumi�����meas�� ���$tech��0��� rTRC��<�� gTRC��<�� bTRC��<�� text����Copyright (c) 1998 Hewlett-Packard Company��desc�������sRGB IEC61966-2.1�����������sRGB IEC61966-2.1��������������������������������������������������XYZ ������Q����XYZ ����������������XYZ ������o��8��XYZ ������b����XYZ ������$����desc�������IEC http://www.iec.ch�����������IEC http://www.iec.ch����������������������������������������������desc�������.IEC 61966-2.1 Default RGB colour space - sRGB�����������.IEC 61966-2.1 Default RGB colour space - sRGB����������������������desc�������,Reference Viewing Condition in IEC61966-2.1�����������,Reference Viewing Condition in IEC61966-2.1��������������������������view������_.��� �\���XYZ �����L V�P���Wmeas����������������������������sig ����CRT curv����������� �����#�(�-�2�7�;�@�E�J�O�T�Y�^�c�h�m�r�w�|������������������������� %+28>ELRY`gnu| &/8AKT]gqz� !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO�OIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-�u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km�������� �����@�����@�����@���������H���H���� �������������������@������@��@������A��A��A���A��A��A��������������������A��A��A�A��A��A��������������A��A��A���A��A��A��������������������A��A��A�A��A��A��������������A��A��A���A��A��A��������������������A��A��A�A��A��A�������������������������������������������������DFPICTZ������� ����H���H��������������� ������������������������H���H���������4��������������g9g9JRJRcwZVZ9NsNsg9ww{JRJRZs{{{w^5�R{�w{ccFwBxFO_B{wo{ZRRRV[~W^S>SNFF1cJS_swwk[_SNJJBF1wNtwwog_[_OJFJGF1sR{owsk_W^OJFFBF1kZNwsokg[S>OFBBCB1g8Rokogc[OFB>BGF1^Wgkkc[S^K>>>6K?F1VOc_c_WO?F>62|6C?F1RK<[_[WKB::CK_>NF1NsG>O?O?K?K_OK_O_B69V{ F1Nr:K_WWO^>1B2^{=ZK~F61RsNs-kF2kZw��������������������������������DFPICTNn������ � ����H���H�������� ������8BIM�������� Grph�� ������ ��j��������������������������������@�����7������ ���Vrle ����������appl�������� ��H���H������ Animation�����������������������(�(@������������������������������������������������������������������������������������������������$������ ��������H���H���� �������������������� ������ �@  � ��� � � ԙә� =99� =99� =99� ?�<�< B?? B??B??�����������DFPICT ����� �� ����H���H������� �������� ����� �����0����� ���������H���H���������]t]����� ������ ���g9F19JRo{^9-k=^% Ns9=9=9=9Ns�B-kB/ wF19=9=9F1w kZ51-k1-k15g9"V=9�ZNs-k1-k�Ns%B=9=B{s5-k-k15o{g99=9g9V1-k-kZF19JRs519o{9sc-kg9�RsBs �s��������������DFPICT�t������� ����H���H��������������� �����������1����������!�� � ��(�2� Bad Image�(�K�#Format������DFPICTj������� ����H���H��������������� ����������������H���H�����������\�x���������������� � � � ssssss� kkkkkk���������������������������@��� �Z@� � �� �̲�� ��|p�� ����������L0����������������������DFPICT������� ����H���H��������������� ����@��������������H���H���� ����� �d��������������@������ssssss�s{s{s{�sss�s�s�s��sss�s{s{s{�ssssss������������DFPICT':�����$�$� ����H���H�������$�$������8BIM�������$�$Grphbj�� L������ HLino��mntrRGB XYZ �� ��1��acspMSFT����IEC sRGB�������������������-HP �����������������������������������������������cprt��P���3desc�����lwtpt�����bkpt�����rXYZ�����gXYZ��,���bXYZ��@���dmnd��T���pdmdd�����vued��L���view�����$lumi�����meas�� ���$tech��0��� rTRC��<�� gTRC��<�� bTRC��<�� text����Copyright (c) 1998 Hewlett-Packard Company��desc�������sRGB IEC61966-2.1�����������sRGB IEC61966-2.1��������������������������������������������������XYZ ������Q����XYZ ����������������XYZ ������o��8��XYZ ������b����XYZ ������$����desc�������IEC http://www.iec.ch�����������IEC http://www.iec.ch����������������������������������������������desc�������.IEC 61966-2.1 Default RGB colour space - sRGB�����������.IEC 61966-2.1 Default RGB colour space - sRGB����������������������desc�������,Reference Viewing Condition in IEC61966-2.1�����������,Reference Viewing Condition in IEC61966-2.1��������������������������view������_.��� �\���XYZ �����L V�P���Wmeas����������������������������sig ����CRT curv����������� �����#�(�-�2�7�;�@�E�J�O�T�Y�^�c�h�m�r�w�|������������������������� %+28>ELRY`gnu| &/8AKT]gqz� !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO�OIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-�u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km�������� �����$�$����������������������������������@�����`�����$�$���Vrle ����������appl��������$�$�H���H���� � Animation�����������������������(�(@� ������$�����������������������������������������������������������������������������������������������$�$��������H���H���� �������������������$�$�����$�$�@M���hŽǽŽŽǽŽŽǽŽ(ǵǵǵmޮ ޮ ޮRέέέΥΥΥjΤΤΤm έ έ έm ϥ�ϥ�ϥ�mͥ ͥ ͥdΥ� Υ� Υ� aΥ � Υ � Υ �mέ έ έgΦ�Φ�Φ� Uͥͥͥmέέέg Τ�Τ�Τ�jͮ ͮ ͮ a Υ�Υ�Υ�X ά�ά�ά�[ Υ Υ Υmέ� έ� έ� RΥ� Υ� Υ� d֭ ֭ ֭XϭϭϭmΥ�Υ�Υ�gϦ� Ϧ� Ϧ�OΦ�Φ�Φ�Rέ έ έmέέέgֶ�ֶ�ֶ�jƮ{{{z{{{||{|{Ʈ{{{z{{{||{|{Ʈ{{{z{{{||{|{mǽ ǽ ǽe���V����������������������������������������������DFPICT+b������� ����H���H��������������� ���������� ��������������H���H���������LyP��������������g9cZRZ^c g9o{o{kZg9cRco{JRg9o{g9^Ro{JRg9so{g9F1o{F1g9skZRF1=JRR!g9sg9o{wkZso{cZVJR!g9wRRsNsNsVVkZcV!g9wwkZwswsw{kZc!g9{VF1VF1JR=V^skZ!g9{{o{wwo{{wo{wg9!g9{g9NsJRBNs^JRBwg9!g9{wkZwswsw{{g9!g9VF1VF1JR=V^{g9!g9{o{wwo{{wo{{g9g9{g9o{=o{������������������������DFPICT����� �Z� ����H���H������� �Z������8BIM������� �ZGrph�� ����� �Z����h����� �Z��������H���H���� ������������������� �Z����� �Z�@�e꿤鿪� 뿫» „d`p}|vil 뿫» 뿫»� Œor{x 뿫» 뿫»ػļ뿫�խl6T޼UBխխxNs֩sYխխݤͫխ�ꕔỖA,_Z0]ꕔỖꕔỖTP׽UqꕔỖꕔỖ֙௪ ꕔỖ�⋔˷*$OirvtssqsuvyuhN$F⋔˷⋔˷GQ Qa⋔˷⋔˷Β֪ ⋔˷�ꊑ%:JSZahikpkjg`]UL;DꊑꊑFPvwLcꊑꊑ Ӑæ ꊑ� 7*=KXcnrvy{xvtkbXL=* a  XHj kF{  䓝ƹ � ¸w4GZfpx{voeWJ3 ¸ ¸Bey{`K ¸ ¸ Ϳ ¸ ӿй¶+DUdsfj~xcfWC- 9ӿй¶ӿй¶FWrrUgӿй¶ӿй¶ Ԏ黭۰̾ӿ й¶ܪ@Uɿs#:Rbo~S5Zzs>gaR<!ܪ@Uɿܪ@UɿImtApWnPܪ@Uɿܪ@UɿMn˸ܪ@ UɿWߦ%:MAǻ2 2I\jwR/C`~z-kk\J2 dߦ%:MAǻ$ߦ%:MAǻdXx1p'<Nu¾DzYߦ%:MAǻJߦ%:MAǻ뜬5D_XŬߦ%:M Aǻ擣ޥ%028NDķ!=Vdo|R''2Ea0srcT@4擣ޥ%028NDķ擣ޥ%028NDķVln'049Py¬Fij擣ޥ%028NDķ擣ޥ%028NDķ͚/?@E]Yл擣ޥ%028N Dķؕ$,-/3=QBȾ/L[mxT"$')2Gf/vwk^K.!ؕ$,-/3=QBȾؕ$,-/3=QBȾW{q%//04>QzEzbؕ$,-/3=QBȾؕ$,-/3=QBȾȡ.98<@I\Y̪ؕ$,-/3= QBȾę#+-0.06;S5ŷ}:Qds~T"%$%')2GY'{tcU<ę#+-0.06;S5ŷę#+-0.06;S5ŷ\p$,/2018<Um8aę#+-0.06;S5ŷę#+-0.06;S5ŷ-699<>BG`Fխę#+-0.0 6;S5ŷ%-,,./1324ʻpDXkyX%"&%&)'*+{{jWC%-,,./1324ʻ%-,,./1324ʻfbr'-.-002446j%-,,./1324ʻ%-,,./1324ʻ,7998:?A&޸%-,,./ 1324ʻ $-8,-0+,>)¨t!K\p}W%$%&&%!$0{|m`J($-,-0+,>)¨$-,-0+,>)¨m v%../..2--@+s$-,-0+,>)¨$-,-0+,>)¨-895<O6$-,- 0+,>)¨%./0,,*<f:Űy,Mfr\$%%'%"0Mi+}vdN7%./0,,*<f:Ű%./0,,*<f:Űvx'1P-.+>j=|%./0,,*<f:Ű%./0,,*<f:Ű$2<99852KM%./0,, *<f:Űƭ)/.++<f;ȴ5Qhv_!('%$0Rx|+{gQEƭ)/.++<f;ȴƭ)/.++<f;ȴyU)00,,>i=żƭ)/.++<f;ȴƭ)/.++<f;ȴ 0=<47J}Mƭ)/.++< f;ȴ̫(,-=A˺APk}b &&2Q{/}lRY̫(,-=A˺̫(,-=A˺xU)..>lC̫(,-=A˺̫(,-=A˺ 249J~R̫(,-= A˺"?M\Pm~`3T|9~mT}"?M"?MÀU#@mQǴ"?M"?M© .Iz_"? M WbqMlqN~h~iYb$b~1fߍɷbbݍ nޭb � Ƕ5XcgqǶ Ƕ藆#ɴǶ Ƕ 蕰èǶ �  x`w¿wn !ȥ ��ȽٛtoſyȽȽؘԺȽȽؕȽ�u|ţ�ܿýܿܿ�˨ܿܿܿ�տտտ徜տտ᫔տ�Ŷ˽їŶ˽Ŷ˽Вʠ}Ŷ˽Ŷ˽і|ۯ}Ŷ˽�ҺɿΤҺɿҺɿΤǿҺɿҺɿΣ˶ Һɿ�֪֪� Բ Բ Բ������������������������DFPICT����� �� ����H���H������� �������8BIM������� �Grph�� L������ HLino��mntrRGB XYZ �� ��1��acspMSFT����IEC sRGB�������������������-HP �����������������������������������������������cprt��P���3desc�����lwtpt�����bkpt�����rXYZ�����gXYZ��,���bXYZ��@���dmnd��T���pdmdd�����vued��L���view�����$lumi�����meas�� ���$tech��0��� rTRC��<�� gTRC��<�� bTRC��<�� text����Copyright (c) 1998 Hewlett-Packard Company��desc�������sRGB IEC61966-2.1�����������sRGB IEC61966-2.1��������������������������������������������������XYZ ������Q����XYZ ����������������XYZ ������o��8��XYZ ������b����XYZ ������$����desc�������IEC http://www.iec.ch�����������IEC http://www.iec.ch����������������������������������������������desc�������.IEC 61966-2.1 Default RGB colour space - sRGB�����������.IEC 61966-2.1 Default RGB colour space - sRGB����������������������desc�������,Reference Viewing Condition in IEC61966-2.1�����������,Reference Viewing Condition in IEC61966-2.1��������������������������view������_.��� �\���XYZ �����L V�P���Wmeas����������������������������sig ����CRT curv����������� �����#�(�-�2�7�;�@�E�J�O�T�Y�^�c�h�m�r�w�|������������������������� %+28>ELRY`gnu| &/8AKT]gqz� !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO�OIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-�u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km�������� ����� �����x����� ���������H���H���� ������������������� ������ ��@&꿤鿪6 „d`p}|vil Œor{xػļ<l6T޼UBxNs֩sYݤͫ@A,_Z0]TP׽Uq֙௪J*$OirvtssqsuvyuhN$FGQ QaΒ֪P%:JSZahikpkjg`]UL;DFPvwLc ӐæU7*=KXcnrvy{xvtkbXL=* a XHj kF{䓝ƹWw4GZfpx{voeWJ3Bey{`K ͿY+DUdsfj~xcfWC- 9FWrrUg Ԏ黭 ۰̾[s#:Rbo~S5Zzs>gaR<!ImtApWnPMn˸[Y2 2I\jwR/C`~z-kk\J2 ddXxp'<Nu¾DzY뜬5D_XŬ[Y!=Vdo|R''2Ea0srcT@4Vln'049Py¬Fij͚/?@E]Yл[Y/L[mxT"$')2Gf/vwk^K.!W{q%//04>QzEzbȡ.98<@I\Y̪[Y}:Qds~T"%$%')2GY'{tcU<\p$,/2018<Um8a-699<>BG`Fխ[MpDXkyX%"&%&)'*+{{jWCfr'-.-002446j,7998:?A&޸YHt!K\p}W%$%&&%!$0{|m`J(mv%../..2--@+s-89 5<O6Z)y,Mfr\$%%'%"0Mi+}vdN7vx'1-.+>j=|2<99852KMY@5Qhv_!('%$0Rx|+{gQEy)00,,>i=ż 0=<47J}MX@APk}b &&2Q{/}lRYx)..>lC 249J~RX@\Pm~`3T|9~mT}À#@mQǴ© .Iz_W?qMlqN~h~iY~fߍɷݍ nޭX@Xcgq藆ɴ蕰èV x`w.¿wnȥ�Nٛtoſy ؘԺؕDu|ţEý˨A徜᫔KїВ ʠ}і|ۯ}GΤΤǿΣ˶6֪֪֪2 Բ Բ Բ�������������������������������������������������������DFPICT������0� ����H���H��������0������� ������0����`������0��������H���H���������������0������0��V g9g9JRJRcwZVZ9 g9g9%)%)NswVZV)J g9g9JRJRcwZVZ9]NsNsg9ww{JRJRZs{{{w^5oF1)J1=%)F1Z9=-k5gZNsNsg9ww{JRJRZs{{{w^5oO�R{�w{ccFwBxFO_g)J=�9=11!+!L!N%ZR{�w{ccFwBxFO_ga/B{wo{ZRRRV[~W^S>SNFk!=95-k)J)J)k)l-))%n))g\B{wo{ZRRRV[~W^S>SNFk_F1cJS_swwk[_SNJJBw)JB1%*-99>5-)%n)wF1cJS_swwk[_SNJJBwa/F1wNtwwog_[_OJFJG{%)=%*9>>55--)%n%n!n%{F1wNtwwog_[_OJFJG{a/F1sR{owsk_W^OJFFB)J9)k>99:51)%%!n!n)F1sR{owsk_W^OJFFBa/F1kZNwsokg[S>OFBBC)J5)k9:5511)%!n!N!n-F1kZNwsokg[S>OFBBCa/B1g8Rokogc[OFB>BG)J1)l9:551)%%!oN!n2B1g8Rokogc[OFB>BGa/F1^Wgkkc[S^K>>>6K?)J1k)6511-)%!nNNN6F1^Wgkkc[S^K>>>6K?a/F1VOc_c_WO?F>62|6C?)J-k%111--)!ooNNO:UF1VOc_c_WO?F>62|6C?a/F1RK<[_[WKB::CK_>N)J)J%)--)%!ooo!%!FtF1RK<[_[WKB::CK_>Na/F1NsG>O?O?K?K_OK_O_B69V{)J)I!%%%%)%%!n+5R{F1NsG>O?O?K?K_OK_O_B69V{T F1Nr:K_WWO^>1B2^{ )J%)o)-)%!m!+=^{ F1Nr:K_WWO^>1B2^{<=ZK~F61Rs5-k%!n!+1Nss=ZK~F61Rs*Ns-kF2kZwNs!Bg9{Ns-kF2kZw���������������������������������������DFPICT������� ����H���H��������������8BIM��������Grph�� ����������@��������������H���H���� ���������������������������@*skZRZk{s�{cckk0 s1BkcR)1k s{B9k skZ91k/ k!!kZ9!Z νk1c cJ1Z1k!*)Rƽ{J1!sƌc)sν{ZB!k1/9)!)!9JJ))νRcΥc11cc{ZJ)1/�s))9B)kZ!ksR1kc!s{c9k1R)!!)1 91JƽZ!ckB!Rc)ksJ!J.R1)�19νR)J!Bc)R!90�R!))Z!9ƽZ9JBc1kR!91�Z!) !csR)BR)RBc1csZJ!B0 {!!!)19Z9)cR!ZZ!k Z)kZB9!c1B!*)9!)RB1)s{{J)掠ZJ9).) !sc!k{ R)kscB)c1 9!!Jk9!Z {ssR1ZkZ9!Z*B!!1s kcRJ19s skcR99s-�甔RZs�ޔkk{ ޔsks��������������������������������DFPICT!x������� ����H���H��������������� ������������������������H���H����������~Ř,Eh�������������� 878787878787~�~~7 =W=7�NN767676767676767���67?67_67׿6767XWXWXWXWXWXWXWX��DFPICT����� ,� ���������,��� ��������� ����� ,����X����� ,��������H���H����������RڰRݰ����� ,����� ,��� � � � � � � � � � � � �������������������������������������������������������DFPICT'<������� ����H���H��������������� ���������� ��������������H���H���������|c|c ��������������o{so{kZcVkZso{o{kZ^kZkZso{o{g9g9kZ o{ss%osskZB9c!o{w.T*yK9F1{o{Vg9V^!o{wy@~%)%)g9kZkZg9o{c!s{vDT�o{{kZZso{!s{wg9^g9g9skZg9ws!s{wco{R^sg9JRww!swg9o{^wo{^{w!o{wZg9kZckZkZg9{{o{w{{o{{{o{o{^c{o{{ g9�������������������������������������������������������������DFPICT$�����*�(� ����H���H�������*�(������8BIM�������*�(Grph�� L������ HLino��mntrRGB XYZ �� ��1��acspMSFT����IEC sRGB�������������������-HP �����������������������������������������������cprt��P���3desc�����lwtpt�����bkpt�����rXYZ�����gXYZ��,���bXYZ��@���dmnd��T���pdmdd�����vued��L���view�����$lumi�����meas�� ���$tech��0��� rTRC��<�� gTRC��<�� bTRC��<�� text����Copyright (c) 1998 Hewlett-Packard Company��desc�������sRGB IEC61966-2.1�����������sRGB IEC61966-2.1��������������������������������������������������XYZ ������Q����XYZ ����������������XYZ ������o��8��XYZ ������b����XYZ ������$����desc�������IEC http://www.iec.ch�����������IEC http://www.iec.ch����������������������������������������������desc�������.IEC 61966-2.1 Default RGB colour space - sRGB�����������.IEC 61966-2.1 Default RGB colour space - sRGB����������������������desc�������,Reference Viewing Condition in IEC61966-2.1�����������,Reference Viewing Condition in IEC61966-2.1��������������������������view������_.��� �\���XYZ �����L V�P���Wmeas����������������������������sig ����CRT curv����������� �����#�(�-�2�7�;�@�E�J�O�T�Y�^�c�h�m�r�w�|������������������������� %+28>ELRY`gnu| &/8AKT]gqz� !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO�OIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-�u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km�������� �����*�(���������*�(��������H���H���� �������������������*�(�����*�(�@,ZB1JZ cR9BBRcε=sBBZ{kJB{{RRsƽZRֵ֭Ck!BkƥJ)ks9ZƜkBsƜƜC 9)R{Z99 JJ{έZRƔ޵J1JksR9!1R{cBֽGk)BRcck�skcZJ1!k{9Zs{cJ{εU {!1BJRZZckskcZJ9){9Zk{sZJν])1BJRZks{s kccRRB9)!9Rcs {kRBƵd )!)9JRccks{�{scZJB1!1RJck{skRR ֌ƽf k!9BRccss{{�{skZZJ9)k {BZk{kZR� Ƶc !1BRZcss{{{skcRJ1) 9Rcs�{kZJ ƄƵ` c)9JZcss{� {sskZRB1!c {Jcs�{kRj !9BZcks{� {sscZJ9) JZk{�scRνs19RZcs{{B9BBB9BB {skcRJ1!JcsJBBJJBBJ{kZ RBBRRJBJƽr c)1JZcks{ B91BB91B{scZJB)c{ZkB99BB91BsZ B99BB99Jνt 9!)BRZks{99 {skcZB1!Bc{B99BB19B{kk B99BJ19Bνq !!1JRck{{99 {scZR9)!Rk{B19BB99BscB19BB99BƜx )9JZks{ {B19BB199{skcRB1!Rs�9B9 {ZΔB99BB99Bƥs !1BRck{{�99�{scRJ1!R{B199B19Bƽc֜B91BB99B֭w 1JRcs{9?B99B{sccJ9)c{ƽB99BB91BƽƽkΜB99BB19B֭v 19JZks{ B19B9919{kcRB1c#B19BB99BƽsƜB99BB99Bֵn99RZk{�99B{scRBJcƭB91B9 {ƔB19BB99B޵pZ9Rck{B19BB199{skRBZsB99BƭB91BƽB99BB91Bޭm k9Rcs{�9991BskZJs{νB19BƽB99B ƽ֌B99BB19BޭoΔBRcsBB9BB;{cZRΔ{νJBBJνJBBJƽΜRBBRRBBRֵoZRcs�{kZk{νƵƵl%kJcs{kR{ sƵ{ 筵l ƔZZs{ckƔνƔ Υd {Zk{ skƥﭥOƔsc{k{ ƔεƔ�L Υks{ ΥֽΥ֥LƔs{ ƔƵƔ֥H{{ƽε֜I{�έƥJƽ�N Ɣ֜O εƭƥƥƥ ƥƥƥ5ƵƵƵ����������������������DFPICT,z�����(�x� ����H���H�������(�x������8BIM�������(�xGrph�� �����(�x���������(�x��������H���H���� �������������������(�x�����(�x�@� ໢ZB1JZ ໢ ໢ cR9BBRc ໢ε ໢�峖λsBBZ{kJB{峖λ峖λ{RRsƽZR峖λ峖 λֵ֭峖λ�䫂Φk!BkƥJ)k䫂Φ䫂Φs9ZƜkBs䫂Φ䫂ΦƜƜ䫂Φ�؎׺ 9)R{Z99؎׺؎׺ JJ{έZR؎׺؎׺Ɣ޵؎׺�~϶1JksR9!~϶�~϶1R{cB~϶~϶ֽ~϶�²k)BRcck�skcZJ1!k²²{9Zs{cJ{²�²ε² {!1BJRZZckskcZJ9){9Zk{sZJ ν+Ҁ)1BJRZks{s kccRRB9)!ҀҀ9Rcs {kRBҀ ҀƵҀ> 򐍜 )!)9JRccks{�{scZJB1!1 򐍜򐍜RJck{skRR 򐍜 򐍜 ֌ƽ 򐍜: k!9BRccss{{�{skZZJ9)k  {BZk{kZR  � Ƶ I 䀒 !1BRZcss{{{skcRJ1) 䀒䀒 9Rcs�{kZJ 䀒 䀒 ƄƵ 䀒F c)9JZcss{� {sskZRB1!c  {Jcs�{kR   P"º !9BZcks{� {sscZJ9)"ºº JZk{�scR"º ºν"º_ЊI@BIJABIŶ19RZcs{{B9BBB9BB {skcRJ1!ЊI@BIJABIŶЊI@BIJABIŶJcsJBBJJBBJ{kZЊI@BIJABIŶЊI@BIJABIŶ RBBRRJBJƽЊI@BIJABI Ŷd B88BB92B c)1JZcks{ B91BB91B{scZJB)cB88BB92BB88BB92B{ZkB99BB91BsZB88BB92BB88BB92B B99BB99JνB88BB92Bf%@98@@39Aº 9!)BRZks{99 {skcZB1!B$@98@@39Aº@98@@39Aºc{B99BB19B{kk$@98@@39Aº@98@@39Aº B99BJ19Bν&@98@@39Aºc%@38@@99@! 1JRck{{99 {scZR9)!$@38@@99@@38@@99@Rk{B19BB99Bsc$@38@@99@@38@@99@B19BB99BƜ&@38@@99@j $<78B;79;Ǻ)9JZks{ {B19BB199{skcRB1!"<78B;79;Ǻ$<78B;79;ǺRs�9B9{Z$<78B;79;Ǻ<78B;79;ǺΔ(B99BB99Bƥ<78B;79;Ǻe1@48:@48@ƻ!1BRck{{�99�9{scRJ1!@48:@48@ƻ'@48:@48@ƻR{B199JB19Bƽc@48:@48@ƻ@48:@48@ƻ֜B91BB99B0֭@48:@48@ƻi5@::@B:4B1JRcs{9CB99B{sccJ9)@::@B:4B@::@B:4Bc{ƽB99BB91Bƽƽk@::@B:4B@::@B:4BΜB99BB19B-֭@::@B:4Bh1뜵B1:B@97Aƺ19JZks{ B19B99198{kcRB1뜵B1:B@97Aƺ뜵(B1:B@97AƺcSB19BB99Bƽs뜵B1:B@97Aƺ뜵B1:B@97AƺƜB99BB99B+ֵ뜵B1:B@97Aƺ`0휵@93@989<Ƽ99RZk{�99?B{scRBJ휵@93@989<Ƽ휵(@93@989<ƼcƭB91B9?{휵@93@989<Ƽ휵@93@989<ƼƔB19BB99B-޵휵@93@989<ƼbA媴A89BB73@ͻZ9Rck{B19BB199:{skRBZ媴A89BB73@ͻ媴(A89BB73@ͻsRB99BƭB91Bƽ媴A89BB73@ͻ媴A89BB73@ͻB99BB91B-ޭ媴A89BB73@ͻ_1@48@A87Bk9Rcs{�9991B9skZJs@48@A87B(@48@A87B{νB19BƽB99BAƽ@48@A87B@48@A87B֌B99BB19B,ޭ@48@A87Ba<ůJB@JIBBIλΔBRcsBB9BB>{cZRůJB@JIBBIλůJB@JIBBIλΔ{νJBBJνJBBJƽůJB@JIBBIλůJB@JIBBIλΜRBBRRBBR,ֵůJB@JIBBIλa%߮ZRcs�{kZk$߮߮{νƵ$߮߮Ƶ&߮Xޫƾ$kJcs{kR{ ޫƾޫƾ sƵ ޫƾޫƾ{ 筵 ޫƾ^%ŵ ƔZZs{ck$ŵŵƔν$ŵŵƔ Υ&ŵ8˶� {Zk{ sk˶�˶�ƥ˶�˶��ﭥ˶��ŶƔsc{k{ŶŶ ƔεŶŶƔ�Ŷ�ż Υks{żż ΥֽżżΥ֥ż�ƸƔs{ ƸƸ ƔƵƸƸƔ֥Ƹ�ľ{{ƽľľεľľ֜ľ�{�έƥ�ƽ��͹ǹ ͹ǹǹƔ͹ǹ ͹ǹ֜͹ǹ�̸Ƚ̸Ƚ�̸Ƚ ε̸Ƚ̸Ƚƭ̸Ƚ�ƥƥ�ƥ� ƥ  ƥ  ƥ � Ƶ Ƶ Ƶ ���������������������������������������������������������������DFPICT ������� ����H���H��������������8BIM��������Grph�� L������ HLino��mntrRGB XYZ �� ��1��acspMSFT����IEC sRGB�������������������-HP �����������������������������������������������cprt��P���3desc�����lwtpt�����bkpt�����rXYZ�����gXYZ��,���bXYZ��@���dmnd��T���pdmdd�����vued��L���view�����$lumi�����meas�� ���$tech��0��� rTRC��<�� gTRC��<�� bTRC��<�� text����Copyright (c) 1998 Hewlett-Packard Company��desc�������sRGB IEC61966-2.1�����������sRGB IEC61966-2.1��������������������������������������������������XYZ ������Q����XYZ ����������������XYZ ������o��8��XYZ ������b����XYZ ������$����desc�������IEC http://www.iec.ch�����������IEC http://www.iec.ch����������������������������������������������desc�������.IEC 61966-2.1 Default RGB colour space - sRGB�����������.IEC 61966-2.1 Default RGB colour space - sRGB����������������������desc�������,Reference Viewing Condition in IEC61966-2.1�����������,Reference Viewing Condition in IEC61966-2.1��������������������������view������_.��� �\���XYZ �����L V�P���Wmeas����������������������������sig ����CRT curv����������� �����#�(�-�2�7�;�@�E�J�O�T�Y�^�c�h�m�r�w�|������������������������� %+28>ELRY`gnu| &/8AKT]gqz� !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO�OIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-�u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km�������� �������������������������H���H���� ���������������������������@����H~uttriffmyɾο�fqZG=;7877<?1$,?ACACHPXhvƵvlhba`abfXIQadhhlt|˺pXOLIKPUOHKSWY]blv�xt\QMIKOLE<<@;9==<<?9A =71-)',Kx"׿~xtvzxriimhbhfddf`daa^ZWOHDLvʬlZUPSWXSIIOPSSPLQWUUQPLEC@Ir�*bEAQ`WdYQPHKMPOADE@@;7<=5379745317)(Ix*}uyzyzrvunldafh^Y]^XUWPS^K5,Eu*ҿt|aUWSWY]ZOQSPPKHILKKOOKHIDKWD1)Cr�u<$1Pt`\XSQPIGDEGE?=;<7+-15575,#'Ix/ճh``bfpv~|yzxljffhfd^QPUXX]]L9) Cuγxprtvvj}i^`aa^XUWWUSOOIKLHCCEKLUUE4$ @r�f1'1\lb^^vtQLLMQQL@?A;7557;<?<1''KϪhdf ijjnrmlnljjb]YWY`difUC4)Cv3ʭyvxxyyz|ph}ifj}aZZ^``]XWSPPOIDDCEPX`^L;0'@t�X)%5$Qrh``lxdZUQT^^ZWTIDHLD?@=<<?=4-'Oǡziiljl%m~runrvmff`^`bdYOD4'1zå|}~~}$yxu~pjmynda^`hhfb`WSUXQOOKKLSYOE?0#0v�I$'$?|qurrqhvp`^bbd\PIIMLLPPQI<73--) #Zvlmnm)lnnyrvuxyyz|}r]WULOH50); ~'~}}zxlxpffiijbZUUWUWYXYWIDD=E@-,'9�E�(/jr^]evmm`^djidZSPKIILPKE=40-,($! (fʕtmrtrnpn%è|yy||rfXQKID;850Eǝ%nlt}uphhimmld^ZUQQUWUQOC=9;8100,D�t)&$Mf~hPOnu`ZlmrtjX\YQPIIMUI?<71-+'%#0t ptuxzyxvvurt)rppxzz}xjh^SKD?;91, Q )zab|ldmmtupa`^ZXSQWZUOKD=;8410,'P�P�(%?G`PQSiyj^rppm`]\\YTLIOSIKHC951/)'!8 Ң}xvxy|~}||zxv+utrrpz~|}uurl^XQLD?51, ]ά� pv}fbfyvirmhdba`]XUWYWXUPHC@=85,,' Z�4'<DMX^MTahh}utmf]WWTQSQTYQLMI<)!$##$^Ô}|}~~~}}|zyxxvut%|uvrbLCC?=;1)#,â&ljilj^fnrm|utplfa`^Z^^]^ZWXUO@==984)$,�`$� %QQ\qQQ^u|yutmdYTQOTXXSIHC%Hײ~}}zyv(tŬutmL5410,,-4, rӹ4}idlu`^hu|yzytlf`]Z^``]USPD;9840-,-$n�@!I^`XTaqyxtm`XQPOQQLHC;5͡6~}}|zyxx}ý~yvjE441-,)4-$Yˮrjnb`jt|ytjb]^WQLH@;9840--'#W�q+"<TW}}lqhWYhu~|}l`TH<=IHGGE-'~ ~}}|z%vx}zxu]@510-)'�#Dª8rbiuxpbdlv~~~ri`]UYYUSSOE?;854-,'$ C�Q �#(I^ny`tty~}}~|p^S9/AEADIH?)�fײ:~}||zɶſub}}xxzvlU910-)'$ 0ӽ%flx|jv~y}~|uhaQUWQQSSQLC;851-)'#0�M�$8ddtvx~}y}}tjbL<DHGEEHHA/Qٲ~-|οƿ|~|zyxrZ90-,)$# #}A|np|}||~|~}xnj]SXUSSQSSKC9540-)$ #y�M &=qy·emuv|zi`TIIHIGCCA<0�<ٶ.}ɵŠ}yuriW;-,,'$  b/v~ntyy|~zpjbXWUWSPPLIH;410,'$ a�O  .7ɳΪ|rr}pf]IGKIDEEDA@4 5ںF~»ӳ}zyunjZ@0,)'$))Y5¥}vv}}tmhYXYUQP OH;40-)'$#WT  � 1)ʷޠٽz}nf^IMPIECDED?;4'Aۿ3î||yunbYH0,,$)0$l2Ǚ|}rmiYWSPPQQLHC910-)'' iW!!    / ѳ»ihYKSQIEC;AD@<7)�QPvzxnf^O1-0))4, ~1~lmdX]ZWSPOOPLID;510,')$z^#!  �0EɕqtiWZI83319CC?8-!$!!d�M~ο|pnhrztldW;-?@=91'#1žҮyntma`XWXUQLPPLE@8140-,' # `$#)$!#!   G$zzmXE93()=A<87''($# uƳ$znXXuxpiaK8HH@=5, ,ξӤ~~xj^WYWPOIEE=5850-)#,n%#$'7$!�    .!u}ɺfXKC7)-987971//,'!!,˷Ź~$rZaupliaXSQKC8-$8Qæ;zf]UPSWQHDCHE@??91)$8+#$$(Z)#!  ! !4 t٢Ƴl`ZI1037757;=95/($)Uҽݽ˵ifltmjlljbZQH?1) IUŝ~ja^YXUQHC@DHKHD?40' H 5#$ ($#$#!   "6#"$%&&$#"!!u޲βñ~jb]83?=11778<=9/$5/ͳpj||hhmnmdUEC=0#Z7ǹ|}xujb ZUPPIDCDIKH=0$X M#$#$#$#! !"#%(**,5)(&$" kw=ʽʵά\TS0DSH/'-98<;1,'$%!�Iǿ@ʭbbS`plZQID@8,�uS¿­yxzy~bZbbZYWWQLHDHE?9101-#�r�p$#!#! "#'),014520-*&$9O۹Ͽ¹Ŕ~}qr|qWKQT\]ZC;<98;<1,)'$$}ѿ�6ypxttvn]SOIC=1#'Eʤuunnyp^WZa `XPIDEH?951'$ 1!$#! B  $&)-1348>?<;73.*uOy˲™xjdefbde^drrnWCHL<7;=<3,'$$4P޸¿v~upvul^UIC?1'XOɼȥ~tlihihfdahptpha^XQIEIH?8101'W$T!$#$#!� @ #'+173.-:EJIC>82KZ]grҹñhZX]leaetmpnneO@8711<970'!jZmeٶ֪ݾztpfbplf^PC;1'N{qºq{ldbdljffpmpmnlaXQKID@;4-,$ ()$�#$#!A!$*05=5"(7FPPKD=6m~:ltκҮy`Xhyvqaifeb^XSL?998<41-'#(\H/NlƮίӿ|vrrhb]QE?90$D.P4Xxu{viblxvpfjhfdd^YSKE H??94-)'#C2I$'%$�%$�#$#$$#D! !%*1:C;! 1ANTQJC8xjniYfzbYW^]UMGCA@?=?<;;4-'$!�UL@6Xuޮӻ·~ztpi]QKC=4)�DȕH;`Ÿu~|nmblzia`ba]XSPOOK HED?840,'$ �~0)%'%$�#$�#$@#!! #%+4=H@$ $6EQUQbI``ڼn`a^nlTUXdXIC=<=@AEDD=870!� IB!:[zڶҬvnlbI=951- 4]̙I%@c™onijhpp``af^UQOLLOOPQPIHC=81-)$#1/D$'(%'�%$�#$#$ #!#"$'.7@LD& 0 (:GRU_G|fԨµmQThZGILQSaYE@=@ADE<9<'!�A� D#"@bķϴƮ}tuZHIL80,)1-'�lΜK7&FjͭxìzrlmdWXY]]f`SPOOPQPLQQIE@=951,'# �i#(%%'%'%$$#$ #!$$)09CPG( **<IVVQdr·f6*!%CE@GGQ`aUG@ADHHI9%|#¾F (Ee|^Q@=9551-,,'#$�ҟM#+JmҾ~^WYU]ff^UQPQSOQPKEC=951-)$ $I$%%''%%'$#$)1:ESK* /?LS`ϩ1 )1+9PemYGADIIHH83G*Kl򜎍yPDC@=9540,'# WסM.QuƝznbhlaWQSQOSPLHD@=950,'#U,''%''%'%'�%$#! #!"%)1;GVL*  /@U춇d)$!! 'Mq`MHC<3-(!pƖH2/Ns弖|~zul`QKHDC=954-)'#ݥO33V}ͰrmdZWWXYWWYYWQOIE@=94-)$ W$')(%'%'%$ #"'*1;HWN+   <cҡq6.*&$! #7LQ=!0 ǘI12Z˞zv|ib^ZXWUPLIE@;851-)$ S ߨP17XmĦuaZammlihda]XSPIC?;81-' Q 3%('%'%'%$%(,3;HXO,  .Q|V=71.)&$!5Q) ȚI/;c߸~|vrvddb`ZXSPKKEC?;840,' #�P/!6X{p]mxurnjd`ZXUPKEC?950,##n%'('%'%$%(,4=IYO,  3[YJC<71-)%" CX)�Q  ̛J- AmӶ~zvxhfa]YWSPLIEC@=951-)#�}�Q-!<_ýyanzvplid`ZXSPKHD@=81-'�yC%'�%$%(,4=JXN, <`hYUQIB<61+(%" MY+) ϝJ+&Gp|yyida^ZXUPOIED?=984-)$H� Q,&Bcx¾uar|vrmifaZXSPKHD@?940' E,'�('�%$�%'�%$%',3=IYN, !;BHSUPIA:4/+'$" 8R*|� ΝK*(Ki~y|jfb`]XUQOKHD@=9510,$  � R*(Dhwaw}vrnjfa]XUPLIDC=950)# �e%''(''('�%$%$ %(,3=IYP, ,=JSXnaH93.(%$*?#�L ϝK),Fe~~xmida]YUSOKID@?;510,'#�x��R(,Kop}wuplhb^YUQOIEC=941,$�u@%''(('(''%$%'%$ %(,3=IYN, 1AeV?=J<.'$!!'  ўL&,Ll஘}ytpkgb^YWSPLIEC@=840-)#C R&.Qrxwqlhb`ZWSPKHC=950-$ @�-'('�%$%$ %(,4=IXN, &Eg~y]MLZTZB)'/ �x ԠL%5\~{}oic_[WSPLIHC@=840,'#� S&1Mkytnkda]XSPLID?;51,'#�q(')�'('�%$%(,4=IXP, +@EMTRLGJeH-,&#�H�ԡL$9[p}|smfc_YVQOKHD@=951-)$ �r�T$4Vx{uqlgb^YWQOKE@;81-)#�n�Q'')(�'('$!#$%(,4=IYP, #5COTRKI_L0-)% $ ӠL" 5Tn|yslea\YTQKIEC?;81-,' =� T"#:[w{sojda[XSPKHC=840)#=�<))'('('%'$#!##$#$%*3=JYP- &8EOTPWyN51+%"v ўK  9Wpyqjd_ZTQMKED@=84-)$ S $>_zysneb^YUPLID?940)$�-(),)'('�%'%$##!#!"%*2;JZP- (9FQUrL:5/)%"�Y!¿ϝK$;Xrzqkc_XSRJID@=950,'#��R)A`{yqkea\VROID?;50,$��z'((''(()('()''%''%''%$#!#!$',2;HYP, *<LScbJA:1,(#!�G(͜K%?]wzrje]XQNKFA=950,'#�p�R)Ec|xpjd_ZVPLE@;51,$ �m�h%('('('+3''%''%'$ !#!$%,3;HXN, /?HTXZG=71+("!�7*¿ʙJ)D_w|sle^XSNIE@<51-)# �Z�Q-Fdypkc_XSMID=81-' �X�W%'(()('('(''('')9)%'% $#!#!"%*3=IZP, 0CV|sSC=61*&" (əJ+Hd~wph`XSLHD?:2-)$ D�ߧP/Mhztjd^XQLF?:4-)#C�L$'('- (-+)'(('';,'%$%$!!$!"%*2=IYN,  1OgmUJC;5.)%"ȗI/Il{si`[TMF?;61)' 4�ߦP!3Mi~}ulf\XNHB;60)#4� E$')%'-<(495'�)'$!#"%*2;IYN, "4HSTPHA92,(!əI0Mj}}tlaXSIB>83-' $ߦP 5Rlulc[SKD<71)$$�?%))%8;'<9%''%'%''$$##!$"%*2;HYP, $6HSSME=5.(#u)ÿʙJ 3Nh~wlcYOF@93/'#P%8TkvlaYPG@83,$ � 9$(('%%)-%8C+'%$$#"%*2;HXN, '8FLMF>5-'"b)əJ"7Qeu{uk`SJC:4.*$Q%<Vk|uj]SJC93-' �4$'')''%$%)04)('%'%$#"%*2;IXN, '6@EB<2*$OəK%8O`lmeYMD<4.(# zQ)=TftvodVLC96.' v�0$%%'+('%'%)91%%$''%$ #!#"%*2;HXN,  '1785.' = əK$9JV\ZRG=6/(#fQ)=Q^dbYOD;4-'#b�,#$$%))''()'10''$%'%$#! #"%*2;HXN,  #)..'!/)əK &5BLQJ?6/)#PQ ):HTXSF>4.) L�)#$%)')'(,--)$#$##! #"%*2;IXN,  ,-(!$¿ɚJ 3JNJ@70+$ = �Q $9PXQF>4/'#;�)$$#$$%('(+(''$%$#$#$#$! $"%*2;IXN,  &,/.(!)ɚK *:GQRKC:3.' 4R !.@MX[SH?42'$4�'$#�$%')/)(%'%$#$##! #$',2;HXN,  +4996.& )վʚK)>O\b^UG>60*$#4R -CUdkg]QF=4.'#4�'$#$ %')+1''%$%%$#�!#$(,3;HXN, +9AFC;1*$#)ջʚK'=Serqi\QE=5/*$ ;�Q*AYlz{tfZOG<6.)#;�(!$#$%'+'%$#$%(,4=IYP- 3FPNME=4-&"%չ ˛K%A^ry|wmbYME;5/*$ @)Q(?XoymbVNC<7.,$?�0!#$'$#$1-'%%$%$',3;IYP- -NgbME<4.(")ٻʚK#:`yoe\SID93/)$ EQ$8Yvyqg]RJA;60)#D�9 !!#$#!#$%$%$%'%$',4=HYP- &=VwjD91,'"/۽șJ4Tvzmf]VNF?;61)$OߧQ"2Jcxpj`YOGB;60, L�H !##$�#!$�'$%$%$$#$(,3;HXN- ":OguT.)%"5 ǘJ/Ond_WQKC>:50)$Y(ܦQ!/G]vpic\ULFA<50) W�X !#$#!!#$%'#$%$$#%(,2;HXN- :Qdv{x|jtY'"<±�ŗJ*Jl^XSMHA<:4-)$bڥP+E]rv}ic_WRJDA981) `��i !#$�#!#!#$# %',3;HXN- 2Tn|wztihfX]8 Aǰ ǗJ&CjrVOKE@;84-)$j ܥP'>]wwtpekh_[WPIC?950) hz! !#$#$##!�$#$# $%*2;IXN- -Hb~vdziWRK>&I˭ŗJ#=cоx^ID?;51-)$tڥP$8Slp|oa\[[ZTOIC=94-' p%! !#$#!#$# !#"%*2;HXN- )D]vwzwundcF=JK$Q ѬŕI!8[·~XD@;84-)$ ~�ڤP"3Og}~~{wqigSJV^UOID=940)#z + !#$#!�#! #$"%*2;HXM, $AZr{xqpncZFJAALY<aլ ŕI 2W|mH@;94-)#ڣP! /Kdz}wsrhbSSLMWfYOKD=;5-'  4 ! !#! !!#$'*19FVM, 9Um~v{naOC<DD@=QA uٮ•I"*Nvƾ~}yrQ@;940'$� أO#*C]t{}rhXQIPPKKbSOIE?94-$@! ! ! !#! !"%*2:FVM, 5Oh|yuvytrwol`ILETD;<G;�I$&FmÿĴzvymO@;81-'#' ֢O$'?Xn}xwyutxqodRVO]PHIWLPID?94-' 'O!! !  ! "$(09FVN,  4So}ykkpthdhokklOSTO?;<@=!%H'!>g}yvupS@=84-'#@ ֢O&%;ZtynlosgdgonmmX]]YKHIKOQKD=81-$? i !! �! � !�#! !#(09FVM, $!6w}kchjhja\[_fiSHGAEA781�; H(1Pº~rpjUD?81,) �aʿ֡O("6Vx{kcfhgga`bejl]SQOQODHKQOE?81,$�^' ! !!  ! #! "$(09FVM, #0?P{|we`^ea``^_ZWXaXLCC?;5-�YҤ�I),Ie̿|vnfWE?81-' � աO)1Onxxsd^\`^`_acaZ]f^WPQKIHHQOE?81)#�A ! !!   !! ! "'/19FVN- %+=JRV͒qqi]]aa\[]ZZWSMOKE<?<8410 H*&A_zź~|vpjdP=50,$##ÿ� ԡO+Ggnld[\]\Y^XQSSPKKEE@@KKD=51,$#�l �! !"%*2:GWN- !(9FRSNIԜm\Xaf^^ZZXUTOIDEE@<974 'ž� H-"<ZtȾ~zvrnldH50,' C˾ӠO&Bb}yyfXV\`YZXQKHKLHCC@?EEHC;50)#@(  �!  "%*1:GWM- $7DPTQIA=ͺu`dc_YYWUPKKEAA?75441171�GӤH/!6Vpȿ¾yvupjif];0)$�p��ҟN/%;]zl[_[ZUWUUXWPOOKEHD=;;==?DD=50) �m#D   !$*2:FVM- '!3BNTRKC;6.t~bjdb\UXYSQOIHACA<7341-1%t H1Pl¾|vunhd`]I4)$þ ўN' 6WvƩv^c^^XSWXSQPLKEHEC=9;=;?=5-' #q� !  #)1:GWN- /0@LSSLD>71-(-کQWjtjSX]TMMIA=A?84341/,,))%%Ý�G2,Kg~Ѯyvumib^XQE1$@˽ ўN$0QqQSfrfQW]UOOLDCHD?;89885-$ ?() ! #(09FUM, ,+>JTSNG?93.(&#0ϹeZltzdZ\TLKIA??4757331-)$�IդG3'Dd}zsֳ~}yvplf`ZUPI?,�uҿΝM4+Ilƶ`WittaYZULLKDDE9=;=;?;854840'�r/H  #'09ETK, *'9GRUPIA:3.*&" BŲnIXrme^\USIHCA857374-()'$ G5#<^y}}zwtnʳ}|utmid^WQLE=-$û ̜M5(BfhIWmhb]ZWSLKEH=;=9?@C??9484-'#,u "'/8DRJ* 7#7EPTQIA:4/+'$! ]We^UYXZdLEE73787974//1-)'$1Ŝ F7 7Xu~zywssprӽz}ztrmh]YUPID;-U˺˛L8#<`ZXaZSXWYbOII;9=?=C@?;=?;51,$S20   ',7APG(  2CNURJD<61,(%" mU^Y^]emZOH575<9977,-31-'!�eդD1Rp~|zwur!m˲~}zyupjdXWUPIC8,�ӻəK96Xz}nUZUZ]bhZQL9;;D@DCC9;?;91,#�-�e� F &+4?KC& 0@LUSMD>82-(%# $~hjpeb^]QSQMA<;<;8;<1441)' $��D;+Ll{ywutrpnx¥~zxumjdYWSLE=4'?õĖK:/RttihhXY^]SWWQIC@DCCDE??@=51) =,4�E %)2;G>$ (;IRTOG?94.)&" QҲʥaepla^^UQSQID??<7;7495/)$�WդIB$Bd|{yvutrnm¦~zytli`YWQKD=4$�ҶH”I(Hm~Ɣz]`fYXZ^XWWUOKEHE?DC?D@;50' �~-t !%(/8A9! !3CPTPIA:4/*&#!#-ϥzW\bb`WXTQSLDA@?;7;1471-(# O@ 9[y~{yxutrpn}ֽզ~zxpidYXUPLD;0 5ŰHG$?ctW`^YYW^WUWPKHHED?D=?C;94,'5(A!")-4;4")8EONIB;4/+'$" !վmITXabXOWTPLEE@=<<5184-+$�O٦�E~H1Po~}zyxvtrpprDZ}~zuldZXXQLIC1#�zյKP7Z{}iL]]WZ]ZYWSPKLHEC@==C?540)#�x%$* !%)/52--9CGEA<71,(%" 8ºIO^PUQLMKHA==91581+$!ɔEld~}|zyxutppmɻ~zy}vvrh`YXWLH@1$8 ɩGxqzLPUWUX^WXWPPLLIDD?9?C;50-$5&Q�� !#'+/126=<;951.(&# #$¥zOKSDS`XMZZQLKIIA=85331,(�WA~}}|zxvutpmydz·~r|rpla]YUQIE1' �@~ySLSLQWWY^]WQQKLH@?;9=;54-)#�~!+� !!$'*.23431.,)'#  !׭TQQXQZfZQbaMIIDC@;731--)#'ϖ�F~}}|yvuurnt۾Ü}xplf`YWQLI?,$ @Ω$yYQPWQU^ZYddSOOKEC?=998954-'#@�b !$&(, *('&$!!"b⵮x`\U\WYijQ`^PLG=<<7410/+'i�+}zyvuutpmšulib]XUPID1'#@~t`UQYUWdhUbaUSQKHC=;988541,'5 !$%&&$#" !�� =ʬʠxy`dT`ftvKUZSH@=8551,--(7՝�@~}}xvutrnۻztjd`YQQLE8,'#]ѭ ,ΪytXZU]^hmOZ`ZSLKD=98459140,$Y u  ! Ҙ}rnZtpraPQQMA<9743,'-)�:~}~}zyxvutpn⶚ylhb^SKOI;-)$ 0¡ $幥}tbbXi`bZSWYWLHD?;940540)#0��H'ɲ|r\juzaDII@<711)'!!%�^~1}~~}||zyxvutrntŹz~~vtmd^UPHDH;1,'#� +|㲜xniYbbi]KPPIE@;;540-5981-'�9!Xy}\P`fOIKC@4#<Ӝ~}||z/}||zyxvuttppͻ~txriaQIC@?;840,' bϪ)zt~pxYQ^ppaQPOIHC?CDC@;=950)#`�/�'Zm~y~rZezqfLDLA))͕~}�zy.xyzyyxvutpvrjulYED@?;851-)$Hʥ.umm~xtvjY^vnjbQLQHOPOLID@;81,' E�()Xeztvfqnt|thYIKM1!Ő�~}|zyxvx)vutryznmraKED@?;840,' 8Ţ-i^avpn}~dfbipli]PQUKPPLKEC=940)#5�|'ETXm|vti^UI)xÑ ~~}||zyxvvuv'urp~xnZKEEC?;851,'#0Ƥ(}bU^ix|}yltntnph^Y]XQQPKHC?;51,'0�}%��$S`Dxtpz`H-rʐ ~}|z|yyxxuut*rtut|è}nZQIHEC@=951-)$ 0͢ '}hOvxnxtmpn}|vh`YYUSPLIE@;84-)#0�$� `vW^|yL~\-�nҎ�~}|zxvuurp&yͲaOKKIHD@=9510,'#)ա�(bb~xzyuput~r`XWWUQLIE@=940,')�#��1}v·t 'i֌�~||zy0xuutrpprpnp爵Ϭ`^bSOOLKHEC?;841-)$ )ٞ'~zzpnfbaZYYWUQOKHC?;81-)#)�ř-�OtyvUPdh\-d~~~|zyyxvuurn&mƝnUPLOPOKHEC?;8510,'#$?uxtv|zuib`]YYZYUQOLHD@=840,$#�M�AΨM-=^~~}|}|zyxxvutrp&r綕~m}bYYWUQPLLOOKHEC@=9540,)#$’ &xh߿}|r|nifba^ZYXYXWQOKIE@=951,' #�#� !^|K0^݆}~}|zyzy�vu�trp%aѱ~nb]]YWSQOLLOLKIEC@?;840-)$ $嚑1~Z|}|unljhda^ZYYXXUSOKIEC=951-)#$�G ,D}t|I)(�j|}|zy�xvxv/uttrpprppmy˩zli`^]]YWSQPOOLLKIEDC?;840-)$#5'lazy}ttrnlljhda^]ZYXWUSPLKHD?;51-)$4�!� $xfnzq'3z|zyxvututrrpnnppmdf^^]YXWSSPOLKIEDC@=951-,'#W&]ptxrpmljhda`^]ZYWUSQOKHD@;840,' U�!�  TIO`ehE9!Szyuxyyxxvvuuttrpnmnnmauzytb^]ZYWSSQPOKIHDC?=9540,'$ )&~]rZ^itzyxpnmjida``^ZYXUSPOKHD@=950,'#'|�<dm,?PQf7)xʍtvutrpnnmmlj$b|rb`^^]ZYXUSQPOOLKIHD@?;9840,)$ HӜ~}�|}~}iadarpnmmlifb``^]YXUSPLKHD@=951,'#D�1�$?hl1D�ߑruuttrrppnnmlljiih%ihfh~v``]ZZYXUSQPOOKKIHD@?;8540,'$  m� ~}||zyx%yxtdb|ymrpmjjifda^]ZZXUSPOKHD@=951-'# j��d 7A;$)!!h8rprrppnnmmlljiihffddba`bv~i^ZYX]a]SPOLKIIEDC@=9510,'$ 8�ń~~}||zyxxvutrrpnhba]lmjihd`]ZYXWSPOKIE@=951-'#5�5 +- 797�6mnpnnmlljjihhffdbaa`^]Z`jpdYXWYijWOLKIHED@??;540,)$ ]�0~}}|zyyxvuutrpnmljfaajjhhfdhh`ZXWUUQOLIEC?951-)#Y�8�#\�mljiihffddbaa`^]]ZYXWUSQPOLIIHEDC@=;840-)$ ;�3}|}||zyyxvuttrpnmljihfddbddba^]ZYWUSQOKIEC?;81-)#;�9+^�5jhiihhffdbba``^]ZZYXWUSSQQPOLKIHEEDC?=;840-'$ I�|xyyxvuutrrpnmljihfdba`^ZYXWUSQPLKIEC?;51-'#H�C��5p�1hdffddbaa`^^]ZYYXWUSSQPOLKIHEDCC@?;9510,'#$Y�1xtuutrrpnnlljihfdba`^]ZYWUQQPLLKIHD@=950,$$X�;!�A~�-ߐpha`b^]ZYZZXWWUSQQPOLKIHEDC@?=;9841-)$ 0j�-ޙ~upnpmjihihddba`^^ZYXWSQOLKHEDC@=984-)#-h�ұl@;dqbC$,)'$!$O(ݾlYuplh^aWPQOLHED@?=;9851-)# ?z(۾vh}yvrilb]^YWPOLKHEC@=;84-' #=v�Ǝ˦ydPC3%0Lu"Ʃp]OD@?=;851,')9Uy#ۿvdXOIEDC?=81,-;Sv�vu8#$7Ux"ٷyZQID?;95118Id"ϳ}aYQKHC@;95;Kb�[Q$ )@^ ˔ZD@@CHUr ”aLIHKWr�<rfnty˿ú������������������������DFPICT�S\�����D�� ����H���H�������D�������8BIM�������D�Grph�� �����D�����h�����D���������H���H���� �������������������D������D��@� �Aܬ ̽�bӵkWHA;:948:;<>DX� řumfeb[^adhv�Ѳ{bSNHJNILPOV[dq�ߧ�ߖB&"1W\TYJEG>;;9/03.!.T``��Ænoy|ykfe_RQWQ7@m``�� ď|{tub]gXVVPKBNK2>j``��=׆4?rgu`YZXRGFBAA>0.yp@@@�P@��` �� PߏP�Pp@ppPP@�p鹁ieginrpjffdS7@p@@@�P@��` � PߏP�Pp@ppPP@�p꽎}z{|z{~qjbde_TSNNPWH2>�p@@�P@��` � PߏP�Pp@ppPP@�ps)'vrbzo`jiVOLOL90,#6@��0@��@Ͽ ���� @�� `��@� �0`0���0}poqpo y{~ z_QI;-K@��0@��@Ͽ ���� @�� `��@� ��0`0���0!ougmn_XTWVH=<2)I�@��0@��@Ͽ ���� @�� `��@� �0`0���0�\S7WOalitj[XONPH=.)$E����p�@� �@�߀ ���p ��0��@��� vu}}zxwvsp ~rcND;,^����p�@� �@߀ ���p ��0��@��� #ᫌ{xbqymqmb_YWYUK>92&\����p�@� �@߀ ���p ��0��@�� [(8\aW{}shYQUVM:|����0��@��p����0P�@� ��� ��@͏~|ywt yd9300%(����0��@��p����0�P�@� ��� ��@'Тrjkc{|wpd\_^VL<81+ (����0��@��p����0P�@� ��� �@I^*Zf`}v[CBHD+\�@����p��@���0�P�@��P���@񲎎~|x~z}vS4,+(#t�@����p��@���0�P�@��P���@)񿦧~inhyeYXTOD:3.'#r�@����p��@���0�P�@��P��@fCLr~u{sT@FGH4J� ��0@�������@@�@��0�@��@ꬖ~|ĵ}|z`7*' \� ��0@�������@@�@��0�@��@+龳xvz}ubVTSRF91+"\� ��0@�������@@�@��0�@�@W @ fäslRIHEE63��`����`��@@�P��@@�@��`���@쳡~ر{u^:*$&F��`����`��@@�P��@@�@��`���@-¾wq`WTPQI8/("E��`����`��@@�P��@@�@��`��@hF  Q̰kTMB<CB0<���߿P��������@���@���@𻪬}Ľ wynV0.2& T���߿P��������@���@���@(¿n`YVPOM@2-)  Q��߿P��������@���@��@QW%!  �b@03?7%'%\���0��@������0@�@��`���@ŵѿigueFFA0w���0��@������0@�@��`���@*ʴژ~eVURJE;70%t��0��@������0@�@��`��@cj)4!" J˽Ǣ[:/57;7+!s��P�`P���@��@�@��P@���@���@κŵ~ vgnlj_L9#��P�`P���@��@�@��P@���@���@+¼Ƣy]XSFCHG8+�P�`P���@��@�@��P@���@��@r #$%#!! @{շʜ}tOBL24<8)%��@��0����� ��� ��@�@�����@ پ ν|ektfMC1�@��0����� ��� ��@�@�����@-½t|r\_YTHFE61(@��0����� ��� ��@�@����@u0 $#!  B~ǼƲrdhc`oeF=7;0&-���@�P`��@�������@��`���@ ׽ º|wpmYH7>���@�P`��@�������@��`���@.½phkednl`QGF;1+=��@�P`��@�������@��`��@tm$#"!(nasǿf^rdhdZJ;8:2%w��� @����P�� ����@�� �����@!ź }rpcM<(��� @����P�� ����@�� �����@.tjgshigaVJGE<0(��� @����P�� ����@�� ����@m)$&%$" \Lgšbd_V[G=?BA6-!��� �����P����p@���`����@!l^C60-��� �����P����p@���`����@&¾zzhge_aTMNH>4+#,��� �����P����p@���`���@[&&''%#$$#"!! ! "$I`*7BA[`BDKB&`������`���� ��P�0��@@�� ������@¾ ZB;2,*z������`���� ��P�0��@@�� ������@+čd[`cROQOPI@80'x������`���� ��P�0��@@�� �����@-$'&%%&&$#�"! !Lw>_I91(�p��`���0���@��0��0@ ���P��@���`�`���@"ˌ xjME?70' �p��`���0���@��0��0@ ���P��@���`�`���@)ÿșygX[[ZXPG>6,! �p��`���0���@��0��0@ ���P��@���`�`��@~ '&%$#$""#" ct(3@U�@��@���������߿����@�� ������@#˞ub\VRKD=6.$ p�@��@���������߿����@�� ������@*ÿʝwdvph^VMD<3' m�@��@���������߿����@�� �����@;#'�&'�%$#""! +~!5B+��`��� `�� ���������@@���`�`���@�ߜxf`YSLE?81':��`��� `�� ���������@@���`�`���@.Ƚ~jzph^UMF@7+8��`��� `�� ���������@@���`�`��@%&'&$$%&%$#! .A&Q/ #,������@@p��@�@� ����`��@������@뵏{|ib[TMF@91*������@@p��@�@� ����`��@������@-Ǻwzri`WPH@7. ������@@p��@�@� ����`��@�����@e ('%$�%$�"!�"! /lxht@26R����p��p0�����p����� @����@���@ ¼vnd\VOHB;2+  k����p��p0�����p����� @����@���@$Ƕ}tkcZRKB8.$h����p��p0�����p����� @����@��@H$(' $%$##$$#$##"! EI); (����@����p�������0@������@$ÿ»~xqe^XQJD=4,#5����@����p�������0@������@-}z~vme]UNE;1&4����@����p�������0@�����@1&())(' &''%##"!!$$"�! ! WV*7=�@��P�@�0�`p�`�����`� p@��p��0���@ÿ 忕yse^XRLF?7-$�@��P�@�0�`p�`������`� p@��p��0���@½{xof_WPG=3'�@��P�@�0�`p�`������`� p@��p��0��@+'('(*-%&�$"! !�  Tl !"1$���@��@�0pp�` @�p�@P���p�@ᅬ0�` �p�����$ýxwvw{hXSMGA8/&���@��@�0pp�` @�p�@P���p�@ᅬ0�` �p�����-¼ymg`YRJ@5*���@��@�0pp�` @�p�@P���p�@ᅬ0�` �p�����#',,-)')/&'&%""!!"#!!  !!  !mM7Adߏ@�Pp@0���p���P�� � `p0�P � ϯp��`� ￟0�p$þϵ{uok`UNHB:2(ߏ@�Pp@0���p���P�� � `p0�P � � ϯp��`� ￟0�p� }xojbZTKA7-ߏ@��Pp@0���p���P�� � `p0�P � ϯp��`� ￟0�p�{ &'252%'&#""!!"!    P/!Qp@� � �� �� P��� `P�P@0@��� @��@$ľ}{unjdcd]QIA92* hp@� � �� �� P� `P��P�@0@��� @��@¾{wrlc\SKC8."gp@@@� � �� �� P� `P�P@0@��� @��@t''%)3*&'&%&%%#"!   )D.!?πϯ${wwpea[YVKB92* Tπϯ}xpje^VLB8/#Rπϯ� k%)'',-&&%$#!"!� +=^O^V/0$z`\XYMC;2*?5ľviusrlf_WMC9/$>� e#%''(+($#$"!"!!"! ! 8#0mtqX(($ÿ}䵼t\XWMF<5-#35dprdlkg_XOE:/%3� b$##$&**&$"##$"! 5&evigV-)$˾~üoUNG<3+"55z}tjmvi`ZQF;0%5�o$#$*&$%%$#$#�"!  H{_lS-$̸ָQMF>4, ;4–uv`ku]YQF;2&:�!$#""%%$%$ #$"!"!! !! +٨rrTSjg*3$޵|ƹdIF=6-D4Αg|y|pZYoufXQF=3$C� $!##$$""#"$#�"!  ym}p{z]Pg^A8ϏϏ$㳶|Ŀ~RE=5+ LϏϏ4¿zdskvxdZid`YRF<3$KϏϏ) ! "#$"!!##"#! !rnm|xmgjXEF!@0�@@P��@00$就ľP<5+ V0�@@P��@004ÿihfwwoil]O[TF;1$T0�@@P��@00 4 ! "##"!#" oofeupteJCAK1M�0 @pﯬ{üa;6+ e�0 @p4gf``qpshTOLWTG<1"c�0 @p�@ ! ! �qmjY]eclgOM?>,|@�P`�{� }v_>5*@�P`�$|b_TZbcmjXWLIPI;0 @��P`�t!  !!"! !�ojeV\_\Z[VE@8( ,`0P@@P� P 0@�@߀ p P p00p�ߺ ş|vŶs`B3* 3`0P@@P� P 0@�@߀ p P p00p��$¿~a\SX\]`_]RMFLK:. 3`0P@@P� P 0@�@߀ p P p00p�    !"! d|_[^ZYULGA:65)*� `�߀0`�@0@ ` � �Ϗ�ߏ` P�~yq{tmU2(7� `�߀0`�@0@ `� �Ϗ�ߏ` P-¿nYVYWXYOLJB?DF9-6� `�߀0`�@0@ `� �Ϗ�ߏ` P ;   ! �HrbaWWOHB>52.0 P���p0 0`0 00`�0P`�pP#}{ryqg`@& i���p0 0`000`�0P`�pP¾�i]]UWPKGD;>9*f���p0 0`000`�0P`�pPz � yXt`WKD>7540))�P@00� p� p� @p�� �@0ƚ}zywowncXM3�P@00� p� p�@p�� �@04ѼtXq]WMGC=;>;66*�P@00� p� p�@p�� �@0 ��``[]YE76860/) ,p�`` � �`� ��`@ P`�`0`P�"㞚}zwvotǰzsi\SG4<p�`` � �`���`@P`�`0`P� 强"^]Y\YH;<@A=;5(;p�`` � �`���`@P`�`0`P�K�$yec_YO?;:933)w0�1�`p@`@0p���`����@0P`�}{xuovҨyrfXPB.0�E�`p@`@0p���`����@0P`�$r`Y]ZSDC?>4%0�E�`p@`@0p���`����@0P`�!tɥg^dXSPE?:660%"@@1P00 pP@0�@` p�@p0 p P` ޙ}zvskym^VN@%-@@DP00 pP@0�@` p�@p0 p P` ޲!d]ZZWTLGB@A;1!-@@DP00 pP@0�@` p�@p0 p P`�j�1NO\SSMH@944'p!~{xtk~{{sdXRD, ¬#{PTX[XPLF?=>2(�+ ƘUPU_ZXID=50,&ֽ 떑}zvqtͮ ui]UK53.멪WPT\_\PJB;970#2��h]elVUD;6/." ˆ|wtkҫ ocVP>)/ǟaX^dY\OF;564/�;%ƥaqnJG;.&" @~~}{xvpuѽ ~q^QFA/% Y.}w]dbPOD=:375* W�.�%`_rwTJ3)˻哅~}|zywqw zq`E?:3+ 9+䤜woy\hmVLKLIA:0"8�' FrR5"ސ}|zwvuuvtw taKC=7/%/Д0࢚Yxxs}poum[WQNE=4).a(dhkmF"�Ϗ`Ϗ`Ϗ`￿ߟpppϿϿϏ`﯀ߐ~~{zywurrou ϣtPIE?81*,�Ϗ`Ϗ`Ϗ` ￿ߟpppϿϿϏ`﯀.ᣔj~rszgYVOH?7.!+��Ϗ`Ϗ`Ϗ` ￿ߟpppϿϿϏ`﯀8Cԡ{lca) ``p 00�0�0�0 P `��P���0��y}zxxvsrrjgKMKGA:4.$) ``p 00�0�0�0 P`��P���0�� 䭏ܘnaZYWPJB:2((` `p 00�0�0�0 P`��P���0��kd&i$$0P@�@�@��` �0@��@��}z~}{zzyzzxuusrpng]R�ML GB=5/'10P@�@�@��` �0@��@��Ēpqlc^ZXWQKD;3+00�P@�@�@��` �0@��@��Y,  Itm>=@��@�@�@� ��@� P@�@�� qtwywut sroojtZZWSPOLHC?70)S@��@�@�@� ��@� P@�@�� 韆~sowlkfa]ZVRMF>6-"Q@��@�@�@� ��@� P@�@��qm$,VT& \�0@�P 0@� �` �@@��p&�@Pp@`� `�@ �@�@@`@�@� @`@ �@`�麳nuuspnmlklhpg`[WSQ OMIB=82*"(t�0@�P 0@� �` �@@��p"�@Pp@`� `�@ �@�@@`@�@� @`@ �@`�&ž~~}~|gbrsolha^[VRMF?7/$'q�0@�P 0@� �` �@@��p&�@Pp@`� `�@ �@�@@`@�@� @`@ � @`� Z3='1�@@�0 �@�0�Pp�@��&��@�0`�0`�Pp��00@�'�0`@���`0p �0@��ninnlkiged`scXZ`SM JGC?71+!C�@@�0 �@�0�Pp�@��"��@�0`�0`�Pp��00@�'�0`@���`0p �0@��$}~}{xvtsnifljhg_YWRMG?7/%A�@@�0 �@�0�Pp�@��&��@�0`�0`�Pp��00@��0`@���`0p � 0@�� J!%U�0�@��@p�@��@�@��`��@�����@�`�@' �@�P����@��`�@�ڙjdihfdb`^XZ\WUWNI GC?:2*0j�0�@��@p�@��@�@��`��@��� ��@�`�@' �@�P����@��`�@�!ݢ{uyxvtqmlhcdda`ZVRMGA9//h�0�@��@p�@��@�@��`��@�����@�`�@ �@�P����@� �`�@�J)^� �@��@�@� �``Pp�@�� "��@���`Pp��@�@��@@@�@����@��@�ݖe]\ZVWTQONNMIFD B=7.!7v� �@��@�@� �``Pp�@�� "��@���`Pp��@�@��@@@�@����@��@�ޟumlieeb_][ZWSQLIF?4&7u� �@��@�@� �``Pp�@�� "��@���`Pp��@�@��@@@�@����@��@�{Odg:?@9.#"9{�`"@�@�� �@��P��@�@�`"��@���P���@�@ �@�`��0�p0��@�߿~wj\MC?920-5O�`"@�@�� �@��P��@�@�`"��@���P���@�@ �@�`��0�p0��@�¡tfWMG@9628O�`"@�@�� �@��P��@�@�`"��@���P���@�@ �@�`��0�p0��@�ηdzI ';a})`�P �0�@� 0@�@P�p@�0�@�@)pp��0�p�p�pP�p@�P�Pp0��@��p` �P�P�p ӈTD98J_})`�P �0�@� 0@�@P�p@�0�,@�@pp��0�p�p�pP�p@�P�Pp0��@��p` �P�P�pʊ\LA>N``�'P �0�@� 0@�@P�p@�0�0@�@pp��0�p�p�pP�p@�P�Pp0��@��p` � P�P�p ӷ~ p@@` @@@P@p߀ߟ`@@`��߀@p߀@p@@`@`PPϟ@@� Ŧ� p@@` @@@P@p߀ߟ`@@`��߀@p߀@p@`@`PPϟ@@� �p@@` @@@P@p߀ߟ`@@`��߀@p߀@p@@`@`PPϟ@@� � � � � �����������������������������DFPICTp�A'� ����H���H���A'������8BIM������� Grphbj���������� ��������H���H���� ������������������� ����<"�$M�       ! !"#$%$$%&&'('()**+*+,,-../ 0101121223345546556789::;<==>�?@ABCDDEDEFFG�HIJJKJKKLMMNMNONPOPQQRRSTU�VWXYYZYYZ[�\]^__`abccdefgghijijklmllmnooppqpqrsttutvuvwwxxyz{{||}�~ ��� � � !!"#$#$%&''(''()**+*+,-../011234456�789::;<=<==>?@AAB�CDEFFGFHIIJKLMNO�PQRRSTUUVVWVWXYZYZZ[\\]\]]^^_`_``aabc ddedfegffgghhijjkklmmnoopqqrsst�uvwxyyz{|{| }}~}~������� ��    � !!"!!#"#$%%&'()()*+,,+-,-../0010211223 44545565667789�:;<<==>?@ABC�DEF�GHIHJKLMMNO�PQRSTUTUVWXWXXYYZ[[\]^_``aabcddeefefghijjkjklklmnoppqrqstutuvwxxyzyzz{|}|}~~����R���     !"!"#$%&'()*+,-.//0010123445656789:;:; <<=<==>>?>?@@ABCCDEFEFFGGHIJJKKLMMNOPQQRSSTSTUUVVWXYZZ[\\]^ _^_`_a`baab�cde�fghhijjkllmnnop qqrqrrssttuutuvxwxyyz{{|}}~�������������  � ! !"!!"##$#%$%&'('(()*++,--,-././0112345677889::;:;<<=>?>?@ABBCCDEFGHHIIJIJKKLMNPQ�RSTTUVVWX�YZ[\]^]^_`a`aabbcddedeefgghijkjklmmnoppqrrsststtuvvwvwxyxyzz{|}}~~������     !"!"#$%&&'()()*+,-././0123234454556789:99::;<<=<==>>?@?@@ABBCDEFFGHIIJIJ�KL�MNOPQRRSTUVWWXXYZ[�\]^^__`aabbcdeef�gh�ijklmmno�pqrsstuuv�wxy zz{{|{||}}~  �  ��I��  �  !"�#$% &'&'('()())*++,++,�-.//01�23455678899:9:;< =>=>>??@??@@A BCBBCCDDEDEEFGHIJIJJKMLMNNOOPQQRSRSTUUVWVWXYXYZZ[Z[[\]]^__`aabccddefghgh�ijkllmnnonopqrrsstuvvwxxyz{{||}~�� ���   !"�#$%&''()*+*+,-./011234567789::;�<=�>?@AAB�CDEFGHIJIKLMNNOPQRRQRSTTUTUUVVWYXYZ[[\[\\]^_^_`abccdefgfg�hijjkl�mnopq�rststuuvuvvwwxwxxyzyzz{||}~ �� ��     ! !"!"##$%$%&'('(()())*+*++,+,--./../001�2343456676677879899:9:;:<;<<=>?@?@@AB�CDEEFFGHIJKKLKLNMNNO PPQQRRSRSSTUUV WWXWXYYZYZZ[\\]�^_``abcd�ef�ghiijijklmn�opqrqrstuuvvwxxyz{{|}�~�����8��   �  !"#$%%&'())**+*+,-./�012122345667889:9::;<;<=>? @A@@AABBCCDCCD EFFGFFGGHHIHIIJKKL MMNMONOOPPQRSTUUVW�XYZZ[\\]^__`_`a�bcdefhijjk�lmn�opqqrqrsst�uvwxxyyz{||}}~}~~��� � ��  � ! ! !""#$%&'()**+,-,,..-../0123434545767789: ;;<<;<<=>=>>?@�ABC�DEFGHIIJK LLMMNNONNOPQQRSSTTUTUVWXWWYZZ[\]\]^_``aabbcddeffghhijjklm�nopoq�rstuuvvwvwwx�yz{�|}�~ ��� ���    !"�#$%&'(()(*++,-../001233456789:;;<=>>?@@A�BCDEDEFGHIJKKLMNNOPOQPQRSRSSTUUVVWVWXYYZ[ \\]\]^^_^_`aabccdeeffgfghhijjkjlmmnoopoppqrttsuvvwxyyzyyz{z|}|}}~�������`��    !"#$%$%&'(()**+,,-,-.-.//01234567667889:; <<==>=>>?>?@AABCDEEFGHIJJKL�MNO�PQRSTUVUVVWXXYZZ[\]]^�_`ababbcdedeffggh ijiijjkkllm�nopqrsttuuvwxyyz{z{{|}}~ �  �� �    !""##$#$%%&%&&'()(()*)*++,-././0/01123445�6789:;;<;<<==>??@AABDCDEFGGHIIJ�KLMLMNNOPPQRRSTTUVUVVWXYZZ[Z[\]^]^^__`aabccde�fghijjklmnnonop�qrssttuv wvxwxxyzyzz{|}~~���� ��      !"#$#$%&%&''()()**+,--./0/01012233434566766789�:;<==>??@AABBCCBCCDEEFEFHGHI JKJKKLLMLMMNO�PQRQRS�TUVWWXYYZ[\]^^_`aabcdedefghghhiijkklmmnoopqr�stuv�wxy zz{{|{||}}~� ���R���    �  !"#$#$$%&'())*)**+,--./001234556789:9::;;<=>>?>?@@ABCDCDEFFGFFGHIKLLMNNOOPQPRQRSSTU�VWXY[\]^__`abbcddeffg�hijkklm�nopqqrrsttuvuvwxxyyz{|�}~��� ��    !"#$%&'()**+-./1012344545677899:9::;<==>>?@@A@ABBCDEFGHHIJJKLLMMNMMOPPQQRQRSTUVVWWXYZ[�\]^__`aabccddeffgfgghhijkklmmnopqrrsttuvwxxyyzz{|}~}~���������     �!"#"#$$%$$%&&''('()*+,-.././/0/012323345667899:;;<=>??@A@ABCDCDDEEFHGHIJIJKKLMNOOPPQRQRRSTSTUVUVWWX YZYYZZ[\[[]^]^^_``abcddefghhihiij�kl�mnoopqpqqrrstu�vwxyyz{{|}�~������E��   !"#$#$%&'())*+,-..-../0102345667789:;;<==>?@ABCBBCDEFFGHHIHIJKKLLMNOOPPQRSTTU�VWXWXXY�Z[\]^^__`aabdcdede�fghihjiijjkkllmlmmnopopqrrs�tuvw�xyzyzz{�|}~� ������     !"#$%%&%%&&''())()*)*++,-./0 1121233234454566768789::;;<=>??@?@ABCCDDEFGGHIIHIJKL�MNOPQRRSTTUVWXXYXYZ[\\]^^_`aabccdcdeffghihjijkklmnmmopqrrs ttutuuvvwwxxyxyzz{|}}~������ ���     !!"#$#$$%&'&'())*+,+,,-./�0123234567899:;<;<==>=>>?@ABCCDEEFFEFGFGHIHJKJKKLMMNOOPOPPQRQRSSTTUTUUVWWXYZ[[\\]^]^_``aabbcbcddedeefgghhihiijjkjkkllmnoopqqrrststuuvuvvwxxyzz{|�}~ � �Z��      !""!"##$#$% &%&&'&''('()*+,-./012345565667889:�;<==>?@AABABBCDEFGHIIJ�KL�MNOPOPQPRQRSTUUVVWWX�YZ[\]^^_^`_`aabcdedefghhijjklmmnnonoopqqrsstutuvwwxxyzz{|}}~������     ! !"#$#$%$%&%&'(()*++,--././/00123343456�789:;;<;<==>??@A@ABCDEEFFGHIJIJJKLLMLNOOPQRSSTTUVWXYZ[\]\]]^__``abbcdeefgghghhijjk�lmnnoppqrststu�vwxyyzz{z{{| }}~~~ �����  �   !"#$%&'(()())*+,,-../0/012344566767789:;<=>?@AABCCDCCDEFFG�HIJJKJKL�MNOPQRRSTUUVWXXYZ[\]]^_`_`ababc�defghiijjkl�mnoppqrsst�uvw�xyzz{{|{||}~� B���   !"#""#$%&'())*+*++,-../01233434567789:;;<;<<=>>?@@ABCDDEFFGFGGHIJ�KLMMNOPPQPRSSTUVWWXXYXYYZ[\] ^_^_`_``aabccddedefgghi jjkklklmmnmnnoppq rrsststtuuvwxyxy zz{{|{}|}}~������ ��  !"##$#$%%&&'&'(�)*+*+,+,,-�././0/01212345465677899:9;;:;<==>=>?@ABBCDEFGHHIJJKL MMNONNPPOPPQRSRTUV WWXXYXYZYZ[\]^^_`aabccdeefgghhijkklmmnopqrrsttuvvwwxxyzz{{|{|�}~�  �      !!"!""#$%&&'(()(()*+*+,-�./01223223456�789::;<<==>??@?@AABCCD�EFGHIJJKLM NNONOOPPQQRQRSST UUVVWVVWXWXXYZ[ \\]\]]^^__`_`abcdcddefgghhijkklkllmnonoopqqr�stuuvwxyyz�{|�}~����c�        !"�#$%&&%&'(()()*+,,-././ 00112212323344565678789::;<==>?@@AABCCDEF�GHIHIJJKLLMNONOPQRRSSTSTUUVWXYXYZ[\[[\]^^_``abbcdefgfgghijkllmmnmnnoppqsttsttuuvwwxxyz{{||}|}~�  �    !"#$%&'&''()*+,,-,--. //0/01012122343454567889:�;<=<=>?@@ABCD EEFEFFGGHGHHIIJKJKKLLMNOOPPQRSSTSTTUUVWWXYYZ[[\]^ _`_`a`aabbcdeeffgghijjklkmlmnmnoopqpqrsttuuvwxyyzyzz{|}~����� ����   � ! !!""##"#$ %$%&%&'&''()*+**+,-./001221232334545567789::;:<;<=>>?@A�BCD�EFGGHGHHIJJKJKKLNOP�QRSTSTUTUUVVWXYYZYZZ[[\]]^]^^_`abcddefghiijklmmnooppqpqrrsstu�vwxyz{||}~~��� �� �>��     ! !"#$%%&%&'&''()**+**++,-.//0121234567889::;<=<=>=>�?@ABCCDEEFGGHHIHIJKKLMNNMOPQRSTSUVWXYXY[[Z[\]^_�`abcdeffgghghijkklmmnmono�pqr�stuvuuvwxyyzyz{||}~~}~~ �� �� ��    !"!"#""##$%&%&&'()*+,,-.//01�2343445456678789:�;<=>�?@ABCDCDDEEFGHHIHIIJKLMNMNOOPPQRSTTU VUVVWXWXXYYZYZ[[\\]]^_a`ab�cdeeffghhijjkllmnopqqrststvvuvwvwxyyz{{|}}~�� ������   !"#$#$%&&'())*)**+,,-./001012334567889:9::;<<=>?>?@@AABABDEEFGHHIIJIIJK�LMNOPPQRRSTUUVWXYXYYZ[[\]]^__`_`abcdde�fg�hijjkkjkllmnoppoqrssttuvwxxyz�{|}~���� `�    � !!"!#""#$##$$%&''()())*+,-,--.-.�/0123345677677899:;<<=>>?@?@AABAB�CD�EFGGHIJKLM�NOPQRSSTUTUUV�WXYXYYZ[\]^^__`aabcedeefghhijklklmnopqprrqstuuvwxxyz{{|}~}~ �����   !!"!"#"#$%&''('(()**+*++,--./01232344567789899:;<<=>?@AABCDDEFFGGHIJJIKLMMNMNONOPQRSTUUVWWXYZZ[Z[\]^`abcdefgghhijkklmmnnoopqqrsststtuvvwwxwxyz{|{|}~~�� ��  ��    �  !"#$%&'()*)*+,+,-../01223234456789:;<<=>?>??@@ABCCDCDDEFFGFHGHIIJKLLM�NOPQR�ST�UVWXYZZ[\]]^_`aabccde�fghhijijkllm�no�pqr�stuvvuwxyz{{|}|}}~�����0     !"#%$%%&%&'('()*�+,-.//0/00123445678789899:;<�=>?@@ABBCDDEFGHIIJKKLMMNOPQQRSSTUUVWVWXXYZZ[\\]^]]^_`aabc�defghhihjk llmlmmnmnoopopqrrstuvuuvvwxy�z{|}}~~~�����   !"#$%&&''&'())*)*++,--./0012�3456778989:9::;�<=>??@ AABAABCBCDCDEF�GHIJKKLMMNOPRQRSTUTUUVVWXYZZ[\\]^_``abcbcddede ffgghghhiijkklmnno�pqrsstu�vwxyxyz{|}}~����� �         !"#$%$%%&''()*+-../0112345�67899:;;<==>?@ABBCD�EFGHIIJIJKKLMMNNOPPQRSST�UVWXYYZ[\]^__`abbcddeffghiijkllmnnoppqrrsstuuvwxyyz{�|}~�������X��     !"#$%$%%&''())*++,--./01012334665678898:;;<==>>?�@A�BCDE�FGHIIJKLMLMNONOOPPQRRSTTUVVWWXWXY ZZ[[\\]]^]^_`aabccdeffghghhi�jkllmlmmnopqqrsstsutuvvwwxwyzz{z{| }}~}~~�������     !"#$$%$% &&'&''('(()*+,,-,-.-.�/0121234456778788989:;;<==>?@ABCBCDEDEEFFGHIJIJJKLMNMNNOOPRSTSTTUVWXXYZZ[ \\]]^^]^^_`abddcdefghiijkl�mnoopopqrsrsstuuvwxxyzz{|}}~�����     �  !"##$#$%$%&'('(�)*+*+,,-. //00/010112345656 7787899:99::;;<==>??@?@@ABABBCCDEFGGHIJIKLKLMN�OPQRSTSTTUVVWXYZZ[\\]^^_`abbc dcdeefeffgghiijijjkklklmlmnmnnopoprqrstuwvwwxyzyzz{|}}~�����������<   !!"!!"#$%$%%&'()*++,-,.//0123�456576789::;<==>??@ABCDDEEFEFGGHIIJ�KLMMNNOPQQRSSRSTUUV�WXYYZ[\\]^]]^^_`ababbccd�efgghijjkklmnoopqqrtsttu�vwxy�z{|}~� ���    � !"!""#$%&'()**+,,--.-../01121232233445455678�9:;<;<=>�?@�ABCCDEEFEFGHGHHIHIIJKLMNOOPPOPQPQRSRTUVW XYXYYZYZZ[\]^^_`a`ababbcdeefeffgh�ijklm�no�pqrs�tuvwwxyyz�{|�}~� ��    !!"!""#$%&''('())*+,-.--../01223�45667 878998:9::;<==>??@ABCD EFEFFGGHGHIJJKLMMNOPPQRQRRSTUVWXYZ[Z[\]]^�_`abbcefgghiijjkllmnnoopqrsstutuuvvwxyyz�{|}~ ������ ��C���     �  !"!"#$$%&'()**+**+,-../0/0012323445667878899:;<<==>?@ABBCDDEFGGHGIJIJJK�LMNOOPPQPQQRRSRSTSTTUVVWVXYYZ[[\[\\]]^_�`ab�cdede�fghihijkllmlmmnpqqrsrssttuvvwxxyzz{{|�}~���������   �  !!"!"##$#$%&%&''()**+,-,-./00102112345567789:;�<=>??@@ABCDEFGGHGHIJJKLMNMMNOPPQ�RSTTUTUVWXXY�Z[\[\]]^]^�_`bcddeffgfgghiijkkl�mnopqrrs�tu vvwvwwxxyyz{{|{|}~~�  ����  � !!"#$#$%$%&''&'()*+,-../011234566789:;:;�<=>==>?@@A@ABCBCCDEFFGFGHIIJJKLNOPPQR�STUTUUVWXXYYZ[Z[[\\]^^_^_`a`ababcdcefg�hi�jkl mmnnonooppqpqrststuvwwx�yz{{|{||}~~����O�    �  !"#"$##$%&&'()**+,-.-../00122343454556�789:;<=>?>??@@A@BCBBCDEFFGHI�JK�LMNOPQRRSTTUVW�XYZ[Z[\]^^_^_a`aabcdeefghijijklmlmmnnoppqrsttuuvwwxwxxyzz{z{|}}~���� � �       ! !!"##$%&&'('(()*++,+,,-.//01223456�78989::;;<<;<=>>?�@ABABCCDCDEEFGHGHIHIJKKL�MN�OPQRSTSSTTUVWXXYZ[[\\]^^_^__``a`aabbccdeghiijkklmnoppqqrstuuvwxyyzz{z{|�}~�������     !""!""#"#$#$$%&'&''()())*+,-.././0�123456778989::;<>>=>>?@ABCBCDCDEFGGHGHHIJKLLMNMNOPOPPQQRSSTUUVWXXYYZ[[\]^^_`aabcddefeffghiijijkllmnnopqpqrststuuvvuwxyzz{{|}~���*�      ! !""##"#$%&&'�()*+,-.//0/001232345667 88989:9:;:;<=>?@ABBC�DEFGGHIHIIJKLLMN OOPOPPQQRQRRSSTUVVWXYYZ[\]]^^_`abbcd�efgghghijkllmmnop qqrrsrssttuwvwwxyyz{�|}~��� �     ! !"#$�%&'()*)**+,-./00112212234567899:;<=>??@@ACBCCDEFGHIIJKLMMN�OPQRRSTTUV�WXY[Z[\]]^_``abccd�efghijjkl�mnonopqrrsttuvvw�xyz{|�}~����  �   !"#$%%&'()*+,,-.//0/0010234545567789:;;<=>?�@A BABBCDCDDEDEEFGHGHIHIIJKKLLMN�OPQRSTTUVVWXYZ[Z[\]]^_`ababcd�efggfgghhiijklklmlmnooppqrstuuvwvxyyz{|}~~����� }�    !"#$%&'()*+,,--.--../01212323345567889::;:;;<=<==>>?@ABBCCDEDEEFFGHIJKKLMNMNOPOPQRRSRSSTUVXYYZ[ \\]]^]]^^_`_`aabcdcd eeffgfgghhi�jk llmlmnnonoopqqr�stuuvwxyyzz{�|}~~� � ��    !"##$#$%&&'&'()*+,,-,-./0012322334�567899:9:;<<==>=>>?A@AABCCDEEFGHHI�JKLLMNOOPQRRSSTSTTUVVWWXYZZY[Z[\]\] ^__`_``a`abccdeefghghhiijkllmmnopqrqrssttuvvwwxyyzz{z{|}}~����      ! !!""!"##$#$$%&&'()�*+,,-,-./0//0012234454567889:;<<;<=>>?>>??@@ABABBCDDEFGFGGHI JIJJKKLKLMLMMNOOPOPPQQR�STUUVVWXXYZZ[\]]^^_``abc�defghhiijjkjkllmnmnoop�qrstuvvw�xyz{||}~��� �����  e��      ! !!"#$##$%&&'())*)*+*++,-./0112334344566789:<==>?@?ABBCDDEDEFGHHIJKLMNOPPQQRSTTSU�VWXXYZ[\]]^ __``a`ababcbdcdeeffghhijjkllmnnopqqrsstuvvwxxyyz {{|{}|}~}~~��� ��   !"!"##$#$%%&&%&'('()�*+,+,-,--./0123454567788989:;;<;<=<=>?@ABCDDCDDEFEFGHIIHIJJKLMMNMNNO PPQPRQQRRSSTU VWWXWWXYYZYZ[Z[\]]^_`ababcde�fghhijjkklmnmnonop�qr�st�uvwxz||{|�}~ �    !"#$%&&'&&'()*++,-.//0/012212345677899:9:;<==>?@@AABCDDEFGGHHIJKLKL�MNOOPPQQRSSTUUVWWXYYZ[[\\]^^_`abcbcdeffghhiijijkkllmmnooppqr�stuv�wxyzz{|}}~}~���,�     !""!""##$##$%$%%&' (()())**++*++,--.//0/011234456678�9:;:;<<=>>?@ABBCBCDCDEFGGHIIJIJKLMLMNMNOP�QRSTUVVWWVWWXYYZ[\[\]�^_``aabcdeefghhghhi�jkllmnnoppqqrsttuvvwwx�yz{�|}~~ ����� ��   � ! !!"!""#$#$$% &'&''(('(() **+*++,+,,-./0101123467789�:;<<=>=>?>??@@ABCDDEF�GHIIJJKLLMNOOPQRSSTSTUUVWWXXYZ[\\]\]^__`aabbcddefghhijk�lmnnoopqrrsstuvwwxxyz{|{|}}~~������ �     !"#$#$%&'()*+,-.-./001234567789:;<<=>?@@AABABBCDEFGH�IJKJKLKLMNNOPQQRRSSRSTTUTUUVVWX�YZ[[\]^^_``a`aab�cdefgghiijkklmmnoop�qr�stuv wxwxyxyyzz{|}~~������S    !""#$#$%%$%&'&''(''(()*+,-,-�./01001�23455656767�89:;<=>??@@ABCDEFGGHIJKL MNMNNONOOPPQRSTSTTUVWXWXYZ�[\�]^_``abcdeffgghiijkjkllm nonnoopqpqrstutuvwxyxyyz{|{|}}~~~������   !"##$%&&'()(()*)*++,+,--.-././/0112345567889:9:;;<=>??@?@ABABC�DE�FGH IJIIJJKKLKLLMNNOPQQRSTTUVUVWXWYXYYZ[\\]^^]^__`abccdcddeffgghhijkklklmlmn�opqsrststuwvwxwxyxyzz{||}}~}������      !"#$%%&%&&'(()�*+,+,,-.//0/0012345665767889:;;<;<=<=>>?@@ABCCDEEFGHHIJKLLMNOPOOPPQRSTSTUVVWXYZZ[[\[\]^^_�`abccdefghhiijklmmn ooppqpqqrrsrstuvvwwxy zz{z|{||}}~������\��  � !"#$%$$%&'&''()*+,,-.././/01223345566767789:;;<=>@?@AABBCBCDDEEFEGFGHHIJKKL MMNMMNOOPOPQRQRRSTTUVWWXYYZ[\]]^_`a`a�bcdeeffghijkllmnoppqqrsrstuuvwwxyzzyzz{|}}~}~~�  ��� ����   �  !"#"#$%&&%&'(*+,�-././001�23445676677889:;::;<==>??@ABCCDCDDEFFG�HIJKLMLMMN OPOPPQQRQRSTTUVWWXYYZZ[\]^_``a`aabccdeffghhijk�lmnnopqqrs�tuvvwwxyz{{|{||}~ ����     � �!" ##$#$$%$%%&''()*+,,-..-../012233456�789:;<;<==>=>>?@A@AB CCDDEDDEFEFGHHIJLMNNOPQQRSTUUVXYYZ[\]]^_`abcbccddefgfg�hijklklmnnopqr�stuvwwxwxxyzzyz{z{|}}~� ����� � �C    ! !""#"#$%%&'&())*+,-.././0112�3456567889::;:;;<=>>??@ABABBCBDEF�GHIIJIJKJKKLMNOPQQRQRSSTUUVWWXWXXYZZ[\]]^]^^__`a�bc�deffghhijjklmmnmnopqqrs�tu�vwxxyz{|{|}~}~����� � �� !!"#$%$%%&''('()())**+*+,,-./00122345677899:;;<= >?>?@?@AA@AABBCD EDFEFGFGHGGH�IJKKLMMNOPPQPQRSSTTUV�WXYZ[\]]^^_ ``aababcbccdefghghhijkllmnopoppqqrsstuvuvwx zyzz{{|{|}|}~� ����  ! "##""#$#$%$$%&'())*+,-,,-././0/00112123223445667677899:;:;;<=<==>??@A@ABCDCDDEFEFGGHGHHIJJKLMMNMNNOPQPQRQRSRS�TUVWWXYYZ[\]]^^_^_�`abc�deffghiijkl�mno�pqs�tuvvwxyzz{|�}~�� � �Z��       !"##$%&%&''('(()*+,-.-./00101 2232334545567�89:�;<=>@ABCDDEFFGFGGHIIJKKLKLLMNOOPQRQRSRSSTUUVWWXYZZ[\�]^_`babcbccddedfeffghiijjklmlmmnnoop qqrqrrssttuvw�xyz{||}}~������  �     !"#$%&'()(*+,-../0/012123456778789�:;<=<=>?>?@AAB�CDEDEFGGHIIJKMLMNMNOOPQQRQRRSTUUVWXYYZ[\\]]^_�`abdeffgghghj kklmllnmnonoopqrrsstuvvwwxyzyzz{|}}|}~������      �!"##$ %%&%%&&'&''())*++,-../0123323434545566767889::;<=<=?@A@AABCDEFFGHHIJJKLMNNO�PQRRSSTSSTUVVWXYYZZ[\]]^_`__`abbcd eeffgfgghhijkklmopqppqqrrstuvvwxxy {{z{||}}~}~���  2���    !"##$%%&'())*+,-,-././/01211223345678:;<=<=>?�@ABABCCDEDEFGHHIJKJKLLMMNOPQRSSTU�VWXZ[[\[\]^_`aabccdcdefgghijijjkllm nnonooppqqrsrstuvwwxyzyz{|}}~�� �������      !"!!"#$%%&'&''()*+,�-./0012234345567889::;<==>=>??@AAB�CDEFFEFGH IIJIJJKKLKLLMNOOP QRQQSRSSTTUTTUVWXWXYYZ[[\]]^^_`abbcdcddeeffghiijij�kl�mnopqrrsststuvwwxy�z{|�}~��     �!"#"#$%&'()()*+,,-./0/0101123454556678789:;<;<�=>?@ABCDCCDEFGGHIIJKLMNOOPQ RSRSTSTTUUV�WXYXYZZ[\[\\]^_^^__`a bbccdcddeefg�hijjkmlmnonoqpqqrstuuvwxyz{{||}~~~����  X    �� !"#$%$%%&'&'(('(�)*++,--.-../00101234556567899:;;<;<<=>>?@AAB�CDEFFGHGHIJJKKLMMNOPQRRS�TUVUVXYYZ[�\] ^]^^_`_``ababdeffghhijjkjkklmnmnnoppqrrsstutuvwxyxyzyz{|}~~��������      !""#""$$##$%&'()*++,+,,-../01233454556567�89:�;<=>?@ABBCCDEFFGHHIHIIJJKLKLLMNNOPQPQQRSTSTUVUVWVWXYYZZ[\]^_^__`abbccdcdeefgghiijkklmmnopqrqrrsttuv�wxyzz{{|�}~����� �   �      ! !"#$%$%&%&'&&'()*+,-../011234566789:;<=>=>?@@A@ABCCDEFFEGHIIJ�KLMNOOPOPPQRQRSSTUVVWWXYZ[�\]^_`abccdefghijjkklmnoopqrsttuvwxwxxyzz{||}~~�� ��� U    ! !!"#$#$%&'&'()()*)*+,-,--.//0�1233454565667889899:;<;<=>>?@�ABCCDEFFGHIHIIJJKLNNMNNOPOPQ�RSTTUV WWXWXXYYZZ[\[\^]^_�`abcddefghi�jklmmnoopqrrstuuvuvwxxyzz{|}}~~~�  � ��       !"!""#$$%$%%&'(()*+*+,-../0012122344567889899::;<=�>?@?@A@BAAB�CDEDEFGGHIIJJKLMNNOPQQRRSTUVUVWXXYXY�Z[\\]^_^__`abc�defg�hi�jklmmnnopqqr�stuvwxyyz�{|}~~��� �       !!""#"#$$#$%%$%%&'(()*+,--./012344567789:9::;;<=>??@?@ABCCDEEFFGFGGHIJKL�MNOPQ�RSTUTUVVWXYXYYZZ[\]]^_`a`a�bcd eefgfgghghhiij�klmn�opqrssttuuvwvwxyyz{{|}���Q     !"##$##$%&'(''(()**+*+,-,.-../01012345567899:9::;<=<=�>?@@ABCDDEFGGH�IJKLMNONOPOP�QRSSTTUVVWXYYZ[ \\]]^^]^^__`aabacddeeffghhihiijkklmnnonopopqrsttuuvwxxy{zz{|}}~~� ����� �       !"# $$%$%%&&%&'('()*+,�-./0010112234456767899:;<<=<<==>?@?@AABCDCDEGGFGGHIIJKLMMNOPQRRSST UTUVUVWWXWXXYZZ[Z[[\\]^__`abbcdedefgfhijjkllmmn�opqrrsrrsttutuuvvw xxyxyyz{zz{{||}~~���� �  !""#"#$%&&'('())*+,-.//0122345667899:;<�=>?@AB�CDEDEEFFGHGHHIIJIJKLMNNONOOPQRRSTUUVW�XYZ[[\]^]^_``aabcdefgghi�jklmmnnoopopqrsst�uvwwxxyxyyz{||}~~��� �����X�     ! !!"#$%$%%&'())*)*++,-../012323456676787889:�;<=<=>??@?@ABBCBCDEEFFGHIIJKLMMNNO�PQR STSSTTUUVUVVWWXYZ[[\]\]^^__`ababbcdeefghijk�lmnoopqqrsst�uvwwxyzz{|}}~�����   !!"!"##$%$$%&''())*++,++,-../01233445456788989:;;<=>>?@A BCCBCDCDDEFEFGIJKJKLMMNOPQRRSTU�VW�XYZ[[\\]\\]^_``abc�defghiijijkllmnoopqrrsstuuv wwxxyxyzyzz{{|}~����        ! !"#$% &&'&''('(())*)*+,,-../01233434567789:9:; <<==>=>?>>??@A�BCDDEDEFHGHIHI�JKLMMNO�PQRQRTSTUVVWVWXXYXYZZ[\]]^^_`aabcde�fghhijkklm�nopq�rstuwxyz{{|}}~�R     ! !!"!""#�$%&%%&''())*++,-./00122323345�6787899:;;<=>>?>?@�ABCDDEFGGH�IJKLLMNOPPQ�RSTUUVWWX�YZ[[\]^^__`�abcddefgghhijklmnopopqrrsttuv�wxyyz{||}}~� ������     !"!""#$#$%&'&'())*+,-../../0101122345567767789 ::;;<;<<==>?@@ABABBCDEFGHIIJJKKJKLMMNOOPQRRSTVWXXYZ[[\]]^_`aabccdeef gghhiijijkjklmmnnopqqrqrrsstuuvwvwx�yz{||}~~��� �� �    !"#"##$#$%&&'())*+,-../012212345789:;<;<�=>??@ A@AABBCCDCDEFEFGGHIJKLLMNOOPQRSSTTUVVWXXYZ[Z[\]]^_`_`ab�cdeefgfgghi�jklmmnoopqrrqrsstuvvwxwxxyz{||}~���9    � ! !!"#�$%&''('()*+,,-./00101223455678�9:;<=>>?@@ABCDDEGH�IJKKLKLMMN ONOOPQPQRQQR�ST�UVWVWWXYYZZ[\[\]]^_``abccdeffgijjklmmnnoppqqrsststuvuvwxyyz{|}|}}~���      !""#$%%&&'()*+,-./01234566789::;:;<==>=>?@A@ABBCCDCDDEFFGFGGHHIHIIJJKJKLMMNMNNOPQQRQRRSTTUVVWXYZY[\]^__`aabcdcdeffgghijkklklmnopqpqrrsttuutuvw�xyzz{|}}~���      ! !!"!"#$%'())*+*+,-./0122345456789:�;<=>>?@@A@AABCDEGHHIIJJIJKLMNOP�QR�STUTUVWWXYZ�[\]^_``abcdcddeefghghhijijkjklklmlmnnopqqrsstuuvvwvwwxy{{|}}~~����-    !"##$%& '&''('())())*++,+,-,--./001�23456778 98:9::;:;;<<=>??@?A�BCDEDEFGGHIJKKLMMNOOPQQRSSTUVWVWXWXYZ�[\]\]]^�_`abdcdedeffghhijkklmmnnoppqrsstutuuvvwxyyzz{�|}�~����      !"#$%'&'()*+,-./0//00122344567789:�;<=>?@ABBCDEFGHGHIJJKKLKLMNO�PQRRSTUVWYXYYZ[�\]^]^_``abbc�deffgh�ijkklmnnoopqrrsstuvvwxxyyzz{|}�~��     !! !"#$#$%&''())*)*++,--. /.//01011212234567899:�;<=>?@A�BCDEEFEEFGHHIIJIJJKLM�NOPQQRS�TUVWWXYZ[[\]^__`_a`abccddeffggh�ijkllmnnoppq�rsutuvuvvwxxyz{z{|}~~���?    !"#$$%&%%&''('()*+,-././�0123345�6788989:;<=>�?@A@AABCCDEFGHIIJKKLMNMNPPOPQRSSTSTTUUVUVVWXWXXYYZYZ [\[\]\]]^^_`aababcdedef�ghi�jklmmnopopqrrststtuvwvwxyyzz{|}|}}~~���� ��      !""#$%%&'())*++,++,-./00102123455678989:;<=>??@AB�CDEFGFGHIIJKKLM�NOPQQRSSTUVVWXXWXYZZ[�\]^�_`abbcdeef�ghijjkklklmnoopqqrstssttuvvw�xyz{{||}~������    ! !!"#$%&&'())()*)**+*++,,-,-./01232456789:;<<=>?>>?@A@AABCDDEFGHHIIJKLLMNOOPOPQR�STUTUVUVWXXYZ[ \]]\]]^^__`acddeffghhijk lmlmmnnoopoppqrs�tuvvwvwwx�yz{|}|}~� �K   � !"##$%&'('()*+,-.-.�/01212234545567789:;�<=>>?>??@A@@AABBCBCCDEFGHHIJKLMMNOPPQRRSRSTUVUVVWXXYZ[\\]^_``abbcddeffg�hijk�lmnoopqrqrrsstuuvwxyyz{||}}~��    �!"#$$% &%&&''('(()*+,-,,-../00123455677899:9:;<;<=>?@AABBCDEDEEFGGHJKLMMNOQRSSTUUVWXYYZ[\[\]^^_^_`aabccdeefg�hijjkllmmnmonoppqrsstuuvxyyz{|{|}|}~�����  �    ! "#$$%&'(*))*+,+,,-../0010122345567789:;<==>??@?@@ABBCDEFFGFGGHIJ�KLMMNOOPQ�RST�UVWXWX�YZ[\^]^^_`aabbcdeffgghijkklmnnoppqrsstuuvvwxxyz {{||}|}}~~��� ���� � B   ! !!"#$%$%&&'()*)* ++,+-,--.-.//0/00123455677899:;<=>�?@A@AABBCDEEFGHIJKL�MNONOPQQR�STUVWXXYZZ[�\]^_``abcdeffg�hijk�lm nnoopoppqqrsst�uvwxxyyzyz{{|}}~�  � � �     !!"#$$#$%�&'()*+,-./012122344566789:;<�=>?@�ABCBDEDEFFGHIJKKLMLNOOPQRRSTUVVWWXYZ[�\]^_`bcddedeffghhiijijk�lmnno�pqrqrrsttu�vwxxy{zz{|}~~���� �� �     !"#$%&'&''()*+,-../01232343454467889:;<<=>??@A@ABACDEFFGHHIJJKLLMLMNP�QRSSTUVVWWXYYZYYZ[\\]^^_�`abccddef gghhihijijjkkl�mnoonooppqqrstuvvwxyyz{|~��� �   "  $&*++(&#  !! !!""#$$%$%&''&'()**,-/26897520//./012345�6789:;;<>ACGJKJJIFCCBABABBCDCDFGHIJKLMLMNMNOPQPQQR�STUVVWXYZYZZ[ \\]_bdghhgebb`abbcbdeffg�hijjkllm�noppqrsstuuvuvvw�xyzz{z{�|}~~������  $'('$ !&+/,(%! !""#$#$%&'()*,-15:<=;831/././012345567889::;:;< ?BEJLOONKHDBAABCDCDEFFGHIJJKL MMNNONOOPPQ RQRRSSTSTUUVWXXYZ[[\]^acfjlligdba``bccdeefgghijiijkllmmnnoppqpqrrsrrssttuuvvwxyxyyzz{{|�}~~ � ��    $&('$!&*/00,(%!  !"#$%& ''('()()*)*,-25:<=:841/././01232345678878899:;;<=?AEJLPPOKGDCBABBCBCDDEF�GHIIJ�KLMMNMNOPPQ RSRSSTTUTUUVVWXXYZ[ \]^acgilkigcbabcddefeffghjjijjkklmmnoopopqrs�tuvwwxyyzyzz{|}~~��� � !,361) (3;ABA:2) '08AGIHD=5,'"  "#&''(�%$�#$%%&%&&'()()*)**+.4<ENSSPJB;52/001001234544567789�:;<=?CJS[aded^XRJFCCBBCDCDEFGHHGHIJKKLLMLMNMNPOPQ�RSTUTUVWWXYYZZ[Z[[\_dipv{~}ytlfbabcdeefghhijkklmlmn ooppqpqrrsrsstuuv�wxyyzz{|}}~}~~�� �� *8@D>3&  #/=HPROG<.$"+6CNUXWRG>1(#   "$'*+(%%$#$%$%&%&''()()**)+,07ANX`a\SI@720//0/001223445567789::;:;<<@ENZdlqrph`VNHDCBBCDDEFGFGGHHIJK�LMNNONOPRQRSRSTUUVUVWWXYZYZZ[]`fmvzpidbaabbcd�ef�ghiijjkjklklmlnmnonooppq�rstuuv�wxyyz{{|{|}~�� ���� *8BD?3& #0>IPRPH<0#*"+7BOVYXQH>1)"   "$')*+*(&%$#$$%&'(()*,07AOZaa]TI@82//012323456566789:;;<@EOYemqroh_VMHECBCDCDDEFEGHIJ�KLMNMNNOPPQ�RSTTUUVUVVWXYYZ[\`fnv~zqicbaabccddefghhijkkllmlm�nopqpqrsstuvvwxyzz{�|}~~� �  )6FVad_N:&  &5GYgospfWF4&+#-<N^ltwvoeVG9-%!  "&+16;=>=:4/*&$$%$%&''&''()*)+.6BSes|}xmaRF;41/01�234545567787789::;<>CL[l|wj\QIDCBCDEFEFFGHIJJKKLMNNOPQQRSSTTUV$WWXXYXXYZYZ[[\_eo|~qgcaabbccdcdeggfghijjkmnnopqrrstuvwx�yz {z{|{||}}~~�����  %3E[o~ydI/ +@YpnW?, &3G^t}iUA2'" "'-6=DGHEB:2,'%%$%&�'()*+/9I`xq_N@720/0012345677899:9::;<<>DQe{xgVKDBBCDDEFGGHIIJKLLMNOPOPQQRSTUVVWX�YZ[\aiuvjcabbccdeefghhihhjkklm�nopqrrsttuuvwwxxyxyzz{{|�}~ ~¸��    &4G[ozdI/ +@YpoV?,'4H^t~jVB2(# #&.6>DHHFB:3,&$%&''&'())**+09Jayr_N@62//00101223233445456566767789:9::;;<?EQe|xfWKEBBCCDE�FGHIJ�KLMNNOOPQQRRSTTUVWXYYZZ[\aivvjcaabccdedeef�ghijjklmnonoopqrrststuvvwwx�yz{z{{||}}~¸������� $'%!!(4AQe{cC(  *>YurW=) $1F`zqXC2'!"'0=JV^cea\RF;1*'%&'( )())*),4CZv wcP@71/001233456789:;;<?J[uzeSHDCBCDEDEFFGHHIIJKLLMMNMNNOPPQPQQRRSRSSTTUTUVWXWXXYZYZ[Z[^eppfcabbcdefghhiijjklmlmmnnopqrrsststutvwxwxyxyyz{||}}~~~ Ȼ������ %.0.)$$*3BSjV0   ""1NqlI/ '9TvmP9*"#*7FXhtzzunaRC5-'%$%&'&''('()**-7Jj ƭt[F:2/0101�23434566789: ;;<<@Nd ŪpYLDBBCDCDEFFGHIIJKJKKLLMNOQPQ RRSSTTSTUUVWXWXY[Z[^gwǩvgbcdcdefghihjkllmnoppqrstuvwwxyxyz{{||}}~ʷ ����( &.1/)$$)4BTj¬W1   #!2NqmJ/ '9UwmP9)# #*6FYhtz{vobRC6-(%&&'(''()())**-7Kjǯt\F:201123456567689:;;<@NeūpZKDCD�EFGHIJKKL�MNONOPQRSSTUUVWXXYYZ [Z[_hw ȩuhbaabbccdeeffghhijkklmnnonopqrrstuvvwwxy zz{{|{}|}}~ʸ����� "2AKPLFA@GRbtD�Ng@$  '18<;4+"*CdQ� Q]>(#2JkR �SrfH2&  '2E[s~mZG8.(&%%&'&'('(()**/=UxV �� VnTA601�234456789889:;;<BQl"�"[eQFCDCDDEFGGHIJ�KLMNNOPQRQRSTTUVVUVWXY ZZ[\`lb=�bzkcbccdcddeefghiijkkllmnnopqrrs�tuvwwxyyzz{|�}~� Q�l�_� lò��� � *?TbgcZTS[lZ�fQ+ "/;EKH@3&1S~g� hçuK-%:[i �#iŧ}V:)! !)8PpkR>0(&%%&&'&'('()**1Cbk �� kɪ`F7101011234566789:9:;;:;;<<EY{)� )npWHBBCDEEFEFGHHIJJKJK�LMNOOPOOPQ�RSTUUVW�XYZ\aqrG�r̤ocabccd�efgghihiijklm�nopqqrrsrrstuuvuvvwxxyyz{{|�}~Z�x�i�xտ��� *@Ubhc[UT\l[�gR, "/<FKH@4&2Ti� iĨuK. &:[j � jƨ~V9)! !(8PpkS?0(&%&%&'()()**)*2Ccl �� l˫aG720112343445677878899:;<EY|)� )npWHBCCDEFGHIJKJJKKLLMNOPOPPQRRSRS�TUVUVVWXXYXYYZ[Z[aqrH�sͥocabcdcd eeffgghghhijjk�lmnmnoppqpqqrsttuvvwxyyzz{|�}~� Z�xyi�yֿ����� %@[s}ut|XD�E^6 $5HYfki]L8'%?dy�Y7# !-Gl{ �*gF/$ #.Ca^TiN:,'%&'&'(''( ))**+3GhK�6oP<401�234�567899::;:;<=G[}-�}x\KDCDCDEEFGGHIIJKLLMNOPQPQRSSTUUVWXWWXYZZ[bs1�npdbcddeefgh�ijk�lmnmnoopqpqqrstst�uvwwxy�z{||}|}~ Q�6Ǵ����    0SvsZ�ZyE"  ,B[qw`F.,N�'pB' "5V �5S6& $3Nwwjƥ]A0'%&�'()**+6P}]�C[B401212 334344556567889: ;;<<=Je7�eNCBCCDEFGHIIJIJKKLLMNNOPQRRSSTUVUWVWXYYZZ[ez9�ueabcdedfghijkklmnopopqrrsrsstuvvwxxyz�{|}~~Z� <����� 1SwtZ�[zE" +C[rwaF-,N� 'pC'#5V �5U6%!#3Nxwkjk ȧ^B/(&%&'()*+7P}^� D\B5001121233456567789::;<<>Ie7�dNCDCDEDEFG�HIJJK�LMNONOPQRSTSTUVWVWWXXYZ[e{9� ufabbccdeffgghghi�jklklnonoopqrssttuvwvwxwxyxyzyzz{{||}~~ Z� <������K�  =faN1NkN1�l}K( &>[x |\=' 7\y � yL.'?c{� `?+"'8U�?nN7+&'&' (()()**,7Qy�dG712123345677899:;<<=Ic� fOECDDCDDEFGGHHIJKKLKLMNMNONOOPQQRTUV�WX�YZ[ex�Jtebcdeffghiijkkllmlmnop�qrstuuvwxxyz{||}~~�k�DZ�� )Pf@ff@�`2  .Mt  uK.$Ct �'Ù^7-K|� vJ.#)@h� O[=-'%%&''(')**+<^�uN912345567789:9:�;<>No�sTEBCDDEEFGHHIJKLMNONOPPQPQQRSSTUUVWWXYYZZ[h�Vʚygbcdefeegfgghijkklmnoppqqr ststutuuvvwwxyzz{z{|}~w� ڽ ����� )Qg@gg@�`1 .Mu vM-%Cu �'Ě_6 ,K|� wJ.#)@h�P]>,'&'()()+<^� uN910112�345656676789:;;<<>Np�sTDBCDEDEGGFGHIIJK�LMONOPPQQRQRRSTUUVVWVWXXYYZ[Z[h�Vʛygbccdedefghhihiijklm�nopqrtuvvwxyyzz{{|}}~}~~�x�ڽ�  �� =-U'�1'�'^3 ";_wF� c[6 ,K{�Fg>&!5U� |Q5&*@e*�tdC/'%&' ())())*,<Y�+sO912233456789�:;<<>Mj�rnSDBDDCDDEFEFFGH�IJ�KLMNNONOPPQRSTUUVWWX ZYZZ[Z[f|�Jtebccdceffghihjijkklmlmmnmnnooppqrrstsutuuvwwxxyz�{|}}~� ) �  �� :o3�@3�3z@ (JzZ� 'sC$4_�[ÁK*$>h� 'śb<(-J|5�yN3(%&'&''()*,Bi�6ɉZ=110122323456567789:;<<?Sx� |YECDCDDEDEFGHHIJJKJKKLLM�NOPPQPQRRS�TUVVWXYYXYZ[j�VΝzgbbcdeffghgghhijjk�lmnmnoppqsrsstutuuvwwxyzyzz{||}~~�-ҵ� �  � :p3�@3� 4{@ (J{[� 'tD%4_�\łK+ $>i� (Ǜc<(-K}5�zM3(%&'(()*)-Bi�6ˊY=101123323345565677899:;<@Sy�|XEBDEFGHIIJJKLMMNMNOPPQRSRSTUVVWWXXYZ[[j�Vϝzhabccdeffghihijklmmnoopqpqrrsrstuvuvwvwxyyz{|�}~ � -ӵ�  ���� �7fa�k; /Sm� mwG) <fF�R0)En>�ShB+-Do� yP5(%&&'&'())**.Ab�{T<12234344556789:;;<?Qp�goSECCDEFGGHIIJK�LM�NOPPQRSTTUV�WX YXYYZZ[[\g|�{rebcdeefg hhiijjkjkkl�mno pqqpqqrsrstu vvwwxxyxyzyzz{}~6�R͹   �  G�K! :j� Z0&I[� f8 .RN�iÁN00Q� ]:(&%&&'(()*0Gs�`@10123343545�6789:�;<AX�|~ZGCDEFFGGHIJ�KLMNNOPPQRQRSST�UVWXWXXYZ[Z[[j�ɘxfabbcddeef�ghik�lmn�opqqrsstuvwxwxxyyz{||}}~}~�<� ZǬ��� �G�K  :k� [1&I[�f: /SO�jāN11R� ^:)&%&&'()/Gt�b@10012232334566767787899:;;<AX�|YGCDEFGHHIJJKL�MNOPPQPQRQRRSTTU VVWWXXWXXYYZ[Z[k�ʙxeabcdefeffghhihjijkllm�noppqqpqrssttu�vwxxyzz{||}~~ <�[Ȭ � �� ;n�ll< ;h �2V0!,N�=h>%"5Wq�S40En �_Z;)%&''('())*+1Gk�yS;10011234565667899:9: ;<;<<BVw� mQDCCDCDEFFGFGGHIJKJKLMNNOPQRRSTUVUVWXXY[Z[\g}� ocabcbddcddegfghhijkklklmmnmnoopqrrstuvvwxxyz�{|}}~�Ȱ��� L�L# #J �Am;%4b�NÃK($>l�d<5Q �wlB+&%&'&''('(()+3O � _?110212234556567�89::;<D]Ƥ�{WFCCDDEFGHGHIIJKKLKLMNOPOQRST�UVWWXY�Z[j�tdbbcdedeffgghijklkllmno pqppqqrrsstuvwwx�yz{�|}~ Ӥ� ۻ�ĺ��  L�L# #J �Am;&4d�OńL( $?n�d;5R �xnB,&'()**+3Pâ�^?1101123445567789:;;<E^Ȧ� {WECDDCDEFGGHHIJKLLMMNOPQRSRSSTTUUVWWXYYZ[\j�tcbbcbdeefefghhihi�jklmno�pqrqqstuuvvwxwxyz{||}~~ԥ�ܻ�ĺ�Ŀ�;n� b7 "Btc�]5(9e<�N.(Bn)�Sd?2Ag?�teA+%&&'()*,6PxA�WoM91234567889: ;;<<=F]O�gOCDDEEFGHIHIJ�KLMNNOPQQRSSTUTUVVWWXYZYZ[g~�%mbbcd�efghhij�klmmn�opqqrrs�tuvuvxwxxyyz{|}�~Q�l_�ͼŹ�¿��� L� ~E   (S�'uB0GN�a6.P4�i{I7L~O�{J-&&'()*,;]P�kąW<12234456776789:;<>Jh`�ϦsSCCDEFFGIHHIIJKJKKLKLMMNNMNO�PQRSTTUUVWVXWWXXYYZ[[k� +ַpcbcbccdde�fghhihiklmlmmnopopqqrrsttuvvwxxy�z{|}~~ Z�xi� ˮ��� �  L� D  (T�'wB0GN�b6-P5�j}J8MP�{K/%&'()*-;^Q� lņV<100112234456778789:;<>Jia�ϦtSCCDEFGHHIJJKLMNNONOPQRRSTTUVUVVWXYZYZZ[k�+׸pcbcd�efghijjkllmmnopqrsststtuvxyzz{{|}}~Z�xi�̯ � ��$9n� 'v{M* !Cuc�2\70J}�G`8!0S�wK5<]}�TqJ1'&&'()*.?] �AbD501012122334566788989: ;;<<?Mg � gbLDCCDDEDEEFGGHGHIJJKLKLLM�NOPPQR SSTTUUTUUVVWX�YZ[f| �1jbcddeffghhikllmno�pqrststtuvwxwxyzz{|}~~~��l��{Ȱ�Л9��rɹߥ<��y�K�3b6 'T�AuD;]�[xC% 8f�ŔZ;Er�jNJT3'&' (()((*)*0Eo �PɭtK7001�23445667878899: ;;<;<ASv�|ϛmOCCDEEFGGHIJJKLLMMN�OPQRSTUUV�WXYZ[j�9ֲnabccdeefgfhghiijkklmmnno�pqrrsttuuvwwxyxyyzz{||}~~��x��ܻ�=��{��?��~����K�4c6 'U�AvD;^�\yC% 9f�ǕZ<Fs�kȋU4&�'()*)0Fo �QˮtL70122323445�67�89 ::;:;;<<ASw�|ϜnPDCDEEFFGHGHHIJJKLMNOPQPQRSSTU�VWXXY�Z[\j�9ײmabbcdeeffg�hijjklmmnoppqrsstuvvwx�yz{{|}~�x��ܻ�>��{��?��  :�9l �NuU4 <l �YW9:]Q�rD'$<dH�]�}Y:9T �T6(&&'('()*4JoV� LX>2101221234554678�9: ;;<<=CUvf�g_KC�DE�FGHGHIJJKLMMNOOPOPQRRSTTU�VWX YYZYZZ[[\f|� 1}iaabccde ffgfghghhiijk�lmnoppqrsttuuvwxyyz{||}~~ k�ʻ_�)͹ �+Ŵ�� �݆�-�I �fmC% #K �tnFHvg�ÏS,'H}[�'v�kCAe �Ǟc<(&&'())*+7Uk�^ɛeC30122323345567789:99::;<=F^{�|ϕhMCCDEFFGGHIIJKLMMNNONOPPQRS TUTTUUVVWWX�YZ[\\j�9֯mabcddefegffhij�klmnooppqpqqrt�uvwwxyyz{|{||}~~w�i� -ȫ�ފ� .л� �0�� �I �gnC$ #K �uoFHvi�őT,(H~\�(w�kCAf �ȟc<)&'�()*,7Ul� _˜fC3011221234454567789::;<=E^|�}ЖiLBC�DEFGFGHIJKL�MNONOPOPQRSTTUVWWXXYZZ[\j�9ׯlbbcbccdedeefefghhijjklmmnoppqrsststtuvvwvwxzzy{z{|}|}}~~�x�i�-ȫߋ�.ѻ�0 �*:l�:uzsmeYF2! 3^O�R;Dp� �zQ.*Iw �|)�IfA9O}�tb@,'&''( )())*-;X�AyR;1212234565789899:;;:;<;>Ia-� \^ICCDDEDEFGGHHIJIJJKKLMMNOPQR SSTSTUTUUVVWX�YZ[f{�1{jb�cdeeffghhijkjklmmno ppqqrrqrrssttuv�wxyz{{||}~~�6�Q˹ž�ì¸�rϺ� �� y� �K�MrZ?' ?xg�gIU� �c6/X �5�\}KA_�uH.'&'('(()*/Ag�Pɒ^>101234567�89:;<;>Ml7�nϕhLCCDDEFG�HIJIJJKLMNMNONOPQRQQRSTTUVVWXYXYZ[\i�9֭kbcddeffghijkklm�nopoppq rrsststtuuvwxxyzz{{|}~<�Zɲ�մ�{ð� � � J�M¯s[@' ?xh�hIW� �d70X �5�]~LA`�wH.'(()*/Ai�Q˓_?101343456789:9::;>Mm7�nЕhLCDEEFGHIIJKLMMNOOPQQRSTUUVWVWWXXYZ[[\i� 9׭labbcdccddef�ghijkkl�mno�pqrstuuvwwxxyyz{{|}~~�<�Zʳ�յ �{ñ�� ¾�A:n�DlZME@<7/% )O�{N?Po�Q<�Q]62Uq���g�tJ<My�5sL2(&'()+2Gia� 6yQ:0012122345678989:<;;@Pl�E`LCDDEFGGHGIHIIJKLMLMNNOOPQRRSTUUVWXY ZZ[Z\[f|�1|jbcddeefef�ghijjkllm�nopq�rstu�vwxyzz{{|}~�ƬR� `ʹ� տ׆�� K�ZucWQKE:.  2e�ŸbNe�hN�ht@" :i��'��'őWE\�BǍY6)&'()+5P~x�Cɑ]=0112343454456767789::;AV}�SϙkOCCDEFGHHIHIIJIKLMNONOQQPQRSSTU�VWXYXY ZZ[[\i�9֭lbccddeffgghijjklmlmmnopqpqqrrstuuvwwxyyzyzz{�|}�~�ڷZ�i⿦�Ԋ�ɵ �� �K�ZvdXRKE;.! 2f�ácOf�iN�iu@! :i��(��(ǒXF\�CȎX7)&' ('(()()+5Q~y�D˒]=01�2345 6676677889899:;;<<AV~�SϙkNBDE�FGHHIJJKLMMNOOPOPQQRRSSTUVVWX YZZYZZ[[\i�9׮lbbcddeef�ghiijklnmmnnopqpqr sststtuvuvvwx�yz{{|}}~}~�۸Z�jՊ�ʵ�� `;n�XmO</%  &Gy�xNF^F�e�3i>#":bH��H� �RAMw�Z;+&'(()+:T}+�+{S;012344545�67878899:;=DX{[�"dMDDCD EFFGHJLOQQPNLJKKLMMNNONOPQRRSTTUTUUVVWXYZZ[f{�1|jdfikmmljhgefgghhijloqrqqnmlmn�opqqr stvxz|{zyxvwwxyz|}~�k� ˼Ȉ� )ͺ Ǹ�ŷ��K�sfM<.'"  .Z�šbVw[�Â�AÄJ'%Ez[��\� �dK\�kB,&&'()),?a5�6ɔ_>01233455676789::;<=Gbm�)ϡpPDCCDEFEFFGKNQTURPMJJKJKL�MNONOOPQRSTTUUVWWXWXYZZ[i�9֭mdgknqpnljgfghikmqtuurpmmllmmnoopqr tuvz|}~}zxxwxxyx{|~~w� ͭۖ� -ɬ �ѿ� L�tgM</'"  .[�ÛcWx[�ă�BŅK'%E{\��\ �dL]�kB,' (''(())*-?b6�6˕`?001233456789::;<=Gan�)ТpPDCDDEF HKNRTTRPMKJKLKLMMNOPPQRST�UVWVWXXYXYZ[\i�9׭mdgjmppoljgfgfgghijmqsuuspnmmlmmnoopqqr tuwz|~~|yxwxwxyy{|~~~x� ͬܗ�-ʭ�ҿ � �� � �;n� XoF*  ')*6Nz�vRNl�y� uF''Dq�g4�h]FPv� TkF0('('('()*0Cdv�W;0'11358<>>=;8665656767877889:9:;:;<;>Jc� kQDEFFHLRZbfgd]VQNLK LLMNRTUVUTRPQQRST WY[__bcb``]\ZYZ[\\g|�1~nkrx~ytnihffg hjnt|yupnm0nnpooppqstuwxz{~|yxwwxxy{}C� D˴�«*�û-� �K� sZ5! '.33Bc�—gb'�'Ü� ÓU-,S'�ŪB�qT_�jĂP3(''()*3Kw�ɘc>01 46:>BB@=:76566778789:9:;;?Np�ϫwUDEEFFJNVakqrld\TOKL NOSUWZXURPOPPQRRSTTVXZ]acdffdb_]ZYZ[\i�9֭snwypjghhjpx~wrnmmnop+oqqruwyz}zxwxwxy{K� K¥�ӳ.�!ü/�� K�t[5! '.43Cd�Øhc'�'ĝ� ŕV.,S(�ƫB�rT`�kƂQ4(&''(())()*2Kx�˙d>0101146:>BBA=:7566789�:;?Np�ϫxUDDCDEEFFIMVbjqrmd[SOLJKKLLNPRVXYWURPQRRST VXZ]acefedb_]Z[\i�9׮rnwypjhgfghjpx~wrommnoppoqqruwxz}~zwxz{~ K� K¥�Դ.�û ¾0�� �;n�kW.  $2>KPOUg�xWY{��Q� O,-N�vH�IhNRu�T7*'()),6Pw@�X=101139?HQWWTME>87566789::;<ARp�oSEDCD%EEFGLTbrzm`WQMLLMOSX^eikga[VRRQQRQRSSTVX]ahmruxzxwslfa][\f|�)1vz|rkhffhhinwyrooptvyzy)|~~zywxz| � lɭD� nʰ9�!cȿþ<��iK�q;  +>O_fdm�šop��h�a44`�\�\]c�ǝc>+'()()-:\P�ɝfB1 4;DP[cc_VKB:8677889:;CX�ZFD'EEFEGMYkyh\RNLKLOT\dlqsph^WRQPQQRRSUWZ`fmtz{rjc][i�Y9ׯ}wmhgfhgjp{~uoorvz|~}~~{xwxy|½ � x߹K�yݺû=��k:ȼƿſƿ?��o � K�r;  +>O`gen�Ûoq��i�b44`�\�]ǀ]c� Ȟc=+''('()),;]Q�˞fA01124;DQ\cd_VLB;7566788989:;;CX�ZFDCDEFFGMXkzi\RNLKMPU\dlqsoh^WSQRRSTTWZ`gntz{rjc][[Z[\\i�9װ}vmifgCjp{~uoosvy|~}~~{xwxz|¾� xߺK�yݻĻ�>��lȼſǿ?� o���;n�kL%  ,AYo�z^ce��y�� fY45Yf�kw]�4tUVu*�idB/(' (()(*/@`�[?129CRdt}ym^OB;867789:;;=EZ}O�swXGCDDEFIRbz{i[QMNQW`lxzl_WRQ!RSRTVZ`goxyld^\[\[\g|�1rjgghhks |vuy zwy} ƽ� _�`εɼ9�+r֪rrķûž<� yyy�� �K�c.   "6Rr�x���'�o=! =n�šv�BƐhh5�yJ0('())(*1Hq�ɢjD1013;H\tmYH=7667878989�:;=Hc`�`HCCDDE FKUlѿs_TNOS[gvvfZSPQ!RRSUV[cmxtg_[[\\[i�9ײӻvlglw+xw~ѻ{yz~�г� Բi�iɷ=�{{{Ͻ+?� �L�d/  !7Rs�Þy���'�p=! =n�Ƣw�BǑhh5�yK0(''()*2Hr�ˣjD13;I]umYH=767899:;<=Hda�`HD EEFFJVls`TNOS[gvvfZSPQR SSTV\cnxsf_\Z\[\i�9׳Լwmhgghlx ªxw} һ{xz~ ѳ� Բi�jʸ>�{||Ͼ?� ��:n�kJ% 0JlO�Y��}emF���2� Qg<#":bG�4xgu^� ^[u*� *wO5*''((),5LrV� ]@2114>RmkTC;767889 :;:;;>Jd �\}]KDE!FL[s.��:ujZRT\iyraWSQR SUX^hrqe^[[\\g|�1J�d}nhgn{~�Xg'��g®}y|ªi �Bwƺ�y� ˻Ȉ� )κ|��)oû9�rr�søs�:t$ɿ؄��,v½<�yy�y�K�`, !;`g�t��¡[���A� hÁI&%Ez[�BŖv� sn5�5ǒ]9*''())+9Xk�mF3115C[˼}^H<76678989:;;<>Oq�n͐eLD1EEFMb7��FѺu_TVasθ~gYSQRQRSVZbo}Īxh_\[[\j�9׷V�sŢqighgpő�eѲu,��u{}v� Jδن� ˫ܖ�!-Ǯ݈��-yιŹ=�{{�{;|�>|$ź��/}ſ?�� �K�a-  "<ah�u��ã[���A� iŁJ&$E{\�BƗw� un5�6ȓ\9*'('(()),8Xl� nF2115C] ~^H;76768789:;<?Or�oΑfLDE/FMb8��Fѻv_TWasϹ}gYSQRQRTV[bo}Ūxh_\[\\i�9׷­V�sơqhgpő�fҲu,��uz}v� Jϵ�چ� ˫ܗ�-Ȯ݉��.zϹƺ>�{{�|;|�>}'ź��/~ſ?�����8�;o�kJ%   .MtO�(�lx���(� tG(&An�Hqcv4�hg`w*�^>-()-=[ �aC2017Gc!��XjP?7667789:;<<@Rq}�9bLCDDEFOb.�%#~g[_o^#�/o]UQRRSU[cqx`T�$mpc][[\g{�1 � vjggiq�ffgg� Aª~i�(^� D˴ã�ο|�*ϻopopŷ9�U9��+W� Մ�,vü<�Z<� �  K� `, 8bg�3�¦'��'�4� ÓV.*O'�\ō{B�~u5�qF/(''()/Dk �qH2119Os(��l˪|YB867899::;<CY�EϛlODEEFFRl7�%*pae{Ҩp*�8ƞzbUQRRSV]h{ԍqc�+յwg^\j�9׼� {kghit�Եڑu�� Iܻv�,Ѳi� Kæմ�ε׈�-ȼz=�\>��.]� Ǻ�/}}~~ƾ?�_?�   L�a- :cg�4�ç'��'�4� ŔW.*O(�\Ǝ|B�u5�rF/)()/Dk �rH2119Pt)��m̫|YB8667789899:;BY�EЛlOCDEFSl8�%*paf{Ҩp*�8ƞzaVQRRSU]i{Ԏrc�+յxf^[\\i�9׽� zkggit�յے�u�� Jݼv� -ҳi� Kæֵ�ε׉�.ȼz>�\>��/]� Ǻ�/~ƾ?�_@� ��;o�kJ% )Gq'��u �F � fN-)Hw �]k`u�Iodx*�JpI2())*2Hka� cE311<Qs!�\E86789:;;<EZ}O�"gPEDDEFQh� uiq;�fXRQSV[fwH� 1k`\[\f|�1p� K{mhgju�� h4� 6� _˰�ñ�ú�TǶ9�+ˬ�+� W̾��Y<�- K�`- 1Z3�'�¬ �[ö � `4.X �vw�\z5�]LjU6)'()*5Qx� tK501?Z(�iJ967889:;=Gc`�)ϥsSDEEFFTs� t~F�oZRQSU]lӪU� 9ձqa]\\j�9׿Ɓ� Vңoghjz�ӽӠ� uԮ;�ɨ�<� iὡ�Ի��\ֿ=�.׺�.� ]ķ��^ļ?�0L� a-  1[4�'�í �[ķ � `4/X �ww�]{5�]ɉU6)()*5Ry� vL511?[)�hJ9789899:;;=Gda�*ХtSEDFUt� tF�n[SRSU^mԪU�9ֲpa\j�9ǂ� WӤnghiz�Խӡ� vծ;�ʨ <� iὡ�Ի��\׿>�.׺�/� ^ĸ��_ļ?�0 �C;o�kJ%   =gE�F�z�[� RQ/-N�rdYm�qdx*� X:+(),9T � xgF511>W�YdI:67789 :;:;;=Ic��O�nSFDDEFFSl�]|�r]SSU[f{<� Uud]\\f|�1|� oghkz~� � A�Oƪ� zǬ�ǵ�ǿŵ�9��e�tȻο��ǿ<� �K�a, &LZ�Z�°�uå� hd74`�|m�(Ë{5� h@-()->b(� yN611Bc�ltO;787899:;?Np��`�|XGDDEFFVx�oɧ�ҩ}aTSU^nͷF� cС~g^\\i�9ֿǏ� ذrhhnϑ��ͽJ�Y޸� ܷ���Ͷ=��l�|ѿ��?��� K�a-  'N[�[�ò�vĦ� ie74`�}m�(Č|5� h@-(->d(� zN711Be� mtO;6677889:;;>Nq��a�²}YGDEEFFVx�pʨ�ө}aTRU^mθG� dѢ~g^\\i�9Ȑ� ٰrggnБ��νJ�Y߹� ݷ���Ͷ>��m�}�� ?� - ;o�kK% /Vc�n�yoq2� f}M-1Uq�\N^S�4j`v*�_gD/)(())0Cev� bkH512@^�YiI:7899:;@On� �~uWHDDEFFRk �] � |cUSYfyw� i^[\f|�1 � qghoX�f�i� �é7�|˹³�ž� pȷԍ*�V���·п�� w-���K�a, ;o�¶�A� ^49i�q_si�Bv5�w}N3()*2Kx� y~P612Ek�lyQ;66789:;;AV��^HDDEFEEFVy�oȪƵ� iVT[kӍ� n_\\i�9׼� عuihqe�t�ǫv�Ȧ� ֲ<��� zؿ.�]���ɺ�� ~/� L�a-  <p�÷Ð�A� _49i�q_tj�Bw5�y~N2())3Ly� zP612Em�mzQ;6789:;AV��^IDEEFFWy�pɪǶ� jVS[kԍ� n_\\j�9׽� ٹuhhqf�u�ȫv�ɥ�ֳ<��� {.�]���Ⱥ�� ~0���A�;o� kS0 "Bs�Z�_YpG� zM/4Z\�~SAJnh � }~]Yr?�+{Q6+(()+8Px6� bmK713Db�fH867889:;;BVy[�["�\}]JDDEEFRk�#� SiXVau_� apa\]f|�1c� thjt�L� �j� D�nλ�a� pͽԛ*�9ſמ�Xɻ�g� w-�=�K�l=" (T�»t�ãwp[� _7 !>pv�şfMX � qlO�5Ǘ_;+((),;]C� yS915Js�vN9789::;E`m�n)�n͑eMDDEFFVv�λ*� bҙr[Veq� r̙wa\\j�9׷s� xijx�W�ʳ�v֯�� ѯK�y�j� zǾ.�>�]�n� ~/� @��� �L� l=" *T�ýv�ĥxp[� `7 !>pw�ƠfNX � rmP�6ɘ`<+((),<]C� zÂS814Kt�vN977899:;Ean�n)�oΑfMDEFVw�ϼ*� bҚrZWeq� r̙wa\\i�9׸s� xiix�W�˳�wװ�ѯL�y�j� {Ⱦ.�>�^�n� ~0�@��;n�kiL<61' /WO�Q�uQFUvQ��3~X<) #9`R� yM56NnS4��4cMQo?�� � `@.)()/@`��� WoL815Gh�aE97789:;=H`"�D�9dNFDEFEFFRj��/�^� #p\[jw� =uc\\g|�1 � wkkz�Lf�N�ii�Bƪ� ˼`�Rμ7�ͺ8�qq*�9sd�̽Ԟ�tt+�;�;�ww-�<yi�� K�cMD>1% :pg�g�ÖeWköh'��AßmG.#'Cwi� ŗ]>>_iB��By\aO�� � sI0)(*1Hq��� lDŽU:16Oz�˥nJ878 99::;;:;=Ll)�S�EϝnQEFEFUv�8o� *ҥz`]rǍ� Gե~e\\j�9׳� Ț|lmΟ��W�t�ƷX�vv�J޷�ͬi�Z=�=�z{.�>{l��||/�ƾ>�?�~~/�?o�  K�cMF>1$ ;qg�i�ėfWkĸi'��BšmG/"&Dxj� Ƙ^>>_jB��Bz[aP�� � tH0)()0Is��� lɅU:06Oz� ̦pJ96787899:;>Ll)�S�EОnQEDEEFEFUw�8p� *Ӧz_]sȍ� G֦~e\\j�9׳� ɛ|knΟ�Wu�ƸX�vv�J߸�ͬi�[=�=�{{.�>|l��}}/�ǿ?�?�~/�@p���;o�kxlg]M;*>o�O2�<�2uRGNf rW@/,>e>� sH-(6IazdH=Jn?��?� @sL4*(+5LrK� V� LrN917IkM�,ZA867789:;;>Ni�9[� kRFEFEGQj��R��u``t �Tm$� zf\]g|�1>� }znpL� �u ��4��(ǭ � ˺m�Eξ�ȶ8�ǩ�9 ͿҞ�t�uƾ�;�׳�<���K�ydL4"%N�g@�ºN�AÕhWa ĹlM72J}N� őU3+>XwzVFWO��P� PnjX7+(+8X]� k� ^ʈX;17R~^�6˙fE767889::;?Sx�Dn�ϫyVFDEEFEFVv��b��ӱdd�c*� հj]]j�9ׯH� ҢpsW��ֽ��;��,޽� ʪy�K�=�ַ�>Ȼ�|�}�?��? K�»ydL5"%P�hA�ûN�AĖhWb lM62K~O� ƒW3,?Wy¢{UFYP��P� PɍY7+(,9X^� l� _ˈX<18Q~_�6̚fE78879 :9::;;?Sx�En�ЬyVFDEFUv��b��ӱed�cՀ+� ְj]]i�9װH� ӢosW��׽��;��-߽� ʩy�L�=�ָ�>ɻ�}�}�?� �@�;o��X jM4 )Oc�O�<�<f]bqdI;Hk3�)pE* '0>N^ipodUC42El?��t� [<,)-=[ �Vl� AuO817Ii,�7wS>67899:;BStq�q�sWHEFFRj�]/�zcczk��l�y� i]\f|�1~|�Wrv�e&�MgM�t­i� � ư� ˹{�7�ó8�bb�r¼ў��t�I�;�hi�y ��K��s cA'3e�g'�¾N�Nçu| ħ~XGXA�5ŋR.!(6I^s{gO98PO��� lC.)/Dl �k� PʌZ<19Pz6�Dˌ^A667789 ::;:;C[É�Υ�^IDEFFUv��o�8�ih���� ǹm^\j�9׮͏�eجu|�tٺ̽,�XuX�u��� ȩވ�<�Ҽ=�kk�{ù��|�N�?�nn�� �L�t cB(2g�h'�N�Nħv}~YHXB�5ƍR/!)7I^s|hO:8QP��� lC/)/Dm �l� Qˍ[<18Q{6�D͍^A67889�:;C[ĉ�Ϧ�^IDEEFFGVu��p�8�ii���� Ⱥl^\j�9׮ΐ�e٭u|�tں̾,�XuX�v����ɩވ�=�Ӽ=�kk�{Ĺ��}�N�?�oo�  ��;o�XX� b|W7!5`1�c�(�QR��)zlTWr)�4lB( #)1:AEE>8.',Ci?�� UkG1+3HnV�w� 6xR:15E`n�XkM<78879:;<D[9��  �\}]KEFRj�]�~fe{_�x� l^]g|�1w �%xe� ff�3�í'�vļ �Dz� ˹ȉ�7þȳ�8�~½ĩ�rɼў�eڮ�ӿ�;�ճ� y �K�ss� pD(%C|@���4�hò h��4hj4�BŇN, %-7CLQQJ>2*0NO�� jĂP5+6Sk�� Cʐ]>18Ko�l|T>7889 ::;;<GfD����nˏfLDEEFVv�oљ�nlq�ſԸ� p_\j�9׭~�+ظ~t� Ţtt�:�ܿ,��  � ȩܗ�=�ι=�ѷ�{ż�m��?�޽� � ���L�tt� ¢pE(&C}A�Â�4�iij i��5hl5�BƈO+ %-7BMRQJ?2)0NP�� kłQ5,6Sl�� Dˑ]>17Ko� m}U>6778789 ::;;<HgE����oːfLEEFEFFVv�pҚ�Žnlq�չ� ‘q_]j�9׮~�+ٹt�Ƣuu�;�,�� �ɨݗ�=�ι=�Ҹ�{ż�m��?�߾�    ;o�1 � 'T3-Br ��� �(��QQ�3�frj})�>i@'!$)-00.)%")Aj?�T� T8.:W�A� +{T<13>RpB�7]F967898:;;=Jc �D"�9dNEFRj�]/�jidu�`� yn_]f|�1~r{J�&�e{|g�g­�ļŞ� ǯ�˺Ȗ�˦�7м8�~ѾʷT�9�r³ў��ְ�;;�Z�<�y��K�@ � 3l?7U ��'� ��4��hh�A�4�OŁK*!&+2653,'#,LO�j� Ǜb>1@f�Pɮ� 6ɔa?15B]Q�DjK:6789:;>Oq�R)�EϝnQEFFVv�o8�Ȓpj�qıԛ� Ȗt`\j�9׭wV�ǝ+�tڰ�u�u�ѿݲ�޿�ʪۦ�޶�=ɶ=�ɿ\�=�{̸���??�_�?���L�@ � 4m@8U ��'� �4��ii�B�5�OƃL*"%,2653,&$,MP�k� ɜc>0@f�Qʯ� 6˕a@14C]R�DkK:76789:=Nq�S)�EНoQEEFUv�p8�ȓqj�rű՜� ɗta]i�9׮xV�ȝ+�tڰu�v�޲�߿�ʪܦ�߶�=ʶ=�ʿ\�>�{͸���??�_�?� � ;o�rH<Pm�FF���(�[�z~�>g?&!%)16:;94.),BhT��udC6Dgk�� W=128EWrfO?86789:;:;@Nm�qP� mUIIJHGHQj�]�^i`mT�<H� mpa\e|�1|nt�d�}tsy�A±i�iİj�Bǫ�˼ȉ�͘�Eк8�~лq9�q�rվў��ء�J;�w<�x� y��K�\Lf�ZZ��4�uö�'�OJ(!&-7=BCA:4,1Mj��wL;N|�ɼ�ʚdA24;LduVB967878 9:9::;;@V~�ʭ`�Ϭ{[KKJIGGVv�oљ�q̖qeub�GѻU� Λwb\j�9׮s{ʞ�s׭˞�Ȟtu}ۯ�Iťu�v¸v�J޹� ͬܗ��LǴ=�Ŷ{=�{�{ȳ���N?�~?�~ �� L�\Mg�[ó[�4�vķ�(�OƀJ)"&.7>CCA:3,2Mk��xL<O}�ʽ� ˜eA23;KdžwWC87899:;@V~�̭a�Э{[LJJIGHVv�pҚ�q͖qfuc�GѻU� ϛwc]j�9׮t{˞�tح̟�ɞtu}۰�Iƥv�vøv�J߹� ͬݗ��LǴ=�Ʒ{>�{�{ȴ���O?�?� �¿� ;o�;ZJ\O�Yusc��[[��Sd=&!'1>MX__\SG;7FhT�~*�5uQDSz+��+� Z>114:CScr}|qaOB:7677878�9:;:;AVw[� r�g[ZWRMJSj�]/��#�_j]bw_��0y� arb\f{� 1}mo �%L�?vooqv{� N��j�{�7|�Sй8� ~Ϲ��rվў�+�uۄ�X;� � y�K�Ms_wg�t���uu�'ĸ�i|H(")7I[ksupdUD>Rj�5�Cȏ^Mb5��6� ʟgB115<I^roXE;7889:9:;C_m�ʹʼn�Ósd`[VOKWv�o8��*�qИrahq��9ԍ� rӟyc\h� 9׮pr�+V�Hٴzposx� ͫX��vװ� ѯވ�<�[ų=� °��{ȳ�/�}�^?� � �  �L�Nu`xg�u×���vv�'ź�j~H)")8J\kuvpdUD?Sk�5�Cɐ^Mb6��6�˟gC225<J]spXF<789:;;C^n�ϴƊ�Ĕtd`\VOJWv�p8��*�qљqbhq��9Վ� rԠyd]i� 9׮ps�+W�Iڵzoorw� ΫX��wذ� ѯވ�=�[ų=�ñ�|ȳ�/�}�^?� � ��;o�dSf;�meb��[e��Sc<&!'4IaxmXIOkT�t_�cVf��w��\@21359@GPVYVQI@:766788989:9:;:<E\8�9sx�\zvpeYQVk�]�^� _jZ[g{0� Itb\fz%� 1}kj{W� �rmnnortvz@� '� Ŀj�6� ¨m�7|�aи*�~з�rվў�Wǽ�g܄�h,�½�y �K�kM�}���uÂ����izF(!)<WvjV^j�w�vdz����ʤkE25;CNYbebZOD;8667899899::;:<JhD�D͡�n϶~o`TZw�o�p� qӛs]]n9� Uգ|e]i+� 9׮omd��Σsonpqqux~I� ײ,�v�ɦ <� ղy�=�jò.�­�{ȳ�]�m�n/�Ž � ¿L�‚lN�~��vă��j{G(")<WxkW`k�x�ve{����˥lE3235;CNZaebZOD;867878899:;;<IhE�Eϡ�oжp`TZw�p�p� qӛr]]m9� V֤|e]i+� 9׮ome��ϣsnnoprvy~I� س,�v�ɦ<� ֲy�=�jIJ.�­�|ȳ�^�n�n/�Ž �� � ;o�aVk'�ZUr�(�[�� Sc;%"/HjS}d^rT�t �Uym~@���+�_B2459;?=:7678899:;;=Je �[ov��9 o][m�]/� � GkYV\hyH� Ivc]fz1� 1}jgt�dq�xonoops{s� gª|�AŬ �OƪP� ƫ`�En�oж�~Ϸ�rԾў�tŻ�Xu�v�� y�K�&~n3�rl'��4�uö���'�izE(%6ViijjƟzrj�Ǻ �kȔP���6�oG312245:>BCB@<97677889::;=Or�m͘��E Ž}dbz�o8�� TӜt[V_nU� Uզ~f]h9� 9׮mhyȬ��s��ټ{qmnoptۃ� uܻ|�J�Y޹Z�۶i�Ky�z²��{ȳ�|�^}�}�Ļ � L�'o4�tm'�4�vķ�(� j{F(%7VjǠ{sk�Ȼ �kɕQ���6�oH4122459>BDB@<976�7899:;=Or�nϙ��E Ž~ebz�p8��Tӝt[V_oU� V֧g]h9� 9׮nizȭ��t��ڽ|pmnnooptۄ� uܻ}�J�YߺZ� ܷi�Lz�z²�¬�|ȴ�|�^}�~�ļ ����;n�byURn�zSMg2�(�Qe�)� Sc<&)<^^�ozT�i@��a6�bD3234567�89::;;?Om�{9� \ofr��/�j/�GlYSWao`� 1xe\fz1� 1}jeo��&�&�esmmnnooqx � A°}z�[Ź'� k� l˯7�`n�oж�~ϸ�rվў�Ļ�Iu�v��y¿�� K�mi�ja@��4�hÂ�ĵ4� izG(,Fsv�(j�P�ȹ�yɲC�sJ423445677899:;;@V~�ͣE�Ϧoɣ}p��8�~8�Tӝt[SZexq� 9ժg]h9� 9׮ldr��+�+�tתvnos{Ѿ� Iâ}{ǿ��g,� ̪w� xἠ<�iy�z��{ȳ��N}�}�ú ��L�ni�jbA�4�iă�ŷ5� j{G),Gtw�(k�P�ɺ�yʴC�sJ42�34565678�9:;@V~�ϤE�