{ From user jvip, Model Op_en2676 at 29. lokta 2009 14:07 } Softwareversion 4.2.1 Attribute Awp_attrib Askattribute Recursive,Function,Yes Askattribute Awp_attrib,Function,Yes Askattribute Awp_attrib,Module,Yes Askattribute Value,Variable,Yes Askattribute Check,Variable,Yes Askattribute Balloonhelp,Variable,Yes Askattribute Domain,Variable,Yes Askattribute Awp_attrib,Variable,Yes Linkmodule Op_en2676 Title: Opasnet base connection Description: Interface for uploading data to and downloading from the Opasnet Base.~ ~ Author: Jouni Tuomisto Date: 9. maata 2008 10:42 Saveauthor: jvip Savedate: 29. lokta 2009 14:07 Defaultsize: 48,24 Nodeinfo: 1,0,0,1,1,1,0,0,0,0 Diagstate: 1,27,12,799,499,17 Windstate: 2,102,90,476,316 Fontstyle: Arial, 15 Fileinfo: 0,Linkmodule Op_en2676,2,2,0,0,M:\väliaikaiset\basetest_nonxml.ANA Att__diagramprintsca: 100,1,1,1,1,9,2970,2100,15,0 Outlinerstate: 2,40,50,640,600 Text Te2 Description: This module saves original data or model results (a study or a variable, respectively) into the Opasnet Base. You need your Opasnet username and password to do that. You must fill in all tables and fields below before the process is completed. Fill in the data below from top to bottom.~ If an object with the same Ident already exists in the Opasnet Base, the information will be added to that object.~ Before you start, make sure that you have created an object page in the Opasnet wiki for each object (study or variable) you want to upload. Nodelocation: 260,84,-1 Nodesize: 252,76 Formnode Username1 Title: Username Definition: 0 Nodelocation: 168,244,1 Nodesize: 160,12 Nodeinfo: 1,0,0,1,0,0,0,142,0,1 Nodecolor: 52425,39321,65535 Original: Opasnet_username Awp_attrib: TabIndex:1 TextAlways Formnode Password1 Title: Password Definition: 0 Nodelocation: 168,268,1 Nodesize: 160,12 Nodeinfo: 1,0,0,1,0,0,0,142,0,1 Nodecolor: 52425,39321,65535 Original: Opasnet_password Awp_attrib: TabIndex:2 TextAlways Button Upload_data Title: Upload data Nodelocation: 120,692,1 Nodesize: 48,12 Windstate: 2,31,25,825,451 Aliases: Alias Upload_data1, Alias Upload_data4 Script: (Lap:= 1)~ ~ showprogressbar('Data upload','Reading object Info1_2', 0)~ (Cardinals:= array(table1,[card('Obj'), card('Cell'), card('Loc'), card('Loccell'), card('Sett'), card('Item'), card('Res')]))~ showprogressbar('Data upload','Writing objects',0.2)~ ~ Write(W_obj,'Obj')~ showprogressbar('Data upload','Writing locations',0.3)~ ~ O_i:= DBquery(odbc,'SELECT * FROM Obj ')~ O_j:= DBlabels(O_i)~ (Obj2:= DBTable(O_i, O_j))~ (O_j:= copyindex(O_j))~ (O_i:= copyindex(O_i))~ ~ Write(W_objinfo,'Objinfo')~ Write(W_loc,'Loc')~ showprogressbar('Data upload','Reading sets and items',0.4)~ ~ S_i:= DBquery(odbc,' SELECT * FROM Sett ')~ S_j:= DBlabels(S_i)~ (Sett1:= DBTable(S_i, S_j ))~ (S_i:= copyindex(S_i))~ (S_j:= copyindex(S_j))~ ~ I_i:= DBquery(odbc,'SELECT Ind.id as id, Ind.Ident as Iident, Ind.Name as Iname, Dim.id as Did, Dim.Ident as Dident, Dim.Name as Dname FROM Obj as Ind, Obj as Dim, Sett, Item WHERE Ind.id = Item.Obj_id AND Dim.id = Sett.Obj_id AND Item.Sett_id=Sett.id AND Sett.Settype_id = 1 ')~ I_j:= DBlabels(I_i)~ (Ind1:= DBtable(I_i, I_j))~ (I_j:= copyindex(I_j))~ (I_i:= copyindex(I_i))~ ~ L_i:= DBquery(odbc,' SELECT Loc.*, Ind.* FROM Loc, Obj as Ind WHERE Loc.Obj_id_i = Ind.id ')~ L_j:= DBlabels(L_i)~ (Loc1:= DBtable(L_i, L_j))~ (L_j:= copyindex(L_j))~ (L_i:= copyindex(L_i))~ showprogressbar('Data upload','Writing cell Info1_2',0.6)~ ~ Upload_results~ Formnode Study_or_variable_i1 Title: Study or variable info Definition: 0 Nodelocation: 120,564,1 Nodesize: 112,12 Nodeinfo: 1,0,0,1,0,0,0,78,0,1 Nodecolor: 52425,39321,65535 Original: Index_info Text Te20 Description: Copy-paste a data table. Nodelocation: 260,464,-1 Nodesize: 252,120 Nodeinfo: 1,0,0,1,0,1,0,,0, Windstate: 2,693,146,476,224 Module Advanced_upload Title: Advanced upload Author: ktluser Date: 1. Aprta 2009 9:38 Defaultsize: 48,24 Nodelocation: 648,392,1 Nodesize: 48,24 Nodeinfo: 1,0,0,1,1,1,0,,0, Diagstate: 1,438,47,598,466,17 Module Writer Title: Writer Author: jtue Date: 24. maata 2009 9:36 Defaultsize: 48,24 Nodelocation: 176,504,1 Nodesize: 48,24 Diagstate: 1,629,194,633,439,17 Variable W_loc Title: W Loc Description: Makes a table to be written to the Loc table. Definition: index j:= ['id','Std_id','Obj_id_i','Location','Roww','Description'];~ var a:= Locations[.j=j];~ var b:= a[j='Obj_id_i'];~ var c:= textify(cardinals[table1='Loc']+a[@j=1]);~ a:= array(j,[c, c, findid(b,Obj,'Ident'), a, textify(a), a]) Nodelocation: 440,176,1 Nodesize: 48,16 Windstate: 2,156,83,476,245 Valuestate: 2,642,68,606,278,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Att__tableprintscali: 100,1,1,1,1,9,2970,2100,15,0 {!40000|Att_resultslicestate: [Sys_localindex('I'),16,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable W_loccell Title: W Loccell Description: Slices fields that are needed in the Locres table from Inp_locres. Definition: var a:= Loccells;~ var b:= textify(findid(a[.j='id'], Obj, 'Ident'));~ var c:= textify(a[.j='Loc_id']);~ b:= findid(b&'+'&c, (if Loc.j='Obj_id_i' then Loc&'+'&Loc[.j='Location'] else Loc), 'Obj_id_i');~ a:= array(a.j,[(@a.i+cardinals[table1='Loccell']), (a+cardinals[table1='Cell']), b]);~ textify(a) Nodelocation: 424,296,1 Nodesize: 48,16 Windstate: 2,776,90,476,487 Valuestate: 2,178,73,453,537,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 Variable W_cell Title: W Cell Description: Slices the fields that are needed in the Res table. Removes duplicate rows. Definition: index j:= ['id','Obj_id_v','Obj_id_r','Mean','SD','N'];~ var a:= Cells;~ {index i:= unique(a[.j='Cell_id'], a.i);~ ivar a:= a[.i=i];}~ var b:= a[.j='id']+cardinals[table1='Cell'];~ a:= a[.j=j];~ var c:= findid(a[@j=2], Obj, 'Ident');~ var d:= w_obj[.j='Ident'];~ d:= findid(d, Obj, 'Ident')[@.i=size(w_obj.i)];~ a:= array(j, [textify(b),c, d, a, a, textify(a)]);~ if a=null then '' else a Nodelocation: 424,240,1 Nodesize: 48,16 Windstate: 2,799,214,476,379 Valuestate: 2,85,264,505,368,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Variable Wikis Title: Wikis Description: Names of different wikis used. Definition: Table(Self)(~ 'Op_en','Op_fi','Heande','En','Fit','Erac','Beneris','Intarese','Piltti','Kantiva','Bioher','Heimtsa') Indexvals: [1,2,3,4,5,8,9,10,11,13,14,15] Nodelocation: 288,24,1 Nodesize: 48,16 Nodecolor: 65535,52427,65534 Reformdef: [Self] Variable W_obj Title: W Obj Description: Selects relevant information for the Obj table from Objects1 node. Definition: index j:= ['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id'];~ var a:= Objects;~ var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];~ b:= findid(b, Obj, 'Ident');~ b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;~ a:= if a.j='id' then b else a;~ a:= a[.j=j];~ a:= if j='Ident' and a[j='Ident']='' then a[j='id'] else a;~ var c:= Object_info_for_lap[Info='Append to run'];~ a:= if j='Ident' and a.i='Run' and isnumber(c) then c else a;~ textify(a) Nodelocation: 424,112,1 Nodesize: 48,16 Windstate: 2,524,183,476,508 Valuestate: 2,89,387,1023,259,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 Att__totalsindex: [] Variable W_objinfo Title: W Objinfo Description: Makes a list of objects that contains some additional information to be written into the Objinfo table. Definition: index j:= ['Obj_id','Acttype_id','Who','Comments'];~ var a:= Objects;~ var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];~ b:= findid(b, Obj, 'Ident');~ b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;~ a:= if j='Obj_id' then b else a[.j=j];~ a:= if a = null or a='' then 0 else a;~ {index i:= subset(if sum(a, j) = 0 then 0 else 1);~ a:= a[.i=i];}~ a:= if a=null or a=0 then '' else a&'' Nodelocation: 424,72,1 Nodesize: 48,16 Windstate: 2,210,49,476,340 Valuestate: 2,34,427,690,274,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 {!40000|Att_resultslicestate: [Sys_localindex('J'),1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable W_res Title: W Res Definition: index j:= ['id','Cell_id','Obs','Result'{,'Restext'}];~ var a:= Results;~ index i:= subset(if a[.j='Result']=null and a[.j='Description']=0 then 0 else 1);~ a:= a[.j=j, .i=i];~ a:= array(j, [textify(a.i+Cardinals[table1='Res']), textify(a+ Cardinals[table1='Cell']), textify(a),a{,a}]);~ if a=null then '' else a Nodelocation: 424,344,1 Nodesize: 48,13 Windstate: 2,629,191,582,297 Valuestate: 2,477,271,609,375,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Att__totalsindex: [] Variable Object_info_for_lap Title: Object info for lap Description: Additional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index. Definition: Object_info[N_vars=Lap] Nodelocation: 176,241,1 Nodesize: 48,22 Windstate: 2,140,217,476,224 Defnstate: 2,653,25,488,226,0,MIDM Valuestate: 2,752,344,460,228,0,MIDM Nodecolor: 52425,39321,65535 Reformdef: [N_vars,Info] Reformval: [N_vars,Info] Variable Index_info Title: Index info Definition: Table(Ind_info,Indices)(~ 'Time','Test2',~ 'h','km'~ ) Nodelocation: 176,32,1 Nodesize: 48,16 Windstate: 2,102,90,476,349 Defnstate: 2,582,238,666,349,0,MIDM Valuestate: 2,184,194,660,316,0,MIDM Aliases: Formnode Study_or_variable_i1, Formnode Study_or_variable_i2, Formnode Study_or_variable_i3 Nodecolor: 52425,39321,65535 Reformdef: [Ind_info,Indices] Reformval: [Ind_info,Indices] Index Ind_info Title: Ind info Definition: ['Name','Unit'] Nodelocation: 176,56,1 Nodesize: 48,13 Variable Loccells Title: Loccells Description: Makes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.~ 1) Initialises local variables, and slices variables from Object1.~ 2)-4) Does the process for each variable one at a time. This happens in function Loccell.~ 5) Makes i the row index. Definition: var a:= Data_table;~ index h:= a.j[@.j=1..size(a.j)-2];~ a:= a[.j=h];~ var d:= max(Data_table[.j='Obs'],Data_table.i);~ ~ a:= if 1-proba then ~ (index itemp:= copyindex(a.i); a[.i=itemp]) else (~ index grun:= 1..d;~ index itemp:= 1..size(a.i)/d;~ a:= a[@.i=(itemp-1)*d+grun];~ a:= a[@grun=1]);~ ~ index j:= ['id', 'Cell_id', 'Loc_id'];~ index i:= 1..size(a);~ a:= array(j,[h, @a.itemp, a]);~ concatrows(a,h,a.itemp,i) Nodelocation: 312,296,1 Nodesize: 48,16 Windstate: 2,643,26,526,596 Valuestate: 2,614,260,552,488,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Att__totalsindex: [] {!40000|Att_resultslicestate: [Sys_localindex('J'),2,Sys_localindex('ITEMP'),1,Sys_localindex('H'),1]} Variable Results Title: Results Description: The usage of local variables: a: the temporary variable that is being edited. e: cardinal of the Cell table. f: cardinal of the Res table. j: output column headings. i: output row numbers. NOTE! ONLY THE DETERMINISTIC VERSION WORKS AT THE MOMENT.~ 1) Only one piece of information (Observations) is included.~ 2)-5) The process is done for each variable one at a time (this is indexed by x). ~ 3) Several within-loop local variables are initiated.~ 4) The variable is given index runn which is equal to run if probabilistic and [0] if not. The array is flattened first to 2-D, the value only is kept. ~ 5) Variables are concatenated to each other.~ 6) Index i is made the index of the implicit index.~ ~ NOTE! This node MUST be formatted to Integer, otherwise Res_id will be stored in a wrong format. Definition: var e:= 0;~ var f:= 0;~ var a:= Data_table[.j='Result'];~ ~ var d:= max(Data_table[.j='Obs'],Data_table.i);~ var b:= if 1-proba then @a.i else (~ floor((@a.i-1)/d)+1);~ index j:= ['id','Cell_id','Obs','Result','Restext'];~ array(j,[0, b, Data_table[.j='Obs'], (if istext(a) then 0 else a) , (if istext(a) then a else 0)]) Nodelocation: 312,344,1 Nodesize: 48,16 Windstate: 2,634,23,581,615 Valuestate: 2,28,187,469,411,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 {!40000|Att_resultslicestate: [Run,2,Sys_localindex('J'),1,Sys_localindex('I'),1]} Variable Locations Title: Locations Description: The format of this node MUST be integer, so that the id and Roww values are stored correctly. Definition: var output:= 0;~ var in:= Data_table;~ index j:= in.j[@.j=1..size(in.j)-1];~ in:= in[.j=j];~ Dolocation(in) Nodelocation: 312,176,1 Nodesize: 48,16 Windstate: 2,100,58,476,581 Valuestate: 2,482,15,746,348,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 {!40000|Att_resultslicestate: [Sys_localindex('D'),1,Object_all3,1,Age,1]} Variable Data_table Title: Data table Definition: var N_indices:= Object_info_for_lap[Info='Number of indices'];~ var b:= selecttext(Data_source,1,1);~ var a:= if b='1' then data_table2 else if b='2' then analytica_table else analytica_node;~ if b='3' then a else (~ ~ index h:= a.columns[@a.columns=1..N_indices];~ var c:= Object_info_for_lap[Info='Parameter name', @N_vars=1];~ c:= if c='' or c=0 then 'Parameter' else c;~ index j:= concat(h,[c,'Result','Obs']);~ index parameter:= a.columns[@a.columns=N_indices+(1..size(a.columns)-N_indices)];~ index temp:= 1..size(a.rows)*size(parameter);~ var conv:= if j='Result' then @parameter+N_indices else @j;~ a:= a[@.columns=conv];~ ~ a:= if @j=size(j)-2 then parameter else a;~ a:= if @j=size(j) then @a.rows else a;~ a:= concatrows(a, parameter, a.rows, temp);~ a:= if j='Result' then ~ (var d:= a[j='Result']; if evaluate(d)=null then d else evaluate(d)) else a;~ index i:= Subset(a[j='Result']<>null);~ a[temp=i]) Nodelocation: 176,176,1 Nodesize: 48,16 Windstate: 2,543,38,482,501 Valuestate: 2,673,587,506,218,0,MIDM Aliases: Formnode Data_table1 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 {!40000|Att_resultslicestate: [Sys_localindex('I'),1,Sys_localindex('J'),1]} Index Info Title: Info Definition: ['Analytica identifier','Ident','Name','Unit','Number of indices','Parameter name','Probabilistic?','Append to upload'] Nodelocation: 64,408,1 Nodesize: 48,13 Valuestate: 2,90,166,416,303,0,MIDM {!40000|Att_previndexvalue: ['Analytica identifier','Ident','Name','Unit','Number of indices','Parameter name','Probabilistic?','Append to upload']} Variable Objects Title: Objects Description: 19.10.2009 Jouni Tuomisto~ The Run/Name = Method cell is problematic. It was designed for one-variable uploads, and now it contains both upload-specific and variable-specific information. This should be solved somehow but I don't know how. So, I just make it technically work and don't worry about it now. Some variable-specific info is omitted, some is taken from the first variable. Definition: Index j:= ['id','Ident','Name','Unit','Objtype_id','Acttype_id','Page','Wiki_id', 'Who','Comments'];~ index i:= concat(concat(N_vars,indices),['Run']);~ var Ident:= if @i <= size(N_vars) then Object_info_for_lap[Info='Ident', @N_vars=@i] else if @i=size(i) then '' else i;~ var a:= Index_info[indices=i, Ind_info=j];~ a:= if a=null then '' else a;~ var e:= Object_info_for_lap[N_vars=i, Info=j];~ a:= if e=null then a else e;~ var b:= sum(findintext(wikis,ident)*@wikis,wikis);~ var c:= if b=0 then '' else wikis[@wikis=b];~ c:= if b=0 then '2664' else selecttext(ident,1+textlength(c));~ var d:= Object_info[Info='Probabilistic?'];~ d:= if (d=1 or d='Yes' or d='Y' or d='yes' or d='y') then ' (probabilistic)' else ' (deterministic)';~ d:= d[@N_vars=@i];~ a:= array(j,[~ @i, ~ ident, ~ if i ='Run' then 'Observations: ' & max(Data_table[.j='Obs'],Data_table.i) {&d}& ', Cells: '&size(cells.i) &', Indices: ' &size(loccells.i)/size(Cells.i) & ', Analytica '&Analyticaedition&', ('&Analyticaplatform&'), Version: '&textify(Analyticaversion) else a, ~ a, ~ if @i=1 then 1 else if @i=size(i) then 9 else 6, ~ if @i=1 then 11 else 1, ~ if i='Run' then '2817' else c&'', ~ if b=0 then '1' else b&'', ~ opasnet_username, a]);~ a:= if a = null then '' else a Nodelocation: 288,72,1 Nodesize: 48,16 Windstate: 2,132,71,479,524 Valuestate: 2,639,364,626,283,0,MIDM Reformval: [Sys_localindex('I'),Sys_localindex('J')] {!40000|Att_resultslicestate: [Indices,1,Sys_localindex('J'),1,Sys_localindex('I'),1]} Variable Observations2 Title: Observations Definition: 'Test1 Value~ 1 2nh~ 2 30' Nodelocation: 64,224,1 Nodesize: 52,16 Windstate: 2,586,79,476,465 Aliases: Formnode Observations3 Nodecolor: 52425,39321,65535 Variable Data_table2 Title: Data table1 Description: var a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));~ index i:= 1..size(a);~ a:= slice(a,i);~ a:= splittext(a, chr(9));~ index j:= 1..size(a)/size(i);~ for y:= i do (slice(a[i=y],j)) Definition: var a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));~ index columns:= splittext(slice(a,1), chr(9));~ index rows:= 1..size(a)-1;~ a:= slice(a,rows+1);~ a:= splittext(a, chr(9));~ for y:= rows do (slice(a[rows=y],@columns)) Nodelocation: 64,176,1 Nodesize: 48,16 Windstate: 2,7,115,476,362 Valuestate: 2,761,412,476,386,0,MIDM Reformval: [Sys_localindex('COLUMNS'),Sys_localindex('ROWS')] Chance Testvariable Title: Testvariable Definition: Table(Time)(~ uniform(0,1),uniform(1,2),uniform(2,3)) Nodelocation: 552,104,1 Nodesize: 48,24 Valuestate: 2,40,50,416,303,0,MIDM Reformdef: [Time,Testindex] Reformval: [Time,Testindex] Index Testindex Title: Testindex Definition: ['item 1'] Nodelocation: 552,136,1 Nodesize: 48,12 Windstate: 2,102,90,476,224 Variable W_cellsec Title: W Cellsec Description: Slices the fields that are needed in the Res table. Removes duplicate rows. Definition: (if w_cell.j = 'Mean' then '' else W_cell) Nodelocation: 536,240,1 Nodesize: 48,16 Windstate: 2,782,213,476,379 Valuestate: 2,85,231,505,368,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Variable Cells Title: Cells Description: Makes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.~ 1) Initialises local variables, and slices variables from Object1.~ 2)-4) Does the process for each variable one at a time. This happens in function Loccell.~ 5) Makes i the row index. Definition: var a:= Data_table[@.j=size(Data_table.j)-1];~ index j:= ['id', 'Obj_id_v', 'Obj_id_r', 'Mean', 'SD', 'N'];~ var d:= max(Data_table[.j='Obs'],Data_table.i);~ index temp:= ['Mean','SD'];~ a:= if 1-proba then array(temp,[a,'']) else (~ index grun:= 1..d;~ index i:= 1..size(a.i)/d;~ a:= a[@.i=(i-1)*d+grun];~ a:= array(temp,[mean(a,grun), sdeviation(a[j='Mean'],grun)]) );~ ~ a:= array(j,[~ @a.i, ~ Object_info_for_lap[Info='Ident'],~ '',~ a[temp='Mean'], ~ a[temp='SD'],~ d]) Nodelocation: 312,240,1 Nodesize: 48,16 Windstate: 2,54,15,526,639 Valuestate: 2,608,45,641,493,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Att__totalsindex: [] {!40000|Att_resultslicestate: [N_vars,2,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable Analytica_node Title: Analytica node Description: 19.10.2009 Jouni Tuomisto~ If the variable is deterministic, Obs is 0. It is not clear whether it should be or not. This should be checked with other upload methods (1-3) to see that they are consistent. Definition: var a:= Object_info_for_lap[Info='Analytica identifier'];~ index j:= concat(indexnames(getfract(evaluate(a),0.5)),['Result','Obs']);~ a:= if proba then sample(evaluate(a)) else evaluate(a);~ index temp:= concat(indexnames(a),['Result']);~ index i:= 1..size(a);~ a:= Mdarraytotable(a, i, temp);~ a:= if j='Obs' and proba then a[temp='Run'] else a[temp=j];~ a:= if a=null then 0 else a Nodelocation: 64,280,1 Nodesize: 48,20 Windstate: 2,53,195,476,317 Valuestate: 2,56,66,416,303,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I')] {!40000|Att_resultslicestate: [N_vars,1,Sys_localindex('J'),1,Sys_localindex('I'),1]} Variable Proba Title: Proba Definition: var a:= Object_info_for_lap[Info='Probabilistic?'];~ (a=1 or a='Yes' or a='Y' or a='yes' or a='y') Nodelocation: 64,336,1 Nodesize: 48,16 Variable Data_source Title: Data source Definition: Choice(Self,3,False) Nodelocation: 176,128,1 Nodesize: 48,16 Aliases: Formnode Data_source1 Nodecolor: 52425,39321,65535 Domain: ['1 Copy-paste table','2 Node formatted as data table','3 Analytica model'] Index N_vars Title: N vars Definition: 1..N_variables Nodelocation: 64,432,1 Nodesize: 48,12 {!40000|Att_previndexvalue: [1,2]} Variable N_variables Title: N variables Definition: 2 Nodelocation: 64,456,1 Nodesize: 48,12 Aliases: Formnode N_variables1 Nodecolor: 52425,39321,65535 Variable Lap Title: Lap Definition: 1 Nodelocation: 176,368,1 Nodesize: 48,16 Index Indices {!40000|Att_previndexvalue: ['Time','Test2']} Title: Indices Definition: var a:= Data_table.j[@.j=1..(size(Data_table.j)-2)];~ a:= jointext(a,,',');~ var b:= indexnames(getfract(evaluate(Object_info[Info='Analytica identifier']),0.5));~ b:= subset(if b='N_vars' then 0 else 1);~ b:= jointext(b,,',');~ a:= if selecttext(Data_source,1,1)='3' then b else a;~ splittext(a,',') Nodelocation: 176,80,1 Nodesize: 48,12 Windstate: 2,140,321,476,409 Valuestate: 2,40,50,416,303,0,MIDM Module Old_parts Title: Old parts Author: ktluser Date: 17. Octta 2009 13:57 Defaultsize: 48,24 Nodelocation: 552,184,1 Nodesize: 48,24 Nodeinfo: 1,0,1,1,1,1,0,,0, Variable W_resinfo Title: W Resinfo Description: If the result is not a number, then the actual result text can be written into the Description field of the Descr table. Makes a list of text values to be written into the Descr table. Definition: index j:= ['id','Restext'];~ var a:= Results;~ index i:= subset(a[.j='Restext']);~ a:= a[.j=j, .i=i];~ a:= array(j, [textify(a.i+Cardinals[table1='Res']), a]) Nodelocation: 96,40,1 Nodesize: 48,16 Windstate: 2,674,46,476,259 Valuestate: 2,670,328,416,303,0,MIDM Nodecolor: 65535,45873,39321 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Index Object1 {!40000|Att_previndexvalue: ['Var1','Testindex']} Title: Object Definition: concat(['Var1'],Data_table.j[@Data_table.j=1..size(Data_table.j)-2]) Nodelocation: 256,120,1 Nodesize: 48,13 Windstate: 2,59,17,630,355 Valuestate: 2,857,175,416,303,0,MIDM Reformval: [Year,Who_country_code] Variable Ch_var {!40000|Att_previndexvalue: ['item 1']} Definition: Choice(Variables,10,0) Nodelocation: 104,104,1 Nodesize: 48,24 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 {!40200|Att_choiceindexes: Index Variables} Variable Variable_info Title: Variable info Definition: Table(Variables,Info)(~ 'MetHg_conc_in_fish','Op_en2157',0,0,0,0,1,971,~ 'MetHg_intake_from_fish','Op_en1798',0,0,0,0,1,971,~ 'DHA_in_fish','Op_en1838',0,0,0,0,1,971,~ 'DHA_intake','Op_en1796',0,0,0,0,1,971,~ 'ERF_of_DHA_on_IQ','Op_en1802',0,0,0,0,1,971,~ 'ERF_of_MetHg_on_IQ','Op_en1806',0,0,0,0,1,971,~ 'Baseline_IQ','Op_en2561',0,0,0,0,1,971,~ 'IQ_in_children','Op_en2560',0,0,0,0,1,971,~ 'Body_weight','Op_en2153',0,0,0,0,0,971,~ 'IQ_change','Op_en1790',0,0,0,0,1,971~ ) Nodelocation: 256,56,1 Nodesize: 48,24 Defnstate: 2,232,242,919,303,0,MIDM Valuestate: 2,152,162,876,303,0,MIDM Nodecolor: 52425,39321,65535 Reformdef: [Info,Variables] Reformval: [Info,Variables] Index Variables {!40000|Att_previndexvalue: ['MetHg conc in fish','MetHg intake from fish','DHA in fish','DHA intake','ERF of DHA in IQ','ERF of MetHg on IQ','Baseline IQ','IQ in children','Body weight','IQ change']} Definition: ['MetHg conc in fish','MetHg intake from fish','DHA in fish','DHA intake','ERF of DHA in IQ','ERF of MetHg on IQ','Baseline IQ','IQ in children','Body weight','IQ change'] Nodelocation: 256,88,0 Nodesize: 48,12 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,102,90,476,345 Close Old_parts Variable Test2 Title: Test2 Definition: Table(Self)(~ 1,2,3) Indexvals: ['item 1','item 2','item 3'] Nodelocation: 552,48,1 Nodesize: 48,24 Variable Object_info Title: Object info Description: Additional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index. Definition: Table(Info,N_vars)(~ 'Testvariable','Test2',~ 'Op_en2693','Op_en2693',~ 'Testausmuuttuja','Toinen testausmuuttuja',~ 'm/s','km/h',~ 1,1,~ 'Weight','Age',~ 0,1,~ '',''~ ) Nodelocation: 64,384,1 Nodesize: 48,16 Windstate: 2,140,217,476,224 Defnstate: 2,653,25,488,226,0,MIDM Valuestate: 2,752,344,460,228,0,MIDM Nodecolor: 52425,39321,65535 Reformdef: [N_vars,Info] Reformval: [N_vars,Info] Variable Analytica_table Title: Analytica table Definition: Table(Columns,Rows)(~ 1,2,3,~ 4,5,6~ ) Nodelocation: 64,80,1 Nodesize: 48,24 Aliases: Formnode Analytica_table2 Nodecolor: 52425,39321,65535 Reformdef: [Columns,Rows] Index Rows {!40000|Att_previndexvalue: [1,2,3]} Title: Rows Definition: 1..N_rows Nodelocation: 64,112,1 Nodesize: 48,12 Variable N_rows Definition: 3 Nodelocation: 64,136,1 Nodesize: 48,12 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Aliases: Formnode N_rows1 Nodecolor: 52425,39321,65535 Close Writer Formnode Data_source1 Title: Data source Definition: 0 Nodelocation: 236,84,1 Nodesize: 196,12 Nodeinfo: 1,0,0,1,0,0,0,254,0,1 Original: Data_source Module Reader Title: Reader Author: ktluser Date: 3. Augta 2008 18:31 Saveauthor: jtue Savedate: 9. lokta 2008 14:01 Defaultsize: 48,24 Nodelocation: 176,568,1 Nodesize: 48,24 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Diagstate: 1,785,211,477,355,17 Fontstyle: Arial, 15 Function Read_mean(vident:text, runident:optional) Title: Read mean Description: Reads the mean data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.~ ~ PARAMETERS:~ * Vident: the Ident of the variable in the Opasnet Base.~ * Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought. Definition: if isnotspecified(runident) then runident:= identfind(newestrun(vident));~ var a:= '~ SELECT Var.Ident as Vident, Var.Name as Vname, Var.Unit as Vunit, Cell.id, Ind.Ident as Iident, Location, Mean, N, Run.Name as Rname, Run.Ident AS Runident~ FROM Obj as Var, Cell, Loccell, Loc, Obj as Ind, Obj as Run~ WHERE Cell.Obj_id_r = Run.id~ AND Cell.Obj_id_v = Var.id~ AND Loccell.Cell_id = Cell.id~ AND Loccell.Loc_id = Loc.id~ AND Loc.Obj_id_i = Ind.id~ AND Var.Ident = '&chr(39)&vident&chr(39)&'~ AND Run.ident = '&chr(39)&runident&chr(39)~ ;~ index i:= DBquery(Odbc,a);~ index j:= dblabels(i);~ dbtable(i,j) Nodelocation: 56,88,1 Nodesize: 48,12 Windstate: 2,585,25,516,589 Nodecolor: 39325,65535,39321 Paramnames: vident,runident Function Newestrun(vident:text) Title: Newestrun Description: This function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.~ ~ PARAMETERS:~ * Vident: the Ident of the variable in the Opasnet Base. Definition: index i:= DBquery(Odbc,'~ SELECT Obj_id_r~ FROM Cell, Obj as Var~ WHERE Var.id = Cell.Obj_id_v~ AND Var.Ident = "'&vident&'"~ GROUP BY Var.id, Obj_id_r~ ');~ index j:= dblabels(i);~ max(max(dbtable(i,j),i),j) Nodelocation: 56,16,1 Nodesize: 48,12 Windstate: 2,678,59,476,566 Nodecolor: 39325,65535,39321 Paramnames: vident Function Read_sample(vident:text, runident:optional) Title: Read sample Description: Reads the sample data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.~ ~ PARAMETERS:~ * Vident: the name of the variable in the Opasnet Base.~ * Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought. Definition: if isnotspecified(runident) then runident:= identfind(newestrun(vident));~ var a:= '~ SELECT Temp.id, Obs, Result, Restext~ FROM~ (SELECT Cell.id, Res.id AS Res_id, Obs, Result, Obj_id_r~ FROM Cell, Res, Obj AS Run, Obj AS Var~ WHERE Var.Ident = '&chr(39)&vident&chr(39)&'~ AND Cell.Obj_id_v = Var.id~ AND Cell.Obj_id_r = Run.id~ AND Run.Ident = '&chr(39)&Runident&chr(39)&'~ AND Res.Cell_id = Cell.id) AS Temp~ LEFT JOIN Resinfo ON~ Temp.Res_id = Resinfo.id~ ';~ index i:= DBquery(Odbc,a);~ index j:= dblabels(i);~ dbtable(i,j) Nodelocation: 56,120,1 Nodesize: 48,22 Windstate: 2,700,47,516,612 Nodecolor: 39325,65535,39321 Paramnames: vident,runident Variable Enter_variable Title: Enter variable Ident Definition: 'Op_en1912' Nodelocation: 168,83,1 Nodesize: 48,27 Aliases: Formnode Enter_variable1 Nodecolor: 52425,39321,65535 Formnode Enter_variable1 Title: Enter variable Definition: 0 Nodelocation: 288,24,1 Nodesize: 176,13 Nodeinfo: 1,0,0,1,0,0,0,170,0,1 Nodecolor: 52425,39321,65535 Original: Enter_variable Variable Newest_run Title: Newest run Definition: newestrun(Enter_variable) Nodelocation: 288,60,1 Nodesize: 48,12 Variable Mean_results Title: Var info Definition: read_mean(Enter_variable) Nodelocation: 288,108,1 Nodesize: 48,12 Valuestate: 2,56,66,1205,308,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I')] Function Makeind(a,inde) Title: Makeind Description: The input table a must have a structure that is also used as input for MDTable function. The function removes one column with location information and makes a dimension (index) with the locations in the column. Inde is the (local) index that will be added. Note that unlike MDTable function, this can use local indices in the output. Definition: if size(a.m)= 1 then a else (~ a:= if inde = a[@.m=1] then a else 0;~ index m:= slice(a.m,(2..size(a.m)));~ a:= a[.m=m]) Nodelocation: 56,176,1 Nodesize: 48,12 Windstate: 2,283,62,476,224 Paramnames: a,inde Function Get_res_id(a) Title: Get res.id Description: Makes a multi-dimensional array with the same structure as the original variable that was stored into the Opasnet Base. However, the indices do not have original names. They are named In1, In2,... The contents of the array are the res.ids of the variable. The input parameter must be a 2D table with the structure that comes from the Read_mean function.~ 1) Slices the necessary columns from the input table and converts that to a 2D table that has the same structure as is used for input to the function MDTable.~ 2) Defines the local indices (up to 10), and changes a location column to a dimension one at a time until all columns have been changed. Definition: index k:= ['Iident','Location','id'];~ a:= a[.j=k];~ index L:= a[@k=1]&'+'&textify(a[@k=3]);~ index m:= concat(a[.i=unique(a[@k=1],a.i), @k=1],['Result']);~ index n:= a[.i=unique(a[@k=3],a.i), @k=3];~ a:= a[@.i=@L];~ a:= a[L=(m)&'+'&textify(n), @k=2];~ a:= if m='Result' then n else a;~ ~ index in1:= a[n=unique(a[@m=1],n),@m=1];~ index in2:= a[n=unique(a[@m=2],n),@m=2];~ index in3:= a[n=unique(a[@m=3],n),@m=3];~ index In4:= a[n=unique(a[@m=4],n),@m=4];~ index In5:= a[n=unique(a[@m=5],n),@m=5];~ index in6:= a[n=unique(a[@m=6],n),@m=6];~ index in7:= a[n=unique(a[@m=7],n),@m=7];~ index in8:= a[n=unique(a[@m=8],n),@m=8];~ index in9:= a[n=unique(a[@m=9],n),@m=9];~ index in10:= a[n=unique(a[@m=10],n),@m=10];~ a:= makeind(a, in1);~ a:= makeind(a, in2);~ a:= makeind(a, in3);~ a:= makeind(a, in4);~ a:= makeind(a, in5);~ a:= makeind(a, in6);~ a:= makeind(a, in7);~ a:= makeind(a, in8);~ a:= makeind(a, in9);~ a:= makeind(a, in10);~ sum(sum(a,a.m),a.n) Nodelocation: 56,152,1 Nodesize: 48,12 Windstate: 2,669,44,476,545 Paramnames: a Variable Var_mean1 Title: Var mean Definition: get_mean(Enter_variable) Nodelocation: 288,132,1 Nodesize: 48,12 Valuestate: 2,547,35,416,622,0,MIDM Reformval: [Sys_localindex('IN2'),Sys_localindex('IN3')] {!40000|Att_resultslicestate: [Sys_localindex('IN1'),1,Sys_localindex('IN4'),1,Sys_localindex('IN5'),1,Sys_localindex('IN3'),1,Sys_localindex('IN2'),1]} Function Get_mean(vident:text, runident:optional) Title: Get mean Description: Gives the mean result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function. Definition: var a:= read_mean(vident, runident);~ index o:= a[.j='id'];~ var output:= a[@.i=@o, .j='Mean'];~ a:= get_res_id(a);~ output[o=a] Nodelocation: 56,200,1 Nodesize: 48,12 Windstate: 2,665,82,476,428 Paramnames: vident,runident Function Get_sample(vident:text, runident:optional) Title: Get sample Description: Gives the sample result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function.~ ~ Note that if the Analytica samplesize is smaller than the samplesize stored in the Opasnet Base, the extra samples will be discarded. If the samplesize is larger, the remaining rows will be null.~ 1) Brings the data into the right structure.~ 2) Chooses whether the actual result is numerical (in the Result column) or text (in the Description column). Definition: var a:= read_sample(vident, runident);~ var b:= textify(get_res_id(read_mean(vident,runident)));~ index k:= textify(a[.j='id'])&'+'&textify(a[.j='Obs']);~ index runn:= textify(min(a[.j='Obs'])..max(a[.j='Obs']));~ a:= a[@.i=@k];~ a:= a[k=b&'+'&runn];~ a:= if max(runn)=0 then a[@runn=1] else a[@runn=@run];~ ~ var c:= if a[.j='Restext']='' then 0 else 1;~ c:= sum(sum(sum(sum(sum(sum(sum(sum(sum(sum(c))))))))));~ if c=0 then a[.j='Result'] else a[.j='Restext'] Nodelocation: 56,224,1 Nodesize: 48,12 Windstate: 2,641,28,476,556 Paramnames: vident,runident Variable Var_sample1 Title: Var sample Definition: get_sample(Enter_variable) Nodelocation: 288,156,1 Nodesize: 48,12 Windstate: 2,86,111,476,224 Valuestate: 2,226,324,416,303,0,MEAN Reformval: [Sys_localindex('IN5'),Sys_localindex('IN3')] {!40000|Att_resultslicestate: [Sys_localindex('IN1'),1,Sys_localindex('IN2'),1,Sys_localindex('IN4'),1,Sys_localindex('IN3'),1,Sys_localindex('J'),1,Sys_localindex('IN5'),1]} Function Identfind(runid) Title: Identfind Description: Finds the Ident for the run (or another object) that has the id runid. Definition: index i:= DBquery(Odbc,'~ SELECT Ident~ FROM Obj~ WHERE Obj.id = "'&runid&'"~ ');~ index j:= dblabels(i);~ var a:= dbtable(i,j);~ a[@i=1, @j=1] Nodelocation: 56,64,1 Nodesize: 48,12 Windstate: 2,732,65,516,589 Nodecolor: 39325,65535,39321 Paramnames: runid Variable Var_run_info1 Title: Var run info Description: Describes the runs of the defined variable. This should be made a function. Definition: var_run_info(Enter_variable) Nodelocation: 288,84,1 Nodesize: 48,12 Valuestate: 2,136,146,1111,285,0,MIDM Reformval: [Sys_localindex('J'),Sys_localindex('I')] Function Var_run_info(vident:text) Title: Var run info Description: This function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.~ ~ PARAMETERS:~ * Vident: the Ident of the variable in the Opasnet Base. Definition: var a:= '~ SELECT Var.Ident, Var.Name, Var.Unit, Run.Ident AS Runident, Act.When, Act.Who, Run.Name as Method~ FROM Obj as Var, Obj as Run, Cell, Objinfo AS Act~ WHERE Var.Ident = '&chr(39)&vident&chr(39)&'~ AND Var.id = Cell.Obj_id_v ~ AND Run.id = Cell.Obj_id_r ~ AND Run.id = Act.id ~ GROUP BY Var.id, Run.id~ ';~ index i:= DBquery(Odbc,a);~ index j:= dblabels(i);~ dbtable(i,j) Nodelocation: 56,40,1 Nodesize: 48,13 Windstate: 2,678,59,476,566 Nodecolor: 39325,65535,39321 Paramnames: vident Text Te3 Description: Use these functions to retireve data from the Opasnet base:~ * Newest_run: finds the newest run of the object.~ * Var_run_info: Finds the run information of the object.~ * Read_mean: Reads the means of each cell.~ * Get_mean~ * Get_sample: Reads the whole sample.~ ~ Note! These should be updated when we get experience about what we actually want out. Nodelocation: 280,285,-1 Nodesize: 168,101 Function Textify(a) Title: Textify Description: Changes an integer of any length to a text value. This bypasses the number formatting problem that tends to convert e.g. 93341 to '93.34K'. If the number is not integer, up to three digits after the decimal point will be taken as well. Definition: a&''~ {for y[]:= a do (~ if istext(y) then y else (~ var x:= 1;~ var b:= '';~ var c:= if y<1 then 1 else floor(logten(y))+1;~ while x<= c do (~ b:= (y-floor(y/10)*10)&b;~ y:= floor(y/10);~ x:= x+1);~ b) )} Nodelocation: 56,248,1 Nodesize: 48,12 Windstate: 2,102,90,476,371 Paramnames: a Numberformat: 2,F,4,14,0,0,4,0,$,0,"ABBREV",0 Close Reader Module Details Title: Details Author: ktluser Date: 8. Decta 2008 3:01 Defaultsize: 48,24 Nodelocation: 56,568,1 Nodesize: 48,24 Diagstate: 1,30,39,495,527,17 Variable Object_types Title: Object types Description: Types of different objects that may exist in Analytica or Opasnet Base. Types that have the same number are treated equally in these systems. Definition: Table(Self)(~ 'Variable','Dimension','Method','Model','Class','Index','Nugget','Encyclopedia article','Run','Chance','Decision','Objective','Constant','Determ','Module','Library','Form') Indexvals: [1,2,3,4,5,6,7,8,9,1,10,1,1,1,4,4,4] Nodelocation: 56,408,1 Nodesize: 48,20 Windstate: 2,56,132,476,224 Defnstate: 2,674,34,416,606,0,MIDM Valuestate: 2,636,151,416,390,0,MIDM Nodecolor: 65535,52427,65534 Function Tablefy(a; file:texttype) Title: Tablefy Definition: a:= '"'&a&'"';~ a:= jointext(a,a.j,';');~ Writetextfile('c:\temp\'&file, a) Nodelocation: 168,368,1 Nodesize: 48,13 Windstate: 2,44,303,476,224 Paramnames: a,file Numberformat: 2,F,4,14,0,0,4,0,$,0,"ABBREV",0 Function Doloccell(a; x:optional = 1; e, f:optional=0) Title: Doloccell Description: 1) Size(h) is size(a.j)-2 because j contains 'Result' and 'SD'.~ 2) Only the deterministic information about variables are considered (therefore mean). Makes a 2D table of the locres info.~ 3) Makes a table with fields required by the Loccell and Cell tables.~ 4) Reduces one dimension by expanding the length from the length of Cell to that of Loccell. Definition: index j:= ['id', 'Location', 'Cell_id', 'Loc_id', 'Obj_id_v', 'Obj_id_r', 'Mean', 'SD', 'N'];~ index h:= a.j[@.j=1..size(a.j)-2];~ index i:= 1..size(a.i)*size(h);~ var c:= Objects[@.i=x];~ ~ a:= array(j,[~ i[@i=@a.i+size(a.i)*(@h-1)]+e,~ a[.j=h]&'', ~ a.i+f, ~ h,~ c[.j='Ident'], ~ '',~ a[.j='Result'], ~ a[.j='SD'],~ if c[.j='Probabilistic?']=1 then samplesize else 0]);~ ~ concatrows(a,h,a.i,i) Nodelocation: 400,280,1 Nodesize: 48,13 Windstate: 2,627,78,556,561 Paramnames: a,x,e,f Function Doresult(a: prob; probabilistic; e, f: optional=0) Title: Doresult Definition: index runn:= if Probabilistic=1 then copyindex(run) else [0];~ index i:= (1..size(max(a.i,run))*size(runn))+f;~ a:= if Probabilistic=1 then a[run=runn] else (if runn=0 then a else a);~ a:= a[.j='Result'];~ index j:= ['id','Cell_id','Obs','Result','Restext'];~ a:= array(j,[0, a.i+e, runn, (if istext(a) then 0 else a) , (if istext(a) then a else 0)]);~ a:= concatrows(a,a.i,runn, i);~ a:= if j='id' then i else a Nodelocation: 400,256,1 Nodesize: 48,13 Windstate: 2,687,174,476,526 Paramnames: a,probabilistic,e,f Function Dolocation(a) Title: Dolocation Definition: var b:= [0];~ var c:= [0];~ var e:= [0];~ var f:= [0];~ ~ var x:= 1;~ while x<= size(a.j)-1 do (~ var h:= a[@.j=x];~ var d:= h[.i=unique(h,h.i)];~ b:= concat(b,d);~ c:= concat(c,(if d=0 then slice(a.j,x) else slice(a.j,x)));~ e:= concat(e,1..size(d));~ x:= x+1);~ ~ index i:= 1..size(b)-1;~ index j:= ['id','Obj_id_i', 'Location', 'Roww', 'Description'];~ array(j,[i, slice(c,i+1), slice(b,i+1)&'', slice(e,i+1), '']); Nodelocation: 400,232,1 Nodesize: 48,12 Windstate: 2,671,164,503,486 Paramnames: a Library Concatenation_udfs Title: Concatenation UDFs Description: This library contains functions to make various instances of concatenation more convenient. Concat3 thru Concat10 are generalizations of the built-in Concat function which concatenate from 3 to 10 arrays in a single call (while the built-in Concat concatenates two arrays). ConcatRows concatenates all the rows of a single array. Author: David Kendall & Lonnie Chrisman Date: Mon, Jan 26, 2004 8:49 AM Saveauthor: Lonnie Savedate: Wed, Sep 05, 2007 3:23 PM Defaultsize: 48,24 Nodelocation: 184,328,1 Nodesize: 68,20 Nodeinfo: 1,0,0,1,1,1,0,0,0,0 Diagstate: 1,50,200,488,454,23 Function Concat3(A1, A2, A3: ArrayType; I1, I2, I3, J: IndexType ) Title: Concat3 Description: Concatenates three arrays, A1, A2, and A3. I1, I2, and I3 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, and I3 Definition: Index I12 := Concat(I1,I2);~ Concat( Concat( A1,A2,I1,I2,I12 ), A3, I12, I3, J ) Nodelocation: 88,64,1 Nodesize: 48,26 Windstate: 2,56,56,986,596 Paramnames: A1,A2,A3,I1,I2,I3,J Function Concat4(A1, A2, A3, A4: ArrayType; I1, I2, I3, I4, J: IndexType ) Title: Concat4 Description: Concatenates four arrays, A1, A2, A3, and A4. I1, I2, I3, and I4 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, I3, and I4. Definition: Index I12 := Concat(I1,I2);~ Index I123:= Concat(I12, I3);~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, J);~ Nodelocation: 192,64,1 Nodesize: 48,24 Windstate: 2,30,30,986,596 Paramnames: A1,A2,A3,A4,I1,I2,I3,I4,J Att__cloakdefn: 0 Function Concat9(A1, A2, A3, A4, A5, A6, A7, A8, A9: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, J: IndexType) Title: Concat9 Description: Concatenates nine arrays, A1, ..., A9. I1, ..., I9 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I9. Definition: Index I12 := Concat(I1,I2);~ Index I123 := Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Index I12345 := Concat(I1234, I5);~ Index I123456 := Concat(I12345, I6);~ Index I1234567 := Concat(I123456, I7);~ Index I12345678 := Concat(I1234567, I8);~ Concat(~ Concat(~ Concat(~ Concat(~ Concat( ~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, I12345),~ A6, I12345, I6, I123456),~ A7, I123456, I7, I1234567),~ A8, I1234567, I8, I12345678),~ A9, I12345678, I9, J); Nodelocation: 88,232,1 Nodesize: 48,24 Windstate: 2,27,120,469,638 Paramnames: A1,A2,A3,A4,A5,A6,A7,A8,A9,I1,I2,I3,I4,I5,I6,I7,I8,I9,J Att__cloakdefn: 0 Function Concat5(A1, A2, A3, A4, A5: ArrayType; I1, I2, I3, I4, I5, J: IndexType ) Title: Concat5 Description: Concatenates five arrays, A1, ..., A5. I1, ..., I5 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I5. Definition: Index I12 := Concat(I1,I2);~ Index I123:= Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Concat(~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, J); Nodelocation: 88,120,1 Nodesize: 48,24 Windstate: 2,160,160,986,596 Paramnames: A1,A2,A3,A4,A5,I1,I2,I3,I4,I5,J Function Concat6(A1, A2, A3, A4, A5, A6: ArrayType; I1, I2, I3, I4, I5, I6, J: IndexType ) Title: Concat6 Description: Concatenates six arrays, A1, ..., A6. I1, ..., I6 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I6. Definition: Index I12 := Concat(I1,I2);~ Index I123:= Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Index I12345 := Concat(I1234, I5);~ Concat(~ Concat(~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, I12345),~ A6, I12345, I6, J); Nodelocation: 192,120,1 Nodesize: 48,24 Windstate: 2,644,94,602,712 Paramnames: A1,A2,A3,A4,A5,A6,I1,I2,I3,I4,I5,I6,J Att__cloakdefn: 0 Function Concat7(A1, A2, A3, A4, A5, A6, A7: ArrayType; I1, I2, I3, I4, I5, I6, I7, J: IndexType ) Title: Concat7 Description: Concatenates seven arrays, A1, ..., A7. I1, ..., I7 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I7. Definition: Index I12 := Concat(I1,I2);~ Index I123:= Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Index I12345 := Concat(I1234, I5);~ Index I123456 := Concat(I12345, I6);~ Concat(~ Concat(~ Concat(~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, I12345),~ A6, I12345, I6, I123456),~ A7, I123456, I7, J); Nodelocation: 88,176,1 Nodesize: 48,24 Windstate: 2,580,98,551,565 Paramnames: A1,A2,A3,A4,A5,A6,A7,I1,I2,I3,I4,I5,I6,I7,J Function Concat8(A1, A2, A3, A4, A5, A6, A7, A8: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, J: IndexType ) Title: Concat8 Description: Concatenates eight arrays, A1, ..., A8. I1, ..., I8 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I8. Definition: Index I12 := Concat(I1,I2);~ Index I123:= Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Index I12345 := Concat(I1234, I5);~ Index I123456 := Concat(I12345, I6);~ Index I1234567 := Concat(I123456, I7);~ Concat(~ Concat(~ Concat(~ Concat(~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, I12345),~ A6, I12345, I6, I123456),~ A7, I123456, I7, I1234567),~ A8, I1234567, I8, J); Nodelocation: 192,176,1 Nodesize: 48,24 Windstate: 2,12,98,561,737 Paramnames: A1,A2,A3,A4,A5,A6,A7,A8,I1,I2,I3,I4,I5,I6,I7,I8,J Att__cloakdefn: 0 Function Concat10(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, J: IndexType) Title: Concat10 Description: Concatenates ten arrays, A1, ..., A10. I1, ..., I10 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I10. Definition: Index I12 := Concat(I1,I2);~ Index I123 := Concat(I12, I3);~ Index I1234 := Concat(I123, I4);~ Index I12345 := Concat(I1234, I5);~ Index I123456 := Concat(I12345, I6);~ Index I1234567 := Concat(I123456, I7);~ Index I12345678 := Concat(I1234567, I8);~ Index I123456789 := Concat(I12345678, I9);~ Concat(~ Concat(~ Concat(~ Concat(~ Concat(~ Concat( ~ Concat(~ Concat(~ Concat( A1,A2,I1,I2,I12 ), ~ A3, I12, I3, I123), ~ A4, I123, I4, I1234),~ A5, I1234, I5, I12345),~ A6, I12345, I6, I123456),~ A7, I123456, I7, I1234567),~ A8, I1234567, I8, I12345678),~ A9, I12345678, I9, I123456789),~ A10, I123456789, I10, J); Nodelocation: 192,232,1 Nodesize: 48,24 Windstate: 2,542,93,632,744 Paramnames: A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,J Att__cloakdefn: 0 Function Concatrows(A : ArrayType ; RowIndex,ColIndex,ResultIndex : IndexType) Title: ConcatRows (A,I,J,K) Description: Takes an array, A indexed by RowIndex & ColIndex, and concatenates each row, henceforth flattening the array by one dimension. The result is indexed by ResultIndex, which must be an index with size(RowIndex) * size(ColIndex) elements. Definition: index L := [ identifier of RowIndex, identifier of ColIndex, "val"];~ slice(Mdarraytotable(A,ResultIndex,L),L,3) Nodelocation: 320,64,1 Nodesize: 64,24 Windstate: 2,499,85,478,348 Paramnames: A,RowIndex,ColIndex,ResultIndex Close Concatenation_udfs Library Odbc_library Title: ODBC Library Author: Lonnie Date: Thu, Sep 11, 1997 2:15 PM Saveauthor: Lonnie Savedate: Tue, Feb 05, 2008 10:03 AM Defaultsize: 48,24 Nodelocation: 56,328,1 Nodesize: 52,20 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Diagstate: 1,20,272,499,462,17 Fontstyle: Arial, 13 Function Insertrecsql(A:ArrayType;I:IndexType;L:IndexType;row:IndexType;dbTableName) Title: InsertRecSql Description: Generates the SQL "INSERT INTO" statement for one line of table A. A is a 2-D table indexed by rows I and columns L. L's domain serves as the column names in the database table. dbTableName is the name of the table in the database. The result begins with two semi-colons, since it will be used with an SQL statement preceeding it.~ ~ 29.8.2008 Jouni Tuomisto~ I added the parameter IGNORE because it ignores rows that would cause duplicate-key violations. This way, there is no need to check for e.g. existing locations of new indices.~ ~ 6.1.2009 Jouni Tuomisto~ I changed the A[I=row] to A[@I=@row] because the original function does not work correctly, if there are non-unique rows in the index. Definition: (';;INSERT IGNORE INTO ' & dbTableName & '(' & JoinText(L,L,',') & ') VALUES (' & Vallist(A[@I=@row],L)) & ') ' Nodelocation: 184,32,1 Nodesize: 52,24 Windstate: 2,591,203,487,469 Paramnames: A,I,L,row,dbTableName Function Vallist(V:ArrayType;I:IndexType) Title: ValList Description: Takes a list of values, and returns a string which the concatenation of each value, separated by commas, and with each value quoted. Definition: JoinText( '''' & V & '''', I, ',') Nodelocation: 72,32,0 Nodesize: 52,24 Windstate: 2,642,360,476,224 Paramnames: V,I Numberformat: 1,F,4,14,0,0 Function Writetablesql(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName) Title: WriteTableSql(Table,Rows,Labels,dbTableName) Description: Returns the SQL that will write the table to the database table.~ This can be used as the second argument to DBWrite.~ This SQL statement replaces the entire contents of an existing table with the new data. Definition: 'DELETE FROM '& Dbtablename & JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex) Nodelocation: 328,32,1 Nodesize: 88,24 Windstate: 2,728,341,510,476 Paramnames: Tabl,RowIndex,LabelIndex,dbTableName Function Appendtablesql(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName) Title: AppendTableSql(Table,Rows,Labels,dbTableName) Description: Returns the SQL that will write the table to the database table.~ This can be used as the second argument to DBWrite.~ This SQL statement replaces the entire contents of an existing table with the new data. Definition: JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex) Nodelocation: 328,88,1 Nodesize: 88,24 Windstate: 2,559,127,510,476 Paramnames: Tabl,RowIndex,LabelIndex,dbTableName Close Odbc_library Function Card(table:texttype) Title: Card Description: Brings the largest id number from the table defined in the parameter. Definition: index i:= DBquery(odbc,'~ SELECT MAX(id) AS id ~ FROM '&table&'~ ');~ index j:= dblabels(i);~ max(max(DBTable(i, j ),i),j) Nodelocation: 56,272,1 Nodesize: 48,12 Windstate: 2,102,90,476,331 Nodecolor: 39325,65535,39321 Paramnames: table Index Table1 {!40000|Att_previndexvalue: ['Obj','Cell','Loc','Loccell','Sett','Item','Res']} Title: Tables Description: List of such tables in Opasnet Base that are being written to by this module. Definition: ['Obj','Cell','Loc','Loccell','Sett','Item','Res'] Nodelocation: 280,256,1 Nodesize: 48,13 Valuestate: 2,15,594,158,227,0,MIDM Variable Cardinals Title: Cardinals Description: The largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button. Definition: Table(Table1)(~ 1010,760.992K,14.3K,2.1131M,47,146,2.539343M~ ) Nodelocation: 280,232,1 Nodesize: 48,12 Windstate: 2,634,394,476,332 Defnstate: 2,193,270,416,303,0,MIDM Valuestate: 2,87,329,416,303,0,MIDM Nodecolor: 39325,65535,39321 Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 Function Findid(in, table; cond:texttype) Title: Findid Description: This function gets an id from a table. ~ in: the property for which the id is needed. In MUST be unique in cond and it must contain index i.~ table: the table from where the id is brought. The table MUST have .j as the column index, .i as the row index, and a column named 'id'.~ cond: the name of the field that is compared with in. Cond must be text. Definition: index L:= in[.i=unique(in, in.i)];~ var a:= if (L&' ') = (table[.j=cond]&' ') then table[.j='id'] else 0;~ a:= textify(sum(a, table.i));~ a[.L=in] Nodelocation: 56,248,1 Nodesize: 48,12 Windstate: 2,636,101,494,519 Paramnames: in,table,cond Function Types(type) Title: Types Description: Finds the objects that are of the object type "type" (the only parameter of this function). Based on the information in Objects1. Definition: var a:= if Objects1[.j='Typ_id']=type then 1 else 0;~ Objects1[Object_all=subset(a),.j='id'] Nodelocation: 56,224,1 Nodesize: 48,12 Windstate: 2,551,191,476,344 Paramnames: type Function Write(var, table) Title: Write Description: if size(var)>0 then dbwrite((if platform = 'Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102')&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'~ , appendtablesql(var,var.i, var.j, table&' ')) Definition: if size(var)>0 then dbwrite((if platform = 'Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102')&';Database=opasnet_base;User=result_writer; Password='&writerpsswd&';Option=3'~ , appendtablesql(var,var.i, var.j, table&' ')) Nodelocation: 56,296,1 Nodesize: 48,12 Windstate: 2,751,65,501,457 Paramnames: var,table Att__cloakdefn: 0 Variable Odbc_write Title: ODBC write Description: For Lumina AWP use the following should be used:~ 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=resultwriter; Password=;Option=3'~ ~ For internal THL use the following should be used:~ 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3' Definition: var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';~ a&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3' Nodelocation: 168,232,1 Nodesize: 48,12 Nodeinfo: 1,1,0,1,1,1,0,,0, Windstate: 2,608,341,495,346 Valuestate: 2,168,178,833,303,0,MIDM Displayoutputs: [] Variable Opasnet_username Title: Opasnet username Description: The username for Opasnet wiki Definition: 'Add username' Nodelocation: 168,161,1 Nodesize: 48,22 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,102,90,476,398 Aliases: Formnode Username1 Nodecolor: 52425,39321,65535 Variable Opasnet_password Title: Opasnet password Description: The user's password for Opasnet wiki. Definition: 'Add password' Nodelocation: 168,200,1 Nodesize: 48,22 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,102,90,476,520 Aliases: Formnode Password1 Nodecolor: 52425,39321,65535 Variable Odbc Title: ODBC Description: Contains the parameters for the open database connectivity (ODBC).~ For Lumina AWP use the following should be used:~ 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'~ ~ For THL internal use the following should be used:~ 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3' Definition: var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';~ a&';Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3' Nodelocation: 168,128,1 Nodesize: 48,12 Nodeinfo: 1,1,0,1,1,1,0,,0, Windstate: 2,149,300,508,420 Valuestate: 2,56,66,918,303,0,MIDM Variable Dim Title: Dim Definition: index i:= copyindex(D_i);~ index j:= copyindex(D_j);~ Dim1[d_i=i, d_j=j] Nodelocation: 400,160,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,89,98,476,224 Valuestate: 2,635,328,556,489,0,MIDM Nodecolor: 19661,54073,65535 Reformdef: [D_i,D_j] Reformval: [Sys_localindex('J'),Sys_localindex('I')] Variable Ind Title: Ind Definition: index i:= copyindex(I_i);~ index j:= copyindex(I_j);~ Ind1[I_i=i, I_j=j] Nodelocation: 400,184,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,380,47,476,296 Valuestate: 2,490,110,649,655,0,MIDM Nodecolor: 19661,54073,65535 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Variable Loc Title: Loc Definition: index i:= copyindex(L_i);~ index j:= copyindex(L_j);~ Loc1[L_i=i, L_j=j] Nodelocation: 400,96,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,370,45,476,445 Valuestate: 2,43,42,1147,516,0,MIDM Nodecolor: 19661,54073,65535 Reformval: [Sys_localindex('J'),Sys_localindex('I')] Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 Variable Obj Title: Obj Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: index i:= copyindex(O_i);~ index j:= copyindex(O_j);~ Obj2[O_i=i, O_j=j] Nodelocation: 400,48,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Valuestate: 2,21,103,977,421,0,MIDM Nodecolor: 19661,54073,65535 Reformval: [Sys_localindex('J'),Sys_localindex('I')] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Text Te4 Description: Standard versions Nodelocation: 400,112,-1 Nodesize: 72,100 Nodeinfo: 1,0,0,1,0,1,0,,0, Index D_i Title: D_i Definition: [0] Nodelocation: 168,24,1 Nodesize: 48,12 Index D_j Title: D_j Definition: ['id','Ident','Name'] Nodelocation: 168,48,1 Nodesize: 48,12 Index I_i {!40000|Att_previndexvalue: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]} Title: I_i Definition: [0] Nodelocation: 168,72,1 Nodesize: 48,12 Index I_j {!40000|Att_previndexvalue: ['id','Iident','Iname','Did','Dident','Dname']} Title: I_j Definition: ['id','Iident','Iname','Did','Dident','Dname'] Nodelocation: 168,96,1 Nodesize: 48,12 Index L_i {!40000|Att_previndexvalue: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,6746,6747,6748,6749,6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,6900,6901,6902,6903,6904,6905,6906,6907,6908,6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,6999,7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,7297,7298,7299,7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400,7401,7402,7403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706,7707,7708,7709,7710,7711,7712,7713,7714,7715,7716,7717,7718,7719,7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7730,7731,7732,7733,7734,7735,7736,7737,7738,7739,7740,7741,7742,7743,7744,7745,7746,7747,7748,7749,7750,7751,7752,7753,7754,7755,7756,7757,7758,7759,7760,7761,7762,7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,7792,7793,7794,7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,7806,7807,7808,7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,7856,7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,7904,7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951,7952,7953,7954,7955,7956,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983,7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8144,8145,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,8795,8796,8797,8798,8799,8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,8840,8841,8842,8843,8844,8845,8846,8847,8848,8849,8850,8851,8852,8853,8854,8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,8900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,8930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,8945,8946,8947,8948,8949,8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,8993,8994,8995,8996,8997,8998,8999,9000,9001,9002,9003,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,9050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,9140,9141,9142,9143,9144,9145,9146,9147,9148,9149,9150,9151,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,9200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9249,9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9299,9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9398,9399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9450,9451,9452,9453,9454,9455,9456,9457,9458,9459,9460,9461,9462,9463,9464,9465,9466,9467,9468,9469,9470,9471,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9596,9597,9598,9599,9600,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,9650,9651,9652,9653,9654,9655,9656,9657,9658,9659,9660,9661,9662,9663,9664,9665,9666,9667,9668,9669,9670,9671,9672,9673,9674,9675,9676,9677,9678,9679,9680,9681,9682,9683,9684,9685,9686,9687,9688,9689,9690,9691,9692,9693,9694,9695,9696,9697,9698,9699,9700,9701,9702,9703,9704,9705,9706,9707,9708,9709,9710,9711,9712,9713,9714,9715,9716,9717,9718,9719,9720,9721,9722,9723,9724,9725,9726,9727,9728,9729,9730,9731,9732,9733,9734,9735,9736,9737,9738,9739,9740,9741,9742,9743,9744,9745,9746,9747,9748,9749,9750,9751,9752,9753,9754,9755,9756,9757,9758,9759,9760,9761,9762,9763,9764,9765,9766,9767,9768,9769,9770,9771,9772,9773,9774,9775,9776,9777,9778,9779,9780,9781,9782,9783,9784,9785,9786,9787,9788,9789,9790,9791,9792,9793,9794,9795,9796,9797,9798,9799,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9812,9813,9814,9815,9816,9817,9818,9819,9820,9821,9822,9823,9824,9825,9826,9827,9828,9829,9830,9831,9832,9833,9834,9835,9836,9837,9838,9839,9840,9841,9842,9843,9844,9845,9846,9847,9848,9849,9850,9851,9852,9853,9854,9855,9856,9857,9858,9859,9860,9861,9862,9863,9864,9865,9866,9867,9868,9869,9870,9871,9872,9873,9874,9875,9876,9877,9878,9879,9880,9881,9882,9883,9884,9885,9886,9887,9888,9889,9890,9891,9892,9893,9894,9895,9896,9897,9898,9899,9900,9901,9902,9903,9904,9905,9906,9907,9908,9909,9910,9911,9912,9913,9914,9915,9916,9917,9918,9919,9920,9921,9922,9923,9924,9925,9926,9927,9928,9929,9930,9931,9932,9933,9934,9935,9936,9937,9938,9939,9940,9941,9942,9943,9944,9945,9946,9947,9948,9949,9950,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9961,9962,9963,9964,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9978,9979,9980,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999,10K,10.001K,10.002K,10.003K,10.004K,10.005K,10.006K,10.007K,10.008K,10.009K,10.01K,10.011K,10.012K,10.013K,10.014K,10.015K,10.016K,10.017K,10.018K,10.019K,10.02K,10.021K,10.022K,10.023K,10.024K,10.025K,10.026K,10.027K,10.028K,10.029K,10.03K,10.031K,10.032K,10.033K,10.034K,10.035K,10.036K,10.037K,10.038K,10.039K,10.04K,10.041K,10.042K,10.043K,10.044K,10.045K,10.046K,10.047K,10.048K,10.049K,10.05K,10.051K,10.052K,10.053K,10.054K,10.055K,10.056K,10.057K,10.058K,10.059K,10.06K,10.061K,10.062K,10.063K,10.064K,10.065K,10.066K,10.067K,10.068K,10.069K,10.07K,10.071K,10.072K,10.073K,10.074K,10.075K,10.076K,10.077K,10.078K,10.079K,10.08K,10.081K,10.082K,10.083K,10.084K,10.085K,10.086K,10.087K,10.088K,10.089K,10.09K,10.091K,10.092K,10.093K,10.094K,10.095K,10.096K,10.097K,10.098K,10.099K,10.1K,10.101K,10.102K,10.103K,10.104K,10.105K,10.106K,10.107K,10.108K,10.109K,10.11K,10.111K,10.112K,10.113K,10.114K,10.115K,10.116K,10.117K,10.118K,10.119K,10.12K,10.121K,10.122K,10.123K,10.124K,10.125K,10.126K,10.127K,10.128K,10.129K,10.13K,10.131K,10.132K,10.133K,10.134K,10.135K,10.136K,10.137K,10.138K,10.139K,10.14K,10.141K,10.142K,10.143K,10.144K,10.145K,10.146K,10.147K,10.148K,10.149K,10.15K,10.151K,10.152K,10.153K,10.154K,10.155K,10.156K,10.157K,10.158K,10.159K,10.16K,10.161K,10.162K,10.163K,10.164K,10.165K,10.166K,10.167K,10.168K,10.169K,10.17K,10.171K,10.172K,10.173K,10.174K,10.175K,10.176K,10.177K,10.178K,10.179K,10.18K,10.181K,10.182K,10.183K,10.184K,10.185K,10.186K,10.187K,10.188K,10.189K,10.19K,10.191K,10.192K,10.193K,10.194K,10.195K,10.196K,10.197K,10.198K,10.199K,10.2K,10.201K,10.202K,10.203K,10.204K,10.205K,10.206K,10.207K,10.208K,10.209K,10.21K,10.211K,10.212K,10.213K,10.214K,10.215K,10.216K,10.217K,10.218K,10.219K,10.22K,10.221K,10.222K,10.223K,10.224K,10.225K,10.226K,10.227K,10.228K,10.229K,10.23K,10.231K,10.232K,10.233K,10.234K,10.235K,10.236K,10.237K,10.238K,10.239K,10.24K,10.241K,10.242K,10.243K,10.244K,10.245K,10.246K,10.247K,10.248K,10.249K,10.25K,10.251K,10.252K,10.253K,10.254K,10.255K,10.256K,10.257K,10.258K,10.259K,10.26K,10.261K,10.262K,10.263K,10.264K,10.265K,10.266K,10.267K,10.268K,10.269K,10.27K,10.271K,10.272K,10.273K,10.274K,10.275K,10.276K,10.277K,10.278K,10.279K,10.28K,10.281K,10.282K,10.283K,10.284K,10.285K,10.286K,10.287K,10.288K,10.289K,10.29K,10.291K,10.292K,10.293K,10.294K,10.295K,10.296K,10.297K,10.298K,10.299K,10.3K,10.301K,10.302K,10.303K,10.304K,10.305K,10.306K,10.307K,10.308K,10.309K,10.31K,10.311K,10.312K,10.313K,10.314K,10.315K,10.316K,10.317K,10.318K,10.319K,10.32K,10.321K,10.322K,10.323K,10.324K,10.325K,10.326K,10.327K,10.328K,10.329K,10.33K,10.331K,10.332K,10.333K,10.334K,10.335K,10.336K,10.337K,10.338K,10.339K,10.34K,10.341K,10.342K,10.343K,10.344K,10.345K,10.346K,10.347K,10.348K,10.349K,10.35K,10.351K,10.352K,10.353K,10.354K,10.355K,10.356K,10.357K,10.358K,10.359K,10.36K,10.361K,10.362K,10.363K,10.364K,10.365K,10.366K,10.367K,10.368K,10.369K,10.37K,10.371K,10.372K,10.373K,10.374K,10.375K,10.376K,10.377K,10.378K,10.379K,10.38K,10.381K,10.382K,10.383K,10.384K,10.385K,10.386K,10.387K,10.388K,10.389K,10.39K,10.391K,10.392K,10.393K,10.394K,10.395K,10.396K,10.397K,10.398K,10.399K,10.4K,10.401K,10.402K,10.403K,10.404K,10.405K,10.406K,10.407K,10.408K,10.409K,10.41K,10.411K,10.412K,10.413K,10.414K,10.415K,10.416K,10.417K,10.418K,10.419K,10.42K,10.421K,10.422K,10.423K,10.424K,10.425K,10.426K,10.427K,10.428K,10.429K,10.43K,10.431K,10.432K,10.433K,10.434K,10.435K,10.436K,10.437K,10.438K,10.439K,10.44K,10.441K,10.442K,10.443K,10.444K,10.445K,10.446K,10.447K,10.448K,10.449K,10.45K,10.451K,10.452K,10.453K,10.454K,10.455K,10.456K,10.457K,10.458K,10.459K,10.46K,10.461K,10.462K,10.463K,10.464K,10.465K,10.466K,10.467K,10.468K,10.469K,10.47K,10.471K,10.472K,10.473K,10.474K,10.475K,10.476K,10.477K,10.478K,10.479K,10.48K,10.481K,10.482K,10.483K,10.484K,10.485K,10.486K,10.487K,10.488K,10.489K,10.49K,10.491K,10.492K,10.493K,10.494K,10.495K,10.496K,10.497K,10.498K,10.499K,10.5K,10.501K,10.502K,10.503K,10.504K,10.505K,10.506K,10.507K,10.508K,10.509K,10.51K,10.511K,10.512K,10.513K,10.514K,10.515K,10.516K,10.517K,10.518K,10.519K,10.52K,10.521K,10.522K,10.523K,10.524K,10.525K,10.526K,10.527K,10.528K,10.529K,10.53K,10.531K,10.532K,10.533K,10.534K,10.535K,10.536K,10.537K,10.538K,10.539K,10.54K,10.541K,10.542K,10.543K,10.544K,10.545K,10.546K,10.547K,10.548K,10.549K,10.55K,10.551K,10.552K,10.553K,10.554K,10.555K,10.556K,10.557K,10.558K,10.559K,10.56K,10.561K,10.562K,10.563K,10.564K,10.565K,10.566K,10.567K,10.568K,10.569K,10.57K,10.571K,10.572K,10.573K,10.574K,10.575K,10.576K,10.577K,10.578K,10.579K,10.58K,10.581K,10.582K,10.583K,10.584K,10.585K,10.586K,10.587K,10.588K,10.589K,10.59K,10.591K,10.592K,10.593K,10.594K,10.595K,10.596K,10.597K,10.598K,10.599K,10.6K,10.601K,10.602K,10.603K,10.604K,10.605K,10.606K,10.607K,10.608K,10.609K,10.61K,10.611K,10.612K,10.613K,10.614K,10.615K,10.616K,10.617K,10.618K,10.619K,10.62K,10.621K,10.622K,10.623K,10.624K,10.625K,10.626K,10.627K,10.628K,10.629K,10.63K,10.631K,10.632K,10.633K,10.634K,10.635K,10.636K,10.637K,10.638K,10.639K,10.64K,10.641K,10.642K,10.643K,10.644K,10.645K,10.646K,10.647K,10.648K,10.649K,10.65K,10.651K,10.652K,10.653K,10.654K,10.655K,10.656K,10.657K,10.658K,10.659K,10.66K,10.661K,10.662K,10.663K,10.664K,10.665K,10.666K,10.667K,10.668K,10.669K,10.67K,10.671K,10.672K,10.673K,10.674K,10.675K,10.676K,10.677K,10.678K,10.679K,10.68K,10.681K,10.682K,10.683K,10.684K,10.685K,10.686K,10.687K,10.688K,10.689K,10.69K,10.691K,10.692K,10.693K,10.694K,10.695K,10.696K,10.697K,10.698K,10.699K,10.7K,10.701K,10.702K,10.703K,10.704K,10.705K,10.706K,10.707K,10.708K,10.709K,10.71K,10.711K,10.712K,10.713K,10.714K,10.715K,10.716K,10.717K,10.718K,10.719K,10.72K,10.721K,10.722K,10.723K,10.724K,10.725K,10.726K,10.727K,10.728K,10.729K,10.73K,10.731K,10.732K,10.733K,10.734K,10.735K,10.736K,10.737K,10.738K,10.739K,10.74K,10.741K,10.742K,10.743K,10.744K,10.745K,10.746K,10.747K,10.748K,10.749K,10.75K,10.751K,10.752K,10.753K,10.754K,10.755K,10.756K,10.757K,10.758K,10.759K,10.76K,10.761K,10.762K,10.763K,10.764K,10.765K,10.766K,10.767K,10.768K,10.769K,10.77K,10.771K,10.772K,10.773K,10.774K,10.775K,10.776K,10.777K,10.778K,10.779K,10.78K,10.781K,10.782K,10.783K,10.784K,10.785K,10.786K,10.787K,10.788K,10.789K,10.79K,10.791K,10.792K,10.793K,10.794K,10.795K,10.796K,10.797K,10.798K,10.799K,10.8K,10.801K,10.802K,10.803K,10.804K,10.805K,10.806K,10.807K,10.808K,10.809K,10.81K,10.811K,10.812K,10.813K,10.814K,10.815K,10.816K,10.817K,10.818K,10.819K,10.82K,10.821K,10.822K,10.823K,10.824K,10.825K,10.826K,10.827K,10.828K,10.829K,10.83K,10.831K,10.832K,10.833K,10.834K,10.835K,10.836K,10.837K,10.838K,10.839K,10.84K,10.841K,10.842K,10.843K,10.844K,10.845K,10.846K,10.847K,10.848K,10.849K,10.85K,10.851K,10.852K,10.853K,10.854K,10.855K,10.856K,10.857K,10.858K,10.859K,10.86K,10.861K,10.862K,10.863K,10.864K,10.865K,10.866K,10.867K,10.868K,10.869K,10.87K,10.871K,10.872K,10.873K,10.874K,10.875K,10.876K,10.877K,10.878K,10.879K,10.88K,10.881K,10.882K,10.883K,10.884K,10.885K,10.886K,10.887K,10.888K,10.889K,10.89K,10.891K,10.892K,10.893K,10.894K,10.895K,10.896K,10.897K,10.898K,10.899K,10.9K,10.901K,10.902K,10.903K,10.904K,10.905K,10.906K,10.907K,10.908K,10.909K,10.91K,10.911K,10.912K,10.913K,10.914K,10.915K,10.916K,10.917K,10.918K,10.919K,10.92K,10.921K,10.922K,10.923K,10.924K,10.925K,10.926K,10.927K,10.928K,10.929K,10.93K,10.931K,10.932K,10.933K,10.934K,10.935K,10.936K,10.937K,10.938K,10.939K,10.94K,10.941K,10.942K,10.943K,10.944K,10.945K,10.946K,10.947K,10.948K,10.949K,10.95K,10.951K,10.952K,10.953K,10.954K,10.955K,10.956K,10.957K,10.958K,10.959K,10.96K,10.961K,10.962K,10.963K,10.964K,10.965K,10.966K,10.967K,10.968K,10.969K,10.97K,10.971K,10.972K,10.973K,10.974K,10.975K,10.976K,10.977K,10.978K,10.979K,10.98K,10.981K,10.982K,10.983K,10.984K,10.985K,10.986K,10.987K,10.988K,10.989K,10.99K,10.991K,10.992K,10.993K,10.994K,10.995K,10.996K,10.997K,10.998K,10.999K,11K,11.001K,11.002K,11.003K,11.004K,11.005K,11.006K,11.007K,11.008K,11.009K,11.01K,11.011K,11.012K,11.013K,11.014K,11.015K,11.016K,11.017K,11.018K,11.019K,11.02K,11.021K,11.022K,11.023K,11.024K,11.025K,11.026K,11.027K,11.028K,11.029K,11.03K,11.031K,11.032K,11.033K,11.034K,11.035K,11.036K,11.037K,11.038K,11.039K,11.04K,11.041K,11.042K,11.043K,11.044K,11.045K,11.046K,11.047K,11.048K,11.049K,11.05K,11.051K,11.052K,11.053K,11.054K,11.055K,11.056K,11.057K,11.058K,11.059K,11.06K,11.061K,11.062K,11.063K,11.064K,11.065K,11.066K,11.067K,11.068K,11.069K,11.07K,11.071K,11.072K,11.073K,11.074K,11.075K,11.076K,11.077K,11.078K,11.079K,11.08K,11.081K,11.082K,11.083K,11.084K,11.085K,11.086K,11.087K,11.088K,11.089K,11.09K,11.091K,11.092K,11.093K,11.094K,11.095K,11.096K,11.097K,11.098K,11.099K,11.1K,11.101K,11.102K,11.103K,11.104K,11.105K,11.106K,11.107K,11.108K,11.109K,11.11K,11.111K,11.112K,11.113K,11.114K,11.115K,11.116K,11.117K,11.118K,11.119K,11.12K,11.121K,11.122K,11.123K,11.124K,11.125K,11.126K,11.127K,11.128K,11.129K,11.13K,11.131K,11.132K,11.133K,11.134K,11.135K,11.136K,11.137K,11.138K,11.139K,11.14K,11.141K,11.142K,11.143K,11.144K,11.145K,11.146K,11.147K,11.148K,11.149K,11.15K,11.151K,11.152K,11.153K,11.154K,11.155K,11.156K,11.157K,11.158K,11.159K,11.16K,11.161K,11.162K,11.163K,11.164K,11.165K,11.166K,11.167K,11.168K,11.169K,11.17K,11.171K,11.172K,11.173K,11.174K,11.175K,11.176K,11.177K,11.178K,11.179K,11.18K,11.181K,11.182K,11.183K,11.184K,11.185K,11.186K,11.187K,11.188K,11.189K,11.19K,11.191K,11.192K,11.193K,11.194K,11.195K,11.196K,11.197K,11.198K,11.199K,11.2K,11.201K,11.202K,11.203K,11.204K,11.205K,11.206K,11.207K,11.208K,11.209K,11.21K,11.211K,11.212K,11.213K,11.214K,11.215K,11.216K,11.217K,11.218K,11.219K,11.22K,11.221K,11.222K,11.223K,11.224K,11.225K,11.226K,11.227K,11.228K,11.229K,11.23K,11.231K,11.232K,11.233K,11.234K,11.235K,11.236K,11.237K,11.238K,11.239K,11.24K,11.241K,11.242K,11.243K,11.244K,11.245K,11.246K,11.247K,11.248K,11.249K,11.25K,11.251K,11.252K,11.253K,11.254K,11.255K,11.256K,11.257K,11.258K,11.259K,11.26K,11.261K,11.262K,11.263K,11.264K,11.265K,11.266K,11.267K,11.268K,11.269K,11.27K,11.271K,11.272K,11.273K,11.274K,11.275K,11.276K,11.277K,11.278K,11.279K,11.28K,11.281K,11.282K,11.283K,11.284K,11.285K,11.286K,11.287K,11.288K,11.289K,11.29K,11.291K,11.292K,11.293K,11.294K,11.295K,11.296K,11.297K,11.298K,11.299K,11.3K,11.301K,11.302K,11.303K,11.304K,11.305K,11.306K,11.307K,11.308K,11.309K,11.31K,11.311K,11.312K,11.313K,11.314K,11.315K,11.316K,11.317K,11.318K,11.319K,11.32K,11.321K,11.322K,11.323K,11.324K,11.325K,11.326K,11.327K,11.328K,11.329K,11.33K,11.331K,11.332K,11.333K,11.334K,11.335K,11.336K,11.337K,11.338K,11.339K,11.34K,11.341K,11.342K,11.343K,11.344K,11.345K,11.346K,11.347K,11.348K,11.349K,11.35K,11.351K,11.352K,11.353K,11.354K,11.355K,11.356K,11.357K,11.358K,11.359K,11.36K,11.361K,11.362K,11.363K,11.364K,11.365K,11.366K,11.367K,11.368K,11.369K,11.37K,11.371K,11.372K,11.373K,11.374K,11.375K,11.376K,11.377K,11.378K,11.379K,11.38K,11.381K,11.382K,11.383K,11.384K,11.385K,11.386K,11.387K,11.388K,11.389K,11.39K,11.391K,11.392K,11.393K,11.394K,11.395K,11.396K,11.397K,11.398K,11.399K,11.4K,11.401K,11.402K,11.403K,11.404K,11.405K,11.406K,11.407K,11.408K,11.409K,11.41K,11.411K,11.412K,11.413K,11.414K,11.415K,11.416K,11.417K,11.418K,11.419K,11.42K,11.421K,11.422K,11.423K,11.424K,11.425K,11.426K,11.427K,11.428K,11.429K,11.43K,11.431K,11.432K,11.433K,11.434K,11.435K,11.436K,11.437K,11.438K,11.439K,11.44K,11.441K,11.442K,11.443K,11.444K,11.445K,11.446K,11.447K,11.448K,11.449K,11.45K,11.451K,11.452K,11.453K,11.454K,11.455K,11.456K,11.457K,11.458K,11.459K,11.46K,11.461K,11.462K,11.463K,11.464K,11.465K,11.466K,11.467K,11.468K,11.469K,11.47K,11.471K,11.472K,11.473K,11.474K,11.475K,11.476K,11.477K,11.478K,11.479K,11.48K,11.481K,11.482K,11.483K,11.484K,11.485K,11.486K,11.487K,11.488K,11.489K,11.49K,11.491K,11.492K,11.493K,11.494K,11.495K,11.496K,11.497K,11.498K,11.499K,11.5K,11.501K,11.502K,11.503K,11.504K,11.505K,11.506K,11.507K,11.508K,11.509K,11.51K,11.511K,11.512K,11.513K,11.514K,11.515K,11.516K,11.517K,11.518K,11.519K,11.52K,11.521K,11.522K,11.523K,11.524K,11.525K,11.526K,11.527K,11.528K,11.529K,11.53K,11.531K,11.532K,11.533K,11.534K,11.535K,11.536K,11.537K,11.538K,11.539K,11.54K,11.541K,11.542K,11.543K,11.544K,11.545K,11.546K,11.547K,11.548K,11.549K,11.55K,11.551K,11.552K,11.553K,11.554K,11.555K,11.556K,11.557K,11.558K,11.559K,11.56K,11.561K,11.562K,11.563K,11.564K,11.565K,11.566K,11.567K,11.568K,11.569K,11.57K,11.571K,11.572K,11.573K,11.574K,11.575K,11.576K,11.577K,11.578K,11.579K,11.58K,11.581K,11.582K,11.583K,11.584K,11.585K,11.586K,11.587K,11.588K,11.589K,11.59K,11.591K,11.592K,11.593K,11.594K,11.595K,11.596K,11.597K,11.598K,11.599K,11.6K,11.601K,11.602K,11.603K,11.604K,11.605K,11.606K,11.607K,11.608K,11.609K,11.61K,11.611K,11.612K,11.613K,11.614K,11.615K,11.616K,11.617K,11.618K,11.619K,11.62K,11.621K,11.622K,11.623K,11.624K,11.625K,11.626K,11.627K,11.628K,11.629K,11.63K,11.631K,11.632K,11.633K,11.634K,11.635K,11.636K,11.637K,11.638K,11.639K,11.64K,11.641K,11.642K,11.643K,11.644K,11.645K,11.646K,11.647K,11.648K,11.649K,11.65K,11.651K,11.652K,11.653K,11.654K,11.655K,11.656K,11.657K,11.658K,11.659K,11.66K,11.661K,11.662K,11.663K,11.664K,11.665K,11.666K,11.667K,11.668K,11.669K,11.67K,11.671K,11.672K,11.673K,11.674K,11.675K,11.676K,11.677K,11.678K,11.679K,11.68K,11.681K,11.682K,11.683K,11.684K,11.685K,11.686K,11.687K,11.688K,11.689K,11.69K,11.691K,11.692K,11.693K,11.694K,11.695K,11.696K,11.697K,11.698K,11.699K,11.7K,11.701K,11.702K,11.703K,11.704K,11.705K,11.706K,11.707K,11.708K,11.709K,11.71K,11.711K,11.712K,11.713K,11.714K,11.715K,11.716K,11.717K,11.718K,11.719K,11.72K,11.721K,11.722K,11.723K,11.724K,11.725K,11.726K,11.727K,11.728K,11.729K,11.73K,11.731K,11.732K,11.733K,11.734K,11.735K,11.736K,11.737K,11.738K,11.739K,11.74K,11.741K,11.742K,11.743K,11.744K,11.745K,11.746K,11.747K,11.748K,11.749K,11.75K,11.751K,11.752K,11.753K,11.754K,11.755K,11.756K,11.757K,11.758K,11.759K,11.76K,11.761K,11.762K,11.763K,11.764K,11.765K,11.766K,11.767K,11.768K,11.769K,11.77K,11.771K,11.772K,11.773K,11.774K,11.775K,11.776K,11.777K,11.778K,11.779K,11.78K,11.781K,11.782K,11.783K,11.784K,11.785K,11.786K,11.787K,11.788K,11.789K,11.79K,11.791K,11.792K,11.793K,11.794K,11.795K,11.796K,11.797K,11.798K,11.799K,11.8K,11.801K,11.802K,11.803K,11.804K,11.805K,11.806K,11.807K,11.808K,11.809K,11.81K,11.811K,11.812K,11.813K,11.814K,11.815K,11.816K,11.817K,11.818K,11.819K,11.82K,11.821K,11.822K,11.823K,11.824K,11.825K,11.826K,11.827K,11.828K,11.829K,11.83K,11.831K,11.832K,11.833K,11.834K,11.835K,11.836K,11.837K,11.838K,11.839K,11.84K,11.841K,11.842K,11.843K,11.844K,11.845K,11.846K,11.847K,11.848K,11.849K,11.85K,11.851K,11.852K,11.853K,11.854K,11.855K,11.856K,11.857K,11.858K,11.859K,11.86K,11.861K,11.862K,11.863K,11.864K,11.865K,11.866K,11.867K,11.868K,11.869K,11.87K,11.871K,11.872K,11.873K,11.874K,11.875K,11.876K,11.877K,11.878K,11.879K,11.88K,11.881K,11.882K,11.883K,11.884K,11.885K,11.886K,11.887K,11.888K,11.889K,11.89K,11.891K,11.892K,11.893K,11.894K,11.895K,11.896K,11.897K,11.898K,11.899K,11.9K,11.901K,11.902K,11.903K,11.904K,11.905K,11.906K,11.907K,11.908K,11.909K,11.91K,11.911K,11.912K,11.913K,11.914K,11.915K,11.916K,11.917K,11.918K,11.919K,11.92K,11.921K,11.922K,11.923K,11.924K,11.925K,11.926K,11.927K,11.928K,11.929K,11.93K,11.931K,11.932K,11.933K,11.934K,11.935K,11.936K,11.937K,11.938K,11.939K,11.94K,11.941K,11.942K,11.943K,11.944K,11.945K,11.946K,11.947K,11.948K,11.949K,11.95K,11.951K,11.952K,11.953K,11.954K,11.955K,11.956K,11.957K,11.958K,11.959K,11.96K,11.961K,11.962K,11.963K,11.964K,11.965K,11.966K,11.967K,11.968K,11.969K,11.97K,11.971K,11.972K,11.973K,11.974K,11.975K,11.976K,11.977K,11.978K,11.979K,11.98K,11.981K,11.982K,11.983K,11.984K,11.985K,11.986K,11.987K,11.988K,11.989K,11.99K,11.991K,11.992K,11.993K,11.994K,11.995K,11.996K,11.997K,11.998K,11.999K,12K,12.001K,12.002K,12.003K,12.004K,12.005K,12.006K,12.007K,12.008K,12.009K,12.01K,12.011K,12.012K,12.013K,12.014K,12.015K,12.016K,12.017K,12.018K,12.019K,12.02K,12.021K,12.022K,12.023K,12.024K,12.025K,12.026K,12.027K,12.028K,12.029K,12.03K,12.031K,12.032K,12.033K,12.034K,12.035K,12.036K,12.037K,12.038K,12.039K,12.04K,12.041K,12.042K,12.043K,12.044K,12.045K,12.046K,12.047K,12.048K,12.049K,12.05K,12.051K,12.052K,12.053K,12.054K,12.055K,12.056K,12.057K,12.058K,12.059K,12.06K,12.061K,12.062K,12.063K,12.064K,12.065K,12.066K,12.067K,12.068K,12.069K,12.07K,12.071K,12.072K,12.073K,12.074K,12.075K,12.076K,12.077K,12.078K,12.079K,12.08K,12.081K,12.082K,12.083K,12.084K,12.085K,12.086K,12.087K,12.088K,12.089K,12.09K,12.091K,12.092K,12.093K,12.094K,12.095K,12.096K,12.097K,12.098K,12.099K,12.1K,12.101K,12.102K,12.103K,12.104K,12.105K,12.106K,12.107K,12.108K,12.109K,12.11K,12.111K,12.112K,12.113K,12.114K,12.115K,12.116K,12.117K,12.118K,12.119K,12.12K,12.121K,12.122K,12.123K,12.124K,12.125K,12.126K,12.127K,12.128K,12.129K,12.13K,12.131K,12.132K,12.133K,12.134K,12.135K,12.136K,12.137K,12.138K,12.139K,12.14K,12.141K,12.142K,12.143K,12.144K,12.145K,12.146K,12.147K,12.148K,12.149K,12.15K,12.151K,12.152K,12.153K,12.154K,12.155K,12.156K,12.157K,12.158K,12.159K,12.16K,12.161K,12.162K,12.163K,12.164K,12.165K,12.166K,12.167K,12.168K,12.169K,12.17K,12.171K,12.172K,12.173K,12.174K,12.175K,12.176K,12.177K,12.178K,12.179K,12.18K,12.181K,12.182K,12.183K,12.184K,12.185K,12.186K,12.187K,12.188K,12.189K,12.19K,12.191K,12.192K,12.193K,12.194K,12.195K,12.196K,12.197K,12.198K,12.199K,12.2K,12.201K,12.202K,12.203K,12.204K,12.205K,12.206K,12.207K,12.208K,12.209K,12.21K,12.211K,12.212K,12.213K,12.214K,12.215K,12.216K,12.217K,12.218K,12.219K,12.22K,12.221K,12.222K,12.223K,12.224K,12.225K,12.226K,12.227K,12.228K,12.229K,12.23K,12.231K,12.232K,12.233K,12.234K,12.235K,12.236K,12.237K,12.238K,12.239K,12.24K,12.241K,12.242K,12.243K,12.244K,12.245K,12.246K,12.247K,12.248K,12.249K,12.25K,12.251K,12.252K,12.253K,12.254K,12.255K,12.256K,12.257K,12.258K,12.259K,12.26K,12.261K,12.262K,12.263K,12.264K,12.265K,12.266K,12.267K,12.268K,12.269K,12.27K,12.271K,12.272K,12.273K,12.274K,12.275K,12.276K,12.277K,12.278K,12.279K,12.28K,12.281K,12.282K,12.283K,12.284K,12.285K,12.286K,12.287K,12.288K,12.289K,12.29K,12.291K,12.292K,12.293K,12.294K,12.295K,12.296K,12.297K,12.298K,12.299K,12.3K,12.301K,12.302K,12.303K,12.304K,12.305K,12.306K,12.307K,12.308K,12.309K,12.31K,12.311K,12.312K,12.313K,12.314K,12.315K,12.316K,12.317K,12.318K,12.319K,12.32K,12.321K,12.322K,12.323K,12.324K,12.325K,12.326K,12.327K,12.328K,12.329K,12.33K,12.331K,12.332K,12.333K,12.334K,12.335K,12.336K,12.337K,12.338K,12.339K,12.34K,12.341K,12.342K,12.343K,12.344K,12.345K,12.346K,12.347K,12.348K,12.349K,12.35K,12.351K,12.352K,12.353K,12.354K,12.355K,12.356K,12.357K,12.358K,12.359K,12.36K,12.361K,12.362K,12.363K,12.364K,12.365K,12.366K,12.367K,12.368K,12.369K,12.37K,12.371K,12.372K,12.373K,12.374K,12.375K,12.376K,12.377K,12.378K,12.379K,12.38K,12.381K,12.382K,12.383K,12.384K,12.385K,12.386K,12.387K,12.388K,12.389K,12.39K,12.391K,12.392K,12.393K,12.394K,12.395K,12.396K,12.397K,12.398K,12.399K,12.4K,12.401K,12.402K,12.403K,12.404K,12.405K,12.406K,12.407K,12.408K,12.409K,12.41K,12.411K,12.412K,12.413K,12.414K,12.415K,12.416K,12.417K,12.418K,12.419K,12.42K,12.421K,12.422K,12.423K,12.424K,12.425K,12.426K,12.427K,12.428K,12.429K,12.43K,12.431K,12.432K,12.433K,12.434K,12.435K,12.436K,12.437K,12.438K,12.439K,12.44K,12.441K,12.442K,12.443K,12.444K,12.445K,12.446K,12.447K,12.448K,12.449K,12.45K,12.451K,12.452K,12.453K,12.454K,12.455K,12.456K,12.457K,12.458K,12.459K,12.46K,12.461K,12.462K,12.463K,12.464K,12.465K,12.466K,12.467K,12.468K,12.469K,12.47K,12.471K,12.472K,12.473K,12.474K,12.475K,12.476K,12.477K,12.478K,12.479K,12.48K,12.481K,12.482K,12.483K,12.484K,12.485K,12.486K,12.487K,12.488K,12.489K,12.49K,12.491K,12.492K,12.493K,12.494K,12.495K,12.496K,12.497K,12.498K,12.499K,12.5K,12.501K,12.502K,12.503K,12.504K,12.505K,12.506K,12.507K,12.508K,12.509K,12.51K,12.511K,12.512K,12.513K,12.514K,12.515K,12.516K,12.517K,12.518K,12.519K,12.52K,12.521K,12.522K,12.523K,12.524K,12.525K,12.526K,12.527K,12.528K,12.529K,12.53K,12.531K,12.532K,12.533K,12.534K,12.535K,12.536K,12.537K,12.538K,12.539K,12.54K,12.541K,12.542K,12.543K,12.544K,12.545K,12.546K,12.547K,12.548K,12.549K,12.55K,12.551K,12.552K,12.553K,12.554K,12.555K,12.556K,12.557K,12.558K,12.559K,12.56K,12.561K,12.562K,12.563K,12.564K,12.565K,12.566K,12.567K,12.568K,12.569K,12.57K,12.571K,12.572K,12.573K,12.574K,12.575K,12.576K,12.577K,12.578K,12.579K,12.58K,12.581K,12.582K,12.583K,12.584K,12.585K,12.586K,12.587K,12.588K,12.589K,12.59K,12.591K,12.592K,12.593K,12.594K,12.595K,12.596K,12.597K,12.598K,12.599K,12.6K,12.601K,12.602K,12.603K,12.604K,12.605K,12.606K,12.607K,12.608K,12.609K,12.61K,12.611K,12.612K,12.613K,12.614K,12.615K,12.616K,12.617K,12.618K,12.619K,12.62K,12.621K,12.622K,12.623K,12.624K,12.625K,12.626K,12.627K,12.628K,12.629K,12.63K,12.631K,12.632K,12.633K,12.634K,12.635K,12.636K,12.637K,12.638K,12.639K,12.64K,12.641K,12.642K,12.643K,12.644K,12.645K,12.646K,12.647K,12.648K,12.649K,12.65K,12.651K,12.652K,12.653K,12.654K,12.655K,12.656K,12.657K,12.658K,12.659K,12.66K,12.661K,12.662K,12.663K,12.664K,12.665K,12.666K,12.667K,12.668K,12.669K,12.67K,12.671K,12.672K,12.673K,12.674K,12.675K,12.676K,12.677K,12.678K,12.679K,12.68K,12.681K,12.682K,12.683K,12.684K,12.685K,12.686K,12.687K,12.688K,12.689K,12.69K,12.691K,12.692K,12.693K,12.694K,12.695K,12.696K,12.697K,12.698K,12.699K,12.7K,12.701K,12.702K,12.703K,12.704K,12.705K,12.706K,12.707K,12.708K,12.709K,12.71K,12.711K,12.712K,12.713K,12.714K,12.715K,12.716K,12.717K,12.718K,12.719K,12.72K,12.721K,12.722K,12.723K,12.724K,12.725K,12.726K,12.727K,12.728K,12.729K,12.73K,12.731K,12.732K,12.733K,12.734K,12.735K,12.736K,12.737K,12.738K,12.739K,12.74K,12.741K,12.742K,12.743K,12.744K,12.745K,12.746K,12.747K,12.748K,12.749K,12.75K,12.751K,12.752K,12.753K,12.754K,12.755K,12.756K,12.757K,12.758K,12.759K,12.76K,12.761K,12.762K,12.763K,12.764K,12.765K,12.766K,12.767K,12.768K,12.769K,12.77K,12.771K,12.772K,12.773K,12.774K,12.775K,12.776K,12.777K,12.778K,12.779K,12.78K,12.781K,12.782K,12.783K,12.784K,12.785K,12.786K,12.787K,12.788K,12.789K,12.79K,12.791K,12.792K,12.793K,12.794K,12.795K,12.796K,12.797K,12.798K,12.799K,12.8K,12.801K,12.802K,12.803K,12.804K,12.805K,12.806K,12.807K,12.808K,12.809K,12.81K,12.811K,12.812K,12.813K,12.814K,12.815K,12.816K,12.817K,12.818K,12.819K,12.82K,12.821K,12.822K,12.823K,12.824K,12.825K,12.826K,12.827K,12.828K,12.829K,12.83K,12.831K,12.832K,12.833K,12.834K,12.835K,12.836K,12.837K,12.838K,12.839K,12.84K,12.841K,12.842K,12.843K,12.844K,12.845K,12.846K,12.847K,12.848K,12.849K,12.85K,12.851K,12.852K,12.853K,12.854K,12.855K,12.856K,12.857K,12.858K,12.859K,12.86K,12.861K,12.862K,12.863K,12.864K,12.865K,12.866K,12.867K,12.868K,12.869K,12.87K,12.871K,12.872K,12.873K,12.874K,12.875K,12.876K,12.877K,12.878K,12.879K,12.88K,12.881K,12.882K,12.883K,12.884K,12.885K,12.886K,12.887K,12.888K,12.889K,12.89K,12.891K,12.892K,12.893K,12.894K,12.895K,12.896K,12.897K,12.898K,12.899K,12.9K,12.901K,12.902K,12.903K,12.904K,12.905K,12.906K,12.907K,12.908K,12.909K,12.91K,12.911K,12.912K,12.913K,12.914K,12.915K,12.916K,12.917K,12.918K,12.919K,12.92K,12.921K,12.922K,12.923K,12.924K,12.925K,12.926K,12.927K,12.928K,12.929K,12.93K,12.931K,12.932K,12.933K,12.934K,12.935K]} Title: L_i Definition: [0] Nodelocation: 56,120,1 Nodesize: 48,12 Index L_j Title: L_j Definition: ['id','Std_id','Obj_id_i','Location','Roww','Description','id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest'] Nodelocation: 56,144,1 Nodesize: 48,12 Index O_i {!40000|Att_previndexvalue: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430]} Title: O_i Definition: [0] Nodelocation: 56,24,1 Nodesize: 48,13 Index O_j Title: O_j Definition: ['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest'] Nodelocation: 56,48,1 Nodesize: 48,13 Variable Sett Title: Sett Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: index i:= copyindex(S_i);~ index j:= copyindex(S_j);~ Sett1[S_i=i, S_j=j] Nodelocation: 400,72,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Valuestate: 2,227,134,319,515,0,MIDM Nodecolor: 19661,54073,65535 Reformval: [Sys_localindex('J'),Sys_localindex('I')] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable Item Title: Item Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: index i:= copyindex(It_i);~ index j:= copyindex(It_j);~ Item1[it_i=i, it_j=j] Nodelocation: 400,120,1 Nodesize: 48,13 Nodeinfo: 1,1,0,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Valuestate: 2,298,216,382,519,0,MIDM Nodecolor: 19661,54073,65535 Reformval: [Sys_localindex('J'),Sys_localindex('I')] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Index It_i Title: It_i Definition: [0] Nodelocation: 56,168,1 Nodesize: 48,13 Index It_j Title: It_j Definition: ['id','Sett_id','Obj_id','Fail'] Nodelocation: 56,192,1 Nodesize: 48,13 Index S_i {!40000|Att_previndexvalue: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]} Title: S_i Definition: [0] Nodelocation: 56,72,1 Nodesize: 48,13 Index S_j {!40000|Att_previndexvalue: ['id','Obj_id','Settype_id']} Title: S_j Definition: ['id','Obj_id','Settype_id'] Nodelocation: 56,96,1 Nodesize: 48,13 Variable Dim1 Title: Dim Definition: 0 Nodelocation: 280,160,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,89,98,476,224 Valuestate: 2,604,56,556,489,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [D_i,D_j] Reformval: [D_j,D_i] Variable Ind1 Title: Ind Definition: 0 Nodelocation: 280,184,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,380,47,476,296 Defnstate: 2,232,242,874,303,0,MIDM Valuestate: 2,12,22,876,493,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [I_j,I_i] Reformval: [I_j,I_i] Variable Loc1 Title: Loc Definition: 0 Nodelocation: 280,96,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,370,45,476,445 Defnstate: 2,518,523,725,303,0,MIDM Valuestate: 2,404,34,750,516,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [L_j,L_i] Reformval: [L_j,L_i] Variable Obj2 Title: Obj Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: 0 Nodelocation: 280,48,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Defnstate: 2,152,162,1057,343,0,MIDM Valuestate: 2,573,21,700,421,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [O_j,O_i] Reformval: [O_j,O_i] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable Sett1 Title: Sett Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: 0 Nodelocation: 280,72,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Valuestate: 2,529,143,700,421,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [S_j,S_i] Reformval: [S_i,S_j] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Variable Item1 Title: Item Description: This node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information. Definition: 0 Nodelocation: 280,120,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,378,21,493,501 Valuestate: 2,529,143,700,421,0,MIDM Nodecolor: 39325,65535,39321 Reformdef: [It_j,It_i] Reformval: [It_i,It_j] {!40000|Att_resultslicestate: [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]} Function Write1(var, table) Title: Write1 Definition: if size(var)>0 then appendtablesql(var,var.i, var.j, table&' ') Nodelocation: 56,368,1 Nodesize: 48,13 Windstate: 2,284,58,476,224 Paramnames: var,table Variable Writerpsswd Definition: '' Nodelocation: 168,280,0 Nodesize: 52,12 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Windstate: 2,163,375,476,224 Aliases: Formnode Writerpsswd1 Nodecolor: 52425,39321,65535 Variable Platform Title: Platform Definition: Choice(Self,2,False,1) Nodelocation: 320,328,1 Nodesize: 48,12 Aliases: Formnode Platform1 Nodecolor: 52425,39321,65535 Domain: ['Lumina AWP','THL computer'] Button Erase_base_tables Title: Erase Base tables Nodelocation: 320,376,1 Nodesize: 48,24 Windstate: 2,588,98,476,224 Script: (Obj2:= 0)~ (Sett1:= 0)~ (Loc1:= 0)~ (Item1:= 0)~ (Dim1:= 0)~ (Ind1:= 0)~ (O_i:= [0])~ (S_i:= [0])~ (L_i:= [0])~ (It_i:= [0])~ (D_i:= [0])~ (I_i:= [0]) Variable Object_info1_2 {!40000|Att_previndexvalue: ['','','']} Title: Object info1-2 Definition: subtable(Object_info[Info=Info1_2, @n_vars=1]) Nodelocation: 424,336,1 Nodesize: 48,24 Windstate: 2,102,90,476,373 Valuestate: 2,599,363,416,303,0,MIDM Aliases: Formnode Object_info7, Formnode Object_info8 Nodecolor: 52425,39321,65535 Reformdef: [N_vars,Info1_2] Reformval: [Self,Ind_info] Index Info1_2 Title: Info1-2 Definition: ['Ident','Name','Unit','Number of indices','Parameter name','Probabilistic?'] Nodelocation: 424,368,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Button Upload_results Title: Upload results Nodelocation: 176,416,1 Nodesize: 48,24 Windstate: 2,105,205,476,357 Script: Write(W_loccell,'Loccell')~ ~ showprogressbar('Data upload','Writing cell info for variable '&lap&'/'&N_vars,0.7)~ Write(W_cell,'Cell')~ showprogressbar('Data upload','Writing results for variable '&lap&'/'&N_vars, 0.8)~ ~ Write(W_res, 'Res')~ (Lap:= Lap+1)~ (Do_next:= if lap<=N_variables then 'Upload_results' else '')~ evaluatescript(Do_next)~ ~ (Lap:= 1)~ showprogressbar('Data upload','Upload completed',1) Variable Object_info3 Title: Object info3 Description: Additional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index. Definition: subtable(Object_info[Info=Info3]) Nodelocation: 424,408,1 Nodesize: 48,16 Windstate: 2,140,217,476,224 Defnstate: 2,653,25,560,226,0,MIDM Valuestate: 2,752,344,460,228,0,MIDM Aliases: Formnode Object_info6 Nodecolor: 52425,39321,65535 Reformdef: [N_vars,Info3] Reformval: [N_vars,Info] Index Info3 Title: Info3 Definition: ['Analytica identifier','Ident','Name','Unit','Probabilistic?','Append to upload'] Nodelocation: 424,432,1 Nodesize: 48,13 Nodeinfo: 1,1,1,1,1,1,0,0,0,0 Variable Do_next Title: Do next Description: This is a temporary node that is ovewritten when Upload_data and Upload_results are being run. Definition: '' Nodelocation: 312,432,1 Nodesize: 48,16 Close Details Index Columns {!40000|Att_previndexvalue: ['Age','Weight']} Title: Columns Definition: ['Age','Weight'] Nodelocation: 184,352,1 Nodesize: 48,12 Aliases: Formnode Columns1 Button Save_data_tables Title: Save data tables Nodelocation: 480,724,1 Nodesize: 48,20 Script: showprogressbar('Data file saving','Writing Cell',0.2)~ tablefy(W_cell,'cell.csv')~ showprogressbar('Data file saving','Writing Loccell',0.4)~ tablefy(W_loccell,'loccell.csv')~ showprogressbar('Data file saving','Writing Resinfo',0.6)~ tablefy(W_resinfo,'resinfo.csv')~ showprogressbar('Data file saving','Writing Res',0.8)~ tablefy(W_res,'res.csv')~ showprogressbar('Data file saving','Done',1)~ Formnode Platform1 Title: Platform Definition: 0 Nodelocation: 168,20,1 Nodesize: 160,12 Nodeinfo: 1,0,0,1,0,0,0,142,0,1 Nodecolor: 52425,39321,65535 Original: Platform Formnode Writerpsswd1 Title: Writerpsswd Definition: 0 Nodelocation: 168,44,1 Nodesize: 160,12 Nodeinfo: 1,0,0,1,0,0,0,142,0,1 Nodecolor: 52425,39321,65535 Original: Writerpsswd Button Upload_basic_data Title: Upload basic data Nodelocation: 376,724,1 Nodesize: 48,20 Windstate: 2,31,25,825,451 Script: showprogressbar('Data upload','Reading object Info1_2', 0)~ (Cardinals:= array(table1,[card('Obj'), card('Cell'), card('Loc'), card('Loccell'), card('Sett'), card('Item'), card('Res')]))~ showprogressbar('Data upload','Writing objects',0.2)~ ~ Write(W_obj,'Obj')~ showprogressbar('Data upload','Writing locations',0.3)~ ~ O_i:= DBquery(odbc,'SELECT * FROM Obj ')~ O_j:= DBlabels(O_i)~ (Obj2:= DBTable(O_i, O_j))~ (O_j:= copyindex(O_j))~ (O_i:= copyindex(O_i))~ ~ Write(W_objinfo,'Objinfo')~ Write(W_loc,'Loc')~ showprogressbar('Data upload','Reading sets and items',0.4)~ ~ S_i:= DBquery(odbc,' SELECT * FROM Sett ')~ S_j:= DBlabels(S_i)~ (Sett1:= DBTable(S_i, S_j ))~ (S_i:= copyindex(S_i))~ (S_j:= copyindex(S_j))~ ~ I_i:= DBquery(odbc,'SELECT Ind.id as id, Ind.Ident as Iident, Ind.Name as Iname, Dim.id as Did, Dim.Ident as Dident, Dim.Name as Dname FROM Obj as Ind, Obj as Dim, Sett, Item WHERE Ind.id = Item.Obj_id AND Dim.id = Sett.Obj_id AND Item.Sett_id=Sett.id AND Sett.Settype_id = 1 ')~ I_j:= DBlabels(I_i)~ (Ind1:= DBtable(I_i, I_j))~ (I_j:= copyindex(I_j))~ (I_i:= copyindex(I_i))~ ~ L_i:= DBquery(odbc,' SELECT Loc.*, Ind.* FROM Loc, Obj as Ind WHERE Loc.Obj_id_i = Ind.id ')~ L_j:= DBlabels(L_i)~ (Loc1:= DBtable(L_i, L_j))~ (L_j:= copyindex(L_j))~ (L_i:= copyindex(L_i))~ showprogressbar('Data upload','Writing cell Info1_2',0.6)~ ~ showprogressbar('Data upload','Upload completed',1) Text Te24 Description: C) For very large variables: Upload only the object and location information. Create csv files of other data to c:\temp\ and upload them separately (you need a direct access to the Opasnet Base). Nodelocation: 416,680,-1 Nodesize: 160,72 Nodeinfo: 1,0,0,1,0,1,0,,0, Module Detailed_help_for_an Title: Detailed help for Analytica use Author: jtue Date: 8. kesta 2009 14:27 Defaultsize: 48,24 Nodelocation: 452,24,1 Nodesize: 116,16 Diagstate: 1,681,15,586,564,17 Text Te5 Description: Follow these instructions if you have Analytica Enterprise and have an ODBC connection to the Opasnet Base. Read also the simplified help; not everything is repeated here. Nodelocation: 284,36,-1 Nodesize: 276,28 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Text Te14 Description: Platform:~ You must choose THL computer if you are not using the AWP web interface. Nodelocation: 284,92,-1 Nodesize: 276,20 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te16 Description: Writerpsswd:~ You must know the writer password for the Opasnet Base if you are not using the AWP web interface. Nodelocation: 284,149,-1 Nodesize: 276,29 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te17 Description: Object info:~ - Data source: ~ 1 means that you are copy-pasting data to the 'Observations' field. ~ 2 means that you have a 2D table in an Analytica node. The node must have column index .j (note: it is a local index!) and row index .i. The names of the columns must be in the index .j, and the first row must contain data. ~ 3 means that you have a typical Analytica node with n indices; one of the indices may be Run. The node is transformed into a 2D table using MDArrayToTable.~ - Analytica identifier is the identifier of the node to be used. The name must be given between 'quotation marks', i.e. as text.~ - Ident: like in the simplified upload.~ - Number of indices: like in the simplified upload if data source 2 is used; for 3, the number of indices comes from the node, and this entry is ignored.~ - Parameter name: like in the simplified upload if data source 2 is used; for 3, the parameter is implicit, and this entry is ignored.~ - Probabilistic?: like in the simplified upload if data source 2 is used; for 3, if this entry is 1, the sample mode is used and the full distribution is saved, if the entry is not 1, the mid mode is used.~ - Append to upload: like in the simplified upload. Nodelocation: 284,357,-1 Nodesize: 276,173 Nodeinfo: 1,0,0,1,0,1,0,,0, Close Detailed_help_for_an Variable Enter_anacode Title: Enter anacode Definition: "index vehicle_type:= ['Bus','Minibus','Car d','Car g'];~ var Car_maintenance:= Triangular( 0.03, 0.058, 0.086 );~ ~ var Fuel_price:=~ (var a:= 0.95*triangular(0.8,1,1.2);~ var b:= 1.22*triangular(0.8,1,1.2);~ array(Vehicle_type,[a,a,a,b]));~ ~ var Fuel_consumption:=~ (var a:= (8.7/100)*Triangular(0.75,1,1.25);~ var b:= (5.7/100)*Triangular(0.75,1,1.25);~ var c:= (8/100)*Triangular(0.5,1,1.5);~ a:= array(Vehicle_type,[a,a,b,c]);~ );~ fuel_price*fuel_consumption+car_maintenance" Nodelocation: 192,656,1 Nodesize: 48,24 Aliases: Formnode Enter_anacode1 Nodecolor: 52425,39321,65535 Formnode Enter_anacode1 Title: Enter anacode Definition: 0 Nodelocation: 176,792,1 Nodesize: 160,56 Nodeinfo: 1,0,0,1,0,0,0,182,0,1 Nodecolor: 52425,39321,65535 Original: Enter_anacode Chance Example_code Title: Example code Definition: index vehicle_type:= ['Bus','Minibus','Car d','Car g'];~ var Car_maintenance:= Triangular( 0.03, 0.058, 0.086 );~ ~ var Fuel_price:=~ (var a:= 0.95*triangular(0.8,1,1.2);~ var b:= 1.22*triangular(0.8,1,1.2);~ array(Vehicle_type,[a,a,a,b]));~ ~ var Fuel_consumption:=~ (var a:= (8.7/100)*Triangular(0.75,1,1.25);~ var b:= (5.7/100)*Triangular(0.75,1,1.25);~ var c:= (8/100)*Triangular(0.5,1,1.5);~ a:= array(Vehicle_type,[a,a,b,c]);~ );~ fuel_price*fuel_consumption+car_maintenance Nodelocation: 80,656,1 Nodesize: 48,24 Variable Code_node Title: Code node Definition: evaluate(Enter_anacode) Nodelocation: 192,712,1 Nodesize: 48,16 Valuestate: 2,104,114,416,303,0,SAMP Reformval: [Undefined,Sys_localindex('VEHICLE_TYPE'),Undefined,Undefined,Undefined,1] Formnode N_variables1 Title: N variables Definition: 0 Nodelocation: 404,148,1 Nodesize: 116,12 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: N_variables Formnode N_rows1 Title: N_rows Definition: 0 Nodelocation: 132,205,1 Nodesize: 116,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: N_rows Text Te15 Description: First row must contain values, not column names! Nodelocation: 132,228,-1 Nodesize: 124,100 Nodeinfo: 1,0,0,1,0,1,0,,0, Formnode Analytica_table2 Title: Analytica table Definition: 0 Nodelocation: 132,228,1 Nodesize: 116,12 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: Analytica_table Formnode Columns1 Title: Columns Definition: 0 Nodelocation: 132,181,1 Nodesize: 116,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Original: Columns Text Te21 Description: 3 Analytica model: Nodelocation: 404,116,-1 Nodesize: 124,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Text Te25 Description: 2 Node formatted as data table: Nodelocation: 132,116,-1 Nodesize: 124,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Formnode Object_info7 Title: Object info Definition: 0 Nodelocation: 132,252,1 Nodesize: 116,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: Object_info1_2 Text Te26 Nodelocation: 404,228,-1 Nodesize: 124,100 Nodeinfo: 1,0,0,1,0,1,0,,0, Formnode Object_info6 Title: Object info Definition: 0 Nodelocation: 404,172,1 Nodesize: 116,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: Object_info3 Formnode Study_or_variable_i2 Title: Study or variable info Definition: 0 Nodelocation: 404,196,1 Nodesize: 116,12 Nodeinfo: 1,0,0,1,0,0,0,78,0,1 Nodecolor: 52425,39321,65535 Original: Index_info Formnode Study_or_variable_i3 Title: Study or variable info Definition: 0 Nodelocation: 132,276,1 Nodesize: 116,12 Nodeinfo: 1,0,0,1,0,0,0,78,0,1 Nodecolor: 52425,39321,65535 Original: Index_info Button Upload_non_public_da Title: Upload non-public data Nodelocation: 408,575,1 Nodesize: 48,31 Windstate: 2,422,44,825,430 Script: showprogressbar('Data upload','Reading object Info1_2', 0)~ (Cardinals:= array(table1,[card('Obj'), card('Cell'), card('Loc'), card('Loccell'), card('Sett'), card('Item'), card('Res')]))~ showprogressbar('Data upload','Writing objects',0.2)~ ~ Write(W_obj,'Obj')~ showprogressbar('Data upload','Writing locations',0.3)~ ~ O_i:= DBquery(odbc,'SELECT * FROM Obj ')~ O_j:= DBlabels(O_i)~ (Obj2:= DBTable(O_i, O_j))~ (O_j:= copyindex(O_j))~ (O_i:= copyindex(O_i))~ ~ Write(W_objinfo,'Objinfo')~ Write(W_loc,'Loc')~ showprogressbar('Data upload','Reading sets and items',0.4)~ ~ S_i:= DBquery(odbc,' SELECT * FROM Sett ')~ S_j:= DBlabels(S_i)~ (Sett1:= DBTable(S_i, S_j ))~ (S_i:= copyindex(S_i))~ (S_j:= copyindex(S_j))~ ~ I_i:= DBquery(odbc,'SELECT Ind.id as id, Ind.Ident as Iident, Ind.Name as Iname, Dim.id as Did, Dim.Ident as Dident, Dim.Name as Dname FROM Obj as Ind, Obj as Dim, Sett, Item WHERE Ind.id = Item.Obj_id AND Dim.id = Sett.Obj_id AND Item.Sett_id=Sett.id AND Sett.Settype_id = 1 ')~ I_j:= DBlabels(I_i)~ (Ind1:= DBtable(I_i, I_j))~ (I_j:= copyindex(I_j))~ (I_i:= copyindex(I_i))~ ~ L_i:= DBquery(odbc,' SELECT Loc.*, Ind.* FROM Loc, Obj as Ind WHERE Loc.Obj_id_i = Ind.id ')~ L_j:= DBlabels(L_i)~ (Loc1:= DBtable(L_i, L_j))~ (L_j:= copyindex(L_j))~ (L_i:= copyindex(L_i))~ showprogressbar('Data upload','Writing cell Info1_2',0.6)~ ~ Write(W_loccell,'Loccell')~ ~ showprogressbar('Data upload','Writing cell Info1_2',0.7)~ Write(W_cellsec,'Cell')~ showprogressbar('Data upload','Writing results', 0.8)~ ~ Write(W_res, 'Ressec')~ Write(W_resinfo, 'Resinfosec')~ showprogressbar('Data upload','Upload completed',1) Text In_case Description: B) Upload so that the actual data is not visible without a password. Metadata is visible anyway. Nodelocation: 400,548,-1 Nodesize: 128,60 Nodeinfo: 1,0,0,1,0,1,0,,0, Windstate: 2,693,146,476,224 Alias Upload_data1 Title: Upload data Definition: 1 Nodelocation: 184,304,1 Nodesize: 48,12 Original: Upload_data Alias Upload_data4 Title: Upload data Definition: 1 Nodelocation: 464,304,1 Nodesize: 48,12 Original: Upload_data Close Advanced_upload Text Te1 Description: Providing upload data: Nodelocation: 260,332,-1 Nodesize: 252,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Text Te22 Description: Uploading data: Nodelocation: 260,604,-1 Nodesize: 252,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Text Te23 Description: A) The default: Upload all data directly to Opasnet Base. Nodelocation: 128,676,-1 Nodesize: 120,60 Nodeinfo: 1,0,0,1,0,1,0,,0, Formnode Observations3 Title: Observations Definition: 0 Nodelocation: 264,448,1 Nodesize: 248,80 Nodeinfo: 1,0,0,1,0,0,0,366,0,1 Nodecolor: 52425,39321,65535 Original: Observations2 Awp_attrib: TabIndex:3 Module Basic_help_and_expla Title: Basic help and explanations Author: jtue Date: 8. kesta 2009 14:27 Defaultsize: 48,24 Nodelocation: 248,184,1 Nodesize: 120,16 Diagstate: 1,684,5,586,824,17 Text Te6 Description: Object info:~ * You must give your Opasnet username and password to upload data. The username will be stored together with the upload information.~ *Object info contains the most important metadata about your data.~ - Data source must be 1 when using AWP.~ - Analytica identifier is ignored when using AWP.~ - Ident is the page identifier in Opasnet. If your study or variable does not already have a page, you must create one. The identifier is found in the metadata box in the top right corner of the Opasnet page.~ - Number of indices is the number of columns that contain explanatory information (see below).~ - Parameter name is a common name for all data columns. If omitted, 'Parameter' is used. See below for more details.~ - If "Probabilistic?" is 1, then each row of the data table is considered a random draw from a data pool. Note that it is assumed that the index values are assumed the same in all rows, and only the index values of the first row are stored.~ - Append to upload: Typically, each data upload event is given a separate identifier. If you want to continue an existing upload of the same object, you can give the number of that upload, and the new data will be appended. Nodelocation: 284,408,-1 Nodesize: 276,176 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te7 Description: Data structure:~ * Data must be uploaded in the format of a two-dimensional table. The table has rows, one observation in each row, and columns (fields). ~ * There are two kinds of columns. A) Index columns (also called independent variables in statistics) contain determinants of the actual data, such as sex of the observed individuals, or the observation year. B) Parameter columns (also called dependent variables) contain the actual data about the observations, given the index information.~ * The first row must contain the names of the columns, i.e. the indices and parameters. These names are used when creating indices in the Opasnet Base. Nodelocation: 284,128,-1 Nodesize: 276,96 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te9 Description: Observations:~ * The data are copy-pasted into the field 'Observations'. The source of the data can be any spreadsheet or text processor, as long as each column is separated by a tab, and each row by a line break. Note that the pasted data should be between 'quotation marks'. Nodelocation: 284,640,-1 Nodesize: 276,48 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te10 Description: Data info:~ Fill in the additional information about the data. These are asked for the object, and also for all the indices and the parameter. Note that is an entry with the identical Ident already exists in the Opasnet Base, this information will NOT be uploaded but the existing information will be used instead. All information should be between 'quotation marks' so that they are not mistakenly interpreted as Analytica node identifiers.~ - Name: a description that may be longer than an identifier. This is typically identical to the respective page in Opasnet. ~ - Unit: unit of measurement. Nodelocation: 284,788,-1 Nodesize: 276,92 Nodeinfo: 1,0,0,1,0,1,0,,0, Text Te13 Description: Follow these instructions if you are using the Internet interface (AWP). Nodelocation: 284,20,-1 Nodesize: 276,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Text Te18 Description: Uploading:~ * There are two ways of uploading data. A) 'Upload data' is a public format, and all details are openly available. B) 'Upload non-public data' stores the actual data (the values in the parameter columns) into a database that requires a password for reading. However, all other information (including upload metadata and the data in the index fields) are openly available. Nodelocation: 284,944,-1 Nodesize: 276,56 Nodeinfo: 1,0,0,1,0,1,0,,0, Close Basic_help_and_expla Text Te8 Description: Providing general information: Nodelocation: 260,220,-1 Nodesize: 252,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Formnode Data_table1 Title: Data table Definition: 1 Nodelocation: 408,565,1 Nodesize: 104,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Original: Data_table Text Te11 Description: Check that your data table looks sensible. Nodelocation: 364,540,-1 Nodesize: 148,12 Formnode Object_info8 Title: Object info Definition: 0 Nodelocation: 116,541,1 Nodesize: 112,13 Nodeinfo: 1,0,0,1,0,0,0,72,0,1 Nodecolor: 52425,39321,65535 Original: Object_info1_2 Variable View_the_uploaded_da Title: View the uploaded data Description: The largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button. Definition: get_mean(Object_info_for_lap[Info='Ident']) Nodelocation: 248,760,1 Nodesize: 88,16 Windstate: 2,440,279,476,332 Defnstate: 2,193,270,416,303,0,MIDM Valuestate: 2,43,59,735,421,0,MIDM Nodecolor: 39325,65535,39321 Reformval: [Sys_localindex('IN1'),Sys_localindex('IN2')] Numberformat: 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 {!40000|Att_resultslicestate: [Sys_localindex('IN3'),1,Sys_localindex('IN4'),1,Sys_localindex('IN5'),1,Sys_localindex('IN6'),1,Sys_localindex('IN7'),1,Sys_localindex('IN8'),13,Sys_localindex('IN2'),1,Sys_localindex('IN1'),1]} Text Te12 Description: Nodelocation: 592,40,-1 Nodesize: 48,28 Text Te19 Description: Or go to advanced upload: Nodelocation: 652,332,-1 Nodesize: 124,12 Nodeinfo: 1,0,0,1,0,1,0,,0, Nodecolor: 65535,65532,19661 Close Op_en2676