Dynamic simulation periods are specified in Time's definition. This is usually a list of numbers or labels, typically in some unit of time (days, weeks, months, etc.). Use the ÒDynamic()Ó function in your variables to perform dynamic simulation. 0 0 1 4 13 0 1 2 0 2 0 [Variable Acts1] Awp_attrib 1 1 Risks from farmed and wild salmon v4 28.6.2004 Jouni Tuomisto This is the version 4 of the model calculating risks and benefits of farmed salmon. (c) Copyright KTL (National Public Health Institute, Finland). <ref>[http://ytoswww/yhteiset/Huippuyksikko/Tutkimus/Viljelylohi/Materiaali/Viljelylohi.rmd Reference Manager database</ref> <ref>[http://ytoswww/yhteiset/Huippuyksikko/Tutkimus/Viljelylohi/ Directory for data and models</ref> Jouni Tuomisto 9. tamta 2004 20:14 jtue 12. tamta 2010 16:28 48,24 1,19,28,704,538,17 2,102,90,553,461 Trebuchet MS, 13 0,Model Risks_from_farmed_an,2,2,0,1,C:\temp\Farmed_salmon.ANA 97,1,1,0,2,1,2794,4312,0 2,25,65,696,600 Pollutant health risk avoided cases/a Pollutant health risk is calculated assuming additivity between the pollutants. However, dioxin risks are not considered because they were not considered in Hites. After unit conversion, numbers are calculated for Western Europe as cases per year. Note that negative numbers mean increased risk unlike in previous versions of the model. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1900">Wiki variable</a> var a:= -Erf_poll_d*Poll_exp[.pollutant=Erf_poll_d.pollutant]/1000*Tot_mort_weur_d; a:= (if a.pollutant='Dioxin' then 0 else a); a:= sum(a,a.pollutant) 256,336,1 48,24 1,1,1,1,1,1,0,,1, 2,291,123,476,224 2,490,129,628,450,0,MEAN Graphtool:0 Distresol:10 Diststeps:1 Cdfresol:5 Cdfsteps:1 Symbolsize:6 Baroverlap:0 Linestyle:1 Frame:1 Grid:1 Ticks:1 Mesh:1 Scales:1 Rotation:45 Tilt:0 Depth:70 Frameauto:1 Showkey:1 Xminimum:0 Xmaximum:1 Yminimum:0 Ymaximum:1 Zminimum:0 Zmaximum:1 Xintervals:0 Yintervals:0 Includexzero:0 Includeyzero:0 Includezzero:0 Statsselect:[1,1,1,1,1,0,0,0] Probindex:[0.05,0.25,0.5,0.75,0.95] [Sys_localindex('SALMON'),Sys_localindex('OP_EN1898')] [0,0,0,0] Health effect of fish avoided cases/a Numbers are calculated for Western Europe as avoided deaths per year. Note that positive numbers mean increased benefit unlike in previous versions of the model. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1912">Wiki variable</a> var a:= -Erf_omega3_d*min([Omega3_exp,benefit_limit])*Chd_mort_weur_d[.year=Omega3_exp.year]; sum(a,a.diagnosis) 384,336,1 48,24 1,1,1,1,1,1,0,,1, 2,80,222,476,224 2,695,22,589,375,0,MEAN [Sys_localindex('OP_EN1899'),Sys_localindex('SALMON')] [0,0,0,0] [Reg_poll,1,Year3,1,Salmon1,1,Recommendation1,1] Net health effect avoided cases/a Net health effect of pollutant cancer and omega-3 cardiac benefit. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1901">Wiki variable</a> Omega3_benefit+Poll_mort[.Op_en1899 = Omega3_benefit.Op_en1899, .salmon = Omega3_benefit.salmon, .year = Omega3_benefit.year] 320,408,1 48,24 1,1,1,1,1,1,0,,1, 2,102,90,476,420 2,637,56,626,259,0,MEAN [Sys_localindex('OP_EN1899'),Sys_localindex('SALMON'),1,2] [0,0,0,0] [Sys_localindex('DIAGNOSIS'),1,Sys_localindex('OP_EN1898'),1,Sys_localindex('YEAR'),1,Sys_localindex('SALMON'),1,Sys_localindex('OP_EN1899'),1] Fish advisories ktluser 11. tamta 2004 9:20 48,24 56,208,1 48,24 1,40,0,610,544,17 100,1,1,0,2,9,4744,6798,7 Based on linear cancer risk extrapolation Epa_model 288,40,1 56,32 The model by EPA is well-respected and sound However, defending his study in an interview with IntraFish yesterday afternoon, David Carpenter of the State University of New York at Albany said that the differences between wild and farmed salmon PCBs levels are not insignificant. ÒI donÕt agree with [Gallo] and I donÕt think others would agree with him either.Ó Carpenter said that the EPA risk assessment model that he and his colleagues used to determine that salmon posed a health risk is a well-respected and sound one. ÒIt is not just something that we made up. It is a time-tested measureÉitÕs a yard stick that we have.Ó <ref>http://www.intrafish.com/articlea.php?articleID=41070&s=1</ref> Epa_model 288,128,1 52,36 2,102,90,630,401 Applies only to non-commercial fishing A set of four volumes that provides guidance for assessing health risks associated with the consumption of chemically contaminated non-commercial fish and wildlife. EPA developed the series of documents to help state, local, regional, and tribal environmental health officials who are responsible for developing and managing fish consumption advisories. <ref>http://www.epa.gov/waterscience/fish/guidance.html</ref> Developed_for_spceci 528,192,1 56,28 Point of view is that of a local authority: how to give advice to a fisherman about the consumption of his prey. Developed_for_spceci 360,432,1 68,56 This is not a public health problem but a special case where the authority has a restricted responsibility Applies_only_to_non_+Developed_for_spceci 528,296,1 64,56 Precautionary principle is relevant in this case 200,296,1 48,38 [Constant Developed_for_spceci] The use of the EPA model is problematic for farmed fish. Hites et al, 2004 do not discuss this issue. Point_of_view_is_tha+This_is_not_a_public 528,432,1 64,56 2,102,90,476,373 Based on 1/100000 additional lifetime cancer risk assuming additivity and using linearised multistage model Epa_model 528,80,1 72,64 Developed for spcecial high-exposure subgroups such as tribes and non-commercial fishermen, who eat a lot of fish anyway Epa_model 360,296,1 84,56 [Constant Precautionary_princi] Should we use EPA screening values, FDA action levels or something else? Epa_model+Fda_model 64,288,1 52,52 FDA action level model 5 64,448,1 48,24 2,136,146,416,303,0,MIDM [] EPA fish advisory model <ref>U.S.EPA. Guidance for Assessing Chemical Contaminant Data for Use in Fish Advisory. Volume 2: Risk Assessment and Fish Consumption Limits, 3rd Edition. 2000. Table 3-1. [http://www.epa.gov/waterscience/fish/guidance.html Open access Internet file] [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/EPAFishAdvisory/ Intranet file]</ref> jtue 28. Junta 2004 18:03 48,24 64,80,1 48,29 1,40,0,517,300,17 Advised fish consumption 2^(Floor(logten(Epa_model)/logten(2))) 56,176,1 48,24 2,48,219,743,303,1,MIDM [Location1,Undefined] EPA fish advisory model meals/month CRmm variable in the U.S.EPA advisory model. <ref>U.S.EPA. Guidance for Assessing Chemical Contaminant Data for Use in Fish Advisory. Volume 2: Risk Assessment and Fish Consumption Limits, 3rd Edition. 2000. Table 3-1. [http://www.epa.gov/waterscience/fish/guidance.html Open access Internet file] [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/EPAFishAdvisory/ Intranet file]</ref> index Effect:=['Cancer','Non-cancer']; var MS:= 0.227; var Tap:= 365.25/12; var CSF:=Potency[potency='Ca (CSF)']; var RfD:= Potency[Potency='Non-Ca (RfD)']; var CRlimCa:= ARL*BW/sum(CSF*in1*(Poll_salmon_hites/1000),Pollutant); var a:= In1*RfD/(Poll_salmon_hites/1000); var b:= if isnan(a) then 1 else a; var c:= if b>0 then b else 1; var CRlimNonCa:= min(c,Pollutant)*BW; var CRlim:= array(Effect,[CRlimCa,CRlimNonCa]); var CRmm:= CRlim*Tap/MS; CRmm 56,104,1 48,29 2,43,74,632,412 2,120,130,416,303,0,MIDM [] Pollutants in salmon 1 56,32,1 48,24 Poll_salmon_hites Include pollutants Table(Pollutant)( 1,1,0,1) 216,160,1 48,24 2,469,131,476,224 2,242,231,416,303,0,MIDM Potency 1 216,104,1 48,24 Potency ARL probability Acceptable risk level <ref>U.S.EPA. Guidance for Assessing Chemical Contaminant Data for Use in Fish Advisory. Volume 2: Risk Assessment and Fish Consumption Limits, 3rd Edition. 2000. Table 3-1. [http://www.epa.gov/waterscience/fish/guidance.html Open access Internet file] [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/EPAFishAdvisory/ Intranet file]</ref> 10u 216,32,1 48,24 2,471,122,476,382 Other parts ktluser 11. tamta 2004 9:20 48,24 760,96,1 48,24 1,0,0,1,1,1,0,,0, 1,500,95,636,526,17 Pollutant ['Dieldrin','Toxaphene','Dioxin','PCB'] 504,64,1 48,12 ['Dieldrin','Toxaphene','Dioxin','PCB'] kg 70 504,392,1 48,24 1,1,1,1,1,1,0,0,0,0 Location ['Scotland','Faroe Islands','Frankfurt','Edinburgh','Norway','Paris','London','Oslo','East Canada','Boston','Maine','San Francisco','West Canada','Toronto','Los Angeles','Vancouver','Washington DC','Seattle','Chicago','New York','Washington St','Chile','SE AK Chinook','Denver','BC Chinook','BC Sockeye','Oregon Chinook','SE AK Sockeye','New Orleans','BC Coho','Kodiak AK Sockeye','SE AK Coho','Kodiak AK Coho','BC Pink','Kodiak AK Pink','SE AK Pink','SE AK Chum','BC Chum','Kodiak AK Chum'] 504,32,1 48,12 2,200,210,416,303,0,MIDM ['Scotland','Faroe Islands','Frankfurt','Edinburgh','Norway','Paris','London','Oslo','East Canada','Boston','Maine','San Francisco','West Canada','Toronto','Los Angeles','Vancouver','Washington DC','Seattle','Chicago','New York','Washington St','Chile','SE AK Chinook','Denver','BC Chinook','BC Sockeye','Oregon Chinook','SE AK Sockeye','New Orleans','BC Coho','Kodiak AK Sockeye','SE AK Coho','Kodiak AK Coho','BC Pink','Kodiak AK Pink','SE AK Pink','SE AK Chum','BC Chum','Kodiak AK Chum'] ['Farmed salmon','Wild salmon','Market salmon'] 504,96,1 48,13 2,102,90,476,224 ['Farmed salmon','Wild salmon','Market salmon'] Loki v 2 20.1.2004 Jouni Tuomisto En ole ehtinyt aiemmin lokia kirjoittaa, joten nyt yleiskuvaus mallista. Viljelylohi on tehty arvioimaan, onko Hites et al (Science 9.1.2004) riskinarviointi hyvin tehty. Ensikommenttina KTL:ssŠ oli se, ettŠ kalan terveyshyšdyt on unohdettu. NiinpŠ rakensimme mallin, joka 1) kŠyttŠŠ samaa EPAn riskimallia saasteiden terveyshaittojen laskemiseen kuin Hites (PCB:n, dieldriinin ja toksafeenin (mutta ei dioksiinien) aiheuttama yhdistetty syšŠriski olettaen additiivisuuden ja linearised multistage-mallin eli suoraan kŠyttŠmŠllŠ EPAn CSF-arvoja) ja 2) laskee myšs omega-3-rasvahappojen tuoman hyšdyn sydŠnkuolemariskiin. Vertailu tehtiin 1) olettamalla lohensyšntiŠ 0.25 - 32 amerikkalaista annosta kuukaudessa ja laskemalla syšpŠriski ja/tai sydŠnhyšty sekŠ 2) olettamalla jokin lohensyšnti (esim. 20 g/d) ja lisŠksi jotain oletuksia muista omega-3-lŠhteistŠ sekŠ niiden muutoksista jos lohensyšnti muuttuisi. Vaikutuksen lisŠksi tehtiin argumenttianalyysi (oma moduli) jossa katsottiin importance analysis eli rank-korrelaatio lŠhtšmuuttujien ja lopputuleman vŠlille. TŠssŠ oli mukana erilaisia pŠŠtšksiŠ, mm. pitŠisikš katsoa saasteiden syšpŠhaittaa vai nettovaikutusta?, PitŠisikš katsoa terveysvastetta lainkaan vai pelkkŠŠ altistusta? ja MillŠ viljelty lohi pitŠisi korvata? PŠŠtškset otettiin mukaan analyysiin siten, ettŠ kullekin pŠŠtšsvaihtoehdolle oletettiin sama todennŠkšisyys, ja ne otettiin mukaan satunnaismuuttujina (ikŠŠn kuin me yrittŠisimme arvioida, mikŠ on ŠŠnestyksen tulos kun tŠstŠ ŠŠnestetŠŠn). TŠhŠn liittyen jŠin pohtimaan sitŠ, pitŠisikš meidŠn olettaa pienempi todennŠkšisyys huonoille vaihtoehdoille (kuten epŠtodennŠkšisille presidenttiehdokkaille annetaan vŠhemmŠn aikaa televisiossa) mutta en pŠŠtynyt tŠssŠ mihinkŠŠn lopputulokseen, ja niin tasajako jŠi malliin. LisŠksi on tehty VOI-analyysi (oma moduli). TŠssŠ yritin rakentaa VOI-funktiota, joka olisi suoraan laskenut mielenkiinnon kohteena olevan tuloksen (helpottaisi mallinrakennusta jatkossa ja tekisi erilaisten VOIn laskemisen kŠtevŠksi), mutta ongelmaksi muodostui se, ettŠ mean-funktio toimi oikein vain, kun se laskettiin variablesta. Jos yritti laskea sen tilapŠisestŠ, solmun sisŠllŠ olevasta muuttujasta, tuloksena oli yleensŠ mid. NiinpŠ tyydyttiin laskemaan homma kŠsipelillŠ kuten Particle VOI -mallissa. Conclusions from Hites 2004 sisŠltŠŠ sitaatteja ja argumentteja keskustelusta, joka on Hitesin myštŠ kŠynnistynyt. What should be the scope of the assessment oli aikeissa olla moduli, josta eri pŠŠtšsvaihtoehdot olisivat sinne kirjatun argumentoinnin seurauksena nousseet, mutta sitŠ ei ollut aikaa tyšstŠŠ kovin pitkŠlle. Confounder analysis -moduli sisŠltŠŠ pohdintaa siitŠ, millaiset tekijŠt voivat vaikuttaa Hitesin lopputulokseen ja kvalitatiivista argumentointia niiden mahdollisista vaikutuksista tulosten tulkintaan. Help on yksinkertaisesti kopio Help v4 mallista. 20.1. alkoi ongelmaksi tulla se, ettŠ malli ršnsysi liikaa, ja oli hankalaa saada indeksit tŠsmŠŠmŠŠn lŠhtšarvojen ja lopputuloksen kesken. NiinpŠ pŠŠtin tehdŠ uuden version 3, josta kaikki ršnsyt on poistettu ja jonka tarkoituksena on toimia mallina Science-artikkelia varten. Kaikki laajemmat tarkastelut siis sŠŠstetŠŠn mallin seuraaviin versioihin. NiinpŠ versio 2:een jŠtetŠŠn kaikki ršnsyt, josta niitŠ sitten voi tarpeen mukaan kopioida takaisin kŠytšssŠ olevaan malliversioon. NŠin ehkŠ pysyy selvŠnŠ se, mitŠ Science-vastineessa on ja mitŠ ei ole. Fishing and farming, Arguments on fish pollutants, Total pollutant exposure, What should be the scope of risk assessment?, Conclusions from Hites 2004, ja Confounder analysis ovat semmoiset modulit jotka nyt poistetaan versiosta 3. Samoin poistetaan pŠŠmodulista solmut Risk or net health effect?, Acceptable risk ja Health effects or exposures? sekŠ nŠiden input nodet. 0 504,128,1 48,12 2,463,67,476,399 65535,54067,19661 Loki v3 20.1.2003 Jouni Tuomisto Versiosta 3 siis on tehty riisuttu versio Science-juttua varten. Lue tarkemmin Loki v 2:sta. Nyt versiosta 3 poistetaan aiemmin kuvatun lisŠksi Other parts -modulista indeksejŠ, joita ei kŠytetŠ missŠŠn. NŠmŠ ovat Viljelyalue, Kalastusalue, Ostokaupunki, Lohilaji ja Saaste. Argument analysis -modulista poistetaan solmut We should not consider concentrations..., Acceptable exposure, Va2, Health or exposure?, What is salmon replacement?, Va5, Va3, Va3 inputs, Va3 importance eli kaikki solmut. TŠrkeyssolmu luodaan uudelleen, mutta nyt se voidaan tehdŠ suoraan Outcome-solmulle ilman indeksimuunnoksia. NiinpŠ koko Argument analysis -moduli poistetaan ja asia siirretŠŠn VOIs-moduliin, joka nimetŠŠn uudelleen VOI and importance analysis. Food intake -modulista poistetaan Salmon consumption, Salmon replacement, Food change, Salmon amount, Oil increase, Food intake, Wild salmon compensation, Va1, Food_rec, Source1. Eli kaikki solmut keskittyvŠt nyt vain loheen, eikŠ muita omega-3-lŠhteitŠ huomioida. Ne tulevat mukaan malliin raja-arvossa, joka kuvaa hyšdyllisen lisŠsaannin rajaa ja siis sisŠltŠŠ absoluuttisen fysiologisen rajan, josta on vŠhennetty muusta ravinnosta tuleva mŠŠrŠ. TŠmŠ solmu tehdŠŠn Annosvastemoduliin. VOIs-modulista poistetaan Va16, Va12, VOI, VOI1 ja VOI-laskenta tehdŠŠn suoraan Outcome-solmusta. 21.1.2004 Jouni Tuomisto Malli muuttui eilen siten, ettŠ nyt lasketaan VOI kahdelle eri kysymykselle: pitŠisikš suositella viljellyn lohen enimmŠissaanniksi 1 annos/kk ja pitŠisikš rajoittaa enemmŠn kalanrehun saastepitoisuuksia. NŠmŠ kaksi nostetaan esiin, koska edellinen on suora vastine Hitesin ym. argumenttiin, ja jŠlkimmŠinen on korostamassa sitŠ, ettŠ asetettu kysymys mŠŠrŠŠ sen, mikŠ tieto on tŠrkeŠŠ ja mikŠ ei. Other parts -modulista poistetaan solmut Acceptable exposure increase ja Amount or replacement, ja ARL siirretŠŠn Fish advirories -moduliin sekŠ Potency Exposure-response function for pollutant risk -moduliin. NŠistŠ moduleista poistetaan vastaavat aliakset. Unit- ja Description-kentŠt pŠivitetŠŠn koko mallissa, ja viitteitŠ listŠtŠŠn sikŠli kuin ne ovat helposti kŠsillŠ. Kuitenkin viitteet on vielŠ pistettŠvŠ kuntoon, nyt muotoilut eivŠt ole kunnossa. 0 504,152,1 48,12 2,212,144,476,344 65535,54067,19661 Compensating fish amount g/d Poll_mort/Erf_omega3_d/Tot_mort_weur_d 504,224,1 48,24 [Decision1,Salmon] Probability of decision var a:= sum(Poll_mort,Salmon); Probability(a[Decision1='BAU']+0.0001>a[Decision1='Restrict farmed salmon use']) 504,336,1 48,24 2,115,372,476,291 Probability of decision var a:= sum(Net_mort,Salmon); Probability(a[Decision1='BAU']>a[Decision1='Change farmed to wild salmon']) 504,280,1 48,24 Outcomes index a:= ['Net effect of salmon recommendation','Net effect of feed regulation','Cancer effect of recommendation']; var b:= array(a,[Net_mort,0,Poll_mort]); var c:= b[Decision1='Restrict farmed salmon use']-b[Decision1='BAU']; var d:= (if regulate_pollutants_=1 then c[Decision2='More actions'] else c[Decision2='BAU']); var e:= Net_mort[Decision2='More actions'] - Net_mort[Decision2='BAU']; var f:= (if recommend= 1 then e[Decision1='Restrict farmed salmon use'] else e[Decision1='BAU']); var g:= (if a= 'Net effect of feed regulation' then f else d); var h:= sum(g,Salmon); h 232,264,1 48,24 2,452,264,476,469 2,767,202,367,474,0,MEAN Pollutant or net health effect? probability A chance node that collapses the decision about whether the proper endpoint metric is pollutant risk or net health effect. Bernoulli( .5 ) 336,56,1 48,29 1,1,1,1,1,1,0,0,0,0 2,585,196,416,303,0,MIDM 2,168,178,416,303,0,SAMP Mortality by recommendation cases/a Net health effect indexed by only consumption recommendation. if Regulate_pollutants_=1 then outcome3[Decision2='More actions'] else outcome3[Decision2='BAU'] 168,152,1 48,32 2,102,90,476,293 2,499,269,416,303,0,MIDM 2,415,126,518,378,0,MEAN [Salmon,Decision1] Regulate pollutants? probability A chance node that collapses the decision about regulating fish feed. bernoulli(0.5) 56,152,1 48,24 Mortality by feed regulation cases/a Net health effect indexed by only fish feed regulation. if recommend = 1 then outcome3[Decision1='Restrict farmed salmon use'] else outcome3[Decision1='BAU'] 280,152,1 48,32 2,408,141,646,274 2,499,269,416,303,0,MIDM 2,77,202,518,378,0,MEAN [Salmon,Decision1] Recommend? probability A chance node that collapses the decision about consumption recommendations for farmed salmon. bernoulli(0.5) 384,152,1 48,24 1,1,1,1,1,1,0,0,0,0 2,298,233,476,224 2,80,145,416,303,0,SAMP Lifetime cancer+CHD mortality prevented by salmon cases/a Net health effect indexed by the two decisions of concern: a) whether to recommend salmon consumption restrictions and b) whether to apply stricter regulations for fish feed. The definition contained also this row: if a>ARL then 1 else 0 But it was removed when we cut the acceptable concentration concept out of the model. var a:= (if Poll_or_net = 1 then Poll_mort else Net_mort); sum(a,Salmon) 224,56,1 48,46 2,102,90,476,277 2,499,269,416,303,0,MIDM 2,723,592,518,176,0,MEAN [Decision2,Decision1] [1,0,0,0] Log v4 28.6.2004 Jouni Tuomisto This version is an update of the model that was used for calculating the results for Tuomisto paper submitted to Science on January 28, 2004. Only argumentation and comments have been clarified and added. No substantive changes have been made to definitions. The descriptions of the variables described in the Table 1 in 'Supportive online material' have not been changed. Therefore, this version produces the results that were presented in the manuscript. The main conclusions of this study were added as arguments on the top level of the model. The argumentation about the pollutant model selection was clarified (see module Fish advisories). 11.1.2005 Jouni Tuomisto The model was given a unified resource name (URN) and metadata. The only addition since 28.6.2004 is the node Urn and this note. 0 504,184,1 48,12 2,306,93,476,540 [Alias Log_v4] 65535,54067,19661 Benefit-risk diagram for farmed salmon index benefit_risk: ['Benefits','Risks']; var a:= array(benefit_risk,[Omega3_benefit,Poll_mort]); a[Salmon='Farmed salmon'Decision2='BAU'] 72,264,1 48,42 2,20,7,551,791,1,MEAN [Sys_localindex('BENEFIT_RISK'),Decision1,Undefined,Undefined,1] [0,0,0,0] [Recommendation,1,Sys_localindex('BR'),1,Sys_localindex('STEP'),1] VOI analysis for farmed salmon 72,352,1 48,32 Rows for sql 1 var a:= slice(Result_reporting,Result_reporting.decision,4); '"'&3000+run&'";"'&1&'";"'&a&'";"'&run&'"' 400,288,1 48,24 2,102,90,490,397 2,568,87,416,303,0,MIDM 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 1..4000 56,32,1 48,24 [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] Rows for sql Calculate rows for the SQL result database. It assumes 1000 iterations. var a:= ['Business as usual','Recommend restrictions to salmon consumption','Stricter limits for fish feed pollutants','Restrictions to salmon consumption AND stricter fish feed limits']; var b:= floor((in2-1)/1000); '"'&in2&'";"1";"'&slice(a,a,b+1)&'"' 400,344,1 48,24 (param1) Doresult var a:= slice(Net_health_effects_i,net_health_effects_i.decision,4); '"'&3000+run&'";"'&1&'";"'&a&'";"'&run&'"' 56,88,1 48,24 2,102,90,476,224 param1 Result reporting This node is used to report results from this model. Just replace the variable name on the first row with the variable you want to report and calculate. This node calculates the result only for farmed salmon, and it looks all four possible deicisions along one dimension (not 2*2 table). var a:= sample(Erf_omega3_d); a:= a[Salmon='Farmed salmon']; index decision:= ['Business as usual','Recommend restrictions','Stricter rules for feed','Both']; a:= array(decision,[ slice(slice(a,Decision1,1),Decision2,1), slice(slice(a,Decision1,2),Decision2,1), slice(slice(a,Decision1,1),Decision2,2), slice(slice(a,Decision1,2),Decision2,2)]); index statistics:= ['Mean','SD','0.01','0.025','0.05','0.25','0.5 (Median)','0.75','0.95','0.975','0.99']; array(statistics,[mean(a), sdeviation(a), getfract(a,0.01), getfract(a,0.025), getfract(a,0.05), getfract(a,0.25), getfract(a,0.5), getfract(a,0.75), getfract(a,0.95), getfract(a,0.975), getfract(a,0.99)]) 232,328,1 48,24 2,102,90,476,485 2,362,39,568,303,0,MIDM [Sys_localindex('DECISION'),Sys_localindex('STATISTICS'),Undefined,Undefined,Undefined,1] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [Pollutant1,1,Sys_localindex('STATISTICS'),1,Sys_localindex('DECISION'),1] Pollutant exposure µg/kg/d Pollutant exposure per body weight per day. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1905">Wiki variable</a> Poll_conc_salmon_d*Salmon_intake_d[.decision2=Poll_conc_salmon_d.Op_en1899, .salmon=Poll_conc_salmon_d.salmon]/1000/BW 256,272,1 48,24 1,1,1,1,1,1,0,,1, 2,287,149,476,224 2,593,80,653,399,0,MEAN [Sys_localindex('SALMON'),Sys_localindex('POLLUTANT')] [0,0,0,0] [Sys_localindex('OP_EN1898'),1,Sys_localindex('OP_EN1899'),1,Sys_localindex('OP_EN2705'),1,Sys_localindex('SALMON'),1] Fish feed ktluser 11. Janta 2004 12:08 48,24 168,144,1 48,24 1,472,152,516,377,17 2,40,50,576,600 The concentrations of pollutants in fish feed have been reducing Rideout said that major feed companies have been able reduce toxin levels in their fish meal over the past several years by using substitute ingredients and less contaminated fish. ÒIt has been an issue that the industry is responding to. Feed companies have been working overtime to use high quality meals that are very low in contaminants and have twice the amount of omega-3sÉThe line is trending downward. We donÕt like having this in our product.Ó <ref>http://www.intrafish.com/articlea.php?articleID=41061&s=1</ref> Feed_backgr 328,48,1 64,36 2,102,90,720,332 Pollutant concentration in fish feed <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1902">Wiki variable</a> get_sample('Op_en1902', series_id) 184,120,1 48,29 1,1,1,1,1,1,0,,1, 2,291,326,636,303,0,MEAN 39325,65535,39321 [Undefined,Sys_localindex('DECISION2'),Undefined,Undefined,Undefined,1] [1,0,0,0] What has been done and what should be done to reduce pollutants in fish feed? Poll_conc_feed_d 184,240,1 60,44 Should we change fish feed instead of giving fish consumption advisories? Impr_in_feed+Decision1+Decision2 64,248,1 48,55 [Alias Should_we_change_fi1] Pollutant levels in fish feed after lower limits - Pollutant concentrations in fish feed can be further reduced from current levels. The estimate of 0-100 % with a gradual decrease in probability density is based on author judgement. It reflects rather a theoretical range of improvement than a realistic estimate. Triangular( 0, 0, 1 ) 64,128,1 48,38 2,102,90,476,409 2,515,277,416,303,0,MIDM 2,216,226,416,303,1,CDFP 52425,39321,65535 Fish feed background - This is a dummy variable only, because the actual concentrations in fish feed are not needed in the current model. 1 192,48,1 48,24 52425,39321,65535 Pollutant concentration in fish feed <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1902">Wiki variable</a> var a:= (if Decision2='More actions' then impr_in_feed else 0); Feed_backgr*(1-a) 192,128,-3 48,29 1,1,1,1,1,1,0,,1, 2,291,326,636,303,0,SAMP [Alias Pollutant_concentrat] [Undefined,Decision2,Undefined,Undefined,Undefined,1] [1,0,0,0] Lower limits for pollutants in fish feed? Two options are assumed for fish feed regulations: 1) business as usual (BAU) with current legislation, and 2) More restrictive regulations for fish feed, resulting in reduction of pollutant levels in feed and consequently in salmon. (This is irrespective of any trends unrelated to the decision). <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1899">Wiki variable</a> ['BAU','More actions'] 280,144,1 48,32 1,1,1,1,1,1,0,,1, ['BAU','More actions'] Exposure- response function for omega3 jtue 12. Janta 2004 8:51 48,24 504,336,1 48,42 1,394,124,586,421,17 Exposure- response function for health benefit probability/(g/d) Exposure-response function where also the uncertainty about the population that benefits from omega-3 is taken into account. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1909">Wiki variable</a> get_sample('Op_en1909', series_id) 192,240,1 52,44 1,1,1,1,1,1,0,,1, 2,291,175,476,224 2,136,146,489,288,0,MEAN 39325,65535,39321 Graphtool:0 Distresol:10 Diststeps:1 Cdfresol:5 Cdfsteps:1 Symbolsize:6 Baroverlap:0 Linestyle:1 Frame:1 Grid:1 Ticks:1 Mesh:1 Scales:1 Rotation:45 Tilt:0 Depth:70 Frameauto:1 Showkey:1 Xminimum:0 Xmaximum:1 Yminimum:0 Ymaximum:1 Zminimum:0 Zmaximum:1 Xintervals:0 Yintervals:0 Includexzero:0 Includeyzero:0 Includezzero:0 Statsselect:[1,1,1,1,1,0,0,0] Probindex:[0,0.01,0.05,0.25,0.5,0.75,0.95,0.99,1] [Sys_localindex('OP_EN2707'),Run] [0,0,0,0] Benefits: effects of omega-3 fatty acids on cardiovascular mortality Erf_hcrude 336,152,1 52,56 Does omega 3 help other people than CHD patients? All_or_chd 64,56,1 48,46 Does omega-3 help CHD patients or everyone? probability A large part of omega-3 benefit literature is based on studies on cardiac patients. This node reflects the uncertainty whether there is cardiac health benefit for everyone or only coronary heart disease (CHD) patients. The estimate is not based on data but the aim is to maximise uncertainty. Bernoulli( 0.5 ) 64,160,1 48,38 2,102,90,476,333 52425,39321,65535 Fraction of CHD patients among deaths fraction Fraction of coronary heart disease patients among the deaths. Current estimate is based on the fraction of cardiac deaths from total deaths in EEA countries, although there are cardiac deaths among non-CHD patients, and there are CHD patients with other causes of death. <ref>[http://www.who.int WHO data]</ref> 1.5717M/3.8664M 64,248,1 48,38 2,102,90,476,434 Dose-response of health benefit probability/(g/d) Dose-response function comes from secondary prevention trials reviewed by Din 2004 Table 1. The relative risk reductions are divided by the omega3 exposure in each study. A continuous distribution is used, and each study result is used as a quintile point for the distribution. Another review is Marckmann and Gronbaek 1999 that concluded that 0.6-0.9 g/d of omega-3 results in 40-60 % decrease in coronary heart disease mortality. The low estimate from this result was used (40% per 0.9 g/d). <ref>Din JN, Newby DE, Flapan AD. Science, medicine, and the future - Omega 3 fatty acids and cardiovascular disease - fishing for a natural treatment. British Medical Journal 2004; 328(7430):30-35. [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/Din_Omega3andCVD_BMJ2004.pdf Intranet file]</ref> <ref>Marckmann P, Gronbaek M. Fish consumption and coronary heart disease mortality. A systematic review of prospective cohort studies. European Journal of Clinical Nutrition 1999; 53(8):585-590.</ref> -Fractiles( [0/3.5,.325/1.5,.482/1.8,.297/0.85, 0.4/0.9 ]) 200,152,1 52,32 2,102,90,512,527 2,72,82,416,303,1,PDFP 52425,39321,65535 Highest omega3 dose with health benefit g/d Describes the amount of fish that is still beneficial when added to diet. After this limit, no extra benefit is assumed from omega-3 fatty acids. The value reflects both the physiological need of omega-3 and the current intake of omega-3 from other sources than salmon. Both parts of the estimate are complicated, and the latter varies from country to country. This might have implications to the decision if we could give country-wise recommendations of feed regulations. The estimate is based on author judgement. A rough idea about the magnitude comes from Din 2004, where the trials had 0.85 - 1.8 g/d of omega-3 with benefit but 3.5 g/d showed no benefit in a small trial where the population used reasonable amount of fish anyway. If the physiological limit is lower, the slope of the exposure-response function should be steeper. Another data comes from Albert 1998: the benefit may be limited to omega-3 doses <4.9 g/mo = 0.16 g/d. Markmann and Gronbaek concluded that 0.6-0.9 g/d is beneficial. <ref>Din JN, Newby DE, Flapan AD. Science, medicine, and the future - Omega 3 fatty acids and cardiovascular disease - fishing for a natural treatment. British Medical Journal 2004; 328(7430):30-35. [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/Din_Omega3andCVD_BMJ2004.pdf Intranet file]</ref> <ref>Albert CM, Hennekens CH, O'Donnell CJ, Ajani UA, Carey VJ, Willett WC et al. Fish consumption and risk of sudden cardiac death. Jama-Journal of the American Medical Association 1998; 279(1):23-28.</ref> <ref>Marckmann P, Gronbaek M. Fish consumption and coronary heart disease mortality. A systematic review of prospective cohort studies. European Journal of Clinical Nutrition 1999; 53(8):585-590.</ref> Triangular( .2, .5, 1 ) 496,64,1 48,38 2,135,16,476,598 52425,39321,65535 Diagnosis ['Cardiovascular'] 192,296,1 56,13 Exposure- response function for health benefit probability/(g/d) Exposure-response function where also the uncertainty about the population that benefits from omega-3 is taken into account. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1909">Wiki variable</a> var a:= Erf_hcrude*(if All_or_chd=1 then 1 else F_chd_pati); array(Diagnosis,[a]) 200,248,-3 52,44 1,1,1,1,1,1,0,,1, 2,291,175,476,224 2,136,146,489,288,0,MEAN [Alias Exposure__response_f] Graphtool:0 Distresol:10 Diststeps:1 Cdfresol:5 Cdfsteps:1 Symbolsize:6 Baroverlap:0 Linestyle:1 Frame:1 Grid:1 Ticks:1 Mesh:1 Scales:1 Rotation:45 Tilt:0 Depth:70 Frameauto:1 Showkey:1 Xminimum:0 Xmaximum:1 Yminimum:0 Ymaximum:1 Zminimum:0 Zmaximum:1 Xintervals:0 Yintervals:0 Includexzero:0 Includeyzero:0 Includezzero:0 Statsselect:[1,1,1,1,1,0,0,0] Probindex:[0,0.01,0.05,0.25,0.5,0.75,0.95,0.99,1] [0,0,0,0] Exposure- response function for pollutant risk Pieta 16. tamta 2004 1:32 48,24 136,336,1 48,51 1,141,229,418,300,17 Potency of pollutants (mg/kg/d)^Æ1 Potency of pollutants. Cancer slope factors (CSF) are used for cancer and Reference Dose (RfD) values are used for non-cancer endpoints. The data comes from the U.S.EPA. <ref>U.S.EPA. Guidance for Assessing Chemical Contaminant Data for Use in Fish Advisory. Volume 2: Risk Assessment and Fish Consumption Limits, 3rd Edition. 2000. Table 3-1. [http://www.epa.gov/waterscience/fish/guidance.html Open access Internet file]</ref> <ref>[http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/EPAFishAdvisory/ Intranet file]</ref> Table(Pollutant,Self)( 16,50u, 1.1,250u, 156K,0, 2,20u ) ['Ca (CSF)','Non-Ca (RfD)'] 64,40,1 48,24 2,249,11,476,457 2,480,276,416,303,0,MIDM 2,103,144,416,303,0,MIDM [Alias Potency1] 65535,52427,65534 [Self,Pollutant] [Self,Pollutant] [1,0,0,0] Exposure-response function for pollutant risk (mg/kg/d)-1 The response assessment is restricted to cancer endpoints, because it is the more sensitive endpoint. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1906">Wiki variable</a> get_sample('Op_en1906', series_id) 56,128,1 48,38 1,1,1,1,1,1,0,,1, 2,102,90,476,399 2,499,251,655,303,0,MIDM 39325,65535,39321 [1,0,0,0] Is the exposure-response function affected by the target population and its background cancer risk? Should this be taken into account in the model? Erf_poll_d 232,128,1 72,72 2,436,19,476,224 Exposure-response function for pollutant risk (mg/kg/d)-1 The response assessment is restricted to cancer endpoints, because it is the more sensitive endpoint. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1906">Wiki variable</a> potency[Potency='Ca (CSF)'] 64,136,-3 48,38 1,1,1,1,1,1,0,,1, 2,102,90,476,399 2,499,251,655,303,0,MIDM [Alias Exposure_response_fu] [1,0,0,0] Salmon intake jtue 16. Janta 2004 12:54 48,24 320,208,1 48,24 1,81,109,605,297,17 Alternatives for farmed salmon: wild salmon, other fish, canola oil, flaxseed oil. ÒWeÕre telling people that if they want to reduce their risk of cancer, they should not eat more than one meal of farmed salmon a month,Ó Carpenter said. He added that the cancer risk from the toxins effectively cancels out the benefits of omega-3 fatty acids found in farmed salmon, which have not been proven to prevent or reduce the risk of cancer. ÒThere are other places to get omega-3s - wild salmon, other fish, canola oil, flaxseed oil,Ó Carpenter said. <ref>[http://www.intrafish.com/articlea.php?articleID=41061&s=1 Intrafish.com press release 9 Jan 2004]</ref> F 120,56,1 60,44 2,102,90,609,347 Current average consumption of salmon g/d Data comes from EPIC study looking at fish consumption in 10 European countries by gender. We take the minimum, the unweighed average and the maximum of these values in the distribution to represent uncertainty in population average fatty fish intake. All fatty fish is assumed to be salmon. <ref>Welch AA, Lund E, Amiano P, Dorronsoro M. Variability in fish consumption in 10 European countries. In: Riboli E, Lambert R, editors. Nutrition and lifestyle: opportunities for cancer prevention. Lyon: International Agency for Research on Cancer, 2002: 221-222. [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/RiboliNutritionLifestyle_IARC156_2002.pdf PDF of article] [http://ytoswww/yhteiset/Huippuyksikko/Tutkimus/Viljelylohi/Materiaali/ConsumptionOfFish.xls Data in Excel]</ref> Triangular( 7.5, 15.3, 31 ) 352,48,1 48,38 2,376,70,476,496 2,0,0,793,492,0,MEAN [Chance Welch_et_al_2002] [1,0,0,0] Fraction of farmed from total salmon use fraction Fraction of farmed salmon of total salmon consumption in Western Europe. The current estimate is based on author judgement after discussions with people from the Finnish Game and Fisheries Research Institute. Uniform( .8, 1 ) 248,48,1 52,44 2,102,90,476,367 Salmon intake g/d Intake of farmed and wild salmon after the two decisions (regulate fish feed pollutants / recommend restrictions for farmed salmon use) has been made. Although market salmon exists in the index, it is not used in this version of the model. Wild salmon use after restricting farmed salmon use has a triangular probability distribution. Min assumes the same relative decrease as in farmed salmon; mode assumes no change; max assumes that wild salmon intake increases so much that it totally compensates the decrease in farmed salmon use. Estimates are based on author judgement. The wild salmon production capacity is probably much than the max used for the variable. This overestimation causes bias towards smaller costs due to salmon use restrictions. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1904">Wiki variable</a> get_sample('Op_en1904', series_id) 240,208,1 48,24 1,1,1,1,1,1,0,,1, 2,516,77,476,224 2,58,276,500,232,0,MIDM 2,774,436,443,303,0,MEAN 39325,65535,39321 [Decision1,Salmon] [Sys_localindex('DECISION1'),Sys_localindex('SALMON'),Undefined,Undefined,1] [Index Salmon] [1,0,0,0] [Sys_localindex('OP_EN1898'),1,Sys_localindex('OP_EN1899'),1,Sys_localindex('SALMON'),1,Sys_localindex('OP_EN2706'),1] Farmed salmon baseline g/d Average farmed salmon consumption in Western Europe in the base case. Fraction_farmed*crude_salmon 248,144,1 48,29 2,469,178,476,300 Wild salmon baseline g/d Average wild salmon consumption in Western Europe in the base case. (1-Fraction_farmed)*crude_salmon 352,144,1 48,24 Farmed salmon use after recommendation fraction Farmed salmon use per baseline after a recommendation to restrict farmed salmon use. A uniform distribution between 1 American meal/month (227 g) and no change to baseline. If baseline is lower than the recommendation, no change occurs. var a:= 1*227/(365.25/12); var b:= min([a/f,1]); uniform(b,1) 128,144,1 56,36 2,264,94,476,252 2,552,65,424,320,0,MIDM Salmon consumption after feed limits g/d Change in farmed salmon use when fish feed is more strictly regulated. Consumer may consume more salmon, when pollutant problems are handled. However, there is a possibility of bad reputation ('There is a big problem, because authorities have to intervene'). The range overlaps zero to reflect this uncertainty. The expectation is slightly positive. The estimate is based on author judgement. Triangular( -1, 0.5, 1 ) 128,216,1 52,32 2,151,377,416,303,1,PDFP [1,0,0,0] Welch et al 2002 <ref>Welch AA, Lund E, Amiano P, Dorronsoro M. Variability in fish consumption in 10 European countries. In: Riboli E, Lambert R, editors. Nutrition and lifestyle: opportunities for cancer prevention. Lyon: International Agency for Research on Cancer, 2002: 221-222. [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/RiboliNutritionLifestyle_IARC156_2002.pdf PDF of article] [http://ytoswww/yhteiset/Huippuyksikko/Tutkimus/Viljelylohi/Materiaali/ConsumptionOfFish.xls Data in Excel]</ref> 0 472,48,1 48,24 2,102,90,476,379 2,40,50,416,303,0,MIDM 65535,52427,65534 [Chance Crude_salmon] Salmon intake g/d Intake of farmed and wild salmon after the two decisions (regulate fish feed pollutants / recommend restrictions for farmed salmon use) has been made. Although market salmon exists in the index, it is not used in this version of the model. Wild salmon use after restricting farmed salmon use has a triangular probability distribution. Min assumes the same relative decrease as in farmed salmon; mode assumes no change; max assumes that wild salmon intake increases so much that it totally compensates the decrease in farmed salmon use. Estimates are based on author judgement. The wild salmon production capacity is probably much than the max used for the variable. This overestimation causes bias towards smaller costs due to salmon use restrictions. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1904">Wiki variable</a> Table(Salmon,Decision2,Decision1)( F,(A*F), (F+Pollutant_scare),((A*F)+Pollutant_scare), W,Triangular((A*W),W,(W+((1-A)*F))), W,Triangular((A*W),W,(W+((1-A)*F))), 0,0, 0,0 ) 248,216,-3 48,24 1,1,1,1,1,1,0,,1, 2,516,77,476,224 2,58,276,500,232,0,MIDM 2,248,258,548,303,0,MEAN [Alias Salmon_intake1] [Decision1,Salmon] [Undefined,Decision1,Undefined,Undefined,1] [Index Salmon] [1,0,0,0] [Salmon,3,Decision2,1,Decision1,1] Recommend restricted farmed salmon consumption? A decision about whether a general recommendation should be given to restrict the consumption of European farmed salmon to one meal (227 g) per month or not (business as usual, BAU). <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1898">Wiki variable</a> ['BAU','Restrict farmed salmon use'] 424,144,1 76,32 1,1,1,1,1,1,0,,1, 2,102,90,476,354 ['BAU','Restrict farmed salmon use'] Omega3 content in salmon g/g <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1907">Wiki variable</a> array(Year,[Uniform(0.0128,0.0215)]) 472,224,1 48,32 1,1,1,1,1,1,0,0,1,0 2,102,90,476,445 2,106,70,416,303,0,MIDM 2,472,482,416,303,0,MIDM [Alias Omega3_content_in_sa] 52425,39321,65535 [1,0,0,0] Omega3 exposure g/d Omega-3 fatty acid intake from salmon. <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1908">Wiki variable</a> Salmon_intake_d*Omega3_in_salmon_d 384,272,1 48,24 1,1,1,1,1,1,0,,1, 2,102,90,476,224 2,703,249,541,303,0,MEAN [Sys_localindex('DECISION1'),Sys_localindex('SALMON')] [1,0,0,0] [H1899,1,Year3,1,Salmon1,1,H1898,1] Pollutants in salmon jtok 16. tamta 2004 22:14 48,24 168,208,1 48,24 1,439,232,556,308,17 Pollutants in salmon Hites 2004 µg/kg Pollutant concentration data from Hites et al, Fig 2. <ref>Hites RA, Foran JA, Carpenter DO, Hamilton MC, Knuth BA, Schwager SJ. Global assessment of organic contaminants in farmed salmon. Science 2004; 303(5655):226-229. [http://ytoswww/yhteiset/Huippuyksikko/Kirjallisuus/Fish_and_health/HitesRA%26al_Science2004.pdf Intranet file]</ref> Table(Location1,Pollutant)( 5.607,160.008,2.94m,50.904, 5.607,190.0095,2.5725m,48.177, 6.8085,136.6735,2.52m,47.268, 3.738,126.673,2.31m,49.995, 4.539,113.339,2.31m,41.814, 4.9395,150.0075,1.995m,37.269, 3.6045,93.338,2.52m,46.359, 4.4055,153.341,2.1m,34.542, 3.204,66.67,1.7325m,39.087, 2.5365,43.3355,1.89m,34.1784, 3.3375,70.0035,1.4175m,29.997, 2.8035,43.3355,1.449m,34.542, 2.5365,36.6685,1.5225m,34.542, 2.403,36.6685,1.3545m,32.724, 2.0025,30.0015,1.554m,26.361, 1.7355,32.0016,1.1025m,21.816, 2.0025,58.6696,840u,12.726, 1.2015,23.3345,1.344m,22.725, 1.2015,23.3345,945u,18.18, 1.2015,26.668,787.5u,15.453, 0.9345,14.6674,1.344m,21.816, 1.068,18.6676,892.5u,21.816, 1.2015,53.336,1.575m,7.272, 0.801,18.6676,1.155m,14.544, 0.534,20.6677,430.5u,15.453, 0.6675,23.3345,315u,7.272, 0.534,26.668,283.5u,8.181, 0.4806,20.001,315u,6.363, 0.4806,13.334,735u,9.09, 0.4005,16.6675,178.5u,4.545, 0.267,13.334,210u,3.636, 0.4005,14.0007,105u,3.636, 0.4005,15.3341,105u,3.636, 0.4005,12.0006,126u,3.636, 0.4005,10.0005,105u,2.727, 0.4005,10.0005,105u,1.818, 0.267,6.667,105u,1.818, 0.267,6.667,105u,1.818, 0.267,6.667,105u,1.818 ) 56,48,1 48,29 2,354,132,476,475 2,17,12,416,638,0,MIDM [Alias Pollutants_in_salmo2] 65535,52427,65534 [Pollutant,Location1] [Pollutant,Location1] , , , [1,0,0,0] Pollutants in salmon µg/kg Pollutant concentrations in salmon <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1903">Wiki variable</a> get_sample('Op_en1903', series_id) 312,104,1 48,24 1,1,1,1,1,1,0,,1, 2,74,209,416,303,0,MEAN 39321,65535,52425 [Sys_localindex('SALMON'),Sys_localindex('POLLUTANT')] [0,0,0,0] [Sys_localindex('OP_EN1899'),1,Sys_localindex('OP_EN2705'),1,Sys_localindex('OP_EN2706'),1] Salmon type Data from Hites classified based on salmon type (farmed, wild, market) Table(Location1,Self)( 'Farmed salmon','Europe', 'Farmed salmon','Europe', 'Market salmon','Europe', 'Market salmon','Europe', 'Farmed salmon','Europe', 'Market salmon','Europe', 'Market salmon','Europe', 'Market salmon','Europe', 'Farmed salmon','North America', 'Market salmon','North America', 'Farmed salmon','North America', 'Market salmon','North America', 'Farmed salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Market salmon','North America', 'Farmed salmon','North America', 'Farmed salmon','South America', 'Wild salmon','North America', 'Market salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America', 'Wild salmon','North America' ) ['Type','Region'] 56,112,1 48,24 2,102,90,476,395 2,72,82,416,614,0,MIDM 52425,39321,65535 [Self,Location1] [Self,Location1] Pollutant concentration in f/w/m salmon µg/kg Dieldrin, toxaphene, PCB, and dioxin concentrations in farmed, wild, and market salmon. Triangular probability distribution is used for each pollutant and salmon type. Estimates are based on data from Hites 2004. Parameters min, mode, and max are the minimum, average, and maximum of Hites' data, respectively. var typ:= salmon_type[salmon_type='Type']; var a:= (if Salmon=typ then poll_salmon_hites else 0); var b:= (if Salmon=typ then 1 else 0); var c:= max(a,location1); var d:= sum(a,location1)/sum(b,location1); var e:= (if Salmon=typ then poll_salmon_hites else 1M); var f:= min(e,location1); triangular(f,d,c) 192,113,1 48,38 2,36,56,476,309 2,489,195,416,303,1,PDFP [Undefined,Salmon,Undefined,Undefined,1] [1,0,0,0] Other parts jtue 28. Junta 2004 18:03 48,24 488,40,1 48,24 1,0,1,1,1,1,0,,0, 1,40,0,517,300,17 Pollutants per types and region µg/kg Triangular probability distribution for concentrations indexed by salmon type AND THE THREE REGIONS based on data from Hites 2004. Min is the minimum of Hites, Max is the maximum of Hites, and Mode is the average of Hites. Currently not used, but probably we should look at European values, because the consumption and population data comes from Europe. var typ:= salmon_type[salmon_type='Type']; var reg:= salmon_type[salmon_type='Region']; var a:= (if typ=Salmon and reg=Region then poll_salmon_hites else 0); var b:= sum((if typ=Salmon and reg=Region then 1 else 0),location1); var c:= max(a,location1); var d:= if b>0 then sum(a,location1)/b else 0; var e:= (if Salmon=salmon_type then poll_salmon_hites else 1M); var f:= min(e,location1); d 56,32,1 48,29 2,102,90,476,402 2,72,82,451,390,0,MIDM [Salmon,Pollutant] Region The three regions considered in Hites et al 2004. ['Europe','North America','South America'] 56,72,1 48,12 Concentrationparameters for model description µg/kg Triangular probability distribution for concentrations indexed by salmon type based on data from Hites et al, 2004. Min is the minimum, Mode is the average, and Max is the maximum calculated for each salmon type (farmed, wild, and market) separately. var typ:= salmon_type[salmon_type='Type']; var a:= (if Salmon=typ then poll_salmon_hites else 0); var b:= (if Salmon=typ then 1 else 0); var c:= max(a,location1); var d:= sum(a,location1)/sum(b,location1); var e:= (if Salmon=typ then poll_salmon_hites else 1M); var f:= min(e,location1); index x:=['Min','Mode','Max']; array(x,[f,d,c]) 56,136,1 48,38 2,102,90,476,365 2,561,214,416,303,0,MIDM 1,D,4,2,0,0 Pollutants in salmon µg/kg Pollutant concentrations in salmon <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1903">Wiki variable</a> Poll_i_types*Poll_conc_feed_d 320,112,-3 48,24 1,1,1,1,1,1,0,,1, [Alias Pollutants_in_salmon] [Salmon,Pollutant] [1,0,0,0] [Reg_poll,2,Pollutant1,1,Salmon1,1] Total mortality W Europe cases/a Total mortality in European Economic Area countries (386.63 million inhabitants) <ref>[http://www.who.int WHO data]</ref> <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1910">Wiki variable</a> get_sample('Op_en1910', Series_id) 136,424,1 48,32 1,1,1,1,1,1,0,,1, 2,102,90,476,330 2,298,54,416,303,0,MIDM 39325,65535,39321 [1,1,0,1] CHD mortality W Europe cases/a Coronary heart disease mortality in European Economic Area countries (386.63 million inhabitants). The estimate consists of acute myocardial infarction and other ischaemic heart diseases (ICD 10: 270, 279). <ref>[http://www.who.int WHO data]</ref> <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1911">Wiki variable</a> get_sample('Op_en1911', series_id) 504,416,1 48,32 1,1,1,1,1,1,0,,1, 2,106,175,476,224 39325,65535,39321 [1,1,0,1] Should we change fish feed instead of giving fish consumption advisories? 1 568,145,1 48,61 Should_we_change_fis Log v4 1 760,144,1 52,12 65535,54067,19661 Loki_v4 Pollutant risk is much smaller than the net health benefit of farmed salmon Net_mort+Poll_mort 256,488,1 60,51 65535,65532,19661 Scientific uncertainties related to recommendations are unimportant H1898+V3 424,51,1 64,51 65535,65532,19661 Some scientific and political uncertainties related to feed limits are important H1899+V1 280,48,1 72,42 65535,65532,19661 URN:NBN:fi-fe20042774 DC-attribute with refinement Scheme (if any) Value Title Risk benefit analysis of eating farmed salmon Creator.personalName Tuomisto, Jouni T Creator.personalName Tuomisto, Jouko Creator.personalName Tainio, Marko Creator.personalName Niittynen, Marjo Creator.personalName Verkasalo, Pia Creator.personalName Vartiainen, Terttu Creator.personalName Kiviranta, Hannu Creator.personalName Pekkanen, Juha Subject risk benefit analysis Subject persistent organic pollutants Subject omega-3 fatty acids Subject MeSH polychlorinated biphenyls Subject MeSH salmon Subject MeSH risk assessment Subject MeSH fatty acids, omega-3 Subject UDC 614 Public health and hygiene. Description.abstract In their Report ÒGlobal assessment of organic contaminants in farmed salmon,Ó R. A. Hites and co-workers analyzed wild and farmed salmon samples from North and South America and Europe for organic pollutants (9 Jan. 2004, p. 226). The authors conclude that, because of chemical contaminants, farmed salmon should not be eaten more often than 0.25 to 1 times per month. However, the model used does not take into account any beneficial effects of eating fish. We analyzed both risks and benefits. We also performed a value-of-information analysis to see which uncertainties were relevant for decision-making. This is the version 4 of the model calculating risks and benefits of farmed salmon. (c) Copyright Kansanterveyslaitos (KTL; National Public Health Institute, Finland). Publisher Kansanterveyslaitos Date.issued W3C-DTF 2004-07-23 Type DCMIType Software Format IMT text/xml Format.medium computerFile Format 115 kB Identifier http://www.ktl.fi/risk Identifier URN URN:NBN:fi-fe20042774 Language ISO639-2 en Relation.hasPart URL http://www.sciencemag.org/cgi/content/full/305/5683/476 Rights Copyright Kansanterveyslaitos, 2004 0 744,176,1 80,12 2,102,90,523,439 65535,54067,19661 Year [2000] 504,456,1 48,13 Inputs for RDB The node Variables_to_be_saved in the module RDB-connection.ANA from Heande should contain the following: Var_name Probabilistic? 'H1898' 0 'H1899' 0 'H1900' 1 'H1901' 1 'H1902' 1 'H1903' 1 'H1904' 1 'H1905' 1 'H1906' 0 'H1907' 1 'H1908' 1 'H1909' 1 'H1910' 0 'H1911' 0 'H1912' 1 760,32,1 48,24 65535,54067,19661 Opasnet base connection Interface for uploading data to and downloading from the Opasnet Base. <a href="http://en.opasnet.org/w/Image:Opasnet_base_connection.ANA">Wiki description</a> Jouni Tuomisto 9. maata 2008 10:42 jtue 11. tamta 2010 14:00 48,24 112,64,0 48,32 1,0,0,1,1,1,0,0,0,0 1,27,12,799,797,17 2,102,90,476,316 Arial, 15 100,1,1,1,1,9,2970,2100,15,0 2,40,50,640,600 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. 260,84,-1 252,76 Username 0 168,244,1 160,12 1,0,0,1,0,0,0,142,0,1 52425,39321,65535 Opasnet_username TabIndex:1 TextAlways Password 0 168,268,1 160,12 1,0,0,1,0,0,0,142,0,1 52425,39321,65535 Opasnet_password TabIndex:2 TextAlways Study or variable info 0 120,564,1 112,12 1,0,0,1,0,0,0,78,0,1 52425,39321,65535 Index_info Copy-paste a data table. 260,464,-1 252,120 1,0,0,1,0,1,0,,0, 2,693,146,476,224 Advanced upload ktluser 1. Aprta 2009 9:38 48,24 648,392,1 48,24 1,0,0,1,1,1,0,,0, 1,59,90,598,466,17 Writer jtue 24. maata 2009 9:36 48,24 176,504,1 48,24 1,559,31,690,536,17 W loc Makes a table to be written to the Loc table. {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:= cardinals[table1='loc']+a[@.j=1]; a:= array(a.j,[c, c, findid(b,obj,'ident'), a, a, a]); textify(a) 432,240,1 48,16 2,84,125,476,245 2,642,68,606,278,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 100,1,1,1,1,9,2970,2100,15,0 [Sys_localindex('I'),16,Sys_localindex('I'),1,Sys_localindex('J'),1] W loccell Slices fields that are needed in the Locres table from Inp_locres. 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) 432,328,1 48,16 2,776,90,476,487 2,178,73,453,537,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 W cell Slices the fields that are needed in the Res table. Removes duplicate rows. var a:= Cells; a:= array(a.j, [ a[.j='id']+cardinals[table1='cell'], {findid(a[@.j=2], obj, 'ident'), } actobj_stat[@actobj_stat1=lap], a, a, a]); textify(a) 432,280,1 48,16 2,759,203,476,379 2,14,241,659,368,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 W obj Selects relevant information for the Obj table from Objects1 node. {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 a.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) 432,160,1 48,16 2,372,300,476,343 2,429,135,626,444,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [] W act Makes a list of objects that contains some additional information to be written into the Objinfo table. var a:= Acts; {var b:= if objects[.j='ident'] = 0 then -1 else objects[.j='ident']; b:= findid(b[.i = a.i], obj, 'ident'); b:= if b='0' then cardinals[table1='obj']+a[.j='id'] else b;} a:= if a.j='id' or a.j='series_id' then a+cardinals[table1='act'] else a; a:= if a=null or a=0 then '' else a&'' 432,200,1 48,16 2,66,82,476,340 2,34,242,690,459,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [Sys_localindex('J'),1,Sys_localindex('I'),1,Sys_localindex('J'),1] W res var a:= Results; index i:= subset(if a[.j='result']=null and a[.j='description']=0 then 0 else 1); a:= a[.i=i]; a:= array(a.j, [textify(a.i+Cardinals[table1='res']), textify(a+ Cardinals[table1='cell']), textify(a),a,a]); if a=null then '' else a 432,368,1 48,13 2,629,191,582,297 2,477,271,609,375,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [] Object info for lap 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. Object_info[N_vars=Lap] 176,312,1 48,20 2,140,217,476,224 2,653,25,488,226,0,MIDM 2,22,551,460,228,0,MIDM 52425,39321,65535 [N_vars,Info] [N_vars,Info] [1,1,1,0] Index info Table(Ind_info,Indices)( 'Name of pollutant','ICD-10','Year','Decision #2','Decision #1','-','-','Type of salmon','-','Diagnosis','-','a', ,,,,,,,,,,, ) 384,32,1 48,16 2,102,90,476,349 2,755,247,666,349,0,MIDM 2,184,194,660,316,0,MIDM [Formnode Study_or_variable_i1, Formnode Study_or_variable_i2, Formnode Study_or_variable_i3] 52425,39321,65535 [Ind_info,Indices] [Ind_info,Indices] [Variable Acts1] Ind info ['name','unit'] 384,56,1 48,13 [Variable Acts1] Loccells 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. 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) 320,328,1 48,16 2,643,26,526,596 2,70,181,552,488,0,MIDM [Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [] [Sys_localindex('J'),2,Sys_localindex('ITEMP'),1,Sys_localindex('H'),1] Results 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. 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 '' else a) , (if istext(a) then a else '')]) 320,368,1 48,16 2,634,23,581,615 2,28,187,469,411,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [Run,2,Sys_localindex('J'),1,Sys_localindex('I'),1] Locations The format of this node MUST be integer, so that the id and Roww values are stored correctly. var a:= data_table; var b:= [0]; var c:= [0]; var x:= 1; while x<= size(a.j)-2 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))); x:= x+1); index i:= 1..size(b)-1; index j:= ['id', 'std_id', 'obj_id_i', 'location', {'roww',} 'description']; a:= array(j,[i, i, slice(c,i+1), slice(b,i+1), '']) 320,240,1 48,16 2,651,38,476,581 2,92,398,746,259,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [Sys_localindex('D'),1,Object_all3,1,Age,1] Data table 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]) 176,184,1 48,16 2,79,160,482,501 2,17,71,736,338,0,MIDM [Formnode Data_table1] [Sys_localindex('I'),Sys_localindex('J')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [1,1,1,0] [Sys_localindex('I'),1,Sys_localindex('J'),1] Info ['Analytica identifier','ident','name','unit','number of indices','parameter name','probabilistic?'] 240,48,1 48,13 2,102,90,476,379 2,90,166,416,303,0,MIDM [Variable Acts1] ['Analytica identifier','ident','name','unit','number of indices','parameter name','probabilistic?'] Objects 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. 5.1.2010 Jouni Tuomisto Variable-specific parts are simply rejected. Index j:= ['id','ident','name','unit','objtype_id','page','wiki_id']; index i:= concat(N_vars,indices); var Ident:= if @i <= size(N_vars) then Object_info[Info='ident', @N_vars=@i] else i; var a:= Index_info[indices=i, Ind_info=j]; a:= if a=null then '' else a; var e:= Object_info[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)); a:= array(j,[ @i, ident, a, a, if @i<= size(N_vars) then 1 else 6, if i='run' then '2817' else c&'', if b=0 then '1' else b&'']) 320,160,1 48,16 2,573,29,547,724 2,11,31,656,283,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] [Indices,1,Sys_localindex('J'),1,Sys_localindex('I'),1] Observations 'Test1 Value 1 2nh 2 30' 64,232,1 52,16 2,586,79,476,465 [Formnode Observations3] 52425,39321,65535 Data table1 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)) 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)) 64,184,1 48,16 2,7,115,476,362 2,761,412,476,386,0,MIDM [Sys_localindex('COLUMNS'),Sys_localindex('ROWS')] [1,1,1,0] Testvariable Table(Time,Testindex)( uniform(0,1), uniform(1,2), uniform(2,3) ) 544,440,1 48,24 2,40,50,416,303,0,MIDM [Time,Testindex] [Time,Testindex] [1,0,0,0] Testindex ['item 1'] 544,472,1 48,12 2,102,90,476,224 ['item 1'] W cellsec Slices the fields that are needed in the Res table. Removes duplicate rows. (if w_cell.j = 'mean' then '' else W_cell) 544,280,1 48,16 2,782,213,476,379 2,41,191,618,368,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 Cells 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. var a:= Data_table[@.j=size(Data_table.j)-1]; index j:= ['id', {'obj_id_v', 'obj_id_r',} 'actobj_id', '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'], '', w_act[@.j=1, @.i=2],} '', a[temp='mean'], a[temp='sd'], d]) 320,280,1 48,16 2,721,20,526,639 2,304,464,608,328,0,MIDM [Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 [] [N_vars,2,Sys_localindex('I'),1,Sys_localindex('J'),1] Analytica node 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. var a:= Object_info_for_lap[Info='Analytica identifier']; index jtemp:= concat(indexnames(getfract(evaluate(a),0.5)),['result','obs']); index j:= textreplace(jtemp,'.',''); 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=jtemp]; a:= a[@jtemp = @j]; a:= if a=null then 0 else a 64,312,1 48,20 2,53,195,476,317 2,56,66,630,303,0,MIDM [Sys_localindex('I'),Sys_localindex('J')] [1,1,1,0] [N_vars,1,Sys_localindex('J'),1,Sys_localindex('I'),1] Proba var a:= Object_info_for_lap[Info='probabilistic?']; (a=1 or a='Yes' or a='Y' or a='yes' or a='y') 176,368,1 48,16 Data source Choice(Self,3,False) 176,136,1 48,16 [Formnode Data_source1] 52425,39321,65535 ['1 Copy-paste table','2 Node formatted as data table','3 Analytica model'] [1,1,0,0] N vars 1.. (if selecttext(Data_source,1,1)='3' then N_variables else 1) 240,72,1 48,12 [Variable Acts1] [1,2,3,4,5,6,7,8,9,10,11,12,13] N variables 13 240,96,1 48,12 [Formnode N_variables1] 52425,39321,65535 Lap 9 64,368,1 48,16 [0,1,0,1] Indices copyindex(Find_ind) {var a:= Data_table.j[@.j=1..(size(Data_table.j)-2)]; a:= jointext(a,,','); var b:= Object_info[Info='Analytica identifier']; var c:= ['Run']; var x:= 1; while x<=size(b) do ( c:= concat(c,indexnames(evaluate(slice(b,x)))); x:= x+1); c 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,',')} 384,76,1 48,12 2,140,321,476,409 2,40,50,416,303,0,MIDM [Variable Acts1] Test2 Table(Self)( 1,2,3) ['item 1','item 2','item 3'] 544,384,1 48,24 [1,1,0,1] Object info 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. Table(Info,N_vars)( 'Poll_mort','Net_mort','Poll_conc_feed','Poll_conc_salmon','Salmon_intake','Poll_exp','Erf_poll','Omega3_in_salmon','Omega3_exp','Erf_omega3','Tot_mort_weur','Chd_mort_weur','Omega3_benefit', 'Op_en1900','Op_en1901','Op_en1902','Op_en1903','Op_en1904','Op_en1905','Op_en1906','Op_en1907','Op_en1908','Op_en1909','Op_en1910','Op_en1911','Op_en1912', 'Testausmuuttuja',0,0,0,0,0,0,0,0,0,0,0,0, 'm/s',0,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,0,0,0,0,0,0,0,0,0, 'Weight',0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,0,1,1,1,0,0,1 ) 240,24,1 48,16 2,140,217,476,224 2,119,467,799,328,0,MIDM 2,590,303,460,228,0,MIDM 52425,39321,65535 [Info,N_vars] [N_vars,Info] [Variable Acts1] [1,1,1,0] Analytica table Table(Columns,Rows)( 1,2,3, 4,5,6 ) 64,56,1 48,24 2,248,258,416,303,0,MIDM [Formnode Analytica_table2] 52425,39321,65535 [Columns,Rows] [Columns,Rows] Rows 1..N_rows 64,88,1 48,12 [1,2,3] 3 64,112,1 48,12 1,1,1,1,1,1,0,0,0,0 [Formnode N_rows1] 52425,39321,65535 Acts 5.1.2010 Jouni Tuomisto I separated Acts and Objects. Index j:= ['id', 'series_id', 'acttype_id','who','comments']; index i:= ['create','upload']; var a:= array(j,[ @i, @i, array(i,[1, (if selecttext(replace_data_,1,1)='Y' then 4 else 5)]), opasnet_username, if i ='upload' then 'Analytica '&Analyticaedition&', ('&Analyticaplatform&'), Version: '&textify(Analyticaversion) else '']); a 320,200,1 48,16 2,29,37,525,724 2,539,336,694,283,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] ['',''] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] Upload type 1. 64,200,-1 56,56 1,0,0,1,0,1,0,,0, Upload type 2. 64,72,-1 56,64 1,0,0,1,0,1,0,,0, Upload type 3. 120,332,-1 112,60 1,0,0,1,0,1,0,,0, W actobj Makes a list of objects that contains some additional information to be written into the Objinfo table. index j:= ['id', 'act_id', 'obj_id']; var a:= W_obj; var b:= a[.j = 'id']= textify(@a.i+cardinals[table1='obj']); index k1:= subset(b); b:= array(j, ['', w_act[@.j=1, @.i=1], a[.i = k1, .j='id'] ]); index k2:= subset(a[.j='objtype_id']='1'); a:= array(j, ['', w_act[@.j=1, @.i=2], a[.i =k2, .j='id'] ]); index i:= 1..(size(k1)+size(k2)); a:= concat(a, b, k2, k1, i); if j='id' then textify(i+cardinals[table1='actobj']) else a 544,160,1 48,16 2,250,25,476,340 2,403,169,690,459,0,MIDM 65535,45873,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [] [Sys_localindex('J'),1,Sys_localindex('I'),1,Sys_localindex('J'),1] Find ind var a:= Data_table.j[@.j=1..(size(Data_table.j)-2)]; a:= jointext(a,,','); var b:= Object_info[Info='Analytica identifier']; var c:= ['Run']; var x:= 1; while x<=size(b) do ( c:= concat(c,indexnames(evaluate(slice(b,x)))); x:= x+1); c:= textreplace(c, '.' , ''); index temp:= 1..size(c); c:= slice(c, temp); c:= c[temp= unique(c,temp)]; index i:= 1..(size(c)-1); c:= slice(c, i+1); b:= jointext(c,c.i,','); a:= if selecttext(Data_source,1,1)='3' then b else a; splittext(a,',') 384,104,1 48,12 [Self,Sys_localindex('I')] ['Run'] W_obj; W_act; W_actobj; W_loc; W_cell; W_cellsec; W_loccell; W_res 432,424,1 48,24 2,76,79,416,303,0,MIDM [Sys_localindex('I'),Sys_localindex('J')] 2,D,4,2,0,0,4,0,$,0,"ABBREV",0 get_sample('Op_en1912', 174) 560,104,1 48,24 2,140,105,416,303,0,MIDM [Run,] Actobj stat Table(Actobj_stat1)( '565','566','567','568','569','570','571','572','573','574','575','576','577' ) 544,216,1 48,16 Actobj stat [1,2,3,4,5,6,7,8,9,10,11,12,13] 544,240,1 48,12 [1,2,3,4,5,6,7,8,9,10,11,12,13] Data source 0 236,84,1 196,12 1,0,0,1,0,0,0,254,0,1 Data_source Reader ktluser 3. Augta 2008 18:31 jtue 9. lokta 2008 14:01 48,24 176,568,1 48,24 1,1,1,1,1,1,0,0,0,0 1,791,98,477,355,17 Arial, 15 (vident:text, seriesid:optional) Read mean Reads the mean data about the vident variable from the Opasnet Base. Uses the run with runid as run.id if specified; otherwise uses the newest run of that variable. PARAMETERS: * Vident: the ident of the variable in the Opasnet Base. * Runid: the id of the run from which the results will be brought. If omitted, the newest result will be brought. Change run to act if isnotspecified(seriesid) or istext(seriesid) then seriesid:= Newest_series(vident); query( ' SELECT obj.ident, obj.name, obj.unit, cell.id as cell_id, mean, sd, n, act_id, comments, time, std.location, ind.ident AS iident, ind.name AS iiname, series_id FROM obj LEFT JOIN actobj ON obj.id = actobj.obj_id LEFT JOIN act ON act.id = actobj.act_id LEFT JOIN cell ON cell.actobj_id = actobj.id LEFT JOIN loccell ON loccell.cell_id = cell.id LEFT JOIN loc ON loccell.loc_id = loc.id LEFT JOIN loc as std ON loc.std_id = std.id LEFT JOIN obj as ind ON std.obj_id_i = ind.id WHERE obj.ident = '&chr(39)&vident&chr(39)&' AND act.series_id = '&chr(39)&seriesid&chr(39) ) 56,80,1 48,12 2,585,25,516,589 39325,65535,39321 vident,seriesid (vident:text) Newest series 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. var a:= query(' SELECT series_id, var.ident FROM obj AS var LEFT JOIN actobj ON var.id = actobj.obj_id LEFT JOIN act ON actobj.act_id = act.id WHERE var.ident = "'&vident&'" '); max(a[@.j=1],a.i) 56,22,1 48,22 2,678,59,476,566 39325,65535,39321 vident (vident:text, seriesid:optional) Read sample 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. * Runid: the id of the run from which the results will be brought. If omitted, the newest result will be brought. chenge run to act add restext if isnotspecified(seriesid) or istext(seriesid) then seriesid:= Newest_series(vident); query( ' SELECT obj.id AS obj_id, obj.ident, obj.unit, ind.ident as iident, cell.id AS cell_id, location, mean, n, obs, result, restext FROM obj LEFT JOIN actobj ON actobj.obj_id = obj.id LEFT JOIN act ON actobj.act_id = act.id LEFT JOIN cell ON cell.actobj_id = actobj.id LEFT JOIN loccell ON loccell.cell_id = cell.id LEFT JOIN loc ON loccell.loc_id = loc.id LEFT JOIN obj as ind ON loc.obj_id_i = ind.id LEFT JOIN res ON res.cell_id = cell.id WHERE obj.ident = '&chr(39)&vident&chr(39)&' AND series_id = '&chr(39)&seriesid&chr(39) ) 56,112,1 48,22 2,55,35,516,612 39325,65535,39321 vident,seriesid Enter variable Ident 'Op_en1902' 168,83,1 48,27 [Formnode Enter_variable1] 52425,39321,65535 Enter variable 0 288,24,1 176,13 1,0,0,1,0,0,0,170,0,1 52425,39321,65535 Enter_variable Newest series Newest_series(Enter_variable) 288,61,1 48,22 2,56,66,416,303,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] Var info read_mean(Enter_variable) 288,116,1 48,12 2,28,65,996,438,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] (a,b,x) Makeind 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. index inde / slice(b.m, x) := b[.n = unique(b[@.m = x], b.n), @b.m = x]; a:= if inde = a[@.m=1] then a else 0; index m:= slice(a.m,(2..size(a.m))); a:= a[.m=m] 56,192,1 48,12 2,225,263,476,454 a,b,x (a) Get cell_id Makes a multi-dimensional array with the same structure as the original variable that was stored into the Opasnet Base. The contents of the array are the cell_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, and changes a location column to a dimension one at a time until all columns have been changed. NOTE! There is a problem that if there are two or more cells with the exactly same locations, only the one with a largest cell_id will be taken. index k:= ['iident','location','cell_id']; a:= a[.j=k]; a:= if a.k = 'iident' then textreplace(a, ' ', '_', true) else a; 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; var b:= a; var x:= 1; a:= while x< size(b.m) do ( a:= makeind(a,b,x); x:= x+1; a); max(a[@.m=1],a.n) 56,168,1 48,13 2,669,25,476,628 a Var mean get_mean(Enter_variable) 288,140,1 48,12 2,67,92,652,564,0,MIDM [Sys_localindex('OP_EN2706'),Sys_localindex('J')] [Sys_localindex('OP_EN1898'),2,Sys_localindex('OP_EN2707'),1,Sys_localindex('OP_EN2708'),1,Sys_localindex('OP_EN1899'),1,Sys_localindex('J'),1,Sys_localindex('OP_EN2706'),1] (vident:text, runident:optional) Get mean 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. var a:= read_mean(vident, runident); index o:= a[.j='cell_id']; index j:= ['mean','sd']; var output:= a[@.i=@o, .j = j]; a:= Get_cell_id(a); output[o=a] 56,216,1 48,12 2,653,62,476,428 vident,runident (vident:text, runident:optional) Get sample 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). var a:= read_sample(vident, runident); var b:= textify(Get_cell_id(read_mean(vident,runident))); index k:= textify(a[.j='cell_id'])&'+'&textify(a[.j='obs']); index runn:= min(a[.j='obs'],a.i)..max(a[.j='obs'],a.i); a:= if a[.j='restext'] = '' then a[.j='result'] else a[.j='restext']; a:= a[@.i=@k]; a:= a[k=b&'+'&runn]; a:= if max(runn)=0 then a[@runn=1] else a[@runn=@run]; 56,240,1 48,12 2,160,62,476,556 vident,runident Var sample get_sample(Enter_variable, 21) 288,164,1 48,12 2,86,111,476,224 2,16,346,646,307,0,MEAN [Sys_localindex('OP_EN1899'),Sys_localindex('OP_EN2706')] [Sys_localindex('OP_EN1898'),2,Sys_localindex('OP_EN2707'),1,Sys_localindex('OP_EN2708'),1,Sys_localindex('OP_EN2706'),1,Sys_localindex('OP_EN1899'),1] Var run info Describes the runs of the defined variable. This should be made a function. var_run_info(Enter_variable) 288,92,1 48,12 2,41,152,1111,285,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] (vident:text) Var run info 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. Change: objinfo to act run to act add objact query( ' SELECT obj.id AS ovj_id, obj.ident, obj.name, obj.unit, series_id, actobj.act_id, comments, act.time, act.who FROM obj LEFT JOIN actobj ON obj.id = actobj.obj_id LEFT JOIN act ON act.id = actobj.act_id WHERE obj.ident = '&chr(39)&vident&chr(39)&' ') 56,56,1 48,13 2,182,31,476,566 39325,65535,39321 vident 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. 280,285,-1 168,101 (a:text) Query Performs a query and results the standard table with columns .j and rows .i. Lap; index i:= DBquery(Odbc,a); index j:= dblabels(i); dbtable(i,j) 56,144,1 48,13 2,100,154,476,566 39325,65535,39321 a Details ktluser 8. Decta 2008 3:01 48,24 56,568,1 48,24 1,777,78,495,416,17 Wikis Names of different wikis used. Table(Self)( 'Op_en','Op_fi','Heande','En','Fit','Erac','Beneris','Intarese','Piltti','Kantiva','Bioher','Heimtsa') [1,2,3,4,5,8,9,10,11,13,14,15] 400,232,1 48,16 65535,52427,65534 [Self] [Variable Acts1] (a) Textify Changes a number to a text value with up to 15 significant numbers. This bypasses the number formatting problem that tends to convert e.g. 93341 to '93.34K'. If the input is null, the result is ''. if a = null then '' else a&'' 56,280,1 48,12 2,309,205,559,372 a 2,F,4,14,0,0,4,0,$,0,"ABBREV",0 (a; file:texttype) Tablefy a:= '"'&a&'"'; a:= jointext(a,a.j,';'); Writetextfile('c:\temp\'&file, a) 56,240,1 48,13 2,44,303,476,224 65535,45873,39321 a,file 2,F,4,14,0,0,4,0,$,0,"ABBREV",0 Concatenation UDFs 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. David Kendall & Lonnie Chrisman Mon, Jan 26, 2004 8:49 AM Lonnie Wed, Sep 05, 2007 3:23 PM 48,24 184,328,1 68,20 1,0,0,1,1,1,0,0,0,0 1,50,200,488,454,23 (A1, A2, A3: ArrayType; I1, I2, I3, J: IndexType ) Concat3 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 Index I12 := Concat(I1,I2); Concat( Concat( A1,A2,I1,I2,I12 ), A3, I12, I3, J ) 88,64,1 48,26 2,56,56,986,596 A1,A2,A3,I1,I2,I3,J (A1, A2, A3, A4: ArrayType; I1, I2, I3, I4, J: IndexType ) Concat4 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. 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); 192,64,1 48,24 2,30,30,986,596 A1,A2,A3,A4,I1,I2,I3,I4,J 0 (A1, A2, A3, A4, A5, A6, A7, A8, A9: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, J: IndexType) Concat9 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. 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); 88,232,1 48,24 2,27,120,469,638 A1,A2,A3,A4,A5,A6,A7,A8,A9,I1,I2,I3,I4,I5,I6,I7,I8,I9,J 0 (A1, A2, A3, A4, A5: ArrayType; I1, I2, I3, I4, I5, J: IndexType ) Concat5 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. 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); 88,120,1 48,24 2,160,160,986,596 A1,A2,A3,A4,A5,I1,I2,I3,I4,I5,J (A1, A2, A3, A4, A5, A6: ArrayType; I1, I2, I3, I4, I5, I6, J: IndexType ) Concat6 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. 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); 192,120,1 48,24 2,644,94,602,712 A1,A2,A3,A4,A5,A6,I1,I2,I3,I4,I5,I6,J 0 (A1, A2, A3, A4, A5, A6, A7: ArrayType; I1, I2, I3, I4, I5, I6, I7, J: IndexType ) Concat7 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. 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); 88,176,1 48,24 2,580,98,551,565 A1,A2,A3,A4,A5,A6,A7,I1,I2,I3,I4,I5,I6,I7,J (A1, A2, A3, A4, A5, A6, A7, A8: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, J: IndexType ) Concat8 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. 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); 192,176,1 48,24 2,12,98,561,737 A1,A2,A3,A4,A5,A6,A7,A8,I1,I2,I3,I4,I5,I6,I7,I8,J 0 (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, J: IndexType) Concat10 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. 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); 192,232,1 48,24 2,542,93,632,744 A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,J 0 (A : ArrayType ; RowIndex,ColIndex,ResultIndex : IndexType) ConcatRows (A,I,J,K) 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. index L := [ identifier of RowIndex, identifier of ColIndex, "val"]; slice(Mdarraytotable(A,ResultIndex,L),L,3) 320,64,1 64,24 2,499,85,478,348 A,RowIndex,ColIndex,ResultIndex ODBC Library Lonnie Thu, Sep 11, 1997 2:15 PM Lonnie Tue, Feb 05, 2008 10:03 AM 48,24 56,328,1 52,20 1,1,1,1,1,1,0,0,0,0 1,20,272,499,462,17 Arial, 13 (A:ArrayType;I:IndexType;L:IndexType;row:IndexType;dbTableName) InsertRecSql 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. (';;INSERT IGNORE INTO ' & dbTableName & '(' & JoinText(L,L,',') & ') VALUES (' & Vallist(A[@I=@row],L)) & ') ' 184,32,1 52,24 2,591,203,487,469 A,I,L,row,dbTableName (V:ArrayType;I:IndexType) ValList Takes a list of values, and returns a string which the concatenation of each value, separated by commas, and with each value quoted. JoinText( '''' & V & '''', I, ',') 72,32,0 52,24 2,642,360,476,224 V,I 1,F,4,14,0,0 (Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName) WriteTableSql(Table,Rows,Labels,dbTableName) 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. 'DELETE FROM '& Dbtablename & JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex) 328,32,1 88,24 2,728,341,510,476 Tabl,RowIndex,LabelIndex,dbTableName (Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName) AppendTableSql(Table,Rows,Labels,dbTableName) 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. JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex) 328,88,1 88,24 2,559,127,510,476 Tabl,RowIndex,LabelIndex,dbTableName Tables List of such tables in Opasnet Base that are being written to by this module. ['act','actobj','cell','obj','loc','loccell','obj','res'] 400,128,1 48,12 2,396,363,377,227,0,MIDM Cardinals The largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button. for x[]:= table1 do ( var a:= query('SELECT MAX(id) AS id FROM '&x&' '); max(max(a,a.i),a.j)) 400,104,1 48,12 2,634,394,476,332 2,193,270,416,303,0,MIDM 2,659,299,416,303,0,MIDM 39325,65535,39321 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 (in, table; cond:texttype) Findid 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. 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] 56,168,1 48,12 2,636,101,494,519 in,table,cond (var, table) Write 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&' ')) 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&' ')) 56,192,1 48,12 2,751,65,501,457 65535,45873,39321 var,table 0 ODBC write 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' 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' 176,48,1 48,12 1,1,0,1,1,1,0,,0, 2,608,341,495,346 2,168,178,833,303,0,MIDM [] Opasnet username The username for Opasnet wiki 'Add username' 56,64,1 48,22 1,1,1,1,1,1,0,0,0,0 2,102,90,476,398 [Formnode Username1] 52425,39321,65535 [Variable Acts1] Opasnet password The user's password for Opasnet wiki. 'Add password' 56,120,1 48,22 1,1,1,1,1,1,0,0,0,0 2,102,90,476,520 [Formnode Password1] 52425,39321,65535 ODBC 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' 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' 176,24,1 48,12 1,1,0,1,1,1,0,,0, 2,149,300,508,420 2,56,66,918,303,0,MIDM Loc Lap; query(' SELECT loc.*, ind.* FROM loc, obj as ind WHERE loc.obj_id_i = ind.id ') 400,72,1 48,13 1,1,0,1,1,1,0,0,0,0 2,370,45,476,445 2,43,42,1147,516,0,MIDM 39325,65535,39321 [Sys_localindex('J'),Sys_localindex('I')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 Obj 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. Lap; query('SELECT * FROM obj ') 400,48,1 48,13 1,1,0,1,1,1,0,0,0,0 2,378,21,493,501 2,218,87,977,421,0,MIDM 39325,65535,39321 [Sys_localindex('J'),Sys_localindex('I')] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] Standard versions 400,112,-1 72,100 1,0,0,1,0,1,0,,0, (var, table) Write1 if size(var)>0 then appendtablesql(var,var.i, var.j, table&' ') 56,216,1 48,13 2,284,58,476,224 var,table '' 176,88,0 52,12 1,1,1,1,1,1,0,0,0,0 2,163,375,476,224 [Formnode Writerpsswd1] 52425,39321,65535 Platform Choice(Self,2,False,1) 56,24,1 48,12 [Formnode Platform1] 52425,39321,65535 ['Lumina AWP','THL computer'] Object info1-2 subtable(Object_info[Info=Info1_2, @n_vars=1]) 176,136,1 48,24 2,102,90,476,373 2,599,363,416,303,0,MIDM [Formnode Object_info7, Formnode Object_info8] 52425,39321,65535 [N_vars,Info1_2] [Self,Ind_info] ['','',''] Info1-2 ['ident','name','unit','number of indices','parameter name','probabilistic?'] 176,168,1 48,13 1,1,1,1,1,1,0,0,0,0 Object info3 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. subtable(Object_info[Info=Info3]) 176,208,1 48,16 2,140,217,476,224 2,582,293,578,359,0,MIDM 2,752,344,460,228,0,MIDM [Formnode Object_info6] 52425,39321,65535 [Info3,N_vars] [N_vars,Info] [0,1,1,0] Info3 ['Analytica identifier','ident','name','unit','probabilistic?'] 176,240,1 48,13 1,1,1,1,1,1,0,0,0,0 Do next This is a temporary node that is ovewritten when Upload_data and Upload_results are being run. 'Upload_results' 312,320,1 48,16 Old parts ktluser 5. Janta 2010 17:53 48,24 408,360,1 48,24 1,1,0,562,378,17 Acts 5.1.2010 Jouni Tuomisto I separated Acts and Objects. Index j:= ['id', 'series_id', 'acttype_id','who','comments','time']; index i:= concat(concat(N_vars,indices),['upload']); var Ident:= if @i <= size(N_vars) then Object_info[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[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)); a:= array(j,[ @i, @i, if @i = size(i) then (if selecttext(replace_data_,1,1)='Y' then 4 else 5) else 1, opasnet_username, if i ='upload' then 'File: '&Analytica '&Analyticaedition&', ('&Analyticaplatform&'), Version: '&textify(Analyticaversion) else a, a]); a:= if a = null then '' else a; 96,40,1 48,16 2,81,37,525,497 2,539,336,694,283,0,MIDM [Sys_localindex('J'),Sys_localindex('I')] [Sysvar Null, Variable Index_info, Index Ind_info, Index Info, Index N_vars, Index Indices, Variable Object_info, Variable Wikis, Variable Opasnet_username, Variable Replace_data_] [Indices,1,Sys_localindex('J'),1,Sys_localindex('I'),1] (runid) Identfind Finds the Ident for the run (or another object) that has the id runid. 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] 104,304,1 48,12 2,732,65,516,589 39325,65535,39321 runid (a) Dolocation var b:= [0]; var c:= [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))); x:= x+1); index i:= 1..size(b)-1; index j:= ['id', 'std_id', 'obj_id_i', 'location', 'roww', 'description']; array(j,[i, i, slice(c,i+1), slice(b,i+1)&'','', '']) 104,272,1 48,12 2,704,98,503,486 a Object types Types of different objects that may exist in Analytica or Opasnet Base. Types that have the same number are treated equally in these systems. Table(Self)( 'Variable','Dimension','Method','Model','Class','Index','Nugget','Encyclopedia article','Run','Chance','Decision','Objective','Constant','Determ','Module','Library','Form') [1,2,3,4,5,6,7,8,9,1,10,1,1,1,4,4,4] 408,32,1 48,20 2,56,132,476,340 2,674,34,416,606,0,MIDM 2,636,151,416,390,0,MIDM 65535,52427,65534 (a; x:optional = 1; e, f:optional=0) Doloccell 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. 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) 96,61,1 48,13 2,627,78,556,561 a,x,e,f (a: prob; probabilistic; e, f: optional=0) Doresult 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 216,296,1 48,13 2,687,174,476,526 a,probabilistic,e,f (table:atom texttype) Card Brings the largest id number from the table defined in the parameter. index i:= DBquery(odbc,' SELECT MAX(id) AS id FROM '&table&' '); index j:= dblabels(i); max(max(DBTable(i, j ),i),j) 336,240,1 48,12 2,102,90,476,331 39325,65535,39321 table (type) Types Finds the objects that are of the object type "type" (the only parameter of this function). Based on the information in Objects1. var a:= if Objects1[.j='Typ_id']=type then 1 else 0; Objects1[Object_all=subset(a),.j='id'] 104,240,1 48,12 2,551,191,476,344 type Dim index i:= copyindex(D_i); index j:= copyindex(D_j); Dim1[d_i=i, d_j=j] 448,172,1 48,13 1,1,0,1,1,1,0,0,0,0 2,89,98,476,224 2,635,328,556,489,0,MIDM 19661,54073,65535 [D_i,D_j] [Sys_localindex('J'),Sys_localindex('I')] Ind index i:= copyindex(I_i); index j:= copyindex(I_j); Ind1[I_i=i, I_j=j] 448,196,1 48,13 1,1,0,1,1,1,0,0,0,0 2,380,47,476,296 2,490,110,649,655,0,MIDM 19661,54073,65535 [Sys_localindex('J'),Sys_localindex('I')] D_i [0] 216,36,1 48,12 D_j ['id','Ident','Name'] 216,60,1 48,12 I_i [0] 216,84,1 48,12 [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] I_j ['id','Iident','Iname','Did','Dident','Dname'] 216,108,1 48,12 ['id','Iident','Iname','Did','Dident','Dname'] L_i [0] 96,133,1 48,12 [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] L_j ['id','Std_id','Obj_id_i','Location','Roww','Description','id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest'] 96,157,1 48,12 O_i 0 216,240,1 48,13 [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] O_j 0 216,264,1 48,13 2,102,90,476,224 ['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest'] Sett 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. index i:= copyindex(S_i); index j:= copyindex(S_j); Sett1[S_i=i, S_j=j] 448,124,1 48,13 1,1,0,1,1,1,0,0,0,0 2,378,21,493,501 2,227,134,319,515,0,MIDM 19661,54073,65535 [Sys_localindex('J'),Sys_localindex('I')] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] Item 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. index i:= copyindex(It_i); index j:= copyindex(It_j); Item1[it_i=i, it_j=j] 448,148,1 48,13 1,1,0,1,1,1,0,0,0,0 2,378,21,493,501 2,298,216,382,519,0,MIDM 19661,54073,65535 [Sys_localindex('J'),Sys_localindex('I')] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] It_i [0] 104,180,1 48,13 It_j ['id','Sett_id','Obj_id','Fail'] 104,204,1 48,13 S_i [0] 104,84,1 48,13 [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] S_j ['id','Obj_id','Settype_id'] 104,108,1 48,13 ['id','Obj_id','Settype_id'] Dim 0 328,172,1 48,13 1,1,1,1,1,1,0,0,0,0 2,89,98,476,224 2,604,56,556,489,0,MIDM 39325,65535,39321 [D_i,D_j] [D_j,D_i] Ind 0 328,196,1 48,13 1,1,1,1,1,1,0,0,0,0 2,380,47,476,296 2,232,242,874,303,0,MIDM 2,12,22,876,493,0,MIDM 39325,65535,39321 [I_j,I_i] [I_j,I_i] Loc 0 320,85,1 48,13 1,1,1,1,1,1,0,0,0,0 2,370,45,476,445 2,518,523,725,303,0,MIDM 2,404,34,750,516,0,MIDM 39325,65535,39321 [L_j,L_i] [L_j,L_i] Obj 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. DBTable(O_i, O_j) 320,61,1 48,13 1,1,1,1,1,1,0,0,0,0 2,378,21,493,501 2,152,162,1057,343,0,MIDM 2,573,21,700,421,0,MIDM 39325,65535,39321 [O_j,O_i] [O_j,O_i] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] Sett 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. 0 328,124,1 48,13 1,1,1,1,1,1,0,0,0,0 2,378,21,493,501 2,529,143,700,421,0,MIDM 39325,65535,39321 [S_j,S_i] [S_i,S_j] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] Item 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. 0 328,148,1 48,13 1,1,1,1,1,1,0,0,0,0 2,378,21,493,501 2,529,143,700,421,0,MIDM 39325,65535,39321 [It_j,It_i] [It_i,It_j] [Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1] (vident:text, runident:optional) Read mean 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. if isnotspecified(runident) then runident:= Identfind1(Newestrun1(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) 456,300,1 48,12 2,585,25,516,589 39325,65535,39321 vident,runident (vident:text) Newestrun 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. 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) 456,228,1 48,12 2,678,59,476,566 39325,65535,39321 vident (vident:text, runident:optional) Read sample 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. if isnotspecified(runident) then runident:= Identfind1(Newestrun1(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) 456,332,1 48,22 2,700,47,516,612 39325,65535,39321 vident,runident (runid) Identfind Finds the Ident for the run (or another object) that has the id runid. 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] 456,276,1 48,12 2,732,65,516,589 39325,65535,39321 runid (vident:text) Var run info 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. 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) 456,252,1 48,13 2,678,59,476,566 39325,65535,39321 vident (vident:text, runid:optional) Read mean Reads the mean data about the vident variable from the Opasnet Base. Uses the run with runid as run.id if specified; otherwise uses the newest run of that variable. PARAMETERS: * Vident: the ident of the variable in the Opasnet Base. * Runid: the id of the run from which the results will be brought. If omitted, the newest result will be brought. Change run to act if isnotspecified(runid) then runid:= Newestrun2(vident); Query1( ' 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 LEFT JOIN cell ON cell.obj_id_v = var.id LEFT JOIN loccell ON loccell.cell_id = cell.id LEFT JOIN loc ON loccell.loc_id = loc.id LEFT JOIN obj as ind ON loc.obj_id_i = ind.id LEFT JOIN obj as run ON cell.obj_id_r = run.id WHERE var.ident = '&chr(39)&vident&chr(39)&' AND run.id = '&chr(39)&runid&chr(39) ) 336,336,1 48,12 2,585,25,516,589 39325,65535,39321 vident,runid (vident:text) Newestrun 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. var a:= Query1(' SELECT obj_id_r, var.ident FROM obj AS var LEFT JOIN cell ON var.id = cell.obj_id_v WHERE var.ident = "'&vident&'" GROUP BY var.id, obj_id_r '); max(a[@.j=1],a.i) 336,288,1 48,12 2,678,59,476,566 39325,65535,39321 vident (vident:text, runid:optional) Read sample 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. * Runid: the id of the run from which the results will be brought. If omitted, the newest result will be brought. chenge run to act add restext if isnotspecified(runid) then runid:= Newestrun2(vident); Query1( ' SELECT var.ident as vident, var.unit as vunit, ind.ident as iident, cell.id, location, mean, n, obs, result, "" AS restext FROM obj as var LEFT JOIN cell ON cell.obj_id_v = var.id LEFT JOIN loccell ON loccell.cell_id = cell.id LEFT JOIN loc ON loccell.loc_id = loc.id LEFT JOIN obj as ind ON loc.obj_id_i = ind.id LEFT JOIN obj as run ON cell.obj_id_r = run.id LEFT JOIN res ON res.cell_id = cell.id WHERE var.ident = '&chr(39)&vident&chr(39)&' AND run.id = '&chr(39)&runid&chr(39) ) 336,368,1 48,22 2,55,35,516,612 39325,65535,39321 vident,runid (vident:text) Var run info 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. Change: objinfo to act run to act add objact Query1( ' SELECT obj.ident, obj.name, obj.unit, run.id AS runid, run.ident AS runident, act.time, act.who, run.name as method FROM obj LEFT JOIN cell ON obj.id = cell.obj_id_v LEFT JOIN obj as run ON run.id = cell.obj_id_r LEFT JOIN objinfo AS act ON run.id = act.id WHERE obj.ident = '&chr(39)&vident&chr(39)&' GROUP BY obj.id, run.id ') 336,312,1 48,13 2,678,59,476,566 39325,65535,39321 vident (a:text) Query Performs a query and results the standard table with columns .j and rows .i. index i:= DBquery(Odbc,a); index j:= dblabels(i); dbtable(i,j) 336,400,1 48,13 2,678,59,476,566 39325,65535,39321 a Replace data? Choice(Self,1,False) 296,216,1 48,22 [Formnode Replace_data_1] 52425,39321,65535 ['Yes, replace previous data','No, append to previous data'] [Variable Acts1] Columns ['Age','Weight'] 184,352,1 48,12 [Formnode Columns1] ['Age','Weight'] Platform 0 168,20,1 160,12 1,0,0,1,0,0,0,142,0,1 52425,39321,65535 Platform Writerpsswd 0 168,44,1 160,12 1,0,0,1,0,0,0,142,0,1 52425,39321,65535 Writerpsswd 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). 416,680,-1 160,72 1,0,0,1,0,1,0,,0, Detailed help for Analytica use jtue 8. kesta 2009 14:27 48,24 452,24,1 116,16 1,681,15,586,564,17 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. 284,36,-1 276,28 1,0,0,1,0,1,0,,0, 65535,65532,19661 Platform: You must choose THL computer if you are not using the AWP web interface. 284,92,-1 276,20 1,0,0,1,0,1,0,,0, Writerpsswd: You must know the writer password for the Opasnet Base if you are not using the AWP web interface. 284,149,-1 276,29 1,0,0,1,0,1,0,,0, 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. 284,357,-1 276,173 1,0,0,1,0,1,0,,0, Enter anacode "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" 192,656,1 48,24 [Formnode Enter_anacode1] 52425,39321,65535 Enter anacode 0 176,792,1 160,56 1,0,0,1,0,0,0,182,0,1 52425,39321,65535 Enter_anacode Example code 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 80,656,1 48,24 Code node evaluate(Enter_anacode) 192,712,1 48,16 2,104,114,416,303,0,SAMP [Undefined,Sys_localindex('VEHICLE_TYPE'),Undefined,Undefined,Undefined,1] [1,0,0,0] N variables 0 404,148,1 116,12 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 N_variables N_rows 0 132,205,1 116,13 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 N_rows First row must contain values, not column names! 132,228,-1 124,100 1,0,0,1,0,1,0,,0, Analytica table 0 132,228,1 116,12 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 Analytica_table Columns 0 132,181,1 116,13 1,0,0,1,0,0,0,72,0,1 Columns 3 Analytica model: 404,116,-1 124,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 2 Node formatted as data table: 132,116,-1 124,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 Object info 0 132,252,1 116,13 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 Object_info1_2 404,228,-1 124,100 1,0,0,1,0,1,0,,0, Object info 0 404,172,1 116,13 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 Object_info3 Study or variable info 0 404,196,1 116,12 1,0,0,1,0,0,0,78,0,1 52425,39321,65535 Index_info Study or variable info 0 132,276,1 116,12 1,0,0,1,0,0,0,78,0,1 52425,39321,65535 Index_info B) Upload so that the actual data is not visible without a password. Metadata is visible anyway. 400,548,-1 128,60 1,0,0,1,0,1,0,,0, 2,693,146,476,224 Upload data 1 184,304,1 48,12 Upload_data Upload data 1 464,304,1 48,12 Upload_data Replace data? 0 404,220,1 116,12 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 Replace_data_ Providing upload data: 260,332,-1 252,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 Uploading data: 260,604,-1 252,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 A) The default: Upload all data directly to Opasnet Base. 128,676,-1 120,60 1,0,0,1,0,1,0,,0, Observations 0 264,448,1 248,80 1,0,0,1,0,0,0,366,0,1 52425,39321,65535 Observations2 TabIndex:3 Basic help and explanations jtue 8. kesta 2009 14:27 48,24 248,184,1 120,16 1,684,5,586,824,17 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. 284,408,-1 276,176 1,0,0,1,0,1,0,,0, 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. 284,128,-1 276,96 1,0,0,1,0,1,0,,0, 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'. 284,640,-1 276,48 1,0,0,1,0,1,0,,0, 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. 284,788,-1 276,92 1,0,0,1,0,1,0,,0, Follow these instructions if you are using the Internet interface (AWP). 284,20,-1 276,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 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. 284,944,-1 276,56 1,0,0,1,0,1,0,,0, Providing general information: 260,220,-1 252,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 Data table 1 408,565,1 104,13 1,0,0,1,0,0,0,72,0,1 Data_table Check that your data table looks sensible. 364,540,-1 148,12 Object info 0 116,541,1 112,13 1,0,0,1,0,0,0,72,0,1 52425,39321,65535 Object_info1_2 View the uploaded data The largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button. get_mean(Object_info_for_lap[Info='Ident']) 248,760,1 88,16 2,440,279,476,332 2,193,270,416,303,0,MIDM 2,43,59,735,421,0,MIDM 39325,65535,39321 [Sys_localindex('IN1'),Sys_localindex('IN2')] 2,I,4,2,0,0,4,0,$,0,"ABBREV",0 [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] <a href="http://en.opasnet.org/w/Image:Opasnet_base_connection.ANA">Wiki description</a> 592,40,-1 48,28 Or go to advanced upload: 652,332,-1 124,12 1,0,0,1,0,1,0,,0, 65535,65532,19661 Omega3 content in salmon g/g <a href="http://en.opasnet.org/w/Omega-3_content_in_salmon">Wiki variable</a> get_sample('Op_en1907', Series_id) 464,216,1 48,32 1,1,1,1,1,1,0,0,1,0 2,654,98,476,445 2,106,70,416,303,0,MIDM 2,238,55,860,303,0,MEAN 39325,65535,39321 [Run,Sys_localindex('YEAR')] [1,0,0,0] CHD mortality W Europe cases/a Coronary heart disease mortality in European Economic Area countries (386.63 million inhabitants). The estimate consists of acute myocardial infarction and other ischaemic heart diseases (ICD 10: 270, 279). <ref>[http://www.who.int WHO data]</ref> <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1911">Wiki variable</a> array(Year,[615.3k]) 512,424,-3 48,32 1,1,1,1,1,1,0,,1, 2,102,90,476,224 [Alias Chd_mortality_w_euro] 65535,52427,65534 [1,1,0,1] Series_id 184 560,272,1 48,16 1,1,0,1,1,1,0,,0, 52425,39321,65535 Total mortality W Europe cases/a Total mortality in European Economic Area countries (386.63 million inhabitants) <ref>[http://www.who.int WHO data]</ref> <a href="http://heande.pyrkilo.fi/heande/index.php?title=rdb&curid=1910">Wiki variable</a> array(Year,[3.8664M]) 144,432,-4 48,32 1,1,1,1,1,1,0,,1, 2,102,90,476,330 [Alias Total_mortality_w_eu] 65535,52427,65534 [1,1,0,1] read_mean('Op_en1907', 170) 400,456,1 48,24 2,104,114,845,343,0,MIDM [Sys_localindex('I'),Sys_localindex('J')] Data variables 48,24 688,232,1 48,24 1,0,1,1,1,1,0,,0, 1,27,407,446,401,17 Omega3 content in salmon 1 288,72,1 48,32 1,1,1,1,1,1,0,0,1,0 52425,39321,65535 Omega3_in_salmon CHD mortality W Europe 1 288,280,-3 48,32 1,1,1,1,1,1,0,,1, 65535,52427,65534 Chd_mort_weur Total mortality W Europe 1 72,280,-4 48,32 1,1,1,1,1,1,0,,1, 65535,52427,65534 Tot_mort_weur Exposure-response function for pollutant risk 1 72,184,-3 48,38 1,1,1,1,1,1,0,,1, Erf_poll Pollutants in salmon 1 72,112,-3 48,24 1,1,1,1,1,1,0,,1, Poll_conc_salmon Pollutant concentration in fish feed 1 72,48,-3 48,29 1,1,1,1,1,1,0,,1, Poll_conc_feed Exposure- response function for health benefit 1 288,176,-3 52,44 1,1,1,1,1,1,0,,1, Erf_omega3 Salmon intake 1 184,48,-3 48,24 1,1,1,1,1,1,0,,1, Salmon_intake