From 4c607760029da73d35e1e5105446c424d42b7573 Mon Sep 17 00:00:00 2001 From: Douglas Bates Date: Tue, 24 Jun 2025 12:07:56 -0500 Subject: [PATCH 1/3] Add data and script for issue 833 --- issues/833/833.jl | 17 +++ issues/833/data.csv | 299 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 316 insertions(+) create mode 100644 issues/833/833.jl create mode 100644 issues/833/data.csv diff --git a/issues/833/833.jl b/issues/833/833.jl new file mode 100644 index 000000000..18a8d617c --- /dev/null +++ b/issues/833/833.jl @@ -0,0 +1,17 @@ +using DataFrames, CSV, MixedModels, CairoMakie + +df = CSV.read("issues/833/data.csv", DataFrame) + +_lmm = LinearMixedModel( + @formula(endpoint ~ 1 + formulation + sequence + period + (1 | id)), + df; + contrasts = Dict(:period => DummyCoding()), +) + +_lmm.optsum.optimizer = :LN_COBYLA + +fit!(_lmm; REML = true, fitlog=true) + +θ = _lmm.θ # keep a copy of the optimal θ +lines(0.4:0.01:1.0, x -> objective(updateL!(setθ!(_lmm, (x,))))) +setθ!(_lmm, θ) diff --git a/issues/833/data.csv b/issues/833/data.csv new file mode 100644 index 000000000..5d9fa765f --- /dev/null +++ b/issues/833/data.csv @@ -0,0 +1,299 @@ +id,id_within_sequence,sequence,period,formulation,endpoint +1,1,RTRT,1,R,0.2372829997078024 +1,1,RTRT,2,T,-1.0976299992723442 +1,1,RTRT,3,R,2.817679999788183 +1,1,RTRT,4,T,1.0022000001650428 +2,1,TRTR,1,T,-0.10237099982770272 +2,1,TRTR,2,R,1.260419999893451 +2,1,TRTR,3,T,3.233019999943074 +2,1,TRTR,4,R,1.956959999967173 +3,2,TRTR,1,T,2.5681700002347916 +3,2,TRTR,2,R,-2.3977700006452545 +3,2,TRTR,3,T,2.3345399999524123 +3,2,TRTR,4,R,-1.887970000627262 +4,3,TRTR,1,T,-2.4457600009158718 +4,3,TRTR,2,R,-4.7073499877061735 +4,3,TRTR,3,T,0.3711299997017242 +4,3,TRTR,4,R,0.9254910001145399 +5,2,RTRT,1,R,2.001579999939714 +5,2,RTRT,2,T,-2.9677700072338715 +5,2,RTRT,3,R,-0.9017469990416028 +5,2,RTRT,4,T,-0.580021999887177 +6,3,RTRT,1,R,2.3702099997771207 +6,3,RTRT,2,T,0.5433160000819317 +6,3,RTRT,3,R,2.1937599999463666 +6,3,RTRT,4,T,2.2828899999818475 +7,4,TRTR,1,T,-0.2092110003815025 +7,4,TRTR,2,R,-2.044310000884337 +7,4,TRTR,3,T,1.8282899999357691 +7,4,TRTR,4,R,-1.5351500011132586 +8,4,RTRT,1,R,0.9841650000910165 +8,4,RTRT,2,T,1.263639999956158 +8,4,RTRT,3,R,0.8452159999617096 +8,4,RTRT,4,T,-0.40525699976420804 +9,5,RTRT,1,R,1.8308200000015418 +9,5,RTRT,2,T,-2.3463700038689947 +9,5,RTRT,3,R,-0.8428600006034216 +9,5,RTRT,4,T,-3.3038899885258988 +10,6,RTRT,1,R,-0.8109989998318674 +10,6,RTRT,2,T,-2.856620003039467 +10,6,RTRT,3,R,-0.22153600036688983 +10,6,RTRT,4,T,0.49914999996850984 +11,5,TRTR,1,T,-0.3811149995314503 +11,5,TRTR,2,R,-1.6514799999234973 +11,5,TRTR,4,R,-1.2632800016189392 +12,6,TRTR,1,T,-0.6682360006376411 +12,6,TRTR,2,R,-3.558379998167693 +12,6,TRTR,3,T,1.8684000000556242 +12,6,TRTR,4,R,-0.6270110007339621 +13,7,TRTR,1,T,0.12062100037783917 +13,7,TRTR,2,R,-4.038430008321946 +13,7,TRTR,3,T,3.4371099999315877 +13,7,TRTR,4,R,-2.10285000234634 +14,7,RTRT,1,R,-2.0307600005525304 +14,7,RTRT,2,T,-0.7538809999632197 +14,7,RTRT,3,R,-0.5164760004537374 +14,7,RTRT,4,T,0.8447009998903958 +15,8,TRTR,1,T,1.528900000050282 +15,8,TRTR,2,R,-0.2009439999175228 +15,8,TRTR,3,T,3.249220000176962 +15,8,TRTR,4,R,2.219639999963713 +16,8,RTRT,1,R,0.27809299989697517 +16,8,RTRT,2,T,-0.22361999979776476 +16,8,RTRT,3,R,0.5883809999167358 +16,8,RTRT,4,T,0.8011380001334726 +17,9,TRTR,1,T,1.0673600001110628 +17,9,TRTR,2,R,-4.576329991397752 +17,9,TRTR,3,T,-0.2590149997216775 +17,9,TRTR,4,R,-1.3132600007954414 +18,9,RTRT,1,R,-5.092459963520984 +18,9,RTRT,2,T,-5.603670116516816 +18,9,RTRT,3,R,-0.9603960010716607 +18,9,RTRT,4,T,-0.8857719997360738 +19,10,RTRT,1,R,1.1670300000710958 +19,10,RTRT,2,T,-0.818931999514438 +19,10,RTRT,3,R,-0.624042999801434 +19,10,RTRT,4,T,-0.9289299994545223 +20,10,TRTR,1,T,0.7629240000127088 +20,10,TRTR,2,R,-0.983824999783553 +20,10,TRTR,4,R,0.3164579998801909 +21,11,RTRT,1,R,0.9397839999773937 +21,11,RTRT,2,T,0.11276600024373681 +21,11,RTRT,3,R,2.0330899999833645 +21,11,RTRT,4,T,-0.26469399989479386 +22,12,RTRT,1,R,-2.230519998952742 +22,12,RTRT,2,T,-0.48064500033221563 +22,12,RTRT,3,R,-0.2041020003278506 +22,12,RTRT,4,T,-0.5916169996772221 +23,11,TRTR,1,T,-1.5656500005981968 +23,11,TRTR,2,R,-2.5199199972106245 +23,11,TRTR,3,T,2.10205999994246 +23,11,TRTR,4,R,0.4298270000002139 +24,12,TRTR,1,T,-1.5211600011710538 +24,12,TRTR,3,T,-0.6560519997509011 +24,12,TRTR,4,R,-1.30729999969238 +25,13,TRTR,1,T,1.2727200001170849 +25,13,TRTR,2,R,-3.203369989102826 +25,13,TRTR,3,T,0.21394299974628975 +25,13,TRTR,4,R,-0.7547959993120472 +26,14,TRTR,1,T,-0.8394410001734328 +26,14,TRTR,2,R,0.041492499921259654 +26,14,TRTR,3,T,3.027390000152645 +26,14,TRTR,4,R,1.525989999992673 +27,13,RTRT,1,R,-2.9599900070338188 +27,13,RTRT,2,T,-3.942509996803978 +27,13,RTRT,3,R,1.2799100001223658 +27,13,RTRT,4,T,-0.5532449993230634 +28,14,RTRT,1,R,0.1925289998054801 +28,14,RTRT,2,T,-3.2451900008571464 +28,14,RTRT,3,R,-0.29011500028869736 +28,14,RTRT,4,T,1.5371000000306798 +29,15,RTRT,1,R,-0.7236419989879943 +29,15,RTRT,2,T,2.889319999992678 +29,15,RTRT,3,R,2.9287699998999384 +29,15,RTRT,4,T,1.1946099999472828 +30,15,TRTR,1,T,-1.8535499999522123 +30,15,TRTR,2,R,0.062434500174531664 +30,15,TRTR,3,T,2.6807400000477184 +30,15,TRTR,4,R,0.0855144001620486 +31,16,RTRT,1,R,0.8207250000992068 +31,16,RTRT,2,T,-5.8301201471 +31,16,RTRT,4,T,-2.2313100010877487 +32,16,TRTR,1,T,-0.3346730002182302 +32,16,TRTR,2,R,2.7277299999402507 +32,16,TRTR,3,T,5.4620199998669365 +32,16,TRTR,4,R,0.9984989999820026 +33,17,RTRT,1,R,1.2939100001053445 +33,17,RTRT,2,T,-0.837103000357824 +33,17,RTRT,3,R,2.5113900003260947 +33,17,RTRT,4,T,0.8018660000475554 +34,18,RTRT,1,R,1.5440899999343634 +34,18,RTRT,2,T,-1.861829999752402 +34,18,RTRT,3,R,0.1419450003778042 +34,18,RTRT,4,T,-1.1496999989263677 +35,17,TRTR,1,T,0.7119620000365466 +35,17,TRTR,2,R,-3.6650000110807204 +35,17,TRTR,3,T,2.2591899999558174 +35,17,TRTR,4,R,-2.1329699974436482 +36,18,TRTR,1,T,-1.3973400002041723 +36,18,TRTR,2,R,0.8280890000022708 +36,18,TRTR,3,T,-0.11879299999871455 +36,18,TRTR,4,R,1.4528800000126216 +37,19,TRTR,1,T,-1.8298799972470077 +37,19,TRTR,2,R,-3.5855999863349415 +37,19,TRTR,3,T,0.03150850034435733 +37,19,TRTR,4,R,-3.0163500057579355 +38,19,RTRT,1,R,-1.4142799994728898 +38,19,RTRT,2,T,-3.2382899911251406 +38,19,RTRT,3,R,-1.5479500021819097 +38,19,RTRT,4,T,-2.5133200009491885 +39,20,TRTR,1,T,-0.07448629955666342 +39,20,TRTR,2,R,-0.3672660002697799 +39,20,TRTR,3,T,1.298550000017574 +39,20,TRTR,4,R,-0.29419800041057115 +40,20,RTRT,1,R,2.3768000002871448 +40,20,RTRT,2,T,1.5157000001092265 +40,20,RTRT,3,R,3.019500000032447 +40,20,RTRT,4,T,2.2715500000283986 +41,21,RTRT,1,R,-1.0018600010195169 +41,21,RTRT,2,T,-0.9389299995832623 +41,21,RTRT,3,R,1.453460000000333 +41,21,RTRT,4,T,-0.5410359996688898 +42,21,TRTR,1,T,0.32494999987105 +42,21,TRTR,2,R,-0.19348299939497052 +42,21,TRTR,4,R,-0.2848130001786244 +43,22,TRTR,1,T,0.49132899976602634 +43,22,TRTR,2,R,0.4524689997470883 +43,22,TRTR,3,T,3.0471699998357535 +43,22,TRTR,4,R,0.024684799876925415 +44,23,TRTR,1,T,0.34745100026650605 +44,23,TRTR,2,R,-0.8415679994385497 +44,23,TRTR,3,T,-1.0679999997909555 +44,23,TRTR,4,R,-0.9527349997212896 +45,22,RTRT,1,R,1.1857300001429165 +45,22,RTRT,2,T,-1.6187599983744374 +45,22,RTRT,3,R,1.0217000001435534 +45,22,RTRT,4,T,1.4738099999897918 +46,24,TRTR,1,T,1.7072800000711006 +46,24,TRTR,2,R,-1.6475099987118762 +46,24,TRTR,3,T,0.5192980002101266 +46,24,TRTR,4,R,1.4595900000452986 +47,23,RTRT,1,R,2.065840000050541 +47,23,RTRT,2,T,-0.5694719999554072 +47,23,RTRT,3,R,4.2425300000327635 +47,23,RTRT,4,T,3.370839999920865 +48,24,RTRT,1,R,-1.404090000404544 +48,24,RTRT,2,T,-3.470260009153429 +48,24,RTRT,3,R,-1.3774500000417333 +48,24,RTRT,4,T,-2.9682000087900007 +49,25,TRTR,1,T,3.9366899999342797 +49,25,TRTR,2,R,-0.5210269996449912 +49,25,TRTR,3,T,2.158239999980686 +49,25,TRTR,4,R,5.142430000136585 +50,26,TRTR,1,T,-1.1018200008804215 +50,26,TRTR,2,R,-2.642850006731162 +50,26,TRTR,3,T,1.194299999925739 +50,26,TRTR,4,R,-1.4457899987288982 +51,25,RTRT,1,R,-5.180669984536637 +51,25,RTRT,2,T,-1.305219998708228 +51,25,RTRT,3,R,-2.810969997739456 +51,25,RTRT,4,T,1.4515199998880652 +52,26,RTRT,1,R,0.6499060001887045 +52,26,RTRT,2,T,-0.7584799989347287 +52,26,RTRT,3,R,-1.6696599974668385 +52,26,RTRT,4,T,-1.8081399985464626 +53,27,TRTR,1,T,-0.1862970004089021 +53,27,TRTR,2,R,-4.119510012582634 +53,27,TRTR,3,T,-0.8041139999893672 +53,27,TRTR,4,R,-0.7203750001736173 +54,27,RTRT,1,R,-0.021120100442920644 +54,27,RTRT,2,T,0.584706999820184 +54,27,RTRT,3,R,0.11047099976036899 +54,27,RTRT,4,T,-1.873589999103725 +55,28,TRTR,1,T,-1.786900001589766 +55,28,TRTR,2,R,0.5203920001259861 +55,28,TRTR,3,T,1.8493999999328405 +55,28,TRTR,4,R,1.9119199999574592 +56,29,TRTR,1,T,1.1801500001125562 +56,29,TRTR,2,R,-0.2977699995842163 +56,29,TRTR,3,T,3.0681600000996334 +56,29,TRTR,4,R,-0.7766290010417445 +57,28,RTRT,1,R,-1.5928799994167804 +57,28,RTRT,2,T,-0.29476799977519286 +57,28,RTRT,3,R,-0.21063500044851252 +57,28,RTRT,4,T,-2.152999999613387 +58,29,RTRT,1,R,0.4728559998660748 +58,29,RTRT,2,T,-2.091150002978998 +58,29,RTRT,3,R,1.4793000000084924 +58,29,RTRT,4,T,2.3107300000004463 +59,30,RTRT,1,R,1.7341499999131726 +59,30,RTRT,2,T,-2.460959997307922 +59,30,RTRT,3,R,-0.19539200009949148 +59,30,RTRT,4,T,1.1247999999517866 +60,30,TRTR,1,T,-1.1111600009778972 +60,30,TRTR,2,R,-2.0229699987928504 +60,30,TRTR,3,T,3.1900699998961057 +60,30,TRTR,4,R,3.6355800000488654 +62,31,TRTR,1,T,-0.7418700003970577 +62,31,TRTR,2,R,-1.2717700016305302 +62,31,TRTR,3,T,0.4085630000154789 +62,31,TRTR,4,R,-0.3956649999239951 +63,32,TRTR,1,T,0.22134099969373736 +63,32,TRTR,2,R,-1.4640399994118845 +63,32,TRTR,3,T,-1.294279999289051 +63,32,TRTR,4,R,2.9287100000556623 +64,31,RTRT,1,R,1.2041699999815945 +64,31,RTRT,2,T,-1.4411200005832179 +64,31,RTRT,3,R,1.8735000000146609 +64,31,RTRT,4,T,-0.2183710005737218 +65,32,RTRT,1,R,-0.08275189963888015 +65,32,RTRT,2,T,-2.1495000035637712 +65,32,RTRT,3,R,-2.212629998827737 +65,32,RTRT,4,T,-2.1384800031140183 +66,33,TRTR,1,T,-1.625010000494072 +66,33,TRTR,2,R,-1.4872400011432554 +66,33,TRTR,3,T,2.208199999984955 +66,33,TRTR,4,R,1.3616600000453667 +67,33,RTRT,1,R,2.1977200000385677 +67,33,RTRT,2,T,-2.7284199938062867 +68,34,RTRT,1,R,-2.6422000046494496 +68,34,RTRT,2,T,-1.6771700022546647 +68,34,RTRT,3,R,-0.7921959991730548 +68,34,RTRT,4,T,-3.009359990510732 +69,34,TRTR,1,T,-1.7983899986849097 +69,34,TRTR,2,R,-2.470630003817916 +69,34,TRTR,4,R,-1.291169998578524 +70,35,RTRT,1,R,1.3485000000426668 +70,35,RTRT,2,T,-0.792496998928293 +70,35,RTRT,3,R,0.550464000070489 +70,35,RTRT,4,T,-2.1311299962381467 +71,35,TRTR,1,T,-0.13770799966039302 +71,35,TRTR,2,R,-0.28384799991046716 +72,36,TRTR,1,T,2.7730500002097385 +72,36,TRTR,2,R,0.09566929985845304 +72,36,TRTR,3,T,0.8586140001071453 +72,36,TRTR,4,R,-0.16656099943149055 +73,37,TRTR,1,T,-0.0027774395166722983 +73,37,TRTR,2,R,-0.9924859989900656 +73,37,TRTR,3,T,-0.9830610001745166 +73,37,TRTR,4,R,1.0782900000513718 +74,36,RTRT,1,R,-0.0464458999053409 +74,36,RTRT,2,T,-1.5480399990964022 +74,36,RTRT,3,R,-0.5649939998744669 +74,36,RTRT,4,T,-0.7730909989565208 +75,38,TRTR,1,T,-0.4398460005113273 +75,38,TRTR,2,R,-2.3377899971129117 +75,38,TRTR,3,T,4.862299999976571 +75,38,TRTR,4,R,-0.8398119991596663 +76,39,TRTR,1,T,-0.809630000363429 +76,39,TRTR,2,R,-0.3765499994006255 +76,39,TRTR,3,T,-0.6917120009231 +76,39,TRTR,4,R,-2.8117399965239964 +77,37,RTRT,1,R,-0.17380899963626437 +77,37,RTRT,2,T,-0.726762999957534 +77,37,RTRT,3,R,0.8192539998760248 +77,37,RTRT,4,T,-0.8181630000999117 +78,38,RTRT,1,R,0.0905258997297348 +78,38,RTRT,2,T,-1.826279997257667 +78,38,RTRT,3,R,-2.0050400029067252 +78,38,RTRT,4,T,1.1065699999292644 From 428763398558453371b531d649bc7137d3ebc21b Mon Sep 17 00:00:00 2001 From: Douglas Bates Date: Tue, 24 Jun 2025 12:35:38 -0500 Subject: [PATCH 2/3] Use objective! to evaluate objective --- issues/833/833.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/issues/833/833.jl b/issues/833/833.jl index 18a8d617c..b25dc3799 100644 --- a/issues/833/833.jl +++ b/issues/833/833.jl @@ -12,6 +12,6 @@ _lmm.optsum.optimizer = :LN_COBYLA fit!(_lmm; REML = true, fitlog=true) -θ = _lmm.θ # keep a copy of the optimal θ -lines(0.4:0.01:1.0, x -> objective(updateL!(setθ!(_lmm, (x,))))) -setθ!(_lmm, θ) +θ = copy(_lmm.θ) # keep a copy of the optimal θ +lines(0.4:0.01:1.0, objective!(_lmm)) # I wrote the method for objective! then forgot it +objective!(_lmm, θ) From 617715300a1b4669266512dcfe0086af5d9e3c40 Mon Sep 17 00:00:00 2001 From: Douglas Bates Date: Mon, 7 Jul 2025 09:14:29 -0500 Subject: [PATCH 3/3] Add issues/705 directory --- issues/705/705.jl | 39 ++++++ issues/705/saddlepointdata.csv | 230 +++++++++++++++++++++++++++++++++ 2 files changed, 269 insertions(+) create mode 100644 issues/705/705.jl create mode 100644 issues/705/saddlepointdata.csv diff --git a/issues/705/705.jl b/issues/705/705.jl new file mode 100644 index 000000000..1b36b356d --- /dev/null +++ b/issues/705/705.jl @@ -0,0 +1,39 @@ +using PRIMA, MixedModels, CSV, DataFrames, StatsBase, Random + +saddlepointdata = CSV.read("saddlepointdata.csv", DataFrame) +transform!(saddlepointdata, "AUCT" => eachindex => "row") + +N = 500 +_rng = Random.seed!(Random.default_rng(), 124) +fts = map(1:N) do _ + m = LinearMixedModel( + @formula(log(AUCT) ~ + trt + + seq + + per + + (trt + 0 | sub) + + zerocorr(trt + 0 | row) + ), + transform( + saddlepointdata, + "AUCT" => ByRow(t -> t + randn(_rng)*1e-12) => "AUCT" + ); + contrasts = Dict( + [ + :trt, + :per, + :sub, + :row, + ] .=> Ref(DummyCoding()) + ) + ) + m.optsum.backend = :prima + # m.optsum.optimizer = :cobyla + m.optsum.optimizer = :bobyqa + fit!( + m; + REML = true + ) +end + +countmap(round.(exp.(getindex.(coef.(fts), 2)), digits=3)) diff --git a/issues/705/saddlepointdata.csv b/issues/705/saddlepointdata.csv new file mode 100644 index 000000000..836317a31 --- /dev/null +++ b/issues/705/saddlepointdata.csv @@ -0,0 +1,230 @@ +sub,seq,per,trt,AUCT +1,TRTR,1,T,62.65913778541419 +1,TRTR,2,R,90.5349878154818 +1,TRTR,3,T,107.67863733440059 +1,TRTR,4,R,88.7729348346212 +2,RTRT,1,R,119.11494671495176 +2,RTRT,3,R,118.97764103161134 +2,RTRT,4,T,132.57617226323566 +3,TRTR,1,T,70.11241307860429 +3,TRTR,2,R,94.87157465019992 +3,TRTR,3,T,72.35253478647027 +3,TRTR,4,R,95.49519792392212 +4,TRTR,1,T,161.25226559269973 +4,TRTR,2,R,95.41612333847637 +4,TRTR,3,T,120.02340132698903 +4,TRTR,4,R,95.41428383687976 +5,RTRT,1,R,117.22900503337327 +5,RTRT,2,T,80.33047774194407 +5,RTRT,3,R,116.06404278104772 +5,RTRT,4,T,58.47300703203438 +6,RTRT,1,R,115.73619077970227 +6,RTRT,2,T,67.43771675902228 +6,RTRT,3,R,116.57528900764544 +6,RTRT,4,T,77.7855686043249 +7,TRTR,2,R,101.16392785233252 +7,TRTR,3,T,105.84471495780149 +7,TRTR,4,R,101.42092875558784 +8,TRTR,1,T,75.52826098459607 +8,TRTR,2,R,100.88923219364446 +8,TRTR,3,T,88.6843952669205 +8,TRTR,4,R,101.04789971386923 +9,TRTR,1,T,115.24278549800609 +9,TRTR,2,R,103.69511271234191 +9,TRTR,3,T,84.00106206243046 +9,TRTR,4,R,102.97971373166912 +10,TRTR,1,T,129.14286506602622 +10,TRTR,2,R,102.03919928627528 +10,TRTR,3,T,98.32196552018202 +10,TRTR,4,R,101.93055140707793 +11,RTRT,1,R,98.18516502707324 +11,RTRT,2,T,67.55106070776463 +11,RTRT,3,R,100.3936063178232 +11,RTRT,4,T,70.64429906762382 +12,RTRT,1,R,97.12103276123324 +12,RTRT,3,R,98.78505377394968 +12,RTRT,4,T,103.99815787337657 +13,RTRT,1,R,94.54921137502333 +13,RTRT,2,T,88.77868473433567 +13,RTRT,3,R,96.68704765095154 +13,RTRT,4,T,114.1155226050246 +14,TRTR,1,T,105.78511553000135 +14,TRTR,2,R,109.52891668732396 +14,TRTR,3,T,134.59962141257665 +14,TRTR,4,R,108.35186317226562 +15,TRTR,1,T,51.73204294632581 +15,TRTR,2,R,79.0494701253657 +15,TRTR,3,T,86.49883709678673 +15,TRTR,4,R,78.30784844325073 +16,RTRT,1,R,93.36055194563939 +16,RTRT,2,T,85.09577007833002 +16,RTRT,3,R,94.12648186540272 +16,RTRT,4,T,85.2024620840907 +17,RTRT,1,R,87.67453080936033 +17,RTRT,2,T,111.19521458175863 +17,RTRT,3,R,88.05328968879905 +17,RTRT,4,T,72.11319877298814 +18,RTRT,2,T,55.28627782670657 +18,RTRT,3,R,87.67985902544105 +18,RTRT,4,T,121.3942167015548 +19,TRTR,1,T,97.09334525812099 +19,TRTR,3,T,100.77324579082273 +19,TRTR,4,R,91.69054389930344 +20,TRTR,1,T,86.57696818776863 +20,TRTR,2,R,92.0209682109809 +20,TRTR,3,T,91.65584417807436 +20,TRTR,4,R,93.27738926928649 +21,TRTR,1,T,79.54846505830507 +21,TRTR,2,R,124.5516468201811 +21,TRTR,3,T,108.69427947212267 +21,TRTR,4,R,127.50146045667132 +22,TRTR,2,R,125.22403176387333 +22,TRTR,3,T,131.13291260312258 +22,TRTR,4,R,124.88658037967997 +23,RTRT,1,R,150.4041453348222 +23,RTRT,2,T,91.49690974490143 +23,RTRT,3,R,150.26796863123008 +24,RTRT,1,R,149.18822946208905 +24,RTRT,2,T,82.27271733526953 +24,RTRT,3,R,152.20438129481 +24,RTRT,4,T,83.1571134910378 +25,TRTR,1,T,95.03313175014334 +25,TRTR,2,R,107.88851936609696 +25,TRTR,3,T,66.65829934153153 +25,TRTR,4,R,106.73370016517266 +26,TRTR,1,T,80.08979879396075 +26,TRTR,2,R,109.36662983295383 +26,TRTR,3,T,88.86504183261081 +26,TRTR,4,R,105.90715877633639 +27,RTRT,1,R,79.7937771285495 +27,RTRT,2,T,111.99666054021212 +27,RTRT,3,R,80.95516975620593 +27,RTRT,4,T,110.30313910644935 +28,RTRT,1,R,81.51410333985997 +28,RTRT,2,T,86.92211901676941 +28,RTRT,3,R,79.84360737889558 +28,RTRT,4,T,98.43098738955554 +29,RTRT,1,R,91.74486448230839 +29,RTRT,2,T,151.57497867108748 +29,RTRT,3,R, +30,TRTR,1,T,107.79573946757081 +30,TRTR,2,R,89.84320548310954 +30,TRTR,3,T,56.42088037445988 +30,TRTR,4,R,89.25035950907876 +31,RTRT,1,R,90.91770833064382 +31,RTRT,2,T,85.49726985864883 +31,RTRT,3,R,90.73304999432936 +31,RTRT,4,T,140.03606210664967 +32,TRTR,1,T,83.395520142527 +32,TRTR,2,R,140.48909998070528 +32,TRTR,3,T,103.83172348891522 +32,TRTR,4,R,138.92339683769438 +33,RTRT,3,R,116.77445476815018 +33,RTRT,4,T,74.22842141462817 +34,RTRT,1,R,116.22440568160916 +34,RTRT,2,T,58.80968959215403 +34,RTRT,3,R,118.6277073055402 +34,RTRT,4,T,101.60969283508764 +35,TRTR,1,T,100.39691273412186 +35,TRTR,2,R, +35,TRTR,4,R,69.08354663625431 +36,RTRT,1,R,99.0253186014548 +36,RTRT,2,T,60.968914259495655 +36,RTRT,3,R,98.34972352438207 +36,RTRT,4,T,134.56267191428944 +37,RTRT,1,R,104.26543548654074 +37,RTRT,3,R,104.70959036206818 +38,TRTR,1,T,132.31496425669022 +38,TRTR,2,R,112.72874057663658 +38,TRTR,3,T,91.21488410726211 +38,TRTR,4,R,114.5872775411162 +39,RTRT,1,R,99.60097227686347 +39,RTRT,2,T,102.8551167548032 +39,RTRT,4,T,157.8280215531484 +40,RTRT,1,R,99.65885728095381 +40,RTRT,2,T,76.46746129413255 +40,RTRT,3,R, +40,RTRT,4,T,80.14142270003771 +41,TRTR,1,T, +41,TRTR,2,R,81.34303723664878 +41,TRTR,3,T,125.79144785621332 +41,TRTR,4,R,81.48212800814055 +42,RTRT,1,R,97.86283782290322 +42,RTRT,2,T,98.42247232680677 +42,RTRT,3,R,100.07597950342607 +42,RTRT,4,T,66.52435792230602 +43,TRTR,2,R,95.751395419687 +43,TRTR,3,T,119.39216339227556 +43,TRTR,4,R, +44,TRTR,1,T,102.55207289991725 +44,TRTR,2,R,95.67663024779193 +44,TRTR,3,T,157.6189403662448 +44,TRTR,4,R,95.76145056419776 +45,RTRT,1,R,94.96149050898516 +45,RTRT,2,T, +45,RTRT,3,R,95.80087444120194 +45,RTRT,4,T,79.46154216556437 +46,RTRT,1,R,93.64298784570386 +46,RTRT,2,T,59.83076483663834 +46,RTRT,3,R,96.03197092583453 +46,RTRT,4,T,76.66533688341559 +47,TRTR,1,T,107.32882370990716 +47,TRTR,2,R,87.0376576810462 +47,TRTR,4,R,85.50376750302097 +48,RTRT,1,R,133.0531301169162 +48,RTRT,2,T,87.2294760068837 +48,RTRT,3,R,134.93760428453564 +48,RTRT,4,T,81.86705239696053 +49,TRTR,1,T,109.03704823983412 +49,TRTR,3,T,77.82284222470382 +49,TRTR,4,R,88.62127885138355 +50,TRTR,1,T,86.78878655477708 +50,TRTR,2,R,89.28253558193433 +50,TRTR,3,T,70.75371013649995 +51,TRTR,1,T,129.06187612958058 +51,TRTR,2,R,72.90250583342413 +51,TRTR,3,T,134.85342570469103 +51,TRTR,4,R,72.53528570152987 +52,RTRT,2,T,63.28865009004237 +52,RTRT,3,R,112.87193441314334 +52,RTRT,4,T,71.23882363051362 +53,RTRT,1,R,102.22256089300305 +53,RTRT,2,T,87.77056818773305 +53,RTRT,3,R,101.37357415227227 +53,RTRT,4,T,98.29186047604126 +54,RTRT,4,T,109.47268347035386 +55,TRTR,1,T, +55,TRTR,2,R,103.01946457357468 +55,TRTR,3,T,82.38273740347047 +56,RTRT,1,R,104.79271311646565 +56,RTRT,2,T,84.00891747384149 +56,RTRT,3,R,103.33978236762776 +56,RTRT,4,T,76.84453377578615 +57,TRTR,1,T,115.56711234252394 +57,TRTR,2,R,80.45471071796266 +57,TRTR,3,T,70.74797433134167 +57,TRTR,4,R,80.05218880650737 +58,RTRT,1,R,108.34024369968414 +58,RTRT,2,T,168.4094724911164 +58,RTRT,3,R,106.54885685792992 +58,RTRT,4,T,148.0399035044671 +59,TRTR,1,T,102.10233146942905 +59,TRTR,2,R,126.75558388285934 +59,TRTR,3,T,94.6591463414822 +60,TRTR,1,T,82.12526162267376 +60,TRTR,3,T,110.23558964025973 +60,TRTR,4,R,125.18574399990858 +61,TRTR,1,T,114.43591713292602 +61,TRTR,2,R,107.75034600800274 +61,TRTR,3,T,111.958658799651 +61,TRTR,4,R,109.92691800300946 +62,RTRT,1,R,94.28419321852806 +62,RTRT,3,R,93.0270185145801 +62,RTRT,4,T,89.82849743761257 +63,RTRT,1,R,82.67958632616195 +63,RTRT,2,T,129.11360682277376 +63,RTRT,3,R,81.83789124413491 +63,RTRT,4,T,93.04709454195304 +64,TRTR,1,T, +64,TRTR,2,R,95.54240682829706 +64,TRTR,4,R,94.14905294402817