From 427435e6e21b9ea3f1d12a529d705346d355944b Mon Sep 17 00:00:00 2001 From: Kasper Kristensen Date: Mon, 8 May 2017 14:52:26 +0200 Subject: [PATCH] Remove deprecated folders: - rm admb_examples - rm compare - rm slides --- admb_examples/Makefile | 8 - admb_examples/README.md | 11 - admb_examples/longlinreg/README.md | 10 - admb_examples/longlinreg/longlinreg.R | 6 - admb_examples/longlinreg/longlinreg.tpl | 22 - admb_examples/mvrw/mvrw.dat | 102 -- admb_examples/mvrw/mvrw.pin | 8 - admb_examples/mvrw/mvrw.tpl | 60 - admb_examples/mvrw/nLogNormal.h | 123 -- admb_examples/nmix/nmix.dat | 328 ----- admb_examples/nmix/nmix.pin | 16 - admb_examples/nmix/nmix.tpl | 76 - admb_examples/orange_big/README.md | 17 - admb_examples/orange_big/orange_big.dat | 24 - admb_examples/orange_big/orange_big.pin | 1277 ----------------- admb_examples/orange_big/orange_big.tpl | 91 -- admb_examples/run.R | 25 - admb_examples/run_longlinreg.R | 25 - admb_examples/rw1d/rw.tpl | 44 - admb_examples/rw1d/script.R | 61 - admb_examples/sam/README.md | 11 - admb_examples/sam/model.cfg | 38 - admb_examples/sam/nLogNormal.h | 123 -- admb_examples/sam/sam.dat | 968 ------------- admb_examples/sam/sam.pin | 25 - admb_examples/sam/sam.tpl | 967 ------------- admb_examples/sdv_multi/README.md | 9 - admb_examples/sdv_multi/sdv_multi.dat | 950 ------------ admb_examples/sdv_multi/sdv_multi.pha | 11 - admb_examples/sdv_multi/sdv_multi.pin | 179 --- admb_examples/sdv_multi/sdv_multi.tpl | 150 -- admb_examples/socatt/socatt.tpl | 67 - admb_examples/spatial/readme.txt | 4 - admb_examples/spatial/spatial.dat | 208 --- admb_examples/spatial/spatial.pin | 22 - admb_examples/spatial/spatial.tpl | 81 -- admb_examples/thetalog/thetalog.dat | 4 - admb_examples/thetalog/thetalog.tpl | 38 - compare/Makefile | 2 - compare/report.R | 48 - slides/results/rw.png | Bin 226694 -> 0 bytes slides/results/rwplot.pdf | Bin 8495 -> 0 bytes slides/results/scalability.pdf | Bin 6192 -> 0 bytes slides/results/timings.pdf | Bin 4391 -> 0 bytes slides/results/timings.tex | 15 - slides/slides.tex | 266 ---- tmb_examples/socatt.R | 2 +- .../socatt => tmb_examples}/socatt.dat | 0 48 files changed, 1 insertion(+), 6521 deletions(-) delete mode 100644 admb_examples/Makefile delete mode 100644 admb_examples/README.md delete mode 100644 admb_examples/longlinreg/README.md delete mode 100644 admb_examples/longlinreg/longlinreg.R delete mode 100644 admb_examples/longlinreg/longlinreg.tpl delete mode 100644 admb_examples/mvrw/mvrw.dat delete mode 100644 admb_examples/mvrw/mvrw.pin delete mode 100644 admb_examples/mvrw/mvrw.tpl delete mode 100644 admb_examples/mvrw/nLogNormal.h delete mode 100644 admb_examples/nmix/nmix.dat delete mode 100644 admb_examples/nmix/nmix.pin delete mode 100644 admb_examples/nmix/nmix.tpl delete mode 100644 admb_examples/orange_big/README.md delete mode 100644 admb_examples/orange_big/orange_big.dat delete mode 100644 admb_examples/orange_big/orange_big.pin delete mode 100644 admb_examples/orange_big/orange_big.tpl delete mode 100644 admb_examples/run.R delete mode 100644 admb_examples/run_longlinreg.R delete mode 100644 admb_examples/rw1d/rw.tpl delete mode 100644 admb_examples/rw1d/script.R delete mode 100644 admb_examples/sam/README.md delete mode 100644 admb_examples/sam/model.cfg delete mode 100644 admb_examples/sam/nLogNormal.h delete mode 100644 admb_examples/sam/sam.dat delete mode 100644 admb_examples/sam/sam.pin delete mode 100644 admb_examples/sam/sam.tpl delete mode 100644 admb_examples/sdv_multi/README.md delete mode 100644 admb_examples/sdv_multi/sdv_multi.dat delete mode 100755 admb_examples/sdv_multi/sdv_multi.pha delete mode 100644 admb_examples/sdv_multi/sdv_multi.pin delete mode 100644 admb_examples/sdv_multi/sdv_multi.tpl delete mode 100644 admb_examples/socatt/socatt.tpl delete mode 100644 admb_examples/spatial/readme.txt delete mode 100644 admb_examples/spatial/spatial.dat delete mode 100644 admb_examples/spatial/spatial.pin delete mode 100644 admb_examples/spatial/spatial.tpl delete mode 100644 admb_examples/thetalog/thetalog.dat delete mode 100644 admb_examples/thetalog/thetalog.tpl delete mode 100644 compare/Makefile delete mode 100644 compare/report.R delete mode 100644 slides/results/rw.png delete mode 100644 slides/results/rwplot.pdf delete mode 100644 slides/results/scalability.pdf delete mode 100644 slides/results/timings.pdf delete mode 100644 slides/results/timings.tex delete mode 100644 slides/slides.tex rename {admb_examples/socatt => tmb_examples}/socatt.dat (100%) diff --git a/admb_examples/Makefile b/admb_examples/Makefile deleted file mode 100644 index 423861a77..000000000 --- a/admb_examples/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -examples=nmix mvrw spatial thetalog socatt sdv_multi orange_big sam -outputfiles = $(examples:=.output.RData) longlinreg.output.RData -all: $(outputfiles) -%.output.RData : - example=$(basename $@) R --vanilla < run.R - -longlinreg.output.RData: - R --vanilla < run_longlinreg.R diff --git a/admb_examples/README.md b/admb_examples/README.md deleted file mode 100644 index 9d77fcf7a..000000000 --- a/admb_examples/README.md +++ /dev/null @@ -1,11 +0,0 @@ -README -====== - -This folder contains the ADMB examples. - -- Folder names should be the same as TMB example names. -- Each ADMB example should return sdreport output which will be automatically compared with the corresponding TMB example. -- For the same reason, each TMB example should include "sdreport(obj)". -- The order of random effects in TMB and ADMB should be the same. -- Each ADMB example should be timed with and without sdreport so that the sdreport time can be identified. - diff --git a/admb_examples/longlinreg/README.md b/admb_examples/longlinreg/README.md deleted file mode 100644 index b7127e065..000000000 --- a/admb_examples/longlinreg/README.md +++ /dev/null @@ -1,10 +0,0 @@ -README -====== - -This models runs without any command line options, but a bit faster with: - -./longlinreg -lmn 10 - - - - diff --git a/admb_examples/longlinreg/longlinreg.R b/admb_examples/longlinreg/longlinreg.R deleted file mode 100644 index c1fcf196f..000000000 --- a/admb_examples/longlinreg/longlinreg.R +++ /dev/null @@ -1,6 +0,0 @@ -options("scipen"=100, "digits"=12) -set.seed(123) -nobs<-1000000 -x<-seq(0,10, length=nobs) -cat(nobs,"\n",file="longlinreg.dat") -write.table(cbind(2*x+1+rnorm(nobs),x), file="longlinreg.dat", row.names=FALSE, col.names=FALSE, append=TRUE) diff --git a/admb_examples/longlinreg/longlinreg.tpl b/admb_examples/longlinreg/longlinreg.tpl deleted file mode 100644 index 3fe3d8a32..000000000 --- a/admb_examples/longlinreg/longlinreg.tpl +++ /dev/null @@ -1,22 +0,0 @@ -DATA_SECTION - init_int nobs - init_matrix Yx(1,nobs,1,2) - vector Y(1,nobs); - !! Y=column(Yx,1); - vector x(1,nobs); - !! x=column(Yx,2); - -PARAMETER_SECTION - init_number a - init_number b - init_number logSigma - sdreport_number sigmasq - objective_function_value nll - -PROCEDURE_SECTION - sigmasq=exp(2*logSigma); - nll=0.5*(nobs*log(2*M_PI*sigmasq)+sum(square(Y-(a+b*x)))/sigmasq); - -TOP_OF_MAIN_SECTION - arrmblsize=50000000; - \ No newline at end of file diff --git a/admb_examples/mvrw/mvrw.dat b/admb_examples/mvrw/mvrw.dat deleted file mode 100644 index 39c7bc6a8..000000000 --- a/admb_examples/mvrw/mvrw.dat +++ /dev/null @@ -1,102 +0,0 @@ -100 -3 -0.9688269913954591 0.5131510960374428 -1.656096996528063 --1.160406501735954 0.7882167318628006 -1.211111071241255 --0.04327977607492178 0.7586207737229205 -0.009533982454155265 -0.5002229817231403 -0.4257099143242834 -4.405968939225009 --2.039395894438798 -1.680395023336056 -3.243227787277589 --1.118026812146449 -4.183274160282207 -6.794112948172764 -0.08482568827294124 -2.56661702078619 -5.859625631334448 --1.910238298199178 -3.024120199248523 -6.075094219517958 --1.842434800122521 -3.283584706116631 -7.512549329060263 --3.299357960078017 -5.486835071261003 -8.832461352732205 --3.126713518339395 -9.690020412967167 -13.27484403256301 --0.4258380756594766 -6.902887451787357 -10.20381973016938 --2.645150834598211 -8.089557075165345 -10.96076213693413 --3.10946118260164 -6.285474257176347 -12.79383197055955 --3.3925143972244 -8.010092175920668 -12.08464073376584 --2.14359224798753 -6.704047260751856 -10.38798866335974 --2.898050445632711 -7.079435094911583 -8.53500350309284 --0.4141613021570345 -4.670070006713799 -5.823491468169587 --3.215072746313783 -5.005740585791272 -7.701023797974968 --2.935885577198376 -5.52176129019144 -6.923532312383089 --2.887873976602133 -6.013815562517396 -4.673617932041118 --3.121961572774387 -5.697986649990883 -5.843849872564065 --4.246433726647021 -6.131745658922784 -7.239976510756329 --1.600700785819686 -6.548980935741182 -5.910360748345643 --1.760131529734117 -4.722084903617189 -5.062372644338361 --2.957271682895847 -5.425465820848132 -5.396300192292828 --0.7424997403085074 -4.352599400425462 -6.716743021488509 --1.129261099038795 -6.580459388279431 -9.768056834665904 --2.771039222519761 -5.958501914101514 -8.064080278410504 --0.5043506585688733 -5.040370340333362 -6.121135339807811 --3.643068687545642 -4.479824532763934 -4.783158386912397 --3.682811667643127 -6.588750832535932 -7.332619396107851 --3.857149358235221 -4.325186840565964 -7.086320569770883 --1.15617118135513 -4.554879279853477 -7.316999331024083 --1.620676981382117 -4.452800190720144 -1.275448582929108 --3.608118294719219 -3.386276146954303 0.1696743803446279 --1.815232283770021 -5.310680025402245 -1.06630431530065 -0.1462219225965018 -2.938447482044221 -1.523166366125046 --4.860226870313721 -3.505151343156573 0.325819670950927 --3.010334090078888 -1.703527972858133 -0.1542065132817247 --3.142374738999883 -2.891265088889493 -3.273530270750361 --0.9957559919261894 -3.160135754019024 0.1443121927721453 --0.6675322958929948 -5.576573595955265 0.3863746052079811 --2.113952462372069 -3.81443942759771 -0.1790077687308287 --3.780201683870161 -5.972788744506037 -5.315392519695648 --0.05705242907864561 -5.262530530989327 -2.632412840233761 --1.172528778468306 -2.483585858037919 0.5563270687206228 --3.653015825063158 -4.807138910267328 -0.9067120784797164 --2.707261609154235 -4.76447056668199 -3.872059449966986 --2.774849613041479 -7.282228684806654 -6.235773841217545 --3.951107450294712 -6.391969048004531 -6.455783671600272 --3.568815802394138 -7.237840587441847 -7.888644728455053 --2.52156337004923 -7.971944935943179 -7.383850059381968 --1.375646837062475 -5.429711869705147 -6.427064973759632 --3.054032094605805 -7.827780775315194 -4.714035157824237 --1.519700493671599 -6.278875801056283 -4.433348626895659 --3.888518152210833 -6.302594934022033 -8.106904074656171 --5.248015083571035 -6.128908782273975 -7.814755337961751 --3.554974356607919 -8.458701143121715 -8.895099776854412 --5.389460143660052 -12.76688343963325 -11.87360749910227 --4.889791858025947 -8.393984746371988 -5.581308490899022 --6.319659385218643 -9.591378317762635 -7.112292983659588 --4.816551157494149 -7.978324559506537 -5.930630130430056 --3.784860115288793 -9.57240640020872 -4.819868044337191 --5.437906811742827 -11.73554003193878 -8.113310506166785 --5.947850504357286 -11.8346150222513 -10.67934116391267 --6.217329158661177 -12.50183272987571 -11.00933199621606 --7.209354990193616 -13.04436740080788 -12.11249562178244 --6.756078662025949 -12.9663442309573 -15.63546202969525 --7.339857935705029 -15.19903611279129 -12.00077109358818 --9.35753603131991 -14.62522379958199 -15.13201875466744 --7.560173179286084 -14.93509345956954 -13.21038868081949 --6.301753021602015 -10.22858275141371 -10.70370011244354 --4.243375842728179 -10.58378973290733 -8.371753910706625 --6.270060351424532 -9.310726909065647 -12.78568745561448 --7.853664183898136 -11.85184194573639 -12.45903511808121 --5.811239746891696 -10.57174800841652 -11.92608349946815 --6.705478511370293 -12.53222719075628 -15.77366002533929 --9.57903318327355 -14.0446193635313 -18.61084922822014 --8.015517796981589 -13.8676282997198 -22.10701780782665 --8.357949902217401 -11.80619697592728 -19.23382747213751 --7.600021570848485 -14.493615829725 -19.35667793591169 --8.14807116114976 -12.38705466326047 -20.93838377194816 --7.322202233478779 -13.96165914835316 -20.74185152386768 --8.231541348996725 -13.29937323138375 -23.41632887294435 --6.865533973386756 -11.42578939085304 -17.31495804864288 --5.673252821304493 -11.37266478887089 -16.32113424823211 --8.210930994974788 -9.80521408067966 -13.62252046329925 --5.89842011828067 -10.35165200549642 -16.57464207783225 --6.305455491573994 -11.50652472939532 -19.88798390352042 --7.352856554521882 -10.47029909459836 -18.71931790048665 --7.181321045718782 -10.49310366589339 -17.3612283437372 --7.477845471922413 -11.96625345195378 -14.20515026734491 --6.68085001257062 -8.046462275034164 -14.7554988514606 --6.790356260196533 -9.05441934454549 -11.77390546055848 --6.663907110244621 -6.789304657979137 -9.485067770009778 --8.322443838755593 -10.31964628187613 -10.91744365701058 --7.157283594859253 -11.65118997660504 -13.30603871150205 --8.257793757889321 -10.24403984436942 -15.76276669572682 --7.93162848232723 -8.453711647107193 -11.09830099727014 diff --git a/admb_examples/mvrw/mvrw.pin b/admb_examples/mvrw/mvrw.pin deleted file mode 100644 index 319eda44d..000000000 --- a/admb_examples/mvrw/mvrw.pin +++ /dev/null @@ -1,8 +0,0 @@ -# transf_rho -0.1 -# logsds -0 0 0 -# logsdObs -0 0 0 -# u -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/admb_examples/mvrw/mvrw.tpl b/admb_examples/mvrw/mvrw.tpl deleted file mode 100644 index 2140f38c7..000000000 --- a/admb_examples/mvrw/mvrw.tpl +++ /dev/null @@ -1,60 +0,0 @@ -GLOBALS_SECTION - #include - #include "nLogNormal.h" -DATA_SECTION - init_int N - init_int stateDim - init_matrix obs(1,N,1,stateDim) -PARAMETER_SECTION - objective_function_value jnll; - init_number transf_rho; - init_vector logsds(1,stateDim); - init_vector logsdObs(1,stateDim); - random_effects_vector u(1,stateDim*N); -PROCEDURE_SECTION - - for(int t=1; t<=(N-1); t++) - step(t,u((t-1)*stateDim+1,t*stateDim),u(t*stateDim+1,(t+1)*stateDim),logsds,transf_rho); - - for(int t=1; t<=(N); t++) - obsfun(t,u((t-1)*stateDim+1,t*stateDim),logsdObs); - -SEPARABLE_FUNCTION void step(const int t, const dvar_vector& u1,const dvar_vector& u2, const dvar_vector& logsds, const dvariable& transf_rho) - dvar_matrix fvar(1,stateDim,1,stateDim); - dvar_matrix fcor(1,stateDim,1,stateDim); - dvar_vector fsd(1,stateDim); - dvariable rho=2.0/(1.0+exp(-2.0*transf_rho))-1.0; - - fvar.initialize(); - fsd = exp(logsds); - - dvar_vector a=u1; - dvar_vector b=u2; - a=a.shift(1); - b=b.shift(1); - - for(int i=1; i<=stateDim; ++i){ - for(int j=1; j<=stateDim; ++j){ - if(i!=j){fcor(i,j)=pow(rho,abs(i-j));}else{fcor(i,j)=1.0;} - } - } - //cout << t << "flaf" << endl; - fvar=elem_prod(outer_prod(fsd,fsd),fcor); - jnll+=nLogNormal(a,b,fvar); - - -SEPARABLE_FUNCTION void obsfun(const int t, const dvar_vector& u, const dvar_vector& logsdObs) - dvar_vector var = exp(2.0*logsdObs); - dvar_vector pred = u; - pred=pred.shift(1); - for(int i=1; i<=stateDim; i++){ - //cout << i << endl; - jnll+=0.5*(log(2.0*M_PI*var(i))+square(obs(t,i)-pred(i))/var(i)); - } - -TOP_OF_MAIN_SECTION - arrmblsize=2000000; - gradient_structure::set_GRADSTACK_BUFFER_SIZE(150000); - gradient_structure::set_CMPDIF_BUFFER_SIZE(800000); - gradient_structure::set_MAX_NVAR_OFFSET(100000); - gradient_structure::set_NUM_DEPENDENT_VARIABLES(5000); diff --git a/admb_examples/mvrw/nLogNormal.h b/admb_examples/mvrw/nLogNormal.h deleted file mode 100644 index e67dcd401..000000000 --- a/admb_examples/mvrw/nLogNormal.h +++ /dev/null @@ -1,123 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) 2008,2009,2010,2011,2012, Anders Nielsen -// and Casper Berg . All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the assessment tool SAM nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL ANDERS NIELSEN OR CASPER BERG BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -// DAMAGE. -// -------------------------------------------------------------------------- - -#ifndef __nLogNormal_h__ -#define __nLogNormal_h__ - -#include -#include - -_CONST double log2pi = log(2.0*M_PI); - -template -MatrixType bksolve(_CONST MatrixType& L, _CONST MatrixType& b) -{ - RETURN_ARRAYS_INCREMENT(); - int i, k, r, R, c, C; - r=b.rowmin(); - R=b.rowmax(); - c=b.colmin(); - C=b.colmax(); - MatrixType sumVec(1,1,c,C); - MatrixType x(r,R,c,C); - for(i=r; i<=R; ++i){ - sumVec(1)=b(i); - for(k=i-1; k>=r; k--){ - sumVec(1)-=L(i,k)*x(k); - } - x(i)=sumVec(1)/L(i,i); - } - RETURN_ARRAYS_DECREMENT(); - return x; -} - -template - VectorType nLogNormal(_CONST VectorType& x, _CONST MatrixType& mu, _CONST MatrixType& S) -{ - RETURN_ARRAYS_INCREMENT(); - int r, R, c, C, N; - r=mu.rowmin(); - R=mu.rowmax(); - c=mu.colmin(); - C=mu.colmax(); - N=R-r+1; - VectorType ret(c,C); - MatrixType diff(r,R,c,C); - for(int i=c; i<=C; ++i){ - for(int j=r; j<=R; ++j){ - diff(j,i)=x(j)-mu(j,i); - } - } - VectorType logDet(1,1); - logDet(1)=0.0; - MatrixType chol=choleski_decomp(S); - for(int i=r; i<=R; ++i){logDet(1)+=log(chol(i,i));} - logDet(1)*=2.0; - MatrixType tmp=bksolve(chol,diff); - ret=0.5*(log2pi*N+logDet(1)+colsum(square(tmp))); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -template - VectorType nLogNormal(_CONST MatrixType& x, _CONST VectorType& mu, _CONST MatrixType& S) -{ - RETURN_ARRAYS_INCREMENT(); - VectorType ret=nLogNormal(mu, x, S); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -df1b2variable nLogNormal(_CONST df1b2vector& x, _CONST df1b2vector& mu, _CONST df1b2matrix& S) -{ - RETURN_ARRAYS_INCREMENT(); - int r=mu.indexmin(), R=mu.indexmax(); - df1b2matrix MU(r,R,1,1); - for(int i=r; i<=R; ++i){MU(i,1)=mu(i);} - df1b2vector tmp=nLogNormal(x, MU, S); - df1b2variable ret=tmp(tmp.indexmin()); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -dvariable nLogNormal(_CONST dvar_vector& x, _CONST dvar_vector& mu, _CONST dvar_matrix& S) -{ - RETURN_ARRAYS_INCREMENT(); - dvar_matrix MU(mu.indexmin(),mu.indexmax(),1,1); - MU.colfill(1,mu); - dvar_vector tmp=nLogNormal(x, MU, S); - dvariable ret=tmp(tmp.indexmin()); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -#endif - - - - diff --git a/admb_examples/nmix/nmix.dat b/admb_examples/nmix/nmix.dat deleted file mode 100644 index 785b9ad2e..000000000 --- a/admb_examples/nmix/nmix.dat +++ /dev/null @@ -1,328 +0,0 @@ -# "nmix.dat" produced by dat_write() from ADMButils; Wed Jan 16 00:22:11 2013 -# R - 100 - -# T - 10 - -# S - 21 - -# nG - 40 - -# N - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - -# nID - 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 - -# ID -1 -1 -1 2 -2 -2 -3 -3 -3 4 -4 -4 -5 -5 -5 6 -6 -6 -7 -7 -7 8 -8 -8 -9 -9 -9 10 -10 -10 -11 -11 -11 12 -12 -12 -13 -13 -13 14 -14 -14 -15 -15 -15 16 -16 -16 -17 -17 -17 18 -18 -18 -19 -19 -19 20 -20 -20 -21 -21 -21 22 -22 -22 -23 -23 -23 24 -24 -24 -25 -25 -25 26 -26 -26 -27 -27 -27 28 -28 -28 -29 -29 -29 30 -30 -30 -31 -31 -31 32 -32 -32 -33 -33 -33 34 -34 -34 -35 -35 -35 36 -36 -36 -37 -37 -37 38 -38 -38 -39 -39 -39 40 -40 -40 - -# IDind -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 2 2 2 2 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 - -# x - -0.5910311 0.02659437 -1.516553 -1.362653 1.178489 -0.9341513 1.323606 0.6249178 -0.04572296 -1.004121 -0.8284332 -0.3483517 -1.538293 -0.2555652 -1.149945 0.01232697 -0.2229695 0.8877716 -0.5921553 -0.6557181 -0.6825176 -0.01585819 -0.4426048 0.3525575 0.07317058 0.0071588 -0.1876001 -0.7657006 -0.2210568 -0.9835886 -1.104284 -0.9381502 0.6786242 -1.577498 -0.8699385 0.484677 -0.1860527 1.545555 -0.6113801 -0.3477565 -1.636516 0.02038144 0.8917427 -0.8727497 0.8900508 -0.3438743 -2.186781 0.8800582 0.7238566 0.2198527 0.7898706 -0.2299939 -0.8185025 0.4997342 0.1591923 0.5426264 -0.1566451 0.4387933 1.487871 0.0601651 -0.8490129 2.339693 -0.121203 -1.950207 0.5387115 1.693515 -0.7909682 -1.075261 -0.6078751 0.7544017 0.4534761 -0.1234337 -0.7630968 0.2282701 1.119462 0.1565732 -0.6887721 0.4529496 -1.067547 0.4015651 -0.06477369 0.3154963 -0.6056816 -0.9075847 2.261609 -0.6032267 -1.297862 0.5064512 -0.8533343 -1.506032 1.202329 -1.027865 0.93827 -0.5431547 0.5130951 -0.3525909 1.326533 -1.140152 1.41311 -0.6021788 - -# y -1 0 2 2 0 2 1 2 0 2 -5 7 5 5 5 3 4 5 4 5 -1 3 2 3 3 4 2 4 5 2 -3 3 4 3 1 3 3 0 2 3 -2 1 2 2 2 2 2 2 2 2 -2 3 2 5 4 2 3 2 3 2 -4 3 4 4 2 4 4 4 3 4 -6 6 5 6 6 5 6 6 3 4 -3 2 3 3 3 2 5 4 3 2 -2 3 4 2 2 2 3 3 3 2 -4 0 3 1 2 3 1 1 1 2 -2 2 2 2 0 2 1 2 2 3 -3 1 1 0 1 3 4 2 4 4 -1 1 1 2 2 2 2 2 2 0 -7 5 6 6 8 3 4 5 7 4 -6 5 4 5 2 6 6 5 5 4 -3 4 4 3 3 4 1 2 3 4 -3 3 3 2 4 2 2 3 4 3 -4 2 3 3 2 3 5 5 2 3 -1 3 1 2 0 0 1 2 1 2 -1 2 2 1 1 2 1 2 1 1 -3 4 3 4 4 4 3 3 4 4 -3 5 5 5 6 3 6 5 5 6 -5 5 5 4 5 5 4 4 4 5 -6 4 6 4 4 6 5 4 5 4 -4 3 4 4 1 4 2 4 3 1 -4 3 2 5 6 3 4 6 6 5 -3 4 2 4 4 4 2 2 4 4 -2 3 1 3 2 2 3 3 3 3 -5 4 3 4 2 3 1 2 3 4 -4 4 3 3 3 4 3 3 3 6 -1 0 0 0 1 1 0 0 1 1 -8 7 8 7 7 6 7 7 4 6 -0 1 0 0 2 0 2 0 1 0 -2 2 1 3 1 2 3 6 3 3 -4 2 3 4 4 3 3 3 3 4 -3 2 1 2 3 3 2 1 2 1 -2 2 2 2 1 2 2 2 2 2 -3 2 2 2 0 4 4 3 1 1 -5 4 5 3 5 7 4 5 7 6 -2 2 0 1 0 2 2 0 1 0 -1 3 1 1 3 2 2 2 2 2 -3 4 3 2 3 4 3 3 3 3 -7 6 4 11 5 7 7 7 10 6 -6 6 6 4 4 6 6 6 5 5 -1 3 2 0 0 2 1 1 3 3 -1 0 1 2 2 1 1 1 1 2 -4 5 2 5 5 5 5 5 4 5 -1 2 1 2 2 2 2 2 2 2 -1 3 3 2 2 3 2 1 2 3 -5 5 5 5 5 5 5 5 5 5 -1 2 2 2 2 3 3 3 3 3 -2 2 2 2 2 0 2 2 2 1 -6 5 6 6 6 7 4 7 5 6 -2 3 2 2 4 4 2 1 2 3 -7 7 5 5 7 7 5 6 7 7 -5 4 4 5 4 4 5 4 5 4 -2 2 2 2 2 2 1 2 2 2 -5 4 5 5 5 5 5 5 5 4 -7 6 3 6 6 7 7 7 4 6 -3 4 3 2 5 4 5 3 1 4 -6 6 6 6 6 6 5 6 6 6 -4 5 5 3 3 6 6 6 4 5 -3 3 3 1 3 3 2 1 3 5 -6 4 7 7 6 6 3 7 7 6 -6 6 6 6 6 6 6 6 6 6 -5 3 5 6 3 4 6 6 4 3 -3 4 4 3 2 2 3 4 1 3 -3 3 2 1 2 2 1 1 3 0 -3 3 3 3 2 2 2 1 3 3 -6 7 7 7 7 7 4 7 6 6 -8 7 5 7 7 7 5 7 7 8 -2 3 2 1 2 2 2 3 1 1 -6 4 3 5 5 4 5 7 4 7 -6 8 5 8 8 5 4 8 6 7 -1 2 2 2 2 2 2 2 2 2 -6 3 4 4 4 3 5 6 2 3 -5 6 3 2 4 4 4 4 4 3 -2 2 3 2 3 3 2 1 3 2 -1 3 4 2 2 3 4 2 3 4 -3 4 5 5 4 4 4 4 3 2 -3 2 1 2 3 2 3 1 3 3 -3 4 4 3 3 4 2 1 2 1 -1 0 1 1 1 0 1 2 1 1 -6 6 6 5 5 6 6 6 5 6 -2 0 3 1 0 2 0 1 1 3 -1 1 1 2 0 1 1 1 3 1 -6 6 5 4 4 6 6 5 4 5 -9 6 6 6 5 3 5 5 7 7 -2 3 1 1 1 2 3 1 2 1 -4 3 3 3 3 3 4 4 4 4 -3 2 3 1 2 1 3 2 1 2 -4 4 4 2 4 1 3 3 4 4 -3 4 3 2 3 2 2 3 3 3 -1 1 4 1 3 3 1 2 0 4 -3 3 3 4 5 4 4 4 3 1 -4 3 2 4 4 4 4 4 2 3 -1 2 1 1 1 0 1 1 2 2 -5 6 6 5 5 6 5 5 6 6 -3 2 4 2 1 3 3 3 4 4 - diff --git a/admb_examples/nmix/nmix.pin b/admb_examples/nmix/nmix.pin deleted file mode 100644 index 6ecd1a50d..000000000 --- a/admb_examples/nmix/nmix.pin +++ /dev/null @@ -1,16 +0,0 @@ -# "nmix.pin" produced by pin_write() from ADMButils; Wed Jan 16 00:22:11 2013 -# log_lambda - 4 - -# p0 - 0 - -# p1 - 0 - -# log_sigma - 0 - -# u - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - diff --git a/admb_examples/nmix/nmix.tpl b/admb_examples/nmix/nmix.tpl deleted file mode 100644 index 624cf0a9f..000000000 --- a/admb_examples/nmix/nmix.tpl +++ /dev/null @@ -1,76 +0,0 @@ -// Binomial-Poisson mixture model (Royle Biometrics 2004) -// Site-level covariate of p -// Random group effect - -DATA_SECTION - - init_int R // Number of sites - init_int T // Number of occasions - init_int S // Number of possible values of N - init_int nG // Number of groups - - init_ivector N(1,S) // Possible values of N - init_ivector nID(1,R) // Number of observers present at a site - init_imatrix ID(1,R,1,nID) // IDs of observer present at each site - init_imatrix IDind(1,R,1,T) // Group ID RT matrix - init_vector x(1,R) // Site-specific covariate - init_imatrix y(1,R,1,T) // Count data with R rows and T columns - -PARAMETER_SECTION - - init_bounded_number log_lambda(-20.0,20.0,1) - init_bounded_number p0(-20.0,20.0,1) - init_bounded_number p1(-20.0,20.0,1) - - init_bounded_number log_sigma(-3.0,3.0,2) // log of random effect SD - - random_effects_vector u(1,nG,2) - objective_function_value nll - -PROCEDURE_SECTION - - for(int i=1;i<=nG;i++) - prior_N01(u(i)); - - for(int i=1;i<=R;i++) - nll_group(i, p0,p1,log_lambda,log_sigma,u(ID(i))); - - -SEPARABLE_FUNCTION void prior_N01(const dvariable& u) - nll += 0.5*square(u); - -SEPARABLE_FUNCTION void nll_group(int i, const dvariable& p0,const dvariable& p1,const dvariable& log_lambda, const dvariable& log_sigma, const dvar_vector& u) - - dvariable sigma = exp(log_sigma); - dvariable lambda = exp(log_lambda); - - double e=1e-12; - - dvar_vector p(1,nID(i)); - dvar_vector f(1,S); - dvar_vector g(1,S); - - p = 1.0/(1.0+exp(-1.0*(p0 + p1*x(i) + sigma*u))); - - for(int k=1;k<=S;k++) - f(k) = pow(lambda, N(k)) / exp(lambda + gammln(N(k)+1)); - - for(int k=1;k<=S;k++) { - g(k) = 1.0; - for(int j=1;j<=T;j++) { - if(N(k)>=y(i,j)) - g(k) *= exp(gammln(N(k)+1) - gammln(y(i,j)+1) - - gammln(N(k)-y(i,j)+1)) * pow(p(IDind(i,j))+e, y(i,j)) * - pow(1.0 + e - p(IDind(i,j)), N(k)-y(i,j)); - else - g(k) = 0.0; - } - } - - nll -= log(e + f*g); - -TOP_OF_MAIN_SECTION - arrmblsize = 40000000L; - gradient_structure::set_GRADSTACK_BUFFER_SIZE(30000000); - gradient_structure::set_CMPDIF_BUFFER_SIZE(20000000); - diff --git a/admb_examples/orange_big/README.md b/admb_examples/orange_big/README.md deleted file mode 100644 index 867b69095..000000000 --- a/admb_examples/orange_big/README.md +++ /dev/null @@ -1,17 +0,0 @@ -README -====== - -For this model to run you need the following command line options: - -./orange_big -est -gbs 100000000 -cbs 10000000 -nl1 10000000 - -The options are related to memory management in ADMB. For further details -see: - -http://www.admb-project.org/users/tutorials-and-examples/memory-management - - - - - - diff --git a/admb_examples/orange_big/orange_big.dat b/admb_examples/orange_big/orange_big.dat deleted file mode 100644 index e23614e1b..000000000 --- a/admb_examples/orange_big/orange_big.dat +++ /dev/null @@ -1,24 +0,0 @@ - -# n (number of observations) - 35 - -# y (responses) -30 58 87 115 120 142 145 33 69 111 156 172 203 203 30 51 75 108 115 139 140 32 62 112 167 179 209 214 30 49 81 125 142 174 177 - -# t (primary covariate) -118 484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 - -# M (number of groups) - 5 - -# ngroup (number of observations in each group) - 7 7 7 7 7 - -# m (number of parameters in the model) - 3 - -# multiply (faktor by which to scale up the size of the original orange problem) - -1000 - - diff --git a/admb_examples/orange_big/orange_big.pin b/admb_examples/orange_big/orange_big.pin deleted file mode 100644 index 0bba6f507..000000000 --- a/admb_examples/orange_big/orange_big.pin +++ /dev/null @@ -1,1277 +0,0 @@ -# beta -0 0 0 -# log(sigma's) -1 -2 -# u -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/admb_examples/orange_big/orange_big.tpl b/admb_examples/orange_big/orange_big.tpl deleted file mode 100644 index d1e8e7a6d..000000000 --- a/admb_examples/orange_big/orange_big.tpl +++ /dev/null @@ -1,91 +0,0 @@ -// Scaled up version of the Orange Tree example (50,000 latent random variables) - -DATA_SECTION - - init_int n // Number of data points - init_vector y(1,n) // Response vector - init_vector t(1,n) // Primary covariate - init_int M // Number of groups - init_vector ngroup(1,M) // Group indicator - init_int m // Number of parameters in nonlinear regression model - - init_int multiply // Multiplyer to scale up the model - int Mmultiply - !! Mmultiply = M*multiply; - !! cout << "######################" << multiply << endl; - - -PARAMETER_SECTION - - init_bounded_vector beta(1,3,-50,200,1) // Fixed effects parameters - init_bounded_number log_sigma(-6.0,5.0,1) // log(residual variance) - init_bounded_number log_sigma_u(-10,5,2) // 0.5*log(variance component) - - random_effects_vector u(1,Mmultiply,2) // Unscaled random effects - - objective_function_value g - -PRELIMINARY_CALCS_SECTION - cout << setprecision(4); - -GLOBALS_SECTION - - #include - //#include - -PROCEDURE_SECTION - - int i,k,ii; - - g = 0.0; - - for(k=1;k<=(int) multiply;k++) - { - ii = 0; - for(i=1;i<=(int) M;i++) - { - fit_individual_tree(beta(1),beta(2),beta(3),u(i+(k-1)*M),i,ii,log_sigma,log_sigma_u); - } - } - -SEPARABLE_FUNCTION void fit_individual_tree(const dvariable& beta1, const dvariable& beta2, const dvariable& beta3, const dvariable& u1, int i, int& ii, const dvariable& log_sigma,const dvariable& log_sigma_u) - int j; - - dvar_vector a(1,3); // Basic model function parameters - - a(1) = 192.0 + beta1 + u1; - a(2) = 726.0 + beta2; - a(3) = 356.0 + beta3; - - dvariable tmp, f; - dvariable sigma = mfexp(log_sigma); - - // Random effects contribution - g -= -(log_sigma_u); - g -= -.5*(square(u1/mfexp(log_sigma_u))); - - for(j=1;j<=ngroup(i);j++) - { - g -= -log_sigma; - ii++; - - f = a(1)/(1+mfexp(-(t(ii)-a(2))/a(3))); - tmp = y(ii) - f; - tmp /= sigma; - g -= -0.5*tmp*tmp; - } - -REPORT_SECTION - - //report << beta0+beta << endl; - report << exp(log_sigma) << endl; - report << exp(log_sigma_u) << endl; - -TOP_OF_MAIN_SECTION - arrmblsize = 40000000L; - gradient_structure::set_GRADSTACK_BUFFER_SIZE(3000000); - gradient_structure::set_CMPDIF_BUFFER_SIZE(200000); - gradient_structure::set_MAX_NVAR_OFFSET(10000); - - - diff --git a/admb_examples/run.R b/admb_examples/run.R deleted file mode 100644 index 2409a2f80..000000000 --- a/admb_examples/run.R +++ /dev/null @@ -1,25 +0,0 @@ -example <- Sys.getenv("example") -example <- sub("\\..*","",example) -print(example) -file <- paste(example,"README.md",sep="/") -if(file.exists(file)) readme <- readLines(file) else readme <- "" -run <- paste(grep(paste0("^\\./",example),readme,value=TRUE),"") -run <- sub("-est","",run) -args <- sub("^[^ ]* ","",run) -build <- "cd folder;admb -r folder.tpl" -run1 <- "cd folder;./folder -args -est" -run2 <- "cd folder;./folder -args" -system(gsub("folder",example,build)) -tim1 <- system.time(system(cmd1 <- sub("-args",args,gsub("folder",example,run1)))) -tim2 <- system.time(system(cmd2 <- sub("-args",args,gsub("folder",example,run2)))) -rep <- try(read.table(paste0(example,"/",example,".std"),header=TRUE)) - -## Hack: insert par file estimate in std -par <- try(readLines(paste0(example,"/",example,".par"))) -par <- grep("^[^#]",par,value=TRUE) -par <- sub("^ ","",par) -par <- do.call("paste",as.list(par)) -par <- as.numeric(strsplit(par," ")[[1]]) -rep$value[] <- par - -save(tim1,tim2,cmd1,cmd2,rep,file=paste0(example,".output.RData")) diff --git a/admb_examples/run_longlinreg.R b/admb_examples/run_longlinreg.R deleted file mode 100644 index 8a1652859..000000000 --- a/admb_examples/run_longlinreg.R +++ /dev/null @@ -1,25 +0,0 @@ -example <- "longlinreg" -example <- sub("\\..*","",example) -print(example) -file <- paste(example,"README.md",sep="/") -if(file.exists(file)) readme <- readLines(file) else readme <- "" -run <- paste(grep(paste0("^\\./",example),readme,value=TRUE),"") -run <- sub("-est","",run) -args <- " -lmn 10" -build <- "cd folder;R --vanilla < longlinreg.R;admb folder.tpl" -run1 <- "cd folder;./folder -args -est" -run2 <- "cd folder;./folder -args" -system(gsub("folder",example,build)) -tim1 <- system.time(system(cmd1 <- sub("-args",args,gsub("folder",example,run1)))) -tim2 <- system.time(system(cmd2 <- sub("-args",args,gsub("folder",example,run2)))) -rep <- try(read.table(paste0(example,"/",example,".std"),header=TRUE)) - -## Hack: insert par file estimate in std -par <- try(readLines(paste0(example,"/",example,".par"))) -par <- grep("^[^#]",par,value=TRUE) -par <- sub("^ ","",par) -par <- do.call("paste",as.list(par)) -par <- as.numeric(strsplit(par," ")[[1]]) -rep$value[1:length(par)] <- par - -save(tim1,tim2,cmd1,cmd2,rep,file=paste0(example,".output.RData")) diff --git a/admb_examples/rw1d/rw.tpl b/admb_examples/rw1d/rw.tpl deleted file mode 100644 index 4a0dcf3f5..000000000 --- a/admb_examples/rw1d/rw.tpl +++ /dev/null @@ -1,44 +0,0 @@ -DATA_SECTION - init_int N - init_vector y(1,N) - -PARAMETER_SECTION - init_number logSdLam - init_number logSdy - random_effects_vector lam(1,N); - sdreport_vector residual(1,N); - objective_function_value jnll; - -PROCEDURE_SECTION - jnll=0.0; - dvariable var; - - for(int i=2; i<=N; ++i){ - step(lam(i-1),lam(i),logSdLam); - } - - for(int i=1; i<=N; ++i){ - obs(lam(i),logSdy,i); - } - - if(sd_phase()){ - residual=(y-lam)/exp(logSdy); - } - -SEPARABLE_FUNCTION void step(const dvariable& lam1, const dvariable& lam2, const dvariable& logSdLam) - dvariable var=exp(2.0*logSdLam); - jnll+=0.5*(log(2.0*M_PI*var)+square(lam2-lam1)/var); - -SEPARABLE_FUNCTION void obs(const dvariable& lam, const dvariable& logSdy, int i) - dvariable var=exp(2.0*logSdy); - jnll+=0.5*(log(2.0*M_PI*var)+square(lam-y(i))/var); - - - -TOP_OF_MAIN_SECTION - arrmblsize=2000000; - gradient_structure::set_GRADSTACK_BUFFER_SIZE(150000); - gradient_structure::set_CMPDIF_BUFFER_SIZE(800000); - gradient_structure::set_MAX_NVAR_OFFSET(100000); - gradient_structure::set_NUM_DEPENDENT_VARIABLES(5000); - diff --git a/admb_examples/rw1d/script.R b/admb_examples/rw1d/script.R deleted file mode 100644 index 21cddb934..000000000 --- a/admb_examples/rw1d/script.R +++ /dev/null @@ -1,61 +0,0 @@ -timeSteps=2000 - - -sd=0.5 -sdObs=1; - - - -d=numeric(timeSteps) -obs=d; - -##init state -d[1] = rnorm(1); -i=1; -obs[i,] = d[i,] + rnorm(1,0,sdObs) -for(i in 2:timeSteps){ - d[i] = d[i-1] + rnorm(1,0,sd) - obs[i] = d[i] + rnorm(1,0,sdObs) -} - -## make ADMB data file -cat(timeSteps,"\n",file="rw.dat"); -##cat(stateDim,"\n",file="rw.dat",append=TRUE); -write.table(obs,file="rw.dat",append=TRUE,row.names=FALSE,col.names=FALSE) - - -t1=system.time(system("./rw -noinit")) - -t2=system.time(system("./rw -noinit -nohess")) - -t3=system.time(system("./rw -noinit -nohess -ilmn 5")) - -t4=system.time(system("./rw -noinit -nohess -lmn2 5")) - - -library(TMB) -setwd("../../tmb_examples/") - -compile("rw1d.cpp") - -dyn.load("rw1d.so") - -data <- list(obs=obs) -parameters <- list( - u=data$obs*0, - logsd=sd*0, - logsdObs=sdObs*0 - ) -newtonOption(smartsearch=FALSE) -obj <- MakeADFun(data,parameters,random="^u",DLL="rw1d") -obj$hessian <- TRUE - -obj$fn() -obj$gr() -system.time(opt <- do.call("optim",obj)) -system.time(opt2 <- nlminb(obj$par,obj$fn,obj$gr)) - -pl <- obj$env$parList() ## <-- List of predicted random effects -plot(pl$u) -lines(obs,col=2) - diff --git a/admb_examples/sam/README.md b/admb_examples/sam/README.md deleted file mode 100644 index 99834da20..000000000 --- a/admb_examples/sam/README.md +++ /dev/null @@ -1,11 +0,0 @@ -README -====== - -For this model to run you need the following command line options: - -./sam -est -nr 2 -noinit - - - - - diff --git a/admb_examples/sam/model.cfg b/admb_examples/sam/model.cfg deleted file mode 100644 index 9231b6196..000000000 --- a/admb_examples/sam/model.cfg +++ /dev/null @@ -1,38 +0,0 @@ - # Min Age (should not be modified unless data is modified accordingly) - 1 - # Max Age (should not be modified unless data is modified accordingly) - 7 - # Max Age considered a plus group (0=No, 1=Yes) - 1 - # The following matrix describes the coupling - # of fishing mortality STATES - # Rows represent fleets. - # Columns represent ages. - 1 2 3 4 5 6 6 - 0 0 0 0 0 0 0 - # Use correlated random walks for the fishing mortalities - # ( 0 = independent, 1 = symmetrical correlation estimated, 2=AR(1)-correlation estimated) - 1 - # Coupling of catchability PARAMETERS - 0 0 0 0 0 0 0 - 1 2 3 4 5 0 0 - # Coupling of power law model EXPONENTS (if used) - 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 - # Coupling of fishing mortality RW VARIANCES - 1 1 1 1 1 1 1 - 0 0 0 0 0 0 0 - # Coupling of log N RW VARIANCES - 1 2 2 2 2 2 2 - # Coupling of OBSERVATION VARIANCES - 1 2 3 3 3 3 3 - 4 5 5 5 5 0 0 - # Stock recruitment model code (0=RW, 1=Ricker, 2=BH, ... more in time) - 2 - # Years in which catch data are to be scaled by an estimated parameter - # first the number of years -0 - # Then the actual years - # Them the model config lines years cols ages - # Define Fbar range - 2 4 diff --git a/admb_examples/sam/nLogNormal.h b/admb_examples/sam/nLogNormal.h deleted file mode 100644 index e67dcd401..000000000 --- a/admb_examples/sam/nLogNormal.h +++ /dev/null @@ -1,123 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) 2008,2009,2010,2011,2012, Anders Nielsen -// and Casper Berg . All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the assessment tool SAM nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL ANDERS NIELSEN OR CASPER BERG BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -// DAMAGE. -// -------------------------------------------------------------------------- - -#ifndef __nLogNormal_h__ -#define __nLogNormal_h__ - -#include -#include - -_CONST double log2pi = log(2.0*M_PI); - -template -MatrixType bksolve(_CONST MatrixType& L, _CONST MatrixType& b) -{ - RETURN_ARRAYS_INCREMENT(); - int i, k, r, R, c, C; - r=b.rowmin(); - R=b.rowmax(); - c=b.colmin(); - C=b.colmax(); - MatrixType sumVec(1,1,c,C); - MatrixType x(r,R,c,C); - for(i=r; i<=R; ++i){ - sumVec(1)=b(i); - for(k=i-1; k>=r; k--){ - sumVec(1)-=L(i,k)*x(k); - } - x(i)=sumVec(1)/L(i,i); - } - RETURN_ARRAYS_DECREMENT(); - return x; -} - -template - VectorType nLogNormal(_CONST VectorType& x, _CONST MatrixType& mu, _CONST MatrixType& S) -{ - RETURN_ARRAYS_INCREMENT(); - int r, R, c, C, N; - r=mu.rowmin(); - R=mu.rowmax(); - c=mu.colmin(); - C=mu.colmax(); - N=R-r+1; - VectorType ret(c,C); - MatrixType diff(r,R,c,C); - for(int i=c; i<=C; ++i){ - for(int j=r; j<=R; ++j){ - diff(j,i)=x(j)-mu(j,i); - } - } - VectorType logDet(1,1); - logDet(1)=0.0; - MatrixType chol=choleski_decomp(S); - for(int i=r; i<=R; ++i){logDet(1)+=log(chol(i,i));} - logDet(1)*=2.0; - MatrixType tmp=bksolve(chol,diff); - ret=0.5*(log2pi*N+logDet(1)+colsum(square(tmp))); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -template - VectorType nLogNormal(_CONST MatrixType& x, _CONST VectorType& mu, _CONST MatrixType& S) -{ - RETURN_ARRAYS_INCREMENT(); - VectorType ret=nLogNormal(mu, x, S); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -df1b2variable nLogNormal(_CONST df1b2vector& x, _CONST df1b2vector& mu, _CONST df1b2matrix& S) -{ - RETURN_ARRAYS_INCREMENT(); - int r=mu.indexmin(), R=mu.indexmax(); - df1b2matrix MU(r,R,1,1); - for(int i=r; i<=R; ++i){MU(i,1)=mu(i);} - df1b2vector tmp=nLogNormal(x, MU, S); - df1b2variable ret=tmp(tmp.indexmin()); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -dvariable nLogNormal(_CONST dvar_vector& x, _CONST dvar_vector& mu, _CONST dvar_matrix& S) -{ - RETURN_ARRAYS_INCREMENT(); - dvar_matrix MU(mu.indexmin(),mu.indexmax(),1,1); - MU.colfill(1,mu); - dvar_vector tmp=nLogNormal(x, MU, S); - dvariable ret=tmp(tmp.indexmin()); - RETURN_ARRAYS_DECREMENT(); - return ret; -} - -#endif - - - - diff --git a/admb_examples/sam/sam.dat b/admb_examples/sam/sam.dat deleted file mode 100644 index 8dc9041de..000000000 --- a/admb_examples/sam/sam.dat +++ /dev/null @@ -1,968 +0,0 @@ -# Auto generated file Fri Mar 21 12:39:20 2014 -# -# Number of fleets (res+con+sur) - 2 -# Fleet types (res=0, con=1, sur=2) - 0 2 -# Sample times (only relevent for sur) - 0 0.125 -# Number of years - 50 -# Years - 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 -# Number of observations - 493 -# Index1 (index of first obs in each year) - 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 153 165 177 189 201 213 225 237 249 261 273 285 297 309 321 333 345 357 369 381 393 405 417 429 441 453 465 477 489 -# Index2 (index of last obs in each year) - 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 152 164 176 188 200 212 224 236 248 260 272 284 296 308 320 332 344 356 368 380 392 404 416 428 440 452 464 476 488 493 -# The observation matrix -1963 1 1 19444.837 -1963 1 2 62593.828 -1963 1 3 7063.356 -1963 1 4 3536.395 -1963 1 5 2788.351 -1963 1 6 1212.944 -1963 1 7 592.002 -1964 1 1 13118.241 -1964 1 2 28684.904 -1964 1 3 20219.961 -1964 1 4 4306.383 -1964 1 5 1917.283 -1964 1 6 1817.726 -1964 1 7 825.923 -1965 1 1 114227.87 -1965 1 2 58520.463 -1965 1 3 17735.357 -1965 1 4 9181.567 -1965 1 5 2387.073 -1965 1 6 950.478 -1965 1 7 1090.226 -1966 1 1 127145.598 -1966 1 2 84752.213 -1966 1 3 29915.973 -1966 1 4 6184.356 -1966 1 5 3378.852 -1966 1 6 1278.165 -1966 1 7 1111.988 -1967 1 1 61269.733 -1967 1 2 95755.973 -1967 1 3 32853.795 -1967 1 4 11261.016 -1967 1 5 3271.029 -1967 1 6 1973.587 -1967 1 7 1438.023 -1968 1 1 37100.944 -1968 1 2 106909.197 -1968 1 3 42783.943 -1968 1 4 12392.279 -1968 1 5 6076.067 -1968 1 6 1414.395 -1968 1 7 1465.309 -1969 1 1 5461.646 -1969 1 2 33005.179 -1969 1 3 31691.057 -1969 1 4 13710.166 -1969 1 5 4565.201 -1969 1 6 2895.464 -1969 1 7 1281.17 -1970 1 1 107718.007 -1970 1 2 42617.248 -1970 1 3 18640.358 -1970 1 4 13338.681 -1970 1 5 6297.105 -1970 1 6 1762.699 -1970 1 7 1494.192 -1971 1 1 305050.177 -1971 1 2 192756.707 -1971 1 3 17265.958 -1971 1 4 6754.004 -1971 1 5 7100.887 -1971 1 6 2699.838 -1971 1 7 1749.463 -1972 1 1 42274.493 -1972 1 2 247326.889 -1972 1 3 48304.061 -1972 1 4 5681.885 -1972 1 5 2726.425 -1972 1 6 3200.544 -1972 1 7 2811.582 -1973 1 1 112314.619 -1973 1 2 49229.622 -1973 1 3 55178.17 -1973 1 4 14072.35 -1973 1 5 2205.739 -1973 1 6 1109.026 -1973 1 7 1848.745 -1974 1 1 140339.092 -1974 1 2 74877.619 -1974 1 3 11475.574 -1974 1 4 15824.271 -1974 1 5 4623.754 -1974 1 6 961.01 -1974 1 7 1434.065 -1975 1 1 170718.546 -1975 1 2 63439.375 -1975 1 3 18943.881 -1975 1 4 4663.275 -1975 1 5 7563.138 -1975 1 6 2067.241 -1975 1 7 1032.291 -1976 1 1 233648.556 -1976 1 2 183912.271 -1976 1 3 18766.379 -1976 1 4 6740.97 -1976 1 5 1740.771 -1976 1 6 3070.92 -1976 1 7 1227.915 -1977 1 1 549789.528 -1977 1 2 99307.099 -1977 1 3 26087.039 -1977 1 4 4614.644 -1977 1 5 2294.229 -1977 1 6 836.184 -1977 1 7 1900.979 -1978 1 1 58773.675 -1978 1 2 254203.922 -1978 1 3 17257.985 -1978 1 4 9439.763 -1978 1 5 3002.984 -1978 1 6 1108.077 -1978 1 7 1047.602 -1979 1 1 619439.901 -1979 1 2 96998.845 -1979 1 3 44653.365 -1979 1 4 4035.171 -1979 1 5 3395.086 -1979 1 6 712.451 -1979 1 7 754.678 -1980 1 1 1252297.013 -1980 1 2 122459.92 -1980 1 3 35055.911 -1980 1 4 12315.831 -1980 1 5 1964.669 -1980 1 6 1272.915 -1980 1 7 847.356 -1981 1 1 177156.57 -1981 1 2 223565.754 -1981 1 3 34900.952 -1981 1 4 9019.152 -1981 1 5 4118.062 -1981 1 6 784.626 -1981 1 7 860.309 -1982 1 1 250252.371 -1982 1 2 73746.903 -1982 1 3 60509.591 -1982 1 4 9567.219 -1982 1 5 3475.725 -1982 1 6 2065.055 -1982 1 7 785.061 -1983 1 1 81210.844 -1983 1 2 140868.927 -1983 1 3 21687.175 -1983 1 4 11900.253 -1983 1 5 2830.395 -1983 1 6 1257.636 -1983 1 7 916.392 -1983 2 1 5.696 -1983 2 2 17.403 -1983 2 3 2.997 -1983 2 4 2.05 -1983 2 5 0.793 -1984 1 1 605545.675 -1984 1 2 79021.925 -1984 1 3 31281.26 -1984 1 4 4263.735 -1984 1 5 3435.782 -1984 1 6 1019.035 -1984 1 7 804.485 -1984 2 1 17.107 -1984 2 2 9.913 -1984 2 3 4.375 -1984 2 4 0.93 -1984 2 5 0.995 -1985 1 1 72503.977 -1985 1 2 154827.345 -1985 1 3 19110.728 -1985 1 4 7822.99 -1985 1 5 1376.689 -1985 1 6 1264.596 -1985 1 7 670.908 -1985 2 1 1.096 -1985 2 2 20.221 -1985 2 3 4.562 -1985 2 4 3.649 -1985 2 5 0.768 -1986 1 1 665992.143 -1986 1 2 38221.068 -1986 1 3 34413.332 -1986 1 4 5814.108 -1986 1 5 2992.532 -1986 1 6 603.986 -1986 1 7 863.077 -1986 2 1 18.112 -1986 2 2 3.793 -1986 2 3 7.787 -1986 2 4 2.756 -1986 2 5 1.368 -1987 1 1 49647.232 -1987 1 2 190476.131 -1987 1 3 9800.274 -1987 1 4 8723.455 -1987 1 5 1534.31 -1987 1 6 1075.412 -1987 1 7 565.162 -1987 2 1 9.626 -1987 2 2 33.252 -1987 2 3 1.845 -1987 2 4 2.032 -1987 2 5 0.659 -1988 1 1 36941.546 -1988 1 2 72509.089 -1988 1 3 44172.434 -1988 1 4 3133.981 -1988 1 5 2557.453 -1988 1 6 655.493 -1988 1 7 465.157 -1988 2 1 6.99 -1988 2 2 7.737 -1988 2 3 7.96 -1988 2 4 0.702 -1988 2 5 0.865 -1989 1 1 200504.418 -1989 1 2 45108.528 -1989 1 3 18685.393 -1989 1 4 9865.819 -1989 1 5 1001.946 -1989 1 6 1035.953 -1989 1 7 458.966 -1989 2 1 14.953 -1989 2 2 6.776 -1989 2 3 5.877 -1989 2 4 2.668 -1989 2 5 0.412 -1990 1 1 45932.317 -1990 1 2 102988.318 -1990 1 3 11984.889 -1990 1 4 4339.136 -1990 1 5 2467.635 -1990 1 6 310.071 -1990 1 7 445.374 -1990 2 1 4.606 -1990 2 2 15.376 -1990 2 3 2.141 -1990 2 4 1.046 -1990 2 5 0.965 -1991 1 1 61575.89 -1991 1 2 31950.495 -1991 1 3 17230.218 -1991 1 4 3310.346 -1991 1 5 1390.165 -1991 1 6 1053.029 -1991 1 7 405.858 -1991 2 1 2.688 -1991 2 2 5.061 -1991 2 3 4.757 -1991 2 4 1.042 -1991 2 5 0.551 -1992 1 1 131989.022 -1992 1 2 42124.326 -1992 1 3 8683.818 -1992 1 4 5007.222 -1992 1 5 1060.218 -1992 1 6 490.691 -1992 1 7 447.48 -1992 2 1 16.439 -1992 2 2 4.821 -1992 2 3 1.364 -1992 2 4 1.023 -1992 2 5 0.312 -1993 1 1 38895.703 -1993 1 2 84390.413 -1993 1 3 11371.562 -1993 1 4 3189.599 -1993 1 5 1577.319 -1993 1 6 434.902 -1993 1 7 352.966 -1993 2 1 13.619 -1993 2 2 20.429 -1993 2 3 2.4 -1993 2 4 0.807 -1993 2 5 0.693 -1994 1 1 340259.637 -1994 1 2 42290.929 -1994 1 3 21305.684 -1994 1 4 3083.158 -1994 1 5 869.856 -1994 1 6 519.236 -1994 1 7 254.168 -1994 2 1 14.856 -1994 2 2 4.51 -1994 2 3 3.015 -1994 2 4 0.86 -1994 2 5 0.486 -1995 1 1 61142.608 -1995 1 2 107669.779 -1995 1 3 12973.684 -1995 1 4 5300.68 -1995 1 5 802.213 -1995 1 6 286.177 -1995 1 7 225.244 -1995 2 1 12.798 -1995 2 2 27.878 -1995 2 3 3.461 -1995 2 4 1.363 -1995 2 5 0.306 -1996 1 1 19388.591 -1996 1 2 60180.674 -1996 1 3 24138.375 -1996 1 4 3168.526 -1996 1 5 1859.583 -1996 1 6 398.547 -1996 1 7 304.105 -1996 2 1 4.384 -1996 2 2 9.512 -1996 2 3 6.368 -1996 2 4 0.796 -1996 2 5 0.663 -1997 1 1 111076.923 -1997 1 2 43085.446 -1997 1 3 18686.82 -1997 1 4 6498.575 -1997 1 5 1238.443 -1997 1 6 699.952 -1997 1 7 239.874 -1997 2 1 38.005 -1997 2 2 7.597 -1997 2 3 2.67 -1997 2 4 1.142 -1997 2 5 0.455 -1998 1 1 16863.777 -1998 1 2 172876.909 -1998 1 3 18471.922 -1998 1 4 5966.899 -1998 1 5 2401.719 -1998 1 6 509.215 -1998 1 7 309.158 -1998 2 1 2.951 -1998 2 2 27.555 -1998 2 3 2.309 -1998 2 4 1.087 -1998 2 5 0.552 -1999 1 1 37491.471 -1999 1 2 15467.853 -1999 1 3 40661.681 -1999 1 4 4034.169 -1999 1 5 1445.5 -1999 1 6 625.659 -1999 1 7 339.669 -1999 2 1 3.304 -1999 2 2 1.878 -1999 2 3 8.104 -1999 2 4 0.804 -1999 2 5 0.452 -2000 1 1 46275.062 -2000 1 2 28682.77 -2000 1 3 6471.848 -2000 1 4 6696.758 -2000 1 5 1021.119 -2000 1 6 384.915 -2000 1 7 203.181 -2000 2 1 6.639 -2000 2 2 5.537 -2000 2 3 0.889 -2000 2 4 2.152 -2000 2 5 0.436 -2001 1 1 7819.998 -2001 1 2 54778.105 -2001 1 3 6972.277 -2001 1 4 1142.486 -2001 1 5 1079.773 -2001 1 6 144.053 -2001 1 7 132.503 -2001 2 1 3.378 -2001 2 2 9.316 -2001 2 3 1.891 -2001 2 4 0.293 -2001 2 5 0.41 -2002 1 1 20564.877 -2002 1 2 10492.365 -2002 1 3 15223.454 -2002 1 4 2518.759 -2002 1 5 366.071 -2002 1 6 348.652 -2002 1 7 101.28 -2002 2 1 11.491 -2002 2 2 4.24 -2002 2 3 4.54 -2002 2 4 0.671 -2002 2 5 0.143 -2003 1 1 8911.344 -2003 1 2 19591.334 -2003 1 3 4628.634 -2003 1 4 2728.346 -2003 1 5 460.41 -2003 1 6 68.281 -2003 1 7 73.795 -2003 2 1 0.756 -2003 2 2 4.168 -2003 2 3 1.301 -2003 2 4 1.415 -2003 2 5 0.48 -2004 1 1 13454.039 -2004 1 2 8744.425 -2004 1 3 6106.834 -2004 1 4 1965.168 -2004 1 5 987.633 -2004 1 6 149.658 -2004 1 7 76.829 -2004 2 1 8.37 -2004 2 2 2.114 -2004 2 3 1.525 -2004 2 4 0.435 -2004 2 5 0.556 -2005 1 1 12792.07 -2005 1 2 13882.637 -2005 1 3 2972.583 -2005 1 4 1646.199 -2005 1 5 478.44 -2005 1 6 394.377 -2005 1 7 65.584 -2005 2 1 2.723 -2005 2 2 3.283 -2005 2 3 0.94 -2005 2 4 0.665 -2005 2 5 0.229 -2006 1 1 28596.34 -2006 1 2 10494.77 -2006 1 3 5251.431 -2006 1 4 1067.673 -2006 1 5 482.577 -2006 1 6 153.37 -2006 1 7 144.4 -2006 2 1 8.131 -2006 2 2 1.644 -2006 2 3 1.316 -2006 2 4 0.261 -2006 2 5 0.156 -2007 1 1 15862.315 -2007 1 2 27035.406 -2007 1 3 3949.468 -2007 1 4 1902.593 -2007 1 5 356.039 -2007 1 6 138.987 -2007 1 7 85.189 -2007 2 1 3.397 -2007 2 2 6.658 -2007 2 3 1.247 -2007 2 4 0.375 -2007 2 5 0.331 -2008 1 1 8939.978 -2008 1 2 12565.075 -2008 1 3 11767.302 -2008 1 4 1212.418 -2008 1 5 717.507 -2008 1 6 183.272 -2008 1 7 131.525 -2008 2 1 3.62 -2008 2 2 2.279 -2008 2 3 3.09 -2008 2 4 0.721 -2008 2 5 0.464 -2009 1 1 9219.569 -2009 1 2 11422.983 -2009 1 3 4197.569 -2009 1 4 3279.627 -2009 1 5 580.898 -2009 1 6 261.204 -2009 1 7 120.775 -2009 2 1 2.178 -2009 2 2 3.57 -2009 2 3 1.179 -2009 2 4 0.986 -2009 2 5 0.327 -2010 1 1 10347.251 -2010 1 2 12004.236 -2010 1 3 5642.472 -2010 1 4 1618.197 -2010 1 5 1302.627 -2010 1 6 238.45 -2010 1 7 122.087 -2010 2 1 5.814 -2010 2 2 4.635 -2010 2 3 1.862 -2010 2 4 0.648 -2010 2 5 0.533 -2011 1 1 5385.059 -2011 1 2 15383.444 -2011 1 3 4712.664 -2011 1 4 1590.184 -2011 1 5 613.327 -2011 1 6 586.097 -2011 1 7 111.493 -2011 2 1 1.103 -2011 2 2 7.038 -2011 2 3 1.94 -2011 2 4 0.75 -2011 2 5 0.417 -2012 2 1 5.144 -2012 2 2 3.529 -2012 2 3 4.942 -2012 2 4 1.214 -2012 2 5 0.326 -# Proportion mature -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -0.01 0.05 0.23 0.62 0.86 1 1 -# Stock mean weights -0.314 0.808 2.647 4.491 6.794 9.409 11.9405996601363 -0.357 0.762 2.367 4.528 6.447 8.52 10.8862810407266 -0.313 0.9 2.295 4.512 7.274 9.498 12.1943645473507 -0.314 0.836 2.437 4.169 7.027 9.599 12.5355232214736 -0.326 0.868 2.395 3.153 6.803 9.61 12.4383192278566 -0.328 0.847 2.215 4.094 5.341 8.02 9.48139084111269 -0.416 0.755 2.127 3.852 5.715 6.722 9.79355178235519 -0.449 0.845 2.028 4.001 6.131 7.945 10.5119765351441 -0.313 0.834 2.188 4.258 6.528 8.646 11.3120713710436 -0.3 0.729 2.08 3.968 6.011 8.246 10.2984139683637 -0.335 0.7 1.912 3.776 5.488 7.453 9.76008056059651 -0.304 0.901 2.206 4.156 6.174 8.333 11.3140859298567 -0.304 0.76 2.348 4.226 6.404 8.691 11.2838271911699 -0.199 0.722 2.449 4.577 6.494 8.62 10.7772439403379 -0.295 0.673 2.128 4.606 6.714 8.828 10.7641927012345 -0.432 0.743 2.001 4.146 6.53 8.667 10.917441823326 -0.291 0.905 2.411 4.423 6.579 8.474 11.6163171591063 -0.258 0.917 1.948 4.401 6.109 9.12 10.842850133828 -0.329 0.769 2.186 4.615 7.045 8.884 10.8631778907346 -0.358 0.908 1.856 4.13 6.785 8.903 11.505754886563 -0.403 0.882 1.833 3.88 6.491 8.423 10.7278341539429 -0.304 0.921 2.156 3.972 6.19 8.362 11.1156226977507 -0.314 0.8 2.132 4.164 6.324 8.43 11.5020986722472 -0.293 0.782 1.822 3.504 6.23 8.14 10.8777735068829 -0.437 0.773 1.955 3.65 6.052 8.307 11.7773112399631 -0.466 0.753 1.974 3.187 5.992 7.914 11.3685665807459 -0.364 0.931 1.81 3.585 5.273 7.921 10.85178020812 -0.382 0.69 2.165 3.791 5.931 7.89 11.0778835383296 -0.392 0.889 1.994 3.971 6.082 8.033 10.4625536739451 -0.395 0.97 2.545 4.223 6.247 8.483 10.5642210467507 -0.327 0.845 2.478 4.551 6.54 8.094 10.3802053030604 -0.305 0.788 2.188 4.471 7.167 8.436 10.3629062627868 -0.42 0.768 2.207 4.293 7.22 8.98 10.9229418097707 -0.433 0.831 2.095 4.034 6.637 8.494 10.5575595501554 -0.386 0.797 2.117 3.821 6.228 8.394 10.7199207583982 -0.372 0.633 1.622 3.495 5.387 7.563 10.1181308360127 -0.317 0.732 1.405 3.305 5.726 7.403 9.31419209877852 -0.354 0.903 1.747 3.216 4.903 7.488 10.0184222491276 -0.372 0.605 2.093 3.663 5.871 7.333 9.84925468857309 -0.456 0.916 1.712 3.857 5.372 7.991 10.2047126579779 -0.275 0.752 1.533 3.191 5.113 7.27 9.8288833118775 -0.341 0.671 1.713 3.096 5.172 7.426 9.50912128232829 -0.348 0.895 1.945 3.695 5.055 7.555 10.2324164277873 -0.217 0.771 1.972 3.61 5.59 6.848 9.26988137811634 -0.276 0.863 2.187 4.064 5.607 8.467 9.67628312340795 -0.33 0.904 1.971 3.834 5.692 7.228 10.0954477475765 -0.39 1.029 2.335 3.972 6.041 7.538 9.67204368453736 -0.293 1.028 2.453 4.199 6.049 7.692 9.63098709117269 -0.335 0.835 2.424 4.349 6.245 7.71 10.0075438727095 -0.335 0.835 2.424 4.349 6.245 7.71 10.0075438727095 -# Catch mean weights -0.314 0.808 2.647 4.491 6.794 9.409 11.9405996601363 -0.357 0.762 2.367 4.528 6.447 8.52 10.8862810407266 -0.313 0.9 2.295 4.512 7.274 9.498 12.1943645473507 -0.314 0.836 2.437 4.169 7.027 9.599 12.5355232214736 -0.326 0.868 2.395 3.153 6.803 9.61 12.4383192278566 -0.328 0.847 2.215 4.094 5.341 8.02 9.48139084111269 -0.416 0.755 2.127 3.852 5.715 6.722 9.79355178235519 -0.449 0.845 2.028 4.001 6.131 7.945 10.5119765351441 -0.313 0.834 2.188 4.258 6.528 8.646 11.3120713710436 -0.3 0.729 2.08 3.968 6.011 8.246 10.2984139683637 -0.335 0.7 1.912 3.776 5.488 7.453 9.76008056059651 -0.304 0.901 2.206 4.156 6.174 8.333 11.3140859298567 -0.304 0.76 2.348 4.226 6.404 8.691 11.2838271911699 -0.199 0.722 2.449 4.577 6.494 8.62 10.7772439403379 -0.295 0.673 2.128 4.606 6.714 8.828 10.7641927012345 -0.432 0.743 2.001 4.146 6.53 8.667 10.917441823326 -0.291 0.905 2.411 4.423 6.579 8.474 11.6163171591063 -0.258 0.917 1.948 4.401 6.109 9.12 10.842850133828 -0.329 0.769 2.186 4.615 7.045 8.884 10.8631778907346 -0.358 0.908 1.856 4.13 6.785 8.903 11.505754886563 -0.403 0.882 1.833 3.88 6.491 8.423 10.7278341539429 -0.304 0.921 2.156 3.972 6.19 8.362 11.1156226977507 -0.314 0.8 2.132 4.164 6.324 8.43 11.5020986722472 -0.293 0.782 1.822 3.504 6.23 8.14 10.8777735068829 -0.437 0.773 1.955 3.65 6.052 8.307 11.7773112399631 -0.466 0.753 1.974 3.187 5.992 7.914 11.3685665807459 -0.364 0.931 1.81 3.585 5.273 7.921 10.85178020812 -0.382 0.69 2.165 3.791 5.931 7.89 11.0778835383296 -0.392 0.889 1.994 3.971 6.082 8.033 10.4625536739451 -0.395 0.97 2.545 4.223 6.247 8.483 10.5642210467507 -0.327 0.845 2.478 4.551 6.54 8.094 10.3802053030604 -0.305 0.788 2.188 4.471 7.167 8.436 10.3629062627868 -0.42 0.768 2.207 4.293 7.22 8.98 10.9229418097707 -0.433 0.831 2.095 4.034 6.637 8.494 10.5575595501554 -0.386 0.797 2.117 3.821 6.228 8.394 10.7199207583982 -0.372 0.633 1.622 3.495 5.387 7.563 10.1181308360127 -0.317 0.732 1.405 3.305 5.726 7.403 9.31419209877852 -0.354 0.903 1.747 3.216 4.903 7.488 10.0184222491276 -0.372 0.605 2.093 3.663 5.871 7.333 9.84925468857309 -0.456 0.916 1.712 3.857 5.372 7.991 10.2047126579779 -0.275 0.752 1.533 3.191 5.113 7.27 9.8288833118775 -0.341 0.671 1.713 3.096 5.172 7.426 9.50912128232829 -0.348 0.895 1.945 3.695 5.055 7.555 10.2324164277873 -0.217 0.771 1.972 3.61 5.59 6.848 9.26988137811634 -0.276 0.863 2.187 4.064 5.607 8.467 9.67628312340795 -0.33 0.904 1.971 3.834 5.692 7.228 10.0954477475765 -0.39 1.029 2.335 3.972 6.041 7.538 9.67204368453736 -0.293 1.028 2.453 4.199 6.049 7.692 9.63098709117269 -0.335 0.835 2.424 4.349 6.245 7.71 10.0075438727095 -# Natural Mortality -1.107 0.789 0.233 0.202 0.2 0.2 0.2 -1.147 0.804 0.241 0.202 0.2 0.2 0.2 -1.184 0.819 0.248 0.202 0.2 0.2 0.2 -1.217 0.831 0.254 0.202 0.2 0.2 0.2 -1.242 0.839 0.261 0.202 0.2 0.2 0.2 -1.26 0.843 0.266 0.202 0.2 0.2 0.2 -1.273 0.844 0.271 0.202 0.2 0.2 0.2 -1.282 0.842 0.275 0.202 0.2 0.2 0.2 -1.287 0.838 0.277 0.201 0.2 0.2 0.2 -1.29 0.832 0.279 0.201 0.2 0.2 0.2 -1.291 0.826 0.28 0.201 0.2 0.2 0.2 -1.292 0.819 0.28 0.2 0.2 0.2 0.2 -1.293 0.811 0.28 0.2 0.2 0.2 0.2 -1.296 0.803 0.28 0.2 0.2 0.2 0.2 -1.301 0.795 0.282 0.2 0.2 0.2 0.2 -1.306 0.787 0.284 0.2 0.2 0.2 0.2 -1.311 0.779 0.286 0.2 0.2 0.2 0.2 -1.314 0.771 0.29 0.2 0.2 0.2 0.2 -1.314 0.762 0.293 0.2 0.2 0.2 0.2 -1.31 0.754 0.296 0.2 0.2 0.2 0.2 -1.301 0.746 0.298 0.201 0.2 0.2 0.2 -1.287 0.738 0.3 0.201 0.2 0.2 0.2 -1.269 0.73 0.3 0.201 0.2 0.2 0.2 -1.248 0.724 0.3 0.201 0.2 0.2 0.2 -1.226 0.719 0.299 0.202 0.2 0.2 0.2 -1.204 0.716 0.297 0.202 0.2 0.2 0.2 -1.183 0.715 0.296 0.202 0.2 0.2 0.2 -1.164 0.715 0.295 0.202 0.2 0.2 0.2 -1.149 0.716 0.295 0.202 0.2 0.2 0.2 -1.135 0.717 0.297 0.202 0.2 0.2 0.2 -1.124 0.716 0.302 0.203 0.2 0.2 0.2 -1.113 0.714 0.309 0.204 0.2 0.2 0.2 -1.102 0.711 0.319 0.205 0.2 0.2 0.2 -1.09 0.705 0.331 0.207 0.2 0.2 0.2 -1.077 0.698 0.346 0.209 0.2 0.2 0.2 -1.064 0.691 0.363 0.211 0.2 0.2 0.2 -1.051 0.683 0.381 0.214 0.2 0.2 0.2 -1.04 0.678 0.4 0.217 0.2 0.2 0.2 -1.032 0.676 0.417 0.22 0.2 0.2 0.2 -1.028 0.676 0.434 0.223 0.2 0.2 0.2 -1.027 0.679 0.449 0.225 0.2 0.2 0.2 -1.029 0.684 0.462 0.227 0.2 0.2 0.2 -1.032 0.688 0.472 0.229 0.2 0.2 0.2 -1.036 0.692 0.48 0.23 0.2 0.2 0.2 -1.038 0.695 0.484 0.231 0.2 0.2 0.2 -1.039 0.696 0.487 0.232 0.2 0.2 0.2 -1.039 0.697 0.489 0.232 0.2 0.2 0.2 -1.038 0.698 0.49 0.233 0.2 0.2 0.2 -1.038 0.698 0.49 0.233 0.2 0.2 0.2 -1.038 0.698 0.49 0.233 0.2 0.2 0.2 -# Landing Fraction L/(L+D) -0.165280326083474 0.680434179548821 0.9953427237704 1 1 1 1 -0.38334064757615 0.783897655714657 0.994278178874826 1 1 1 1 -0.138437090702996 0.886671317005814 0.994929450813987 1 1 1 1 -0.143333920219558 0.737630261052888 0.997625114850852 1 1 1 1 -0.176317318046743 0.740368885395797 0.995116180642145 1 1 1 1 -0.15712009915435 0.784182926750446 0.995379598369416 1 1 1 1 -0.539518672575996 0.686997849640506 0.99642381760886 1 1 1 1 -0.505882707243182 0.795862557807581 0.991815285951053 1 1 1 1 -0.14693906897815 0.805910240000105 0.997254655664053 1 1 1 1 -0.0906461018941138 0.75885770754186 0.996314636982592 1 1 1 1 -0.231189165143319 0.645039057988298 0.995517158325475 1 1 1 1 -0.110887221644558 0.786877985529962 0.993790811684017 1 1 1 1 -0.195514352611696 0.74312120824015 1 1 1 1 1 -0.0244973694594543 0.545274436853645 0.989742134057934 1 1 1 1 -0.13716624300636 0.514746201578197 0.982132046492513 1 1 1 1 -0.505857290700301 0.691281643561739 1 1 1 1 1 -0.0562399079293408 0.945342885268376 1 1 1 1 1 -0.0499920532829699 0.855042572296307 1 1 1 1 1 -0.114469240401302 0.84541896340707 0.997711294522854 1 1 1 1 -0.266838063244564 0.885449101503286 0.99836852309909 1 1 1 1 -0.316866033309542 0.920232543547379 0.998848489948553 1 1 1 1 -0.10692918085824 0.840626737452928 0.999843836213759 1 1 1 1 -0.121989942703419 0.762443326790884 0.993960407997016 1 1 1 1 -0.150510355194986 0.848669717968111 0.991149680013548 1 1 1 1 -0.501839578891327 0.673478799293755 1 1 1 1 1 -0.581462400084718 0.763083039148375 0.99507213027926 1 1 1 1 -0.110917715538817 0.806011027449178 0.973645724229616 1 1 1 1 -0.255551619571031 0.527143330955264 0.993430143574964 1 1 1 1 -0.218691163050993 0.734121584031797 0.973646938187317 1 1 1 1 -0.209625555070785 0.761067417434762 0.99977452314178 1 1 1 1 -0.122980731316259 0.654954822889657 0.998972084925536 1 1 1 1 -0.0457202891802297 0.597732388427788 0.992417328633993 1 1 1 1 -0.257057255392181 0.59056919769474 0.997663423897175 1 1 1 1 -0.254680497412112 0.611567128676558 0.967919837188709 1 1 1 1 -0.213985401810239 0.67757546248912 0.997814502414001 1 1 1 1 -0.0744406783842078 0.472806428995095 0.918016219427518 1 1 1 1 -0.158469802371851 0.629095453648286 0.792502479176894 1 1 1 1 -0.17923861452633 0.803011564085338 1 1 1 1 1 -0.283856594336725 0.380292399673191 0.889179532023756 1 1 1 1 -0.349716217607331 0.750066453082789 0.870494501444942 1 1 1 1 -0.0448863830192169 0.490793582509491 0.758446228412097 0.974861326239414 0.975026606720097 0.972525299863798 0.987248458567654 -0.118101486103913 0.466934990007919 0.810376047555902 1 1 1 1 -0.117399685899155 0.591352060851263 0.963706648392997 0.988667834204735 0.990910040966474 0.992877373680514 1 -0.0666571316469171 0.469882522437366 0.846862502811139 0.950347156854205 0.975040252643619 0.985023146638847 0.993711911357341 -0.0782223780072455 0.253463291803349 0.618670413331618 0.805061828777884 0.863419456857254 0.823465503967997 0.970195682541173 -0.0622004886365492 0.270592654639944 0.36481540118542 0.877242007294514 0.970953593484105 0.928576105460736 0.971845656719255 -0.0672455512833626 0.385411673990936 0.658243140255705 0.821180579376862 0.942261808441413 0.937079830324191 0.916207824466984 -0.0873587583793995 0.431101821057167 0.788689071031278 0.968076198386229 0.98334442630162 0.999089955965611 0.999787037112879 -0.184658515347743 0.339187440731737 0.812746887959761 0.938219099173429 0.981324807158335 0.988133363589986 0.975406527764075 -# Discard mean weights -0.27 0.393 0.505 0 0 0 0 -0.27 0.393 0.508 0 0 0 0 -0.269 0.392 0.506 0 0 0 0 -0.269 0.392 0.509 0 0 0 0 -0.269 0.392 0.506 0 0 0 0 -0.269 0.392 0.505 0 0 0 0 -0.268 0.392 0.504 0 0 0 0 -0.268 0.392 0.505 0 0 0 0 -0.268 0.392 0.508 0 0 0 0 -0.268 0.392 0.507 0 0 0 0 -0.268 0.392 0.507 0 0 0 0 -0.268 0.392 0.508 0 0 0 0 -0.227 0.359 0 0 0 0 0 -0.189 0.354 0.412 0 0 0 0 -0.255 0.382 0.376 0 0 0 0 -0.287 0.309 0 0 0 0 0 -0.276 0.361 0 0 0 0 0 -0.242 0.411 0 0 0 0 0 -0.279 0.396 0.517 0 0 0 0 -0.274 0.489 0.593 0 0 0 0 -0.297 0.458 0.534 0 0 0 0 -0.27 0.469 0.509 0 0 0 0 -0.276 0.376 0.652 0 0 0 0 -0.242 0.365 0.437 0 0 0 0 -0.237 0.353 0 0 0 0 0 -0.3 0.339 0.463 0 0 0 0 -0.326 0.431 0.484 0 0 0 0 -0.26 0.371 0.526 0 0 0 0 -0.315 0.366 0.395 0 0 0 0 -0.314 0.408 2.309 0 0 0 0 -0.274 0.429 0.705 0 0 0 0 -0.287 0.362 0.483 0 0 0 0 -0.316 0.404 0.553 0 0 0 0 -0.342 0.38 0.515 0 0 0 0 -0.313 0.453 0.616 0 0 0 0 -0.358 0.375 0.481 0 0 0 0 -0.257 0.389 0.422 0 0 0 0 -0.298 0.422 0 0 0 0 0 -0.232 0.361 0.406 0 0 0 0 -0.294 0.42 0.34 0 0 0 0 -0.259 0.344 0.54 0.675 2.272 2.849 3.39131433023918 -0.293 0.384 0.427 0 0 0 0 -0.284 0.468 1.084 4.099 4.501 8.197 0 -0.179 0.426 0.751 1.3 2.862 4.663 8.82140384349031 -0.231 0.762 1.881 4.136 6.141 9.724 6.2211650917372 -0.299 0.683 1.66 2.459 2.848 8.051 0.820518532598365 -0.366 0.84 1.689 3.339 6.769 7.951 7.90527279652246 -0.244 0.831 1.484 3.169 5.414 5.291 5.0165973936619 -0.248 0.595 2.005 4.119 5.709 6.781 8.69478728709426 -# Landing mean weights -0.538 1.004 2.657 4.491 6.794 9.409 11.9405996601363 -0.496 0.863 2.377 4.528 6.447 8.52 10.8862810407266 -0.581 0.965 2.304 4.512 7.274 9.498 12.1943645473507 -0.579 0.994 2.442 4.169 7.027 9.599 12.5355232214736 -0.59 1.035 2.404 3.153 6.803 9.61 12.4383192278566 -0.64 0.973 2.223 4.094 5.341 8.02 9.48139084111269 -0.544 0.921 2.133 3.852 5.715 6.722 9.79355178235519 -0.626 0.961 2.041 4.001 6.131 7.945 10.5119765351441 -0.579 0.941 2.193 4.258 6.528 8.646 11.3120713710436 -0.616 0.836 2.086 3.968 6.011 8.246 10.2984139683637 -0.559 0.869 1.919 3.776 5.488 7.453 9.76008056059651 -0.594 1.039 2.217 4.156 6.174 8.333 11.3140859298567 -0.619 0.899 2.348 4.226 6.404 8.691 11.2838271911699 -0.568 1.029 2.47 4.577 6.494 8.62 10.7772439403379 -0.541 0.948 2.16 4.606 6.714 8.828 10.7641927012345 -0.573 0.937 2.001 4.146 6.53 8.667 10.917441823326 -0.55 0.936 2.411 4.423 6.579 8.474 11.6163171591063 -0.55 1.003 1.948 4.401 6.109 9.12 10.842850133828 -0.723 0.837 2.19 4.615 7.045 8.884 10.8631778907346 -0.589 0.962 1.858 4.13 6.785 8.903 11.505754886563 -0.632 0.919 1.835 3.88 6.491 8.423 10.7278341539429 -0.594 1.007 2.156 3.972 6.19 8.362 11.1156226977507 -0.59 0.932 2.141 4.164 6.324 8.43 11.5020986722472 -0.583 0.856 1.834 3.504 6.23 8.14 10.8777735068829 -0.635 0.976 1.955 3.65 6.052 8.307 11.7773112399631 -0.585 0.881 1.982 3.187 5.992 7.914 11.3685665807459 -0.673 1.052 1.846 3.585 5.273 7.921 10.85178020812 -0.737 0.976 2.176 3.791 5.931 7.89 11.0778835383296 -0.67 1.078 2.038 3.971 6.082 8.033 10.4625536739451 -0.699 1.146 2.546 4.223 6.247 8.483 10.5642210467507 -0.699 1.065 2.479 4.551 6.54 8.094 10.3802053030604 -0.677 1.075 2.201 4.471 7.167 8.436 10.3629062627868 -0.721 1.021 2.21 4.293 7.22 8.98 10.9229418097707 -0.699 1.117 2.147 4.034 6.637 8.494 10.5575595501554 -0.656 0.96 2.12 3.821 6.228 8.394 10.7199207583982 -0.542 0.922 1.724 3.495 5.387 7.563 10.1181308360127 -0.64 0.935 1.663 3.305 5.726 7.403 9.31419209877852 -0.611 1.021 1.747 3.216 4.903 7.488 10.0184222491276 -0.725 1.004 2.303 3.663 5.871 7.333 9.84925468857309 -0.758 1.082 1.916 3.857 5.372 7.991 10.2047126579779 -0.608 1.174 1.849 3.256 5.186 7.395 9.90176707093976 -0.7 0.997 2.014 3.096 5.172 7.426 9.50912128232829 -0.828 1.19 1.978 3.69 5.06 7.551 10.2324164277873 -0.75 1.161 2.192 3.731 5.66 6.882 9.25773626038781 -0.805 1.161 2.376 4.046 5.523 8.197 9.65900228902793 -0.801 1.503 2.511 4.026 5.777 7.164 10.3825467933853 -0.717 1.33 2.671 4.109 5.996 7.511 9.3699895590975 -0.803 1.287 2.712 4.233 6.06 7.694 9.63185365354215 -0.722 1.301 2.52 4.365 6.256 7.721 10.0531801368696 -# Proportion of F before spawning -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -# Proportion of M before spawning -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 -0 0 0 0 0 0 0 - diff --git a/admb_examples/sam/sam.pin b/admb_examples/sam/sam.pin deleted file mode 100644 index 49f7e4abd..000000000 --- a/admb_examples/sam/sam.pin +++ /dev/null @@ -1,25 +0,0 @@ -# logFpar = - -11 -10 -10 -9 -9 -# logQpow = - -# logSdLogFsta = - -0.693147 -# logSdLogN = - 0.356675 -0.356675 -# logSdLogObs = - -0.356675 -0.356675 -0.356675 -0.356675 -0.356675 -# rec_loga = -1 -# rec_logb = --12 -# rho = -0.5 -# logScale = -# logScaleSSB = -0 -# logPowSSB = -0 -# logSdSSB = -0 -# U = - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/admb_examples/sam/sam.tpl b/admb_examples/sam/sam.tpl deleted file mode 100644 index 60d0d22d2..000000000 --- a/admb_examples/sam/sam.tpl +++ /dev/null @@ -1,967 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) 2008,2009,2010,2011,2012, Anders Nielsen -// and Casper Berg . All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the assessment tool SAM nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL ANDERS NIELSEN OR CASPER BERG BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -// DAMAGE. -// -------------------------------------------------------------------------- - -//---------------------------------------------------------------- -//SAM State Space Assessment Model -//-------------------------------- -//$Rev$ -//$LastChangedDate$ -//---------------------------------------------------------------- - -GLOBALS_SECTION - #include - time_t StartTime; //Time variables, for use in timing loop - #include - #include "nLogNormal.h" - ofstream clogf("program.log"); - ofstream dclone("dataclone.log"); - ofstream cclone("confclone.log"); - #define CLONE(object) dclone<>adStr; \ - if(adStr==name){ \ - in>>object; \ - } \ - } \ - in.close(); \ - } - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - bool fexists(const char *filename) - { - ifstream ifile(filename); - return ifile; - } - - dmatrix getSubMat(const dmatrix& X, const int i1, const int i2){ - dmatrix ret(i1,i2,X.colmin(),X.colmax()); - for(int i=i1; i<=i2; ++i){ - ret(i)=X(i); - } - return ret; - } - - dvector getSubVec(const dvector& X, const int i1, const int i2){ - dvector ret(i1,i2); - for(int i=i1; i<=i2; ++i){ - ret(i)=X(i); - } - return ret; - } - - dvar_vector getSubVec(const dvar_vector& X, const int i1, const int i2){ - dvar_vector ret(i1,i2); - for(int i=i1; i<=i2; ++i){ - ret(i)=X(i); - } - return ret; - } - - df1b2vector getSubVec(const df1b2vector& X, const int i1, const int i2){ - df1b2vector ret(i1,i2); - for(int i=i1; i<=i2; ++i){ - ret(i)=X(i); - } - return ret; - } - -DATA_SECTION - !! int datatest=0; - !! if (option_match(ad_comm::argc,ad_comm::argv,"-datatestonly")>-1){ - !! datatest=1; - !! } - - !! int dataconftest=0; - !! if (option_match(ad_comm::argc,ad_comm::argv,"-dataconftestonly")>-1){ - !! dataconftest=1; - !! } - - int genpin; - !! genpin=0; - !! if (option_match(ad_comm::argc,ad_comm::argv,"-genpin")>-1){ - !! genpin=1; - !! } - - !! cout<<"DATASECTION " << endl; cout.flush(); - !! cout << "sam.dat..."; - !! time(&StartTime); - init_int noFleets - !! CLONE(noFleets) - !! TRACE(noFleets); - init_ivector fleetTypes(1,noFleets) - !! CLONE(fleetTypes) - !! TRACE(fleetTypes); - int ssbPhase - int ssbPowPhase - !! ssbPhase=-1; - !! ssbPowPhase=-1; - !! for(int i=1; i<=noFleets; ++i){if(fleetTypes(i)==3){ssbPhase=1;}} - !! for(int i=1; i<=noFleets; ++i){if(fleetTypes(i)==4){ssbPhase=1;ssbPowPhase=1;}} - !! TRACE(ssbPhase); - !! TRACE(ssbPowPhase); - init_vector fleetTimes(1,noFleets) - !! CLONE(fleetTimes) - !! TRACE(fleetTimes); - init_int noYears - !! CLONE(noYears) - !! TRACE(noYears); - init_vector years(1,noYears) - !! CLONE(years) - !! TRACE(years); - vector times(0,noYears) - !! times(0)=years(1)-1; - !! times(1,noYears)=years; - !! TRACE(times); - init_int noObs - !! CLONE(noObs) - !! TRACE(noObs); - init_ivector idx1(1,noYears) - !! CLONE(idx1) - !! TRACE(idx1); - init_ivector idx2(1,noYears) - !! CLONE(idx2) - !! TRACE(idx2); - init_matrix data(1,noObs,1,4) - !! CLONE(data) - !! TRACE(data); - vector logObs(1,noObs) - !! logObs=log(column(data,4)); - !! TRACE(logObs); - int minAgeObs - !! minAgeObs=(int)min(column(data,3)); - !! TRACE(minAgeObs); - int maxAgeObs - !! maxAgeObs=(int)max(column(data,3)); - !! TRACE(maxAgeObs); - - - int minYearResFleet; - !! for(minYearResFleet=1; minYearResFleet<=noYears; ++minYearResFleet){ - !! dmatrix subData=getSubMat(data,idx1(minYearResFleet),idx2(minYearResFleet)); - !! if(min(column(subData,2))<1.2)break; - !! } - - int maxYearResFleet; - !! for(maxYearResFleet=noYears; maxYearResFleet>=1; --maxYearResFleet){ - !! dmatrix subData=getSubMat(data,idx1(maxYearResFleet),idx2(maxYearResFleet)); - !! if(min(column(subData,2))<1.2)break; - !! } - - init_matrix propMature(1,noYears,minAgeObs,maxAgeObs) - !! CLONE(propMature) - !! TRACE(propMature); - init_matrix stockMeanWeight(1,noYears,minAgeObs,maxAgeObs) - !! CLONE(stockMeanWeight) - !! TRACE(stockMeanWeight); - init_matrix catchMeanWeight(minYearResFleet,maxYearResFleet,minAgeObs,maxAgeObs) - !! CLONE(catchMeanWeight) - !! TRACE(catchMeanWeight); - init_matrix natMor(1,noYears,minAgeObs,maxAgeObs) - !! CLONE(natMor) - !! TRACE(natMor); - init_matrix landFrac(minYearResFleet,maxYearResFleet,minAgeObs,maxAgeObs) - !! CLONE(landFrac) - !! TRACE(landFrac); - init_matrix catchMeanWeightD(minYearResFleet,maxYearResFleet,minAgeObs,maxAgeObs) - !! CLONE(catchMeanWeightD) - !! TRACE(catchMeanWeightD); - init_matrix catchMeanWeightL(minYearResFleet,maxYearResFleet,minAgeObs,maxAgeObs) - !! CLONE(catchMeanWeightL) - !! TRACE(catchMeanWeightL); - init_matrix Fprop(1,noYears,minAgeObs,maxAgeObs) - !! CLONE(Fprop) - !! TRACE(Fprop); - init_matrix Mprop(1,noYears,minAgeObs,maxAgeObs) - !! CLONE(Mprop) - !! TRACE(Mprop); - - !! if(datatest==1){ad_exit(1);} - - !! ad_comm::change_datafile_name("model.cfg"); - !! cout << "model.cfg..."; - init_int minAge - !! CONFCLONE(minAge) - !! TRACE(minAge); - init_int maxAge - !! CONFCLONE(maxAge) - !! TRACE(maxAge); - init_int maxAgePlusGroup; - !! CONFCLONE(maxAgePlusGroup) - !! TRACE(maxAgePlusGroup); - !! if((minAge>minAgeObs)||(maxAge0) CONFCLONE(keyScaledYears) - !! //TRACE(keyScaledYears); - init_imatrix keyParScaledYA(1,noScaledYears,minAge,maxAge) - !! if(noScaledYears>0) CONFCLONE(keyParScaledYA) - !! //TRACE(keyParScaledYA); - int noScaledPar - !! if(noScaledYears>1){noScaledPar=max(keyParScaledYA);}else{noScaledPar=0;} - !! TRACE(noScaledPar); - - int stateDim - !! stateDim=maxAge-minAge+1+noLogFsta; - !! TRACE(stateDim); - init_ivector fbarRange(1,2) - !! CONFCLONE(fbarRange) - !! TRACE(fbarRange); - - !! if(dataconftest==1){ad_exit(1);} - - - int pinini; - !! pinini=0; - !! if(fexists("sam.pin")){ - !! pinini=1; - !! } - - !! if(pinini==0){ - !! if(fexists("model.init")){ - !! ad_comm::change_datafile_name("model.init"); - !! cout << "model.init..."; - !! } - init_number varLogFstaInit; - init_number varLogNInit; - init_number varLogObsInit; - init_number logFparInit; - init_number rec_logaInit; - init_number rec_logbInit; - !! } - - ivector retro(1,noFleets); - - int reducedRun; - !! if(fexists("reduced.cfg")){ - !! ad_comm::change_datafile_name("reduced.cfg"); - init_ivector tempretro(1,noFleets) - !! retro=tempretro; - !! if(sum(square(retro))>0){reducedRun=1;}else{reducedRun=0;} - !! }else{ - !! retro.initialize(); - !! reducedRun=0; - !! } - - ivector lastYearData(1,noFleets); - !! lastYearData=0; - !! for(int i=1; i<=noObs; ++i){ - !! for(int f=1; f<=noFleets; ++f){ - !! if((lastYearData(f)<(int)data(i,1))&&((int)data(i,2)==f))lastYearData(f)=(int)data(i,1); - !! } - !! } - !! for(int f=1; f<=noFleets; ++f){ - !! if(retro(f)>=1)lastYearData(f)-=retro(f); - !! } - !! noYears=noYears-((int)years(noYears)-(int)max(lastYearData)); - matrix residuals(1,noObs,1,6) - - -PARAMETER_SECTION - !! cout<<"PARAMETERSECTION"; cout.flush(); - init_vector logFpar(1,noLogFpar); - init_vector logQpow(1,noQpow); - init_bounded_vector logSdLogFsta(1,noVarF,-3,3); - init_bounded_vector logSdLogN(1,noVarLogN,-3,3); - init_bounded_vector logSdLogObs(1,noVarObs,-3,3); - !! int rec_phase=1; - !! if(stockRecruitmentModelCode==0){rec_phase=-1;} - init_number rec_loga(rec_phase); - init_number rec_logb(rec_phase); - !! int cor_phase=1; - !! if(corFlag==0){cor_phase=-1;} - init_bounded_number rho(0.01,0.99,cor_phase); - init_vector logScale(1,noScaledPar); - number logScaleSSB; - !! logScaleSSB=0.0; - number logPowSSB; - !! logPowSSB=0.0; - number logSdSSB; - !! logSdSSB=0.0; - vector scaledLogObs(1,noObs); - matrix X(1,noYears,1,stateDim); - - random_effects_vector U(1,stateDim*noYears); - - objective_function_value jnll; - - // sdreport_vector ssb(1,noYears); - // sdreport_vector logssb(1,noYears); - // sdreport_vector logCatch(minYearResFleet,maxYearResFleet); - // sdreport_vector fbar(1,noYears); - // sdreport_vector logfbar(1,noYears); - // sdreport_vector tsb(1,noYears); - // sdreport_vector logtsb(1,noYears); - !! cout<<" --- Done."<.01){aveC(a,f)=aveC(a,f)/noC(a,f);} - } - } - cout<.01){ - setN(a)=aveC(a,1)*setZ(a)/(setF(a)*(1.0-exp(-setZ(a)))); - }else{ - setN(a)=mean(column(aveC,1))*setZ(a)/(setF(a)*(1.0-exp(-setZ(a)))); - } - } - cout<0.1){ - if(fabs(logFpar(keyLogFpar(i,j)))<0.01){ - logFpar(keyLogFpar(i,j))=log(aveC(j,i))+setZ(j)*fleetTimes(i)-log(setN(j)); - } - } - } - } - cout<0){ - logQpow=0.0; - } - - if(reducedRun==1){ - cout<0)&&(fleetTypes(i)==0)){ - for(int y=1; y<=noScaledYears; ++y){ - if(keyScaledYears(y)>lastYearData(i)){ - for(int a=minAge; a<=maxAge; ++a){ - logScale(keyParScaledYA(y,a))=0; - } - } - } - } - } - } - - ofstream chkpin("sam.pinchk"); - PINCHKTRACE(logFpar); - PINCHKTRACE(logQpow); - PINCHKTRACE(logSdLogFsta); - PINCHKTRACE(logSdLogN); - PINCHKTRACE(logSdLogObs); - PINCHKTRACE(rec_loga); - PINCHKTRACE(rec_logb); - PINCHKTRACE(rho); - PINCHKTRACE(logScale); - PINCHKTRACE(logScaleSSB); - PINCHKTRACE(logPowSSB); - PINCHKTRACE(logSdSSB); - PINCHKTRACE(U); - cout<<" ---- Done."<1800){ // Terminate after 30 minutes - cerr<0)&&(fleetTypes(i)==0)){ - for(int y=1; y<=noScaledYears; ++y){ - if(keyScaledYears(y)>lastYearData(i)){ - for(int a=minAge; a<=maxAge; ++a){ - jnll+=square(logScale(keyParScaledYA(y,a))-0.0); - } - } - } - } - } - } - - // First the scale parameter is applied where requested; - scaledLogObs=logObs; - if(noScaledYears>=1){ - int y, a; - for(int yi=1; yi<=noScaledYears; ++yi){ - y=keyScaledYears(yi); - for(int i=1; i<=noObs; ++i){ - a=(int)data(i,3); - if((data(i,1)==y)&&(fleetTypes((int)data(i,2))<2)&&(keyParScaledYA(yi,a)>0)){ - scaledLogObs(i)+=logScale(keyParScaledYA(yi,a)); - } - } - } - } - - for(int y=1; y<=noYears-1; ++y){ - step(y,U((y-1)*stateDim+1,y*stateDim),U(y*stateDim+1,(y+1)*stateDim),logFpar,rec_loga,rec_logb,logSdLogN,logSdLogFsta,rho); - } - - for(int y=1; y<=noYears; ++y){ - int idxlow=idx1(y); - int idxhigh=idx2(y); - dmatrix subData=getSubMat(data,idxlow,idxhigh); - dvar_vector subObs=getSubVec(scaledLogObs,idxlow,idxhigh); - if(noQpow>0){ - obs(U((y-1)*stateDim+1,y*stateDim),subData,subObs,logFpar,logSdLogObs,logQpow,logScaleSSB,logPowSSB,logSdSSB); - }else{ - dvar_vector fakeQpow(1,1); - obs(U((y-1)*stateDim+1,y*stateDim),subData,subObs,logFpar,logSdLogObs,fakeQpow,logScaleSSB,logPowSSB,logSdSSB); - } - } - - if(sd_phase()){ - // for(int y=1; y<=noYears; ++y){ - // for(int i=1; i<=stateDim; ++i){ - // X(y,i)=U((y-1)*stateDim+i); - // } - // ssb(y)=SSB(X(y),propMature(y),stockMeanWeight(y),Fprop(y),Mprop(y),natMor(y)); - // logssb(y)=log(ssb(y)); - // tsb(y)=TSB(X(y),stockMeanWeight(y)); - // logtsb(y)=log(tsb(y)); - // fbar(y)=FBAR(X(y),fbarRange(1),fbarRange(2)); - // logfbar(y)=log(fbar(y)); - // int idxlow=idx1(y); - // int idxhigh=idx2(y); - // dmatrix subData=getSubMat(data,idxlow,idxhigh); - // dvar_vector subObs=getSubVec(scaledLogObs,idxlow,idxhigh); - // if((y>=minYearResFleet)&&(y<=maxYearResFleet)){ - // logCatch(y)=log(CATCH(X(y),natMor(y),catchMeanWeight(y))); - // } - // } - - } - -SEPARABLE_FUNCTION void step(const int y, const dvar_vector& u1,const dvar_vector& u2, const dvar_vector& logFpar, const dvariable& rec_loga, const dvariable& rec_logb, const dvar_vector& logSdLogN, const dvar_vector& logSdLogFsta, const dvariable& rho) - dvar_vector x1(1,stateDim); - int n1=u1.indexmin(); - int n2=u1.indexmax(); - for(int i=n1; i<=n2; ++i){ - x1(i-n1+1)=u1(i); - } - - dvar_vector x2(1,stateDim); - n1=u2.indexmin(); - n2=u2.indexmax(); - for(int i=n1; i<=n2; ++i){ - x2(i-n1+1)=u2(i); - } - - dvar_vector Ftot(minAge,maxAge); - Ftot.initialize(); - for(int f=1; f<=noFleets; ++f){ - if(fleetTypes(f)<2){ // means that it is not a survey - for(int a=minAge; a<=maxAge; ++a){ - if(keyLogFsta(f,a)>0){ - Ftot(a)+=exp(x1(keyLogFsta(f,a)+maxAge-minAge+1)); - } - if(keyLogFpar(f,a)>0){ - Ftot(a)+=exp(logFpar(keyLogFpar(f,a))); - } - } - } - } - - dvar_vector pred(1,stateDim); - pred=x1; - - dvariable ssb=0.0; - for(int a=minAge; a<=maxAge; ++a){ - ssb+=exp(x1(a-minAge+1))*exp(-Ftot(a)*Fprop(y,a)-natMor(y,a)*Mprop(y,a))*propMature(y,a)*stockMeanWeight(y,a); - } - - if(stockRecruitmentModelCode==0){ - // do nothing - }else{ - if(stockRecruitmentModelCode==1){//ricker - pred(minAge-minAge+1)=rec_loga+log(ssb)-exp(rec_logb)*ssb; - }else{ - if(stockRecruitmentModelCode==2){//BH - pred(minAge-minAge+1)=rec_loga+log(ssb)-log(1+exp(rec_logb)*ssb); - }else{ - cerr<<"SR model code not recognized"<0){ - idx+=maxAge-minAge+1; - var(idx)=exp(2.0*logSdLogFsta(keyVarF(f,a))); - } - } - } - - if(corFlag==0){ // not correlated - for(int i=1; i<=stateDim; ++i){ - jnll+=0.5*(log(2.0*M_PI*var(i))+square(x2(i)-pred(i))/var(i)); - } - }else{ // correlated - for(int i=1; i<=(maxAge-minAge+1); ++i){ - jnll+=0.5*(log(2.0*M_PI*var(i))+square(x2(i)-pred(i))/var(i)); - } - - int Fdim=stateDim-(maxAge-minAge+1); - dvar_matrix fvar(maxAge-minAge+2,stateDim,maxAge-minAge+2,stateDim); - dvar_matrix fcor(maxAge-minAge+2,stateDim,maxAge-minAge+2,stateDim); - dvar_vector fsd(maxAge-minAge+2,stateDim); - - fvar.initialize(); - if(corFlag==1){ // symmetrical correlation - for(int i=(maxAge-minAge+2); i<=stateDim; ++i){ - for(int j=(maxAge-minAge+2); j<=stateDim; ++j){ - if(i!=j){fcor(i,j)=rho;}else{fcor(i,j)=1.0;} - } - } - } else { // AR1 correlation - for(int i=(maxAge-minAge+2); i<=stateDim; ++i){ - for(int j=(maxAge-minAge+2); j<=stateDim; ++j){ - if(i!=j){fcor(i,j)=pow(rho,abs(i-j));}else{fcor(i,j)=1.0;} - } - } - } - for(int i=(maxAge-minAge+2); i<=stateDim; ++i){ - //fvar(i,i)=var(i); - fsd(i)=sqrt(var(i)); - //fcor(i,i)=1.0; - } - fvar=elem_prod(outer_prod(fsd,fsd),fcor); - //cout<0){ - Ftot(a)+=exp(x(keyLogFsta(f,a)+maxAge-minAge+1)); - } - if(keyLogFpar(f,a)>0){ - Ftot(a)+=exp(logFpar(keyLogFpar(f,a))); - } - } - } - } - - dvar_vector Z(Ftot.indexmin(),Ftot.indexmax()); - Z=Ftot; // missing M here - int isMadded=0; - int f; - int ft; - int a; - int y, yIdx; - - for(int i=n1; i<=n2; ++i){ - f=(int)data(i,2); - ft=fleetTypes(f); - a=(int)data(i,3); - y=(int)data(i,1); - if(isMadded==0){ - for(int aa=minAge; aa<=maxAge; ++aa){Z(aa)+=natMor((int)(y-years(1)+1),aa);} // added M here - isMadded=1; - } - if(ft==0){// residual fleet - pred(i)=x(a-minAge+1)-log(Z(a))+log(1-exp(-Z(a))); - if(keyLogFsta(f,a)>0){ - pred(i)+=x(keyLogFsta(f,a)+maxAge-minAge+1); - } - if(keyLogFpar(f,a)>0){ - pred(i)+=logFpar(keyLogFpar(f,a)); - } - }else{ - if(ft==1){// comm fleet - cerr<<"Not implemented yet!!!"<0){ - pred(i)*=exp(logQpow(keyQpow(f,a))); - } - if(keyLogFsta(f,a)>0){ - pred(i)+=x(keyLogFsta(f,a)+maxAge-minAge+1); - } - if(keyLogFpar(f,a)>0){ - pred(i)+=logFpar(keyLogFpar(f,a)); - } - }else{ - if(ft==3){// SSB survey - dvariable ssb=0.0; - for(int a=minAge; a<=maxAge; ++a){ - yIdx=(int)(y-years(1)+1); - ssb+=exp(x(a-minAge+1))*exp(-Ftot(a)*Fprop(yIdx,a)-natMor(yIdx,a)*Mprop(yIdx,a))*propMature(yIdx,a)*stockMeanWeight(yIdx,a); - } - pred(i)=log(ssb)+logScaleSSB; - }else{ - if(ft==4){ - dvariable ssb=0.0; - for(int a=minAge; a<=maxAge; ++a){ - yIdx=(int)(y-years(1)+1); - ssb+=exp(x(a-minAge+1))*exp(-Ftot(a)*Fprop(yIdx,a)-natMor(yIdx,a)*Mprop(yIdx,a))*propMature(yIdx,a)*stockMeanWeight(yIdx,a); - } - pred(i)=exp(logPowSSB)*log(ssb)+logScaleSSB; - } - } - } - } - } - } - - dvariable var=0.0; - for(int i=n1; i<=n2; ++i){ - f=(int)data(i,2); - a=(int)data(i,3); - if((retro(f)==-1)||((int)data(i,1)>lastYearData(f))){ - residuals(i,1)=data(i,1); - residuals(i,2)=f; - residuals(i,3)=a; - residuals(i,4)=0; - residuals(i,5)=0; - residuals(i,6)=0; - }else{ - if((fleetTypes(f)==3)||(fleetTypes(f)==4)){ - var=exp(2.0*logSdSSB); - }else{ - var=exp(2.0*logSdLogObs(keyVarObs(f,a))); - } - jnll+=0.5*(log(2.0*M_PI*var)+square(obs(i)-pred(i))/var); - residuals(i,1)=data(i,1); - residuals(i,2)=f; - residuals(i,3)=a; - residuals(i,4)=value(obs(i)); - residuals(i,5)=value(pred(i)); - residuals(i,6)=value((obs(i)-pred(i))/sqrt(var)); - } - } - -FUNCTION dvariable SSB(dvar_vector x, dvector p, dvector w, dvector fprop, dvector mprop, dvector M) - dvar_vector Ftot(minAge,maxAge); - Ftot.initialize(); - for(int f=1; f<=noFleets; ++f){ - if(fleetTypes(f)<2){ // means that it is not a survey - for(int a=minAge; a<=maxAge; ++a){ - if(keyLogFsta(f,a)>0){ - Ftot(a)+=exp(x(keyLogFsta(f,a)+maxAge-minAge+1)); - } - if(keyLogFpar(f,a)>0){ - Ftot(a)+=exp(logFpar(keyLogFpar(f,a))); - } - } - } - } - - dvariable ret; - ret=0; - for(int a=minAge; a<=maxAge; ++a){ - ret+=exp(x(a-minAge+1))*exp(-Ftot(a)*fprop(a)-M(a)*mprop(a))*p(a)*w(a); - } - return ret; - -FUNCTION dvariable CATCH(dvar_vector x, dvector M, dvector w) - dvariable ret; - ret=0; - dvar_vector Ftot(minAge,maxAge); - Ftot.initialize(); - for(int f=1; f<=noFleets; ++f){ - if(fleetTypes(f)<2){ // means that it is not a survey - for(int a=minAge; a<=maxAge; ++a){ - if(keyLogFsta(f,a)>0){ - Ftot(a)+=exp(x(keyLogFsta(f,a)+maxAge-minAge+1)); - } - if(keyLogFpar(f,a)>0){ - Ftot(a)+=exp(logFpar(keyLogFpar(f,a))); - } - } - } - } - dvar_vector Z(minAge,maxAge); - Z=Ftot+M; - - dvar_vector logCatch(minAge,maxAge); - for(int a=minAge; a<=maxAge; ++a){ - logCatch(a)=x(a-minAge+1)-log(Z(a))+log(1-exp(-Z(a)))+log(Ftot(a)); - } - ret=sum(elem_prod(exp(logCatch),w)); - return ret; - - - -FUNCTION dvariable TSB(dvar_vector x, dvector w) - dvariable ret; - ret=0; - for(int a=minAge; a<=maxAge; ++a){ - ret+=exp(x(a-minAge+1))*w(a); - } - return ret; - -FUNCTION dvariable FBAR(dvar_vector x, int from, int to) - dvariable ret; - dvar_vector Ftot(minAge,maxAge); - Ftot.initialize(); - for(int f=1; f<=noFleets; ++f){ - if(fleetTypes(f)<2){ // means that it is not a survey - for(int a=minAge; a<=maxAge; ++a){ - if(keyLogFsta(f,a)>0){ - Ftot(a)+=exp(x(keyLogFsta(f,a)+maxAge-minAge+1)); - } - if(keyLogFpar(f,a)>0){ - Ftot(a)+=exp(logFpar(keyLogFpar(f,a))); - } - } - } - } - ret=mean(Ftot(from,to)); - return ret; - - -REPORT_SECTION - report< - -PROCEDURE_SECTION - - int i, j; - - for (j=1;j<=p;j++) - sf1(log_sigma(j),phi(j),h(j)); - - for (i=2;i<=n;i++) - { - sf2(log_sigma,phi,h((i-1)*p+1,i*p),h((i-2)*p+1,(i-1)*p)); - } - - for (i=1;i<=n;i++) - { - sf3(h((i-1)*p+1,i*p),mu_x,off_diag_x,i); - } - - if (sd_phase()) - { - int ii; - - Sigma = exp(2*log_sigma); - - dvar_matrix L2(1,p,1,p); - L2.initialize(); - L2(1,1)=1; - ii=1; - for (i=1;i<=p;i++) - { - L2(i,i)=1; - for (int j=1;j 1) - P -= 1/(1+exp(-(alpha(y(ii)-1)-eta))); - g -= log(1.e-20+P); - - ii++; - } - -TOP_OF_MAIN_SECTION - arrmblsize = 4000000L; - gradient_structure::set_GRADSTACK_BUFFER_SIZE(3000000); - gradient_structure::set_CMPDIF_BUFFER_SIZE(200000); - gradient_structure::set_MAX_NVAR_OFFSET(2000); - diff --git a/admb_examples/spatial/readme.txt b/admb_examples/spatial/readme.txt deleted file mode 100644 index f58489543..000000000 --- a/admb_examples/spatial/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -Run as - -./spatial -est -l1 10000000 -l2 100000000 -l3 10000000 -nl1 10000000 - diff --git a/admb_examples/spatial/spatial.dat b/admb_examples/spatial/spatial.dat deleted file mode 100644 index 6ad1ee4ef..000000000 --- a/admb_examples/spatial/spatial.dat +++ /dev/null @@ -1,208 +0,0 @@ -# n - 100 -# y - 2 5 0 2 4 2 8 6 8 5 0 2 2 4 0 3 9 8 4 4 1 3 3 3 1 2 4 5 6 2 3 3 4 4 1 5 6 4 1 1 2 1 3 11 2 4 13 4 4 10 3 6 1 1 0 8 4 4 5 3 1 1 1 1 4 3 1 4 4 4 0 0 3 7 5 4 2 2 5 2 3 1 6 6 4 3 0 5 4 3 3 6 4 1 5 0 5 2 5 2 -# p - 2 -# X -0.1 -0.0784305278075794 -0.1 0.0431035142746222 -0.1 -0.104877716200653 -0.1 -0.0653639052797231 -0.1 -0.00207364333418504 -0.1 0.141742973340290 -0.1 0.149126846472008 -0.1 0.0248120288058295 -0.1 0.0239585803358320 -0.1 0.0441664660258962 -0.1 0.084214520441791 -0.1 0.0781646215611708 -0.1 -0.0140286791875000 -0.1 0.108077655265921 -0.1 0.0693553828017935 -0.1 -0.0249721650120785 -0.1 -0.0854416251152327 -0.1 -0.104265396974621 -0.1 -0.11326280842651 -0.1 -0.148281223149694 -0.1 -0.127827104476326 -0.1 -0.0413755411977594 -0.1 -0.0977355708057351 -0.1 0.116678837176254 -0.1 0.145064258925477 -0.1 0.0846687181295023 -0.1 -0.0373373593063127 -0.1 0.00561201526140945 -0.1 -0.0561050454241364 -0.1 0.0518086254198018 -0.1 0.120955495574931 -0.1 0.0979538109685988 -0.1 -0.116962483427178 -0.1 -0.0423237799587788 -0.1 0.0890394355516125 -0.1 0.135984843443705 -0.1 -0.144150565765741 -0.1 -0.0940597800527178 -0.1 0.124292453948915 -0.1 0.105890162989044 -0.1 0.0981768409483373 -0.1 -0.141881203948403 -0.1 0.122648086612790 -0.1 0.0461216263368792 -0.1 0.0248917491993786 -0.1 -0.0259374726724203 -0.1 -0.0119806957542054 -0.1 -0.155956807339570 -0.1 -0.136177087359117 -0.1 -0.06191070786313 -0.1 -0.0772899201946506 -0.1 0.0306790923750974 -0.1 0.0520776107478291 -0.1 -0.142080712145883 -0.1 -0.0839762733374298 -0.1 -0.0964707543100864 -0.1 0.125455320902941 -0.1 -0.133587684630007 -0.1 0.0885559762013782 -0.1 0.133777728683172 -0.1 -0.136156120950409 -0.1 -0.136563543754240 -0.1 0.0888431758998778 -0.1 0.0417775756918825 -0.1 -0.150056308164483 -0.1 -0.147051661221829 -0.1 0.0402184600367766 -0.1 0.0535249328171864 -0.1 0.0356723244992564 -0.1 -0.0302477301665515 -0.1 0.141994732988922 -0.1 0.0593378578340184 -0.1 0.00262609269040793 -0.1 0.105238187499615 -0.1 -0.159267782491596 -0.1 0.102440857341435 -0.1 -0.143790649635233 -0.1 0.125100749161356 -0.1 0.102454647129236 -0.1 0.0576697080864678 -0.1 -0.134575349069181 -0.1 0.0667664474308766 -0.1 -0.153575801186939 -0.1 0.138065395831201 -0.1 0.137650408221086 -0.1 -0.00160093829184136 -0.1 -0.154250021032780 -0.1 0.148779128621450 -0.1 -0.158567579796551 -0.1 0.0202554752585219 -0.1 0.0721763435862204 -0.1 0.0814037847299997 -0.1 -0.0209023918240075 -0.1 -0.111590523129262 -0.1 -0.125927907569247 -0.1 0.118846706671270 -0.1 0.0962652563280377 -0.1 0.00503878019688148 -0.1 0.0192770700134143 -0.1 -0.0982308285460897 -# Z -1 1 -1 2 -1 3 -1 4 -1 5 -1 6 -1 7 -1 8 -1 9 -1 10 -2 1 -2 2 -2 3 -2 4 -2 5 -2 6 -2 7 -2 8 -2 9 -2 10 -3 1 -3 2 -3 3 -3 4 -3 5 -3 6 -3 7 -3 8 -3 9 -3 10 -4 1 -4 2 -4 3 -4 4 -4 5 -4 6 -4 7 -4 8 -4 9 -4 10 -5 1 -5 2 -5 3 -5 4 -5 5 -5 6 -5 7 -5 8 -5 9 -5 10 -6 1 -6 2 -6 3 -6 4 -6 5 -6 6 -6 7 -6 8 -6 9 -6 10 -7 1 -7 2 -7 3 -7 4 -7 5 -7 6 -7 7 -7 8 -7 9 -7 10 -8 1 -8 2 -8 3 -8 4 -8 5 -8 6 -8 7 -8 8 -8 9 -8 10 -9 1 -9 2 -9 3 -9 4 -9 5 -9 6 -9 7 -9 8 -9 9 -9 10 -10 1 -10 2 -10 3 -10 4 -10 5 -10 6 -10 7 -10 8 -10 9 -10 10 diff --git a/admb_examples/spatial/spatial.pin b/admb_examples/spatial/spatial.pin deleted file mode 100644 index f6bbf0768..000000000 --- a/admb_examples/spatial/spatial.pin +++ /dev/null @@ -1,22 +0,0 @@ -# b - 0 0 -# a -0.0 -# log_sigma -0.0 -# u -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - diff --git a/admb_examples/spatial/spatial.tpl b/admb_examples/spatial/spatial.tpl deleted file mode 100644 index e4ba81562..000000000 --- a/admb_examples/spatial/spatial.tpl +++ /dev/null @@ -1,81 +0,0 @@ -// Poisson regression with spatially smoothed mean. - -DATA_SECTION - init_int n // Number of observations - init_vector y(1,n) // Poisson counts - init_int p // Number of fixed effects (b's) - init_matrix X(1,n,1,p) // Covariate matrix - init_matrix Z(1,n,1,2) // Locations (xy-coordinates) - matrix dd(1,n,1,n); // Distance matrix - - LOC_CALCS - int i,j; - dd.initialize(); - for(i=1;i<=n;i++) - { - for ( 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%0D##nM) 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 z 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�V!X~ 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 KP8Drc(EkC&Glm2J diff --git a/slides/results/scalability.pdf b/slides/results/scalability.pdf deleted file mode 100644 index c8ac34c49cb01eb793b9a2ca7a2a305725e4d774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6192 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 z 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 D?p|}( diff --git a/slides/results/timings.tex b/slides/results/timings.tex deleted file mode 100644 index bc3267a13..000000000 --- a/slides/results/timings.tex +++ /dev/null @@ -1,15 +0,0 @@ -% latex table generated in R 3.0.1 by xtable 1.7-1 package -% Mon Sep 16 14:56:17 2013 -\begin{table}[ht] -\centering -\begin{tabular}{cccc} - \hline - & 3 & 5 & 7 \\ - \hline -ADMB & 22.74 & 55.93 & 144.47 \\ - TMB & 0.91 & 1.63 & 3.85 \\ - Speed-up & 24.88 & 34.34 & 37.56 \\ - \hline -\end{tabular} -\caption{Runtime in seconds for multivariate random walk example.} -\end{table} diff --git a/slides/slides.tex b/slides/slides.tex deleted file mode 100644 index f73713ff6..000000000 --- a/slides/slides.tex +++ /dev/null @@ -1,266 +0,0 @@ -\documentclass[compress]{beamer} - -\setlength{\unitlength}{\paperwidth} - -\usepackage{graphicx, subfigure} -\usepackage{multimedia} -\usepackage{hyperref} -%\usepackage{verbatim} -\usepackage{listings} -\usepackage{caption} % For linebreaks in captions - -\newcommand{\mb}[1]{\mathbf{#1}} - -\mode -{ - \useoutertheme{split} - \setbeamercolor{separation line}{use=structure,bg=structure.fg!50!bg} - \usefonttheme{structurebold} - - \setbeamertemplate{navigation symbols}{} - % or ... - - % \setbeamercovered{transparent} - % or whatever (possibly just delete it) -} - - -%%\usepackage[danish]{babel} -%%\usepackage[utf-8]{inputenc} -\usepackage{times} -\usepackage[T1]{fontenc} - - -\title[TMB] -{A comparison between ADMB \& TMB} - -\author[K. Kristensen, A. Nielsen, C.W. Berg ]% [Author, Another] % (optional, use only with lots of authors) -{Kasper Kristensen, Anders Nielsen, Casper W. Berg} - -\date[September 2013] % (optional, should be abbreviation of conference name) -{September, 2013} - -\begin{document} - -\begin{frame}[plain] - \titlepage -\end{frame} - -\begin{frame} -\frametitle{TMB Intro} - -\begin{itemize} - \item ADMB inspired R-package - \item Combines external libraries: CppAD, Eigen, CHOLMOD - \item Continuously developed since 2009, $\sim 1000$ lines of code - \item Implements Laplace approximation for random effects - \item C++ Template based - \item Automatic sparseness detection - \item Parallelism through BLAS - \item Parallel user templates - \item Parallelism through \texttt{multicore} package -\end{itemize} - - -\end{frame} - -\begin{frame}[fragile] - \frametitle{Example 1: Linear regression} -\begin{columns} - \begin{column}{0.5\textwidth} -\tiny{ -\begin{verbatim} -DATA_SECTION -init_int N -init_vector Y(1,N) -init_vector x(1,N) -PARAMETER_SECTION -init_number a -init_number b -init_number logSigma -sdreport_number sigmasq -objective_function_value nll -PROCEDURE_SECTION -sigmasq=exp(2*logSigma); -nll=0.5*(N*log(2*M_PI*sigmasq) - +sum(square(Y-(a+b*x)))/sigmasq); -\end{verbatim} -} - \end{column} -\hspace{-50pt} -\vrule{} - \begin{column}{0.5\textwidth} - \tiny{ - \begin{verbatim} -#include -template -Type objective_function::operator() () -{ -DATA_VECTOR(Y); -DATA_VECTOR(x); -PARAMETER(a); -PARAMETER(b); -PARAMETER(logSigma); -Type nll=dnorm(Y,a+b*x,exp(logSigma),true).sum(); -return nll; -} - \end{verbatim} -} - -\end{column} -\end{columns} -\end{frame} - - -\begin{frame} - \frametitle{Example 2: Multivariate random walk} -\begin{columns} - \begin{column}{0.5\textwidth} - \begin{align*} - \mb{X}_{t+1} &= \mb{X}_t + \mb{\varepsilon_t} \quad , \mb{\varepsilon_t} \sim N(\mb{0},\Sigma) \\ - \mb{Y}_t &= \mb{X}_t + \mb{\eta_t} \quad , \mb{\eta_t} \sim N(\mb{0},\mb{\sigma}_Y^2 \mb{I}) \\ - \Sigma_{i,j} & = \rho^{|i-j|}\sigma_{i}\sigma_{j} - \end{align*} - States (random effects) $\mb{X}$, Observations $\mb{Y}$. - Parameters: $\mb{\sigma}, \mb{\sigma_Y}, \rho$. - - \end{column} - - \begin{column}{0.5\textwidth} - \begin{figure}[!htb] - \centering - \includegraphics[width=1.0\textwidth]{results/rwplot.pdf} - \end{figure} - - \end{column} -\end{columns} -\end{frame} - -{ -\usebackgroundtemplate{\includegraphics[width=\paperwidth,height=\paperheight]{results/rw.png}} -\begin{frame}[plain] -\end{frame} -} - -\begin{frame} - \frametitle{Example 2: Results (timings)} - \begin{columns} - \begin{column}{0.5\textwidth} - \small{ - \input{results/timings} - } - \end{column} - - \begin{column}{0.5\textwidth} - \begin{figure}[!htb] - \centering - \includegraphics[width=1.0\textwidth]{results/timings.pdf} - \end{figure} - - \end{column} -\end{columns} - -\end{frame} - -\begin{frame} - \frametitle{Parallel user templates intro} - \begin{itemize} - \item Most objective functions are a result of commutative - accumulation ($\theta=$ random and fixed effects): - \[l(\theta) = \sum_{i=1}^n l_i(\theta)\] - \item If e.g. two cores then let core 1 do AD of the ``even terms'' and - core 2 do AD of the ``odd terms''. - \item The book keeping is handled by template class - \texttt{parallel\_accumulator}. - \item From user perspective: change one line of template to get - parallel version. - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Parallel Code} -\begin{columns} - \begin{column}{0.5\textwidth} -\tiny{ -\begin{verbatim} -... -Type ans=0; -... -\end{verbatim} -} - \end{column} -\hspace{-50pt} -\vrule{} - \begin{column}{0.5\textwidth} - \tiny{ - \begin{verbatim} -... -parallel_accumulator ans(this); -... - \end{verbatim} -} -\end{column} -\end{columns} -\begin{itemize} -\item Parallel accumulator initialized to zero and has only methods - "$+=$" and "$-=$". -\item When modified code is compiled from R the template is detected - to be parallel and the openmp flag is set. -\end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Results: benchmark plot} - \begin{figure}[!htb] - \centering - \includegraphics[width=0.7\textwidth]{results/scalability.pdf} - \end{figure} -\end{frame} - - -\begin{frame} - \frametitle{Parallel Code with multicore package} - \begin{itemize} - \item High level parallelization gives best performance. - \item Easy with \texttt{multicore} package \footnote{Note: Before - calling \texttt{mclapply} do \texttt{openmp(1)} to avoid forking a - multithreaded process}. - \end{itemize} - Examples: - \begin{itemize} - \item Parallel likelihood evaluations \texttt{ - mclapply(1:10,function(x)obj\$fn(obj\$par))} - \item Parallel gradient evaluations \texttt{ - mclapply(1:10,function(x)obj\$gr(obj\$par))} - \item Parallel optimization \texttt{ - mclapply(1:10,function(x)do.call("optim",obj))} - \end{itemize} -\end{frame} - - -\begin{frame} - \begin{itemize} - \item[-] Slow compile times - \item[-] Standalone applications not possible - \item[-] Fewer built-in specialized functionalities (e.g. profile-likelihood, \texttt{sd\_report\_number} etc.) - \item[-] Sparse documentation - \item[-] Depends on external libraries - \end{itemize} -\end{frame} - -\begin{frame} - \begin{itemize} - \item[+] Fast run times - \item[+] The use of external libraries means a compact code base that is highly optimized - \item[+] Can handle very high dimensional problems ($\sim 10^6$ random effects) - \item[+] No \texttt{SEPARABLE\_FUNCTION} construct needed, fully automatic sparseness detection - \item[+] Full R integration -- no need for data+results import/export - \item[+] No use of temporary files on the disc - \item[+] Template based -- no code duplication needed as for \texttt{df1b2variable}s etc. - \item[+] Analytical Hessian for fixed effects. - \item[+] High-level parallelization with \texttt{multicore} package. - \end{itemize} -\end{frame} - - -\end{document} \ No newline at end of file diff --git a/tmb_examples/socatt.R b/tmb_examples/socatt.R index 3ca1df537..e470f0292 100644 --- a/tmb_examples/socatt.R +++ b/tmb_examples/socatt.R @@ -4,7 +4,7 @@ dyn.load(dynlib("socatt")) ## Read data source("tools/readdat.R") -d <- readadmb("../admb_examples/socatt/socatt.dat") +d <- readadmb("socatt.dat") d$ngroup <- d$ngroup[-length(d$ngroup)] d$y <- as.factor(d$y) diff --git a/admb_examples/socatt/socatt.dat b/tmb_examples/socatt.dat similarity index 100% rename from admb_examples/socatt/socatt.dat rename to tmb_examples/socatt.dat