qgis3-survex-import-1.2/0000775000175000017500000000000013620367366014676 5ustar wookeywookeyqgis3-survex-import-1.2/example/0000775000175000017500000000000013614350061016314 5ustar wookeywookeyqgis3-survex-import-1.2/example/dgp7.svx0000664000175000017500000000504413614350061017722 0ustar wookeywookey; Dowbergill Passage -- Stalactite Corner to Bridge Cavern *date 2015.07.18 ; Carmen Smith - instruments - distox ; Patrick Warren - notes *begin dgp7 *export 1 43 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 18-07-2015 (2015.54247) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 1.87 *data normal from to tape compass clino 1 2 4.08 025 -17 2 3 12.49 321 -6 3 4 10.18 330 -2.5 4 5 5.23 005 +3.4 5 6 9.63 340 +3 6 7 7.12 354 0 7 8 8.09 339 +2 8 9 3.64 340 +25.5 9 10 6.63 332 -23 10 11 8.59 342 -5.7 11 12 7.74 341 -2.3 12 13 3.83 325 +21 13 14 5.63 336 -5.2 14 15 9.74 351 -4.7 15 16 5.35 348 -5.5 16 17 2.34 319 -7.6 17 18 2.19 289 -18 18 19 8.46 347 +6.2 19 20 5.09 360 -11.5 20 21 3.76 338 +20 21 22 0.33 - down 22 23 5.89 344 -3.3 23 24 1.51 262 +59 24 25 9.13 340 -9 25 26 7.64 344 -4 26 27 2.62 351 +26 27 28 1.90 260 +10 28 29 6.62 343 +7.4 29 30 2.92 314 +1.6 30 31 4.70 345 -0 31 32 3.06 087 -23 32 33 7.40 343 +15 33 34 12.50 339 -8.7 34 35 6.55 340 -4.2 35 36 15.50 343 -1 36 37 3.51 003 +61 37 38 3.41 340 +15 38 39 21.38 341 -15 39 40 18.16 336 -6 40 41 4.33 018 -16 41 42 6.38 318 -34 42 43 5.29 013 +15 *data passage station left right up down ; station 1 is point of stal opposite where crawl emerges 2 1.3 1.0 0.2 1.5 3 1.8 1.7 1.7 0.2 4 0.6 3.0 1.4 0.8 5 2.5 0.7 1.3 1.4 6 0 0.6 3.0 1.2 7 0.9 0 2.8 1.5 8 1.0 0 0.2 1.9 9 1.1 0 4.3 1.5 10 1.1 0.5 4.2 1.0 11 1.2 0.7 3.1 0.4 12 1.1 0 0.5 0.5 13 1.1 1.3 7.0 2.0 14 2.7 1.7 1.0 2.0 15 0 0.5 2.5 1.4 16 0.5 0 3.3 0.7 17 0.5 1.0 0.5 1.0 18 1.2 1.0 1.3 0.1 19 1.3 0.4 0.6 0.7 20 2.1 0 3.3 0.5 21 0.4 0.3 1.7 1.6 ; station 22 base of short vertical dropped from 21 23 0.8 0.2 2.4 0.8 24 0.7 0.8 1.2 1.9 25 0 0.9 0.5 1.4 26 1.4 0.2 5.0 0.4 27 0.6 0 3.8 0.8 28 0 0.6 3.1 2.2 29 1.3 2.0 2.3 0.5 30 0 0.6 1.4 1.3 31 0 0.4 3.5 0.8 32 1.3 0.3 1.3 1.5 33 2.0 1.5 1.8 2.0 ; 34 1.2 2.2 1.8 1.5 ; possible duplicate?? 34 1.2 1.7 2.4 1.0 35 0.6 1.6 3.0 0.1 36 0.8 0.6 0.5 0.1 37 1.8 0.6 5.0 0.7 38 1.7 0.5 3.6 2.3 39 2.6 1.1 2.7 0 40 1.1 2.2 1.3 1.5 41 2.2 0 1.0 1.4 42 0.7 1.4 1.4 0.7 *end dgp7 qgis3-survex-import-1.2/example/ppot1.svx0000664000175000017500000000337413614350061020130 0ustar wookeywookey;Title ppot1 (was PPot1.svx) ; Date 4-2-2005 *date 2005.02.04 ;Providence Pot Ent to top of slope down to first sump (SS1 to SS25) ;and from first sump SS30e to SS25 ;Instruments Suunto compass and clino, Steve Warren ;tape and photo model Peter Whitaker ; notes and photos in dark blue folder *begin ppot1 *export 1 25 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 04-02-2005 (2005.09315) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.65 ; *fix 1 99213 72887 400 ; moved to master file *data normal from to tape compass clino 1 2 6.20 0.00 -90.00 3 2 2.50 278.00 3.00 3 4 3.00 0.00 -90.00 5 4 2.40 228.50 0.00 5 6 5.00 85.50 -4.00 6 7 3.70 98.00 -12.00 7 8 3.85 72.00 -2.00 8 9 2.85 349.00 1.00 9a 9 2.35 292.00 4.00 9b 9a 3.30 265.00 1.00 9b 9c 3.35 96.00 4.00 9a 10 3.15 289.00 -11.00 10 11 3.55 338.00 1.00 12 11 5.70 166.00 -9.00 13 12 7.67 165.00 -41.00 12 14 1.10 45.00 -26.00 14 15 1.30 0.00 -90.00 16 15 3.60 150.00 -3.00 16 17 0.90 319.00 0.00 17 18 2.95 0.00 -90.00 19 18 2.95 111.00 7.00 20 19 7.95 168.00 1.00 19a 19 7.80 161.00 3.00 19b 19a 2.70 129.00 21.00 21 20 2.55 161.00 -1.50 22 21 3.55 151.00 -9.00 22 23 1.30 0.00 90.00 24 23 1.90 150.00 3.00 25 24 5.15 173.00 -16.00 30e 30f 10.10 160.00 0.00 30 30e 4.30 271.00 -9.00 S1 38 0.60 0.00 90.00 37 38 3.00 266.00 -31.00 37 36 2.70 94.00 21.00 36 35 4.00 105.00 26.00 35 34 4.50 94.00 33.00 34 33 0.75 92.00 22.00 33 32 2.30 0.00 90.00 32 31 2.15 136.00 23.00 31 30 2.05 168.00 34.00 30 29 2.40 0.00 90.00 29 28 1.35 93.00 18.00 28 27 1.97 0.00 90.00 26 27 1.70 283.00 -11.00 26 25 4.20 113.00 -3.00 ; 26 26a 20 0 -90 ; PBW commented out 27/10/15, some kind of fake leg *end ppot1qgis3-survex-import-1.2/example/ppot4.svx0000664000175000017500000000117613614350061020131 0ustar wookeywookey;Title ppot4 (was PPot4) ; Date 29-5-2009 *date 2009.05.29 ;Providence Pot Palace area ;Instruments Suunto compass and clino, Steve Warren ;tape and photo model Andy Cole ; notes and photos in dark blue folder *begin ppot4 *export 1 5 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 29-05-2009 (2009.40548) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 2.96 *data normal from to tape compass clino 2 1 7.90 150 14.00 3 2 3.50 6 3.00 4 3 9.05 64.8 -18.00 3 5 2.90 343.2 -5.00 ;5 top of drop down *end ppot4 qgis3-survex-import-1.2/example/HagDyke.svx0000664000175000017500000000103713614350061020373 0ustar wookeywookey; Title: Hag Dyke (surface feature -- building) ; created 27/10/2015 by Patrick Warren (PBW) ; from NGR coords extracted from 1:10k OS map on Magic Map ; Obviously these are measured wrt grid north *declination 0 degrees *begin HagDyke ; W corner at SD 99213 72887, alitude 459m ODN (from OS Terrain 50 dataset). ; OS Terrain 50 dataset Crown copyright and database right (2014). *fix W 98981 73327 459 *data normal from to tape compass clino W N 24.00 045 0 N E 8.50 135 0 E S 24.00 225 0 S W 8.50 315 0 *end HagDyke qgis3-survex-import-1.2/example/DowProv.3d0000664000175000017500000006135113614350061020152 0ustar wookeywookeySurvex 3D Image File v8 DowProv+init=epsg:7405 +no_defs @1573216218 <`i#u@ dowcave.dow1o7`N`2`}`g/`Ӱ'`.``+``#``C``C``#`#``*`v`?` ``9 ```Ŀ`_ `f_/`_,`J_͸`K_ϸ`_`_ni`C_`T_H`_I`_K`h_px!`:{@Grattle1`f։``v?`Ո`ي``u`@`P`Z``݅`Ի`܅`һ`E`u^`Q`Q֍``G``Ǝ`<`2`i`Q``:}@3`ؼ+`X~``{``K{`^`vz``uz``z` }@4z`l`x`]c`w``v`H`v``u`<`u`w}@ydripstone/w``.u``s``xo`ķ`zo`׸`l``Ok``ik`%@`:zBow3`V,bz`Ab:v`˸Xbo`bio`bm`bik`c(Ĭ`9ؖ{@Nchoke2.albert1Ĭ`9`o`Y`V``̫```?``ה`$`z{@tdigaE``E`F``F`j`o`ҧ`7```7````````````N`r`bN``N`2`N`2`>``>``f``? `ϥ`Β``eL`>`ʐz@dow3Ġ`'`Ġ`'Ə``{0``{G`v`iG``Zb`E`3b`ʖ`b`y`i`y`/`ϒ`2/``?=``ډ``H````:Ĭ`9ؖ)|@Nchoke2.albert20`(`````ԯ```+``(̖``&+````S `Ĭ`9ؖ  qAoU`CɁu@glooploop*U`m`S``R`t`O`~`K`ҵ`J`Ҵ`H`` H`I`F``mE`zR`\B`k^`uA`%`?`r_`$=`Ѕ`<`L`;``<`i(oU`CɁz@hobsonsY``]`$`_`$```$`a`S)`a`Sڅ`c`øÅz@udepotke`HD`f``f``ik`1j`e_@bergill1.dgp11j`f_`1j`p_ǃ`@h`f߃`f`YmՃ`d`s`c`u`c`u`c`#yV`c`%yD`_`:~T`_`B~ )Wy*1j`e_` i`b`"h`fg`g`,j`f`Ik`e`;m`_e`m`uc`sۀ`b`v׀`6b`w׀`ma`:zԀ```{Ӏ`4``|Ҁ`4``|`4``|`_`B~"k=&a|@providencepot.ppot1&a9`'ap,`'as`>(a!`/*alߘ`+aS`-a`,a`-az`v,a ?`+aMF`6+ak`z+an`{+a`*a`v*a,`v*a.ږ`a)a`(a`0(a{`t'a`t'am` 'aHc`&a41@2%a)ۘ`%a+`^%aQ`3$aǦ`4$aȦ`#ao`q#a`!aCM`]!aX`` a` a` a@`aɱX`aʱ`a `7a`8aA`ya,`za`a֗@3a `a*`a#=`maXZ`MaY:`Na[͘`a`a`qa`am`ao`xav`:a`:aۘ`a`a\`Ea]`a~u`yav`[a`\a)`]a*T`aJT`aK`< a@4 a˗` aI`/ a]B@60 a_^` a^` a` a"` aϓ` aϓ` a~ޒ`aQ`a`a`Ca`az`]a?w`a܏٤@dowbergill2.dgp7kae`N``@`,```:܎`````s`u/``̏``ˎ``w``Z`````1`d``2``[`S`Ѝ``-`t`ȍ`` I``)`7`C``7````_ ɍ``K =``& ^`` `:`` ``'``AF````iM`.``R` `V`A=``w `(`(`6`.ʌ``0R`@`1``3y&@6{`4``]:c``@>ى`7`?``BA``oD``nFR``FE``=Ib``DM` `Lw`N`\P`Z``*q``Ң`0``ǵ`f(``R`5`]``]`V`]`W`l``s`` `Ա`,`D```o`` W``8````<_Ԕ@4``ҥ```W``,`[`@lj`ˡ`J‰`^`G`ɠ`i'``/W`ڝ`e``x`L````h`׉` `׉`#`yv````7G``<"` `t`` ``Ȁr@3—`+o``F``Z``4`x`O8`}`U`` `` ``Ԁ`I`€`,`ހ`ɉ`Y```P``` ``e``M ˀ``p#`s`b#`w`(``)`A~`p,z`}`V,zO@2|`/{`{`a2}`z`31`z`5`y`9`x`:`~x`h;`9w`>`u`A`mu`B`t`xE`-t`F`1s`I` p`O`o`Q`o`S`kn`\U`m`pW`l`lY`l`[` k`]` k`]f``j`^`0j`c_`1j`e_DV~.J` @1K``mK``L``M`` N``"Q`bڀ`T`l̀`V` `Y`k`UY`X`K[``8\`8`_`B~ 9zuJ`  v@cave.dow2pJ`S`tM`R`R``oU`CɁZ J` `rG` `E``B`U`<`i&t`\=LAhagdyke`CLa`ALaM`;La`\=Ld9 `#u@|dowcave.dow19 ```]`|`g/`Ӱ'`1``j1``Y/`ծoU`CɁ vB2Z`Ɂb^`Ɂba`ɁoU`CɁdZV`ɁoU`CɁdT`ɁoU`CɁdVX`R J` |B:ribblemineE```E``E``A`E``eH`\`J`N`K`߲"`oN`X`Q`$`Q`$ׄ`Q`$m`cT`ӴmQ`$m`Q`0m`Q`0`tP`ӳ`tP`ӳG`SR`_G`SR`_a`Sڅz@hobsons*``o&`]` `n[`i`Z`h`Y`ݸdV`FY`ݸdZ`Y`ݸd'Y`n[`idY`n[`id[`un[`id\`?ik`z@udepoti`(`i`û`,i`ݺO`dg`J`_f`c`?e`ǹ`Zd`^`b`ɏ`W_``(b`:]Zd`^`e`G`h`%y?e`ǹ`?e`ǹi`û`i`?`j`< `j`<zke`HD`d`ֺD`d`ֺ؉`ډzBCow3`ډ/w`}@8ripstoneax`/w``{` ``Ȳw``&./w``w``v܅`һ}@rattle2}`Ѽ``-`m``ʀ`sj`ʀ`s```y~`ȼ`}`w̍`(|`"`[{``Bz``Bz``z`ݼJz` D3`|` z` dx`z` dx``:|@xstemple1Ĉ``2`N`2`N8`Ë```É``L``ʉ``ʉ``ٴʉ```ʉ`:zD2`KdM``:``:`߉`O`߉`O`߉`O׍`:`]`(`c߉`O``o``O:`I`F:`T`:``Dٍ``DD``D`'`DD`D``$D`ډ͂Bclogswayӊ`ObC`_ `C`_`C`_`W`S`W`S``;``;9`4`U9`4`U```I`&`ډzBbridge``ٌ`gy`3```_``ώ`ԏ`c&dǏ`W&`ώ``ώ````ˏ``M`<`5``5``a`5``55`i`f5`Q`5y`i@dtubeB`ҝ`{`e``e{`e```=`i>`ʐ}@Kroofgardens`ed``e``'`{``{`````G``jG>`ʐ|B choke2.roofchambersw``_b`Ȓb`Bd%``BbA`p`ƣ`}``U$``````m>`ʐ}@digb=`Kh`Ħ``'`6`'`e``M`7`*>`ʐz{@Fwetwayۤ`.ʐ`ۤ`.`c``Ѥ``Ѥ` `S`N `S`N*`l`K*``*``S`N `S`N``O=`!`ɐҐ`ͦ`cҐ``Ґ``S`N|BfcellarP`ɏS`N`{``{` `W`?`#`ؑ `.``v``0```S`N{@lwetblackriftm`Ǐ7``b7`A`7`A`]Ĭ`9ؖ{Dalbert1l`ؖĬ`9ؖd`ؖĬ`9ؖdw`oؖԯ`)|@2б`Ĭ`9ؖ``ؖĬ`9ؖ8|B3`1``Z``Z``Z`Ȁr@ bergill1.dgp3```` `O````>`P```{`b``'``` ܔ@5``Ն``Նa܏ݜ@g2.dgp8aa``=͏``ʏ`raI`ac̏`a&`ua`faJ`a`a`Ga@@b- a` a` a$ݜ@a a$O` aO a$b aߑbX aGab ab+ aPa`a@ƒ`a0`&@!6`1``z`<-az@providencepot.ppot1.au`10aؓ6+ak`}*aa)a`6(aW`h'a-&a4`'%a`$aڡ`$aڡ"`$a١`$a١ `Z"aơŕ`#a(ŕ$a١ `#a}`B#aB`B#a\`"a@`!aK`# aJ`'aK;`(a)`(a)d^%aQ1@2}%aĥQ^%aQ`^%aaɱX` a%``!aY`#a`^#a{`$ak!`$a`D%a `h%aI`&aa`;a9ә< a֗@3< aÙ aI@4aј&a|BAsurf@a"a aaaca`ga`{a\`ɪa `Ma`Va`ڱ_af`ǯa`~&a|a:3aa;aRR&a|a"amBaa|2aLa(aa=a aqaa5ra aaH`rr.22H`rr1 a0a5r"19 aq8a=7La(6a|25"amB4;aRR3:3a`~2f`ǯ3`ڱ_4`V5 `M6\`ɪ7`{8`g9ac10 a1@a"s4.4aј43.27< aÙD2.30;a9ә#15a&ah%aI6D%a 7$a8$ak!9^#a{"20#a1`!aY2 a%"4b^%aa}%aĥQ^%aQ41.s1(a)d"38(a)7'aK;6# aJ5!aK4"a@3B#a\2B#aB1#a}0f#a(ŕeZ"aơŕ$a١ "29$a١8$aڡ"7$aڡ6'%a#19bh'a-a6(aW!3}*a"9c10aؓb.audowbergill2.dgp6.35az`<"1a`T8a.8a07a@ƒ3+ aP4 a3xX a!2 aߑ1b aOa a$O a$3b.1 a$na ab- a15Ga3a.5Ga6a9a10faJ1ua2a&3ac̏4raI5`ʏ6`=͏7a8a܏1.dgp5.17`Ն"7a`D3.31`0`'"29{`b8`7>`P6`5O`4` 3``cave.choke2.albert3.1`Z2`Z3`Z4`15Ĭ`9ؖ32.d`ؖ6б`41.1cw`oؖb`ؖĬ`9ؖal`ؖwetblackrift.13A`]2A`71`b70m`Ǐ7!9S`Ncellar.a`b0`cv`d.`11#`ؑ W`?2{` 3{`5P`ɏ4S`Nwetway.13`2`Ґ1ͦ`cҐ0!`ɐҐ"9a`O=S`N8`7a`*l`K*6aS`N*S`N 5aѤ` Ѥ`4c`3ۤ`.2ۤ`.ʐ1>`ʐdigb.17`*2`M3'`e4'`65Ħ`6=`Kh7>`ʐoroofchambers.10`m!9`8`7`U$6ƣ`}5A`p4a%``B3`Ȓ2w``_1>`ʐdiga.1>`ʐroofgardens.14`jG3`G2`1{`0{`!9`'8c``e7>`ʐtube.6=`i5`4`e3{`e2B`ҝ1y`ijbridge.14bQ`5ai`f5`553`a2`51<`50a`M`ˏ!9`8`ώgolǏ`W&17ԏ`c&6`ώ5`_43`3ٌ`gy2`1`ډclogsway.1aI`&`24`U34`U94`;95`;6W`S7W`S8C`_aC`_!9C`_ 10ӊ`O1`ډstemple2.17`$D6'`DD5`D4`DD3`Dٍ2T`:1I`F:0`O:!9`o8(`c7:`]6߉`O׍5߉`O4߉`O3`:1aM``K2`:41.11``ʉ0`ٴʉ!9`ʉ8`ʉ7`L6`É5Ë`42`N832`N2Ĉ`1`:rattle3.dx`cx`bz` a`|` 42.21z`ݼJ2Bz`3Bz`4[{`5(|`"6}`w̍7y~`ȼ8`9ʀ`s"30ʀ`sj1m`2`-3}`Ѽ4܅`һdripstone.sw``v1`&.2`Ȳw3{` 79ax`ow3.11a`ډxepot.19bd`ֺ؉ad`ֺD!4j`<z3j`< 2i`?!7?e`ǹ4bh`%yae`G!1(b`:]2W_`3b`ɏ4Zd`^6?e`ǹ8_f`c9dg`J10,i`ݺO1i`û5i`(hobsons.3c\`?b[`uaY`n[`i1c'Y`bZ`Y`ݸaV`F!2Z`h4]` 5*``o&dribblemine.17SR`_6SR`_G5tP`ӳG4tP`ӳ3Q`02Q`0m1cT`Ӵm0Q`$m!9Q`$ׄ8Q`$7oN`X6K`߲"5J`N4eH`\3aA`E`2E`1E``31J` ow2.35cVX`R bT`ɁaZV`Ɂ!8a`Ɂ7^`Ɂ6Z`Ɂ5oU`CɁE1.24cY/`ծbj1`a1`313c|`b`]a9 ` hagdyke.sM`;Le`ALn`CLdowcave.dow2.28B`U9E`"30rG` 4R`3tM`R2pJ`S1J` bergill1.dgp1.118\`80K[`"9aUY`XY`k8V` 7T`l̀6"Q`bڀ5a N`M`4L`3mK`2K`1J` 32.11j`e_20j`c_3`j`^4 k`]f5 k`]6l`[7l`lY8m`pW9kn`\U10o`S1o`Q2 p`O31s`I4-t`F5t`xE6mu`B7u`A89w`>9~x`h;"20x`:1y`92z`53z`314{`a2}5|`/{6}`V,zC3.1}`V,z2A~`p,z3`)4w`(5s`b#a`p#!6`M ˀ7`e8` 9P`a`"10ɉ`Y1,`ހ2I`€3`Ԁ4` 5` 6}`U7x`O88`49`Z"20`F1—`+o2`ȀC4.1`Ȁ2` 3 `t4`<"5`7Ga`!6#`yv7 `׉ah`׉!8`aL`!9`x10ڝ`e1`/W2ɠ`i'3^`G4ˡ`J‰5[`@lj6`,a`W!7ҥ`8`9`<_C5.1`<_2`a`8!3` W4`o5D`6Ա`,7` 8`s9W`l10V`]1`]a5`]!2`R3ǵ`f(40`a`Ң!5>`*q6`Ն2.dgp6.46`Ն5`54`M3`$2S`|1]`˙0/`3"39h`N8`r7?`'6`m|5`41`3ۿ`+چ2`x1`0`"29k` 8U`M7,` !6n`|5`{~4:`w3 `it2`r 1f`eo0`FiLJ"19`eՇ8`^7`qZ56}`Y'5q`WV;4Z`ى3`]:c2{`41`3y47.43`3y2@`11`0R06`.ʌ"39(`(8`w 7V`A=6R` 5.`4`iM3`2`AF1`'0:`` "29` 8`& ^7`K =6`_ ɍ5`4`737`C2`)1` I0t`ȍ"19`-8S`Ѝ7`[6`251`d4`3`2`Z1`w0`ˎ!9`̏8s`u/7`6`5``:܎4@`,3N`2kae1a܏providencepot.ppot6.15a܏4]a?w3az2Ca1a0a!9aQ8 a~ޒ7 aϓ6 aϓ5 a"4 a3 a^20 a_^1/ a]34.5/ a]3 aI2 a˗1< a43.26< a5aK4aJT3]a*T2\a)1[a0yav"19a~u8Ea]7a\6a5:aۘ4:a3xav2ao1am0qa!9a8a7Na[͘6MaY:5maXZ4a#=3a*2a 1a42.29a8za7ya,68aA57a4a 3aʱ"14aɱX3 a@2 a1 a0]!aX`!9!aCM8q#a7#ao64$aȦ53$aǦ3%a+2%a)ۘ1&a441.25&a44 'aHc3t'am2t'a10(a{0(a"19a)a8v*a.ږ7v*a,6*a5{+a4z+an26+ak1+aMF0v,a ?"9a-az,a8-a7+aS6/*alߘ5>(a!4'as3'ap,2&a9dowbergill1.dgp1.134``|44``|54``|Ҁ6``{Ӏ7ma`:zԀ86b`w׀9b`v׀"20uc`sۀ1_e`m2e`;m3f`Ik4g`,j5"h`fg6 i`b"36_`:~T5c`%yD4c`#yV3c`u2c`u1d`s0f`YmՃ"29@h`f߃81j`p_ǃ7a1j`f_ cave.depot.16ik`7f`8f`9ke`HD"20c`øÅhobsons.7c`øÅ6a`Sڅ8a`S)9``$10_`$1]`$2Y`"35oU`CɁglooploop.1<`i2;`3<`L4$=`Ѕ5?`r_6uA`%7\B`k^8mE`zR9F`10 H`I1H`2J`Ҵ3K`ҵ4O`~5R`t6S`7*U`m8oU`CɁ choke2.albert2.1Ĭ`9ؖ1`S 0`!9`&+8`(̖7`+5ԯ`4`3`20`(dow3.9`10`H1`ډ2`?=3ϒ`2/4y`/5y`i6ʖ`b7E`3b8`Zb9v`iG"20`{G1`{02Ġ`'Ə3Ġ`'4>`ʐ}choke2.diga.2`eL3ϥ`Β4`? 5`f6`>72`>82`N9`N10r`bN1``N2``3`4`5`6``77ҧ`78j`o9`F"20E`F1E`2$`yalbert1.7$`6`ה5`?4̫`3V`2ao`YĬ`9dow3.2m`3io`4o`5:v`˸X6z`A7`V,[ripstone.71ik`2Ok`3l`4zo`׸5xo`ķ6s`7.u`8/w`au`wrattle4.41au`wu`<2v`3v`H4w`5x`]c6z`l7z` C3.euz`fvz`19K{`^8{`7X~`6`ؼ+5`:D1.15`:4i`Q3<`22`Ǝ1`G0Q`Q֍!9E`u^8܅`һ7݅`Ի6Z`5@`P4`u3Ո`ي2`v?1`f։a`:dow1.2_K3_I4T_H5C_6_ni7_8K_ϸ9J_͸10_,1f_/2_ 3`Ŀ49 `5 `6v`?7`*8#`#9C`"20C`1#`2+`3.`4g/`Ӱ'52`}6o7`N7<`iC3.8`:1ik`42.27<`i bergill1.dgp1.12_`B~"271j`e_ cave.dow1.1h_pxhentranceh_pxprovidencepot.ppot1.1&a|xentrance&a|ppotsurf.12&a| hagdyke.w`\=L٤0 dowbergill2.dgp7.2d0304<,P05F06<,x07Z08d09n010n2d01xF6(02n2203n04d052062JF072d2d08xd 09(<F0"20J201(03PP04FPx05Z206(07<|P08<60920"30<01(^P020304xd05<, 06P<2 07<F082h09n0"40n01d12FFݜ0D8a.1x02d03,04P05x,,06^07^d08d2092010P2dx01dP02(P03d 04dd05F,,06,0718dqgis3-survex-import-1.2/example/glooploop.svx0000664000175000017500000000200613614350061021066 0ustar wookeywookey; 010682 *date 1982.06.01 ; is through the high level route 1 - 18 Gloop Loop to Final Chamber ; is Survey line S3 Line 4 ; by SEW, PBW, EEW *begin glooploop *export 1 2 7 18 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 01-06-1982 (1982.41370) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 7.09 *data normal from to tape compass clino 1 2 7.16 342.00 29.00 ; 1 is Mkr for Gloop Loop 3 2 7.80 202.00 -12.00 3 4 11.89 10.00 52.00 5 4 6.86 268.00 -13.00 ;4-5 thro low bit 5 6 6.40 138.00 34.00 7 6 6.10 342.00 34.00 ;7 is near start of crawl 7 8 7.62 98.00 0.00 9 8 3.96 302.00 14.00 9 10 3.05 79.00 -14.00 10 11 3.05 142.00 16.00 11 12 3.96 87.00 -6.00 12 13 3.96 60.00 -5.00 13 14 11.28 74.00 0.00 ;14 is start of low canal 14 15 6.79 94.00 0.00 15 16 4.02 55.00 -30.00 16 17 3.81 70.00 -7.00 17 18 6.86 28.00 -77.52 ;18 is Mkr for Final Chamber *end glooploop qgis3-survex-import-1.2/example/Dowbergill2.svx0000664000175000017500000000072113614350061021232 0ustar wookeywookey; Title: Dowbergill Passage upstream from 800 yds chamber ; created 27/10/2015 by Patrick Warren (PBW) from an original by Steve Warren ; This is the second half of Dowbergill Passage, surveyed 2009-15 by WRPC/RRCPC/CPC. *begin Dowbergill2 *export dgp7.1 *export dgp6.46 *include dgp8a ; 121209 Dec 2 52 *include dgp8b *include dgp7 *include dgp6 *equate dgp8a.1 dgp8b.1 *equate dgp8a.5 dgp8b.5 *equate dgp8a.18 dgp7.1 *equate dgp7.43 dgp6.1 *end Dowbergill2 qgis3-survex-import-1.2/example/dow2.svx0000664000175000017500000000226113614350061017732 0ustar wookeywookey; Title: Dow Cave - Gloop to final chamber and start of Hobson's *date 1982.09.26 ; by SEW (Steve Warren), PBW (Patrick Warren), DR (Dennis Round) ; is Book 1 - 3 ; was SS13 - 24 ; is Survey line 2; S2 Line 8 ; is program SS27 - 38 Gloop Mkr to Final Chamber & start of Hobsons *begin dow2 *export 27 31 35 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 26-09-1982 (1982.73425) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 7.04 *data normal from to tape compass clino 27 28 14.33 112.00 -2.00 ; 27 (ex 13) is Mkr for Gloop Loop 29 28 9.68 261.00 -3.00 29 30 10.36 36.00 5.00 31 30 9.53 258.00 1.00 31 32 4.04 352.00 10.00 33 32 8.47 256.00 1.00 33 34 16.15 66.00 1.00 35 34 8.08 246.00 -2.00 *flags duplicate ; (Original Final Chamber) through to Hobsons 35 36 12.19 113.00 0.00 36 37 12.19 113.00 0.00 37 38 8.23 113.00 0.00 ; 38 is bottom of squeeze up to Hobsons *flags not duplicate *flags splay ; (Original Final Chamber) 35 35a 4.57 156.00 0.00 ;35 (ex 21 ) is Mkr for Final Chamber 35 35b 3.96 336.00 0.00 35 35c 8.53 77.00 22.00 *flags not splay *end dow2 qgis3-survex-import-1.2/example/clogsway.svx0000664000175000017500000000145613614350061020714 0ustar wookeywookey;060791 Clogs Way *date 1991.09.06 *begin clogsway *export 11 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 06-09-1991 (1991.67945) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 5.79 *data normal from to tape compass clino 1 2 8.00 140.0 0.0 1 1a 6.00 320.0 0.0 ; 1-1a estimated into choke continuation forward 2 3 1.50 0.0 90.0 3 4 3.00 166.0 0.0 4 5 2.00 0.0 90.0 5 6 3.00 146.5 0.0 6 7 1.00 0.0 -90.0 7 8 5.00 188.0 0.0 8 8a 0.30 0.0 -90.0 8a 9 11.40 0.0 -90 *flags duplicate ; (Clogs Way) tie in to main passage 10 9 5.00 310.0 -15.0 ; 8-9 is ladder pitch 11 10 14.80 331.0 -3.0 ; 11 is rock point in front of waterfall *flags not duplicate *end clogsway qgis3-survex-import-1.2/example/dgp8a.svx0000664000175000017500000000446713614350061020074 0ustar wookeywookey; Dowbergill Passage, Stalagmite Corner to Upstream Sump, *date 2009.12.12 ; Surveyors: Becka Lawson (RL), Patrick Warren (PBW) ; Instruments: RL tape & tandem, RL reading tandem, PBW notes. ; Part resurveyed PBW and Steve Warren (SEW) 21/3/2010 (see dgp8b) ; All station marking done with erasable 'liquid paper' ; Providence Pot: 54.1518, -2.0136 ; = N 54 deg 9 min 7 sec, W 2 deg 0 min 52 sec ; Magnetic decln = 2 deg 52 min W = 2.87 (Dec 2009) ; from http://www.ngdc.noaa.gov/geomagmodels/struts/calcDeclination ; was originally called PPot5.svx ; This file doesn't close: the centreline is broken at 3-3x *begin dgp8a *export 1 5 18 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 12-12-2009 (2009.94521) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 2.87 *data normal from to tape compass clino ; sheet (2) 1 1a 0.95 - down 1a 1b 3.00 181 0 *flags duplicate 1 2 7.00 338 +4 2 3x 2.36 352 +7 ; questionable whether the length is correct - maybe more like 5m ! 3 4 8.85 335 -5 4 5 8.96 322 -5 *flags not duplicate 5 6 6.54 324 +9 6 7 7.04 001 +14 7 8 3.41 330 +33 ; sheet (4) 6 9 4.01 - down 10 9 1.05 115 +38 10 11 6.01 339 -8 11 12 9.18 337 +3 12 13 6.46 342 -8 13 14 4.04 269 +7 14 15 9.90 333 -3 15 16 1.86 329 +1 16 17 7.33 036 -3 17 18 3.85 052 +8 ; 19 18 10.77 300 -22 ; patrick commented out this line, 21/3/10 *data passage station left right up down ; sheet (1) 1 2.2 0 1.3 1.2 ; marked (white dot + number), high on wall opposite diving line tie off ; ; station 1a is upstream sump water level ; ; station 1b is estimated start of flooded passage 2 1 1.3 2 1.7 3 2.5 0 3 2.5 4 2 1.5 0.8 2.2 5 5 1.2 3 3 ; marked (white dot + number), on top of random boulder in big chamber 6 3.5 2.5 2 5 ; marked (white dot + number), on wall above 2.5m climb up from stream 7 1.4 0 3.5 1.0 ; down illegible, done from memory 8 1 0.5 2 0 ; down illegible, from memory; station at base of dribbly loose aven ; sheet (3) 9 1.3 0.5 5 1.5 ; base of 2.5m climb up from stream 10 0.8 0.5 1 1.2 11 0.2 1 2 0.8 12 0.4 0.8 1.9 1.9 13 1.0 0.1 1.3 1.6 14 1 1 2 1.7 15 0.7 3 3 1.7 16 0.3 3 2.2 1.6 17 2.5 2 1.8 1.4 18 1 2 2.3 2 ; marked (white dot only), on top of spike boulder opposite crawl entering from PP *end dgp8a qgis3-survex-import-1.2/example/wetblackrift.svx0000664000175000017500000000105513614350061021540 0ustar wookeywookey;260786c Cellar to Wet Black Rift *date 1986.07.26 ;SEW SB ;Book 17/3 ;Line is L51 *begin wetblackrift *export 9 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 26-07-1986 (1986.56438) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.48 *data normal from to tape compass clino 9 10 3.3 122.0 -19.0 ; 9 is centre cellar 10 11 2.0 127.0 0.0 11 12 3.0 87.0 0.0 12 13 5.5 0.0 90.0 ; 12 is bottom of wet black rift *end wetblackrift qgis3-survex-import-1.2/example/README.md0000664000175000017500000000142113614350061017571 0ustar wookeywookey# Sample georeferenced cave survey data This directory contains the cave survey data used in the georeferencing examples. It is for the [Dow Cave - Providence Pot system](http://www.mudinmyhair.co.uk/ "Mud in My Hair") (Great Whernside, Wharfedale, UK), and is essentially a snapshot of the data held in the [Cave Registry Data Archive](http://cave-registry.org.uk/ "Cave Registry"). Note that the `.svx` files have [unix-style line endings](https://en.wikipedia.org/wiki/Newline "wikipedia") so on Windows you might have to use something like [Notepad++](https://notepad-plus-plus.org/ "Notepad++") to look at them. The processed data is [`DowProv.3d`](DowProv.3d), generated using survex 1.2.38. For more details see [`cave_surveying_and_GIS.pdf`](../cave_surveying_and_GIS.pdf). qgis3-survex-import-1.2/example/ppotsurf.svx0000664000175000017500000000124313614350061020740 0ustar wookeywookey;Title ppotsurf (was PPot1surfGB.svx) *calibrate declination 3.62 ; unclear how this was arrived at *begin ppotsurf *export 12 *data normal from to tape clino compass 1 2 28.80 13.00 131.40 2 3 27.60 4.00 82.50 3 4 35.50 4.00 123.60 4 5 16.50 11.00 108.60 5 6 16.80 9.00 80.40 6 7 32.55 4.00 126.00 7 8 30.50 6.00 116.40 8 9 25.00 6.00 105.60 9 10 33.30 5.50 113.40 10 11 42.00 6.00 111.00 11 12 27.40 5.00 108.00 12 13 33.00 9.00 87.00 14 13 24.50 -10.00 246.00 12 15 16.00 15.00 314.40 15 16 26.90 22.00 329.40 16 17 30.90 18.00 342.00 17 18 33.70 12.00 333.00 18 19 49.30 12.00 339.60 19 20 9.20 -3.50 324.00 20 21 18.50 -29.00 298.20 22 21 18.5 -29 118 *end ppotsurf qgis3-survex-import-1.2/example/hobsons.svx0000664000175000017500000000210313614350061020525 0ustar wookeywookey;151285 1 - 12 - 35 Above Hobsons *date 1985.12.15 ; SEW PBW EEW ; (1st Miners Chamber) down to Hobsons ; S5 Line 15 *begin hobsons *export 7 35 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 15-12-1985 (1985.95342) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.56 *data normal from to tape compass clino *flags splay ; (1st Miners Chamber) 1 1a 10.00 235.00 0.00 ; 3 is centre of chamber 1 1b 10.00 162.00 35.00 1 1c 3.05 342.0 0.0 *flags not splay 2 1 2.44 290.00 18.00 3 2 10.67 200.00 -22.00 *flags splay ; (1st Miners Chamber) 3 3a 4.57 295.00 0.00 3 3b 3.05 35.00 0.00 ; 3a-3b is 10m high cascade from Cas Gill 3 3c 4.50 138.00 0.00 *flags not splay 3 4 9.90 145.00 -35.00 5 4 7.95 268.00 31.00 6 5 7.92 309.00 48.00 6 7 3.35 122.00 -4.00 ; 7 is Mkr above Hobsons 6 8 4.33 0.00 -90.00 9 8 4.23 60.00 38.00 10 9 3.66 119.00 0.00 11 10 7.16 67.00 0.00 12 11 8.99 120.00 2.00 12 35 12.20 291.00 -15.00 ; 35 is Mkr Final Ch *end hobsons qgis3-survex-import-1.2/example/dribblemine.svx0000664000175000017500000000162013614350061021331 0ustar wookeywookey;220687 31 - 1 - 17 Dribble Mine *date 1987.06.22 ; is S4 Line 71 ; is Dribble Mine Series ; done by SEW *begin dribblemine *export 31 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 22-06-1987 (1987.47123) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.35 *data normal from to tape compass clino *flags duplicate ; (Dribble Mine) tie in to main passage 31 1 14.22 261.00 3.50 *flags not duplicate 1 2 5.60 0.00 90.00 2 3 1.00 10.00 0.00 3 3a 10.00 270.00 0.00 4 3 7.30 269.00 0.00 5 4 4.45 257.00 8.50 6 5 3.90 278.50 6.50 6 7 7.70 81.50 4.00 8 7 8.00 267.00 -6.00 8 9 3.00 0.00 90.00 9 10 1.50 0.00 90.00 11 10 7.60 263.00 0.00 12 10 0.50 263.00 0.00 12 13 5.30 0.00 90.00 13 14 3.30 260.00 0.00 14 15 2.00 0.00 90.00 15 16 5.00 80.00 0.00 16 17 2.00 0.00 90.00 *end dribblemine qgis3-survex-import-1.2/example/depot.svx0000664000175000017500000000221313614350061020167 0ustar wookeywookey;241285 17 - 20 Depot Cham to Hobsons *date 1985.12.24 ; and 1 - 16 Depot Chamber Mine series ; Includes 260186 19 -19a - 19b ; Black Inlet 19 is Mkr for Black Inlet ; 20 is Hobsons Mkr and ; 16 is Depot Chamber Mkr *begin depot *export 16 20 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 24-12-1985 (1985.97808) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.56 *data normal from to tape compass clino 16 17 12.20 283.00 13.00 17 18 2.74 0.00 -90.00 19 18 4.04 83.00 26.00 19 20 6.25 264.00 -12.00 ;20 is Hobsons Mkr 2 1 8.53 128.50 5.00 2 3 10.67 66.00 -18.00 3 4 4.42 118.00 7.00 4 4a 4.27 100.00 24.00 4a 4b 6.00 100.00 20.00 4 6 4.57 130.00 -53.00 6 7 4.11 0.00 -90.00 8 6 3.51 248.00 21.00 8 9 4.42 55.00 -38.00 9 10 5.03 110.00 -21.00 10 11 3.46 40.00 -37.00 11 12 5.35 357.00 44.00 12 13 6.20 97.00 60.00 13 14 3.66 0.00 90.00 11 15 11.89 190.00 -46.00 16 15 5.79 260.00 32.00 19a 19 4.27 165.5 0 ;19 is Mkr Black Inlet 19a 19b 9.16 0 90 ;19b is Black Inlet *end depot qgis3-survex-import-1.2/example/ProvidencePot.svx0000664000175000017500000000153113614350061021637 0ustar wookeywookey; Title: Providence Pot ; created 27/10/2015 by Patrick Warren (PBW) from an original by Steve Warren *begin ProvidencePot *export entrance *export ppot6.15 ; entrance at SD 99213 72887, alitude 401m ODN (from OS Terrain 50 dataset). ; OS Terrain 50 dataset Crown copyright and database right (2014). *entrance entrance *fix entrance 99213 72887 401 *equate entrance ppot1.1 *include ppot1 ; 060205 Dec 3 37 *include ppot2 ; 090405 Dec 3 36 *include ppot3 ; 040606 Dec 3 25 *include ppot4 ; 250509 Dec 2 57 *include ppot6 ; PBW added this line, 21/3/10 ; ppot5 has been moved into Dowbergill2.svx and renamed dgp8.svx *equate ppot1.25 ppot2.1 *equate ppot2.29 ppot3.1 *equate ppot3.26 ppot4.1 *equate ppot6.1 ppot4.5 ; PBW added this line, 21/3/10 *flags surface *include ppotsurf *flags not surface *equate ppot1.1 ppotsurf.12 *end ProvidencePot qgis3-survex-import-1.2/example/dgp4.svx0000664000175000017500000000174113614350061017717 0ustar wookeywookey; Title: Dowbergill Passage - up into roof level traverses above narrows *date 2004.04.25 ;Dowber Gill Passage dgp4 *begin dgp4 *export 1 19 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 25-04-2004 (2004.31421) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.77 *data normal from to tape compass clino 1 2 5.80 0.00 90.00 2 3 4.40 165.00 55.00 3 4 5.40 350.00 53.00 4 5 5.50 0.00 90.00 5 5a 2.05 145.00 58.00 5a 6 6.25 180.00 12.00 6 7 14.80 174.00 4.00 7 7a 1.00 84.00 0.00 7a 8 4.30 155.00 -40.00 8 8a 0.80 74.00 0.00 8a 9 14.30 164.00 2.00 9 10 2.65 99.00 43.00 10 11 8.85 164.00 12.00 11 12 13.05 162.00 -2.00 12 13 6.85 168.00 -35.00 13 14 4.00 160.00 47.00 14 15 3.00 155.00 1.00 15 16 9.20 176.00 -31.00 16 16a 1.00 66.00 0.00 16a 17 15.65 156.00 -2.00 17 18 9.30 151.00 17.00 18 19 39.50 163.00 -1.00 *end dgp4 qgis3-survex-import-1.2/example/DowCave.svx0000664000175000017500000000247513614350061020416 0ustar wookeywookey; Title: Dow Cave ; created 10/2015 -- 3/2016 by Patrick Warren (PBW) from original ; compilations by Steve Warren ; Dow Cave entrance at SD 98378 74300, alitude 334m ODN. Corresponds ; to 1:10k OS map on Magic Map. Altitude from levelling from a ; benchmark at Park Rash (Bob Cross + Steve Warren, 1986). *begin DowCave *export entrance *export dow2.31 *export dow2.35 *entrance entrance *fix entrance 98378 74300 334 *equate entrance dow1.1 *include dow1 *include dow2 *include glooploop *include dribblemine *include hobsons *include depot *include dow3 *include dripstone *include rattle1 *include rattle2 *include rattle3 *include rattle4 *include stemple1 *include stemple2 *include clogsway *include bridge *include tube *include roofgardens *include choke2 *equate dow1.27 dow2.27 *equate dow2.27 glooploop.1 *equate dow2.35 glooploop.18 *equate dow2.31 dribblemine.31 *equate dow2.35 hobsons.35 *equate hobsons.7 depot.20 *equate depot.16 dow3.1 *equate dow3.1 dripstone.71 *equate dow3.8 rattle1.1a *equate rattle1.8 rattle2.34 *equate rattle1.15 rattle3.15 *equate rattle3.b rattle4.47 *equate dripstone.78a rattle4.41a *equate dow3.8 stemple1.1 *equate dow3.8 stemple2.2 *equate dow3.11 clogsway.11 *equate dow3.11 bridge.1 *equate dow3.15 tube.1 *equate dow3.24 roofgardens.7 *equate dow3.24 choke2.digA.1 *end DowCave qgis3-survex-import-1.2/example/ppot3.svx0000664000175000017500000000217313614350061020126 0ustar wookeywookey;Title ppot3 (was PPot3) ; Date 4-6-2006 *date 2006.06.04 ;Providence Pot start of Blasted Crawl to Palace ;Instruments Suunto compass and clino, Steve Warren ;tape and photo model Simon Beck ; notes and photos in dark blue folder *begin ppot3 *export 1 26 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 04-06-2006 (2006.42192) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.44 *data normal from to tape compass clino 1 2 2.30 256.00 7.00 2 3 1.50 261.00 12.00 3 4 4.36 335.00 2.50 4 5 3.18 347.00 5.00 5 6 2.57 356.00 -7.00 6 7 1.10 0.00 -90.00 7 8 4.43 336.00 -8.00 8 9 1.40 253.00 0.00 9 10 11.47 342.00 0.00 10 11 1.78 226.00 0.00 11 12 2.68 0.00 90.00 12 13 2.91 336.00 0.00 13 14 1.50 339.00 0.00 14 15 1.99 0.00 -90.00 15 16 1.95 340.00 -10.00 16 17 0.93 0.00 -90.00 17 18 3.49 334.00 0.00 18 19 4.40 338.00 3.00 19 20 8.89 345.00 0.00 20 21 5.25 330.00 5.00 21 22 7.14 342.00 0.00 22 23 0.83 0.00 -90.00 23 24 2.95 20.00 0.00 24 25 0.50 0.00 90.00 25 26 8.05 335.00 0.00 26 27 3.14 0.00 90.00 *end ppot3 qgis3-survex-import-1.2/example/albert2.svx0000664000175000017500000000201713614350061020411 0ustar wookeywookey;100187 Albert Hall to end *date 1987.01.10 ;Book 3 ;Line L54 ;Albert Hall - End ;SEW SB SH EEW ;1 is Albert Hall Ent Mkr ;2 is top of mud slope ;4 is water level in small chamber ;5 is top of pile of boulders between ;Pool Chamber and Curtain Chamber ;contains sketch Curtain Chamber ;6 is point on roof of Curtain Chamber ;7 is centre of Curtain Chamber ;8-9 is down to water ;11 is 3.85 above water ;D is wall and 1-d is 73 degrees or 173 degrees *begin albert2 *export 1 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 10-01-1987 (1987.02466) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.41 *data normal from to tape compass clino 1 2 5.00 134.0 29.0 2 3 3.20 150.0 -56.0 3 4 1.70 0.0 -90.0 4 5 2.90 91.0 5.0 5 6 5.10 91.0 0.0 5 7 2.10 63.0 0.0 7 8 3.20 331.0 0.0 8 9 2.00 0.0 -90.0 9 10 3.70 325.0 29.0 10 11 3.70 244.0 0.0 11 1 3.30 272.0 -13.0 1 D 3.50 173.0 0.0 *end albert2 qgis3-survex-import-1.2/example/digB.svx0000664000175000017500000000154113614350061017724 0ustar wookeywookey;020488 Dig B out ('tother PART THEREOF) *date 1988.04.02 ;Book 15/1 SEW AD ;Line is L83 ;SS7 is 2nd Choke Mkr ;Dig B Resurvey ;1 is at Dig B ;7-13 is into Roof gardens ;9 is wedged flake start of Roof Gardens = 2nd chocks *begin digB *export 7 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 02-04-1988 (1988.25137) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.24 *data normal from to tape compass clino 2 1 3.85 150.5 35.0 3 2 3.00 164.0 39.0 4 3 5.20 99.5 10.0 5 4 3.90 105.0 23.0 6 5 4.10 80.5 7.5 6 7 2.95 299.5 19.5 ;8 7 8.30 154.0 13.0 ;8 9 9.05 244.0 18.0 ;8 8c 6.65 30.0 24.0 ;10 9 9.25 121.0 10.0 ;10 11 5.20 0.0 -90.0 ;12 11 1.80 228.0 0.0 ;12 13 2.00 0.0 90.0 ;14 13 3.60 335.00 0.0 *end digB qgis3-survex-import-1.2/example/dgp8b.svx0000664000175000017500000000111013614350061020053 0ustar wookeywookey; Dowbergill Passage, Stalagmite Corner to Upstream Sump, *date 2010.03.21 ; 1--5 centreline resurved, 21/3/2010, PBW + SEW ; Instruments: PBW tape + tandem, PBW reading, SEW notes *begin dgp8b *export 1 5 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 21-03-2010 (2010.21644) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 2.83 *data normal from to tape compass clino 1 1na 13.00 342 +3 1na 1nb 12.80 343 -5 1nb 5 7.17 320 +4 *end dgp8b qgis3-survex-import-1.2/example/choke2.svx0000664000175000017500000000116613614350061020235 0ustar wookeywookey; Summation of all or nearly all survey lines around Second Choke ; includes Crawl, Dig A, Albert Hall, Wet Way, Cellar, Dig B, Roof ; Chambers. ; 2CM is 2nd Choke Mkr *begin choke2 *export digA.1 *include digA *include roofchambers *include digB *include wetway *include cellar *include wetblackrift *include albert1 *include albert2 *include albert3 *equate digA.1 roofchambers.1 ; 2CM *equate digA.1 digB.7 ; 2CM *equate digA.1 wetway.1 ; 2CM *equate wetway.9 cellar.4 ; CellM *equate wetway.9 wetblackrift.9 ; CellM *equate digA.22 albert1.7 *equate albert1.1 albert2.1 ; AHM *equate albert1.1 albert3.5 ; AHM *end choke2 qgis3-survex-import-1.2/example/wetway.svx0000664000175000017500000000160413614350061020377 0ustar wookeywookey;190786b Wet Way *date 1986.07.19 ;1=2CMkr ;includes 260786 cont from previous (SS9=SS9) ;see XLS190786a/xls for 17 - 19 which is part of Dig A *begin wetway *export 1 9 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 19-07-1986 (1986.54521) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.48 *data normal from to tape compass clino 1 2 2.10 138.0 0.0 ; 1 is 2CM 2 3 2.30 0.0 -90.0 3 4 6.00 198.0 0.0 4 5 3.30 167.0 0.0 5 5a 0.40 0.0 90.0 5a 6 1.60 132.0 0.0 6 6a 0.30 0.0 90.0 6a 7 2.60 181.0 0.0 7 7a 4.00 340.0 0.0 7a 8 1.00 0.0 90.0 6 9 1.50 0.0 90.0 ; 9 is centre of Cellar 9 9a 3.10 350.0 30.0 ; is Cellar Mkr 9a 10 3.30 122.0 -19.0 10 11 2.00 127.0 0.0 11 12 3.00 87.0 0.0 12 13 5.50 0.0 90.0 ; 12-13 up Wet Black rift *end wetway qgis3-survex-import-1.2/example/ppot2.svx0000664000175000017500000000242113614350061020121 0ustar wookeywookey;Title ppot2 (was PPot2) ; Date 9-4-2005 *date 2005.04.09 ;Providence Pot SS25 of PPot1 to start of Blasted Crawl ;Instruments Suunto compass and clino, Steve Warren ;tape and photo model Peter Whitaker ; notes and photos in dark blue folder *begin ppot2 *export 1 29 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 09-04-2005 (2005.26849) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.62 *data normal from to tape compass clino 2 1 5.95 158.50 -23.00 2 3 2.03 0.00 90.00 4 3 4.33 167.00 -23.00 4 4a 2.80 10.00 0.00 4 4b 4.0 0.0 90.00 5 4 6.21 154.00 10.00 5 6 1.00 0.00 -90.00 7 6 2.28 160.00 5.00 8 7 1.62 143.00 -8.00 9 8 6.77 148.00 5.00 10 9 5.48 168.00 -2.00 11 10 3.50 163.50 -11.00 12 11 2.51 172.00 -4.00 12 13 1.19 0.00 -90.00 14 13 8.48 166.00 -1.50 15 15a 4.00 70.00 0.00 16 15 1.45 18.00 3.50 17 16 1.94 37.00 -5.00 18 17 1.97 30.00 -1.00 19 18 3.78 54.00 1.00 20 19 1.54 28.00 7.00 21 20 4.72 75.00 0.00 22 21 2.39 29.50 -7.00 14 22 3.26 106.00 -9.00 14 23 1.00 0.00 -90.00 24 23 3.50 60.00 3.00 25 24 6.20 90.00 -1.00 25 26 1.74 0.00 -90.00 27 26 2.06 76.00 6.00 28 27 0.94 0.00 -90.00 29 28 4.10 104.00 -14.00 30 29 4.30 153.00 -32.00 *end ppot2 qgis3-survex-import-1.2/example/Dowbergill1.svx0000664000175000017500000000071713614350061021236 0ustar wookeywookey; Title: Dowbergill Passage Dow Cave end to 800 yds chamber ; created 27/10/2015 by Patrick Warren (PBW) from an original by Steve Warren ; This is the first half of Dowbergill Passage, compilation of WRPC survey data 2003-4 *begin Dowbergill1 *export dgp1.1 *export dgp5.16 *include dgp1 *include dgp2 *include dgp3 *include dgp4 *include dgp5 *equate dgp1.27 dgp2.1 *equate dgp2.26 dgp3.1 *equate dgp3.22 dgp4.1 *equate dgp4.19 dgp5.1 *end Dowbergill1 qgis3-survex-import-1.2/example/rattle3.svx0000664000175000017500000000130513614350061020433 0ustar wookeywookey;271287a 3MC M/S second part *date 1987.12.27 ; S11 Part 2 ; Book 13.4 ; Line 75 *begin rattle3 *export b 15 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 27-12-1987 (1987.98630) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.28 *data normal from to tape compass clino 15 16 7.36 269.00 -7.00 16 17 4.85 252.00 11.00 17 18 6.85 268.00 6.00 18 19 1.45 240.00 30.00 *flags splay ; (Rattle & Sploosh) a b 4.35 265.00 0.00 c b 7.45 75.00 8.00 d b 5.00 104.00 5.00 *flags not splay b e 5.00 195.00 28.00 e f 2.40 0.00 90.00 f 19 2.30 71.00 2.00 *end rattle3 qgis3-survex-import-1.2/example/tube.svx0000664000175000017500000000133613614350061020020 0ustar wookeywookey;090286b Top D/Casc - Tube *date 1986.02.09 *begin tube *export 1 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 09-02-1986 (1986.10685) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.54 *data normal from to tape compass clino 1 2 2.04 204.00 26.00 ; 1 is lip of dry cascade ; 2 is entrance to tube 2 3 2.59 268.00 39.00 ; 2-3 is through eyehole ; 3 is 1m above floor 3 4 4.27 332.00 0.00 ; 4 is flake edge of ledge 3 5 4.42 140.00 21.00 ; 5 is 1.3m above floor at top of small 1m climb 5 6 4.88 128.00 12.00 ; 6 is 1m above floor and 1.3m from main stream passage wall and on RHW *end tube qgis3-survex-import-1.2/example/albert1.svx0000664000175000017500000000152213614350061020410 0ustar wookeywookey;280986 Albert Hall first visit back to Dig A *date 1986.09.28 ;Book 3 ;Line L53 ;Dig A - Albert Hall ;SEW PBW DR HB RM ;Albert Hall sketches and dimensions ;SS 1-7 *begin albert1 *export 1 7 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 28-09-1986 (1986.73973) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.45 *data normal from to tape compass clino *flags splay ; (Albert Hall) 1a 1 9.40 165.0 0.0 ; 1 is AH Mkr 1 1b 8.30 70.0 0.0 ; 1a, 1b, 1c are points around Albert Hall 1 1c 8.30 130.0 0.0 ; c is at Curtain Chamber at far end of AH *flags not splay 1 2 3.0 0 -90 2 2a 3.0 350.0 0.0 2a 3 1.90 359.0 -10.0 3 4 2.20 320.0 -30.0 4 5 5.30 330.0 -5.0 5 6 2.80 300.0 -5.0 6 7 2.80 210.0 -5.0 ; 7 is Dig A *end albert1 qgis3-survex-import-1.2/example/DowProv.gpkg0000664000175000017500000156000013614350061020570 0ustar wookeywookeySQLite format 3@ "n8'GPKG".,Pnf:2,  1  \mOgOSGB 1936 / British National GridEPSGCOMPD_CS["OSGB 1936 / British National Grid + ODN height",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["ODN height",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Up",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]\=mUndefined geographic SRSNONEundefinedundefined geographic coordinate reference system[;kUndefined cartesian SRSNONEundefinedundefined cartesian coordinate reference systemff + WGS 84 geodeticEPSGGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]longitude/latitude coordinates in decimal degrees on the WGS 84 spheroid 'r'I  =polygonsfeaturespolygons2019-05-09T19:23:37.710Z7-8A  =legsfeatureslegs2019-05-09T19:23:37.635Z*77<I  =stationsfeaturesstations2019-05-09T19:23:37.569Z*77<  polygonslegs  stations  polygonslegs  stations  polygons8 legs stations  polygonslegs  stations  polygonsgeomPOLYGON! legsgeomLINESTRING stationsgeomPOINT polygonsgeom legsgeom stationsgeom  polygonslegs  stations      |  h k~ w8MWDU-triggergpkg_tile_matrix_matrix_width_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); ENDJQ-!triggergpkg_tile_matrix_zoom_level_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update' BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END<Q-triggergpkg_tile_matrix_zoom_level_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END? S-indexsqlite_autoindex_gpkg_tile_matrix_1gpkg_tile_matrixC --9tablegpkg_tile_matrixgpkg_tile_matrix CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL,zoom_level INTEGER NOT NULL,matrix_width INTEGER NOT NULL,matrix_height INTEGER NOT NULL,tile_width INTEGER NOT NULL,tile_height INTEGER NOT NULL,pixel_x_size DOUBLE NOT NULL,pixel_y_size DOUBLE NOT NULL,CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level),CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name)) 55_tablegpkg_tile_matrix_setgpkg_tile_matrix_set CREATE TABLE gpkg_tile_matrix_set (table_name TEXT NOT NULL PRIMARY KEY,srs_id INTEGER NOT NULL,min_x DOUBLE NOT NULL,min_y DOUBLE NOT NULL,max_x DOUBLE NOT NULL,max_y DOUBLE NOT NULL,CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))G [5indexsqlite_autoindex_gpkg_tile_matrix_set_1gpkg_tile_matrix_set 77tablegpkg_geometry_columnsgpkg_geometry_columnsCREATE TABLE gpkg_geometry_columns (table_name TEXT NOT NULL,column_name TEXT NOT NULL,geometry_type_name TEXT NOT NULL,srs_id INTEGER NOT NULL,z TINYINT NOT NULL,m TINYINT NOT NULL,CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name),CONSTRAINT uk_gc_table_name UNIQUE (table_name),CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))I ]7indexsqlite_autoindex_gpkg_geometry_columns_2gpkg_geometry_columns I]7indexsqlite_autoindex_gpkg_geometry_columns_1gpkg_geometry_columns //[tablegpkg_ogr_contentsgpkg_ogr_contentsCREATE TABLE gpkg_ogr_contents(table_name TEXT NOT NULL PRIMARY KEY,feature_count INTEGER DEFAULT NULL)AU/indexsqlite_autoindex_gpkg_ogr_contents_1gpkg_ogr_contents''wtablegpkg_contentsgpkg_contentsCREATE TABLE gpkg_contents (table_name TEXT NOT NULL PRIMARY KEY,data_type TEXT NOT NULL,identifier TEXT UNIQUE,description TEXT DEFAULT '',last_change DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),min_x DOUBLE, min_y DOUBLE,max_x DOUBLE, max_y DOUBLE,srs_id INTEGER,CONSTRAINT fk_gc_r_srs_id FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))9M'indexsqlite_autoindex_gpkg_contents_2gpkg_contents9M'indexsqlite_autoindex_gpkg_contents_1gpkg_contents55)tablegpkg_spatial_ref_sysgpkg_spatial_ref_sysCREATE TABLE gpkg_spatial_ref_sys (srs_name TEXT NOT NULL,srs_id INTEGER NOT NULL PRIMARY KEY,organization TEXT NOT NULL,organization_coordsys_id INTEGER NOT NULL,definition TEXT NOT NULL,description TEXT)  ^  ZID?Ek =Q+indexsqlite_autoindex_gpkg_extensions_1gpkg_extensions$w++%tablegpkg_extensionsgpkg_extensions#CREATE TABLE gpkg_extensions (table_name TEXT,column_name TEXT,extension_name TEXT NOT NULL,definition TEXT NOT NULL,scope TEXT NOT NULL,CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))Wtriggertrigger_delete_feature_count_stationsstationsCREATE TRIGGER "trigger_delete_feature_count_stations" AFTER DELETE ON "stations" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count - 1 WHERE lower(table_name) = lower('stations'); ENDWtriggertrigger_insert_feature_count_stationsstationsCREATE TRIGGER "trigger_insert_feature_count_stations" AFTER INSERT ON "stations" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count + 1 WHERE lower(table_name) = lower('stations'); ENDP++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq){tablestationsstationsCREATE TABLE "stations" ( "fid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "geom" POINT, "NAME" TEXT, "ELEVATION" REAL, "SURFACE" MEDIUMINT, "UNDERGROUND" MEDIUMINT, "ENTRANCE" MEDIUMINT, "EXPORTED" MEDIUMINT, "FIXED" MEDIUMINT, "ANON" MEDIUMINT)YU-;triggergpkg_tile_matrix_pixel_y_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update' BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); ENDIU-triggergpkg_tile_matrix_pixel_y_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); ENDYU-;triggergpkg_tile_matrix_pixel_x_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update' BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); ENDIU-triggergpkg_tile_matrix_pixel_x_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); ENDYW-9triggergpkg_tile_matrix_matrix_height_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update' BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); ENDHW-triggergpkg_tile_matrix_matrix_height_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); ENDTU-1triggergpkg_tile_matrix_matrix_width_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update' BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END"!t @\*yGa.{Gc2  polygons8 legs stations 2~ap 0 @ Q  a  q !0?O] o!:Ri~M2 V7 GP(\AQA\(Hw@dowbergill2.dgp8b.1nb@wH(\M1 V7 GP ףp\AQAGzZw@dowbergill2.dgp8b.1na@wZzGK0 V3  GPG\A]Aףp= Ow@dowbergill2.dgp8b.1@wO =pK/ V3  GPG\A]Aףp= Ow@dowbergill2.dgp8a.1@wO =pL. V5 GPG\A]Ap= ?w@dowbergill2.dgp8a.1a@w? =pL- V5 GP{G\AQAp= ?w@dowbergill2.dgp8a.1b@w? =pK, V3 GP(\AvA{GVw@dowbergill2.dgp8a.2@wVG{L+ V5 GP(\\AQAQ[w@dowbergill2.dgp8a.3x@w[QK* V3 GPHz\AQAq= ף\w@dowbergill2.dgp8a.4@w\ =qK) V3 GP(\\AA)\hw@dowbergill2.dgp8a.3@wh\)K( V3 GP> ףl\A(\Ap= {w@dowbergill2.dgp8a.7@w{ =pK' V3 GP ףpf\A( A> ףpw@dowbergill2.dgp8a.8@wp =L& V5 GP ףpYA{GA33333u@dowbergill2.dgp6.31a@u33333L% V5 GP)\YA> ף Agffffu@dowbergill2.dgp6.35a@ufffffN$ V9 GPQ ^AQAq= ףdx@providencepot.ppot1.9b@xd =qN# V9 GP ףp^A(AQhx@providencepot.ppot1.9c@xhQN" V9 GPp= ]AQ.Ax@providencepot.ppot1.13@xO! V; GPQ]A(KAQx@providencepot.ppot1.19a@xQO V; GPGz]AQA33333x@providencepot.ppot1.19b@x33333N V9 GPgfff]ARA33333Sx@providencepot.ppot1.26@xS33333N V9 GP̞]AARMx@providencepot.ppot1.27@xMRN V9 GP̞]AAgffff.x@providencepot.ppot1.28@x.fffffN V9 GPz]A(\Ap= 'x@providencepot.ppot1.29@x' =pN V9 GPz]A(\A> ףpx@providencepot.ppot1.30@xp =O V; GPQ]ÂA(\w@providencepot.ppot1.30e@w\(O V; GPG]A)\]A(\w@providencepot.ppot1.30f@w\(N V9 GPq= ח]AQAףp= w@providencepot.ppot1.31@w =pN V9 GP]A ףpAw@providencepot.ppot1.32@wᙙN V9 GP]A ףpA̼w@providencepot.ppot1.33@wN V9 GP3333]A(\AQw@providencepot.ppot1.34@wQN V9 GPQ]AGzAQw@providencepot.ppot1.35@wQN V9 GPp= r]AQA)\tw@providencepot.ppot1.36@wt\)N V9 GP\g]A(\Aew@providencepot.ppot1.37@weN V9 GP)\]]AALw@providencepot.ppot1.38@wLN V9 GP)\]]AA33333Cw@providencepot.ppot1.s1@wC33333M V7 GP]ARA̰x@providencepot.ppot2.4@xN V9 GPq= ר]AzA̰x@providencepot.ppot2.4a@xN V9 GP]ARAx@providencepot.ppot2.4b@xN V9 GP(\z]A$Àx@providencepot.ppot2.22@xN V9 GPQ~]AR,A|x@providencepot.ppot2.21@x|N V9 GP]AR2A|x@providencepot.ppot2.20@x|N V9 GPQ]AQ8Aףp= x@providencepot.ppot2.19@x =pN V9 GP̞]AQAA\(x@providencepot.ppot2.18@x(\N V9 GP{G]AHAQx@providencepot.ppot2.17@xQN V9 GP(\]Aףp=OA|x@providencepot.ppot2.16@x|N V9 GP]Aq= TA ףp=~x@providencepot.ppot2.15@x~=p O V; GP> ף]Aףp=[A ףp=~x@providencepot.ppot2.15a@x~=p N V9 GPQ+]Aףp=+Aq= ףx@providencepot.ppot2.30@x =qN V9 GPGz\A> ףAGzx@providencepot.ppot3.27@xzGM V7 GP\AzA(\sx@providencepot.ppot4.4@xs\( 1f~0 F \  t - F _ s!}+4<44AMOc V; GP(\XAGzEA)\ w@dowcave.choke2.cellar.5@w \)Ob V; GPp= XAQQAQ'w@dowcave.choke2.cellar.3@w'QOa V; GPp= XAQQAR]w@dowcave.choke2.cellar.2@w]RO` V; GP(\~XASA ףp=fw@dowcave.choke2.cellar.1@wf=p P_ V= GP)\XA(\ZAR]w@dowcave.choke2.cellar.11@w]RO^ V; GP3333XAq= aAQMw@dowcave.choke2.cellar.d@wMQO] V; GPQXA{GcAQMw@dowcave.choke2.cellar.c@wMQO\ V; GPRXAGlAQMw@dowcave.choke2.cellar.b@wMQO[ V; GPRXA(\lAQMw@dowcave.choke2.cellar.a@wMQUZ VG  GP ףpXAJA\($w@dowcave.choke2.wetblackrift.9@w$(\VY VI GPQXAgfffEAףp= w@dowcave.choke2.wetblackrift.10@w =pVX VI GPXA(\AAףp= w@dowcave.choke2.wetblackrift.11@w =pVW VI GP ףpXAQCAףp= w@dowcave.choke2.wetblackrift.12@w =pVV VI GP ףpXAQCAףp= kw@dowcave.choke2.wetblackrift.13@wk =pQU V? GPGXA)\9A(\"x@dowcave.choke2.albert1.1a@x"\(PT V=  GP> ףXA)\A(\"x@dowcave.choke2.albert1.1@x"\(QS V? GP(\XA(\%A(\"x@dowcave.choke2.albert1.1b@x"\(QR V? GP{GXA ףpA(\"x@dowcave.choke2.albert1.1c@x"\(PQ V= GPQYAQ A(\x@dowcave.choke2.albert2.6@x\(PP V= GPGXA( A(\"x@dowcave.choke2.albert2.d@x"\(PO V=  GP> ףXA)\A(\"x@dowcave.choke2.albert3.5@x"\(PN V= GPXAQA{Gw@dowcave.choke2.albert3.4@wG{PM V= GP ףpXAA> ףpw@dowcave.choke2.albert3.3@wp =PL V= GP)\XA3333)A> ףpw@dowcave.choke2.albert3.2@wp =PK V= GPzYA(.A> ףpw@dowcave.choke2.albert3.1@wp =KJ V3 GPHzXA{GA ףp=t@dowbergill1.dgp3.23@t=p KI V3 GPgfffXA̸Agfffft@dowbergill1.dgp3.24@tfffffKH V3 GP> ףXAgfffA33333t@dowbergill1.dgp3.25@t33333KG V3 GPXAzAq= ףt@dowbergill1.dgp3.26@t =qKF V3 GP ףp+XAHz~Aq= ףt@dowbergill1.dgp3.27@t =qKE V3 GPHz3XAQlA33333t@dowbergill1.dgp3.28@t33333KD V3 GPQ8XAHz`A ףp=t@dowbergill1.dgp3.29@t=p KC V3 GP(=XAGzSA\(t@dowbergill1.dgp3.30@t(\EB V3 GPHzEXAzEAt@dowbergill1.dgp3.31JKA V3 GPp= YAHz.AQDu@dowbergill1.dgp5.7a@uDQK@ V3 GP> ף=YAHzAQu@dowbergill1.dgp5.17@uQL? V5  GPGz;\AHzAGzw@dowbergill2.dgp8a.18@wzGL> V5 GP\/\AHzwAp= v@dowbergill2.dgp8a.17@v =pL= V5 GP\A^AGzw@dowbergill2.dgp8a.16@wzGL< V5 GPHz$\AgfffXAw@dowbergill2.dgp8a.15@wL; V5 GP)\7\AQ6A(\ w@dowbergill2.dgp8a.14@w \(L: V5 GP)\G\A(7ARw@dowbergill2.dgp8a.13@wRL9 V5 GPq= P\A{GAQw@dowbergill2.dgp8a.12@wQL8 V5 GPq= `\A{GAq= ףw@dowbergill2.dgp8a.11@w =qL7 V5 GPGzj\AGzAGzw@dowbergill2.dgp8a.10@wzGK6 V3 GPRm\Aףp=AQ w@dowbergill2.dgp8a.9@w QK5 V3 GPRm\Aףp=AGz`w@dowbergill2.dgp8a.6@w`zGK4 V3  GPQ}\AQA\(Pw@dowbergill2.dgp8a.5@wP(\K3 V3  GPQ}\AQA\(Pw@dowbergill2.dgp8b.5@wP(\ 0] g s ! ~ - 9 F Y lng^Vdq!0F V) GPWA> ףARv@dowcave.tube.5@vRF V) GP3333WA> ףAGzv@dowcave.tube.6@vzGM V7  GP(\}XAp= xA(\*w@dowcave.roofgardens.7@w*\(M V7 GPQlXAgfffA w@dowcave.roofgardens.8@w N V9 GPuXA> ףA8w@dowcave.roofgardens.8c@w8M V7 GP\NXAp= A> ףp9w@dowcave.roofgardens.9@w9p =N V9 GPG-XAQAp= w@dowcave.roofgardens.10@w =pN V9 GPG-XAQAq= ףv@dowcave.roofgardens.11@ṿ =qN V9 GPz2XAzAq= ףv@dowcave.roofgardens.12@ṿ =qN V9 GPz2XAzAq= ףv@dowcave.roofgardens.13@v =qN V9 GP(:XA(\Aq= ףv@dowcave.roofgardens.14@v =qM V7  GP(\}XAp= xA(\*w@dowcave.choke2.diga.1@w*\(U VG  GP(\}XAp= xA(\*w@dowcave.choke2.roofchambers.1@w*\(U VG GP> ףXAףp=jAgffffBw@dowcave.choke2.roofchambers.2@wBfffffU VG GP(XAzfA\(|w@dowcave.choke2.roofchambers.3@w|(\U VG GPq= {XA^A(\w@dowcave.choke2.roofchambers.4@w\(V VI GPXA(\[A(\w@dowcave.choke2.roofchambers.4a@w\(U VG GPGz}XANAGznw@dowcave.choke2.roofchambers.5@wnzGU VG GP(\xXAzLA(\zw@dowcave.choke2.roofchambers.6@wz\(U VG GPGyXAq= @A{Gw@dowcave.choke2.roofchambers.7@wG{U VG GPGzXAQ9Aq= ףw@dowcave.choke2.roofchambers.8@w =qU~ VG GPGzXAQ9Aq= ףw@dowcave.choke2.roofchambers.9@w =qV} VI GP)\XAQ-Aq= ףw@dowcave.choke2.roofchambers.10@w =qM| V7  GP(\}XAp= xA(\*w@dowcave.choke2.digb.7@w*\(M{ V7 GP(\XA> ףsA{Gw@dowcave.choke2.digb.6@wG{Mz V7 GP3333XAp= xA(\#w@dowcave.choke2.digb.5@w#\(My V7 GPgfffXAGuAp= ;w@dowcave.choke2.digb.4@w; =pMx V7 GPGXAztA ףp=Jw@dowcave.choke2.digb.3@wJ=p Mw V7 GPgfffXAHzlAGzhw@dowcave.choke2.digb.2@whzGMv V7 GP)\XAq= aAp= ׋w@dowcave.choke2.digb.1@w =pOu V;  GP(\}XAp= xA(\*w@dowcave.choke2.wetway.1@w*\(Ot V; GP> ףXAGzrA(\*w@dowcave.choke2.wetway.2@w*\(Os V; GP> ףXAGzrA(\w@dowcave.choke2.wetway.3@w\(Or V; GPq= ~XA\ZA(\w@dowcave.choke2.wetway.4@w\(Oq V; GPףp=XAGzNA(\w@dowcave.choke2.wetway.5@w\(Pp V= GPףp=XAGzNA\( w@dowcave.choke2.wetway.5a@w (\Oo V; GP ףpXAJA\( w@dowcave.choke2.wetway.6@w (\Pn V= GP ףpXAJA)\w@dowcave.choke2.wetway.6a@w\)Om V; GP ףpXA ףp@A)\w@dowcave.choke2.wetway.7@w\)Pl V= GPQXA)\NA)\w@dowcave.choke2.wetway.7a@w\)Ok V; GPQXA)\NA)\ w@dowcave.choke2.wetway.8@w \)Oj V;  GP ףpXAJA\($w@dowcave.choke2.wetway.9@w$(\Pi V= GPgfffXAHzUA)\ ףKAp= +w@dowcave.choke2.wetway.11@w+ =pPf V= GPgfffXAMAp= +w@dowcave.choke2.wetway.12@w+ =pPe V= GPgfffXAMAp= ׃w@dowcave.choke2.wetway.13@w =pOd V;  GP ףpXAJA\($w@dowcave.choke2.cellar.4@w$(\ 4vn%B ^  y . K j  ;Tm 8Ndz,E^vJG V1 GP{GHWA3333A(\u@dowcave.stemple2.1@uΏ\(KF V3 GP)\JWA ףpAv@dowcave.stemple2.1a@vJE V1 GP3333OWA(ARUv@dowcave.stemple2.3@vURJD V1 GPQoWAAQcv@dowcave.stemple2.4@vcQJC V1 GPQoWAA(\v@dowcave.stemple2.5@v\(JB V1 GPQoWAA(\±v@dowcave.stemple2.6@v\(JA V1 GPJWAQAףp= v@dowcave.stemple2.7@v =pJ@ V1 GPQ WAQA33333v@dowcave.stemple2.8@v33333J? V1 GP)\yWARAGzv@dowcave.stemple2.9@vzGK> V3 GP3333{WAAv@dowcave.stemple2.10@vK= V3 GPRWAGAv@dowcave.stemple2.11@vK< V3 GP ףpWAGzAv@dowcave.stemple2.12@vK; V3 GP{GWAp= AGzv@dowcave.stemple2.13@vzGK: V3 GP{GWAp= A33333v@dowcave.stemple2.14@v33333K9 V3 GPR XAQA33333v@dowcave.stemple2.15@v33333K8 V3 GP XAp= A33333v@dowcave.stemple2.16@v33333K7 V3 GPQXAףp=A33333v@dowcave.stemple2.17@v33333K6 V3  GP)\šWA)\.Agffffv@dowcave.clogsway.11@vfffffK5 V3 GPHzyWAQ_ARv@dowcave.clogsway.10@vRJ4 V1 GPHziWA3333jAzGu@dowcave.clogsway.9@uGzK3 V3 GPHziWA3333jAHzv@dowcave.clogsway.8a@vzHJ2 V1 GPHziWA3333jAGzv@dowcave.clogsway.8@vzGJ1 V1 GPGiWA3333~AGzv@dowcave.clogsway.7@vzGJ0 V1 GPGiWA3333~AGzv@dowcave.clogsway.6@vzGJ/ V1 GP{GbWAGzAGzv@dowcave.clogsway.5@vzGJ. V1 GP{GbWAGzAGzv@dowcave.clogsway.4@vzGJ- V1 GPףp=^WA)\’AGzv@dowcave.clogsway.3@vzGJ, V1 GPףp=^WA)\’AGzv@dowcave.clogsway.2@vzGJ+ V1 GPQGWAQAGzv@dowcave.clogsway.1@vzGK* V3 GPQ6WAq= ׹AGzv@dowcave.clogsway.1a@vzGH) V-  GP)\šWA)\.Agffffv@dowcave.bridge.1@vfffffH( V- GPQWAq= CARv@dowcave.bridge.2@vRH' V- GP̍WAHz-A(\yv@dowcave.bridge.3@vy\(H& V- GP> ףWARAq= ף|v@dowcave.bridge.4@v| =qH% V- GPp= WAAQv@dowcave.bridge.5@vDžQH$ V- GPWAHzA> ףpv@dowcave.bridge.6@vp =H# V- GPQWAGzA(\v@dowcave.bridge.7@v\(J" V1 GP̫WAGzA(\v@dowcave.bridge.gol@v\(H! V- GPRWAA> ףpv@dowcave.bridge.8@vp =H V- GPRWAA ףp=v@dowcave.bridge.9@v=p I V/ GP ףpWA{GA(\w@dowcave.bridge.10@w\(J V1 GP ףpWA{GA(\w@dowcave.bridge.10a@w\(I V/ GPWA\AHz;w@dowcave.bridge.11@w;zHI V/ GPGzWAQAHz;w@dowcave.bridge.12@w;zHI V/ GPQWAHz AHzkw@dowcave.bridge.13@wkzHI V/ GPHzWAAHz;w@dowcave.bridge.14@w;zHJ V1 GP(\WA(\AHz;w@dowcave.bridge.14a@w;zHJ V1 GPQ~WARCAHz;w@dowcave.bridge.14b@w;zHF V)  GPQWA(A\(v@dowcave.tube.1@v(\F V) GPWA3333Agffffv@dowcave.tube.2@vfffffF V) GP\WAAGzv@dowcave.tube.3@vzGF V) GP{GWAHzAGzv@dowcave.tube.4@vzG 4e}0 I b  ~ 2 K j 6Of{0Mm"CeH{ V- GPGz VAAףp= sv@dowcave.depot.10@vs =pAz V+ GPףp=VA\Av@dowcave.depot.9iGy V+ GPVAQAQv@dowcave.depot.8@vQGx V+ GP{GUAGzAHzv@dowcave.depot.6@vϮzHGw V+ GPQUARAGz w@dowcave.depot.4@w zGGv V+ GP)\UA\A> ףpw@dowcave.depot.3@wp =Gu V+ GP̻UA(\AGz6w@dowcave.depot.2@w6zGGt V+ GP> ףUA(\AGzBw@dowcave.depot.1@wBzGHs V- GPzUAA(\%w@dowcave.depot.4a@w%\(Hr V- GP3333VAףp=A(\Fw@dowcave.depot.4b@wF\(Gq V+ GP{GUAGzARv@dowcave.depot.7@vRHp V- GPp= $VAAzGv@dowcave.depot.12@vGzHo V- GP ףp0VAGA33333v@dowcave.depot.13@v33333Hn V- GP ףp0VAGA(\w@dowcave.depot.14@w\(Im V/ GPUAQAQ{u@dowcave.depot.19a@u{QIl V/ GPUAQAGzv@dowcave.depot.19b@vzGHk V- GPp= WA3333Agffffv@dowcave.dow3.11a@vfffffLj V5 GP3333VAgfffARu@dowcave.dripstone.79@uRKi V3 GP3333VAq= A(\u@dowcave.dripstone.3@u\(Kh V3 GPWAq= ׫Aq= ףu@dowcave.dripstone.2@u =qKg V3 GPq= QWAA{Gu@dowcave.dripstone.1@uG{Kf V3 GP ףpVA(AGzu@dowcave.dripstone.s@uzGJe V1  GPףp=FWAgfffA(\‘v@dowcave.rattle2.34@v\(Jd V1 GP\-WAA(\v@dowcave.rattle2.33@vΏ\(Jc V1 GP ףp&WA(\AQv@dowcave.rattle2.32@vQJb V1 GPq= WAףp=AGzv@dowcave.rattle2.31@vzGJa V1 GPQWAHzAzGv@dowcave.rattle2.30@vGzJ` V1 GPQWAHzAHzv@dowcave.rattle2.29@vzHJ_ V1 GP\WAp= AQv@dowcave.rattle2.28@vQJ^ V1 GPVAףp=A(\v@dowcave.rattle2.27@v\(D] V1 GPQVAAv@dowcave.rattle2.26kJ\ V1 GPGVA ARv@dowcave.rattle2.25@vRJ[ V1 GPzVAgfff Aףp= v@dowcave.rattle2.24@v =pJZ V1 GP ףpVARAQv@dowcave.rattle2.23@vQJY V1 GP ףpVARAQv@dowcave.rattle2.22@vQJX V1 GPGzVAHzAQv@dowcave.rattle2.21@vQIW V/ GPQVA(\Aףp= v@dowcave.rattle3.a@v =pIV V/  GPHzVA\Aףp= v@dowcave.rattle3.b@v =pIU V/ GP(\VA{GA(\v@dowcave.rattle3.c@vҏ\(IT V/ GPQVAzA\(v@dowcave.rattle3.d@v(\JS V1  GP3333OWA(Au@dowcave.stemple1.1@uٙJR V1 GPdWA3333AGzv@dowcave.stemple1.2@vzGJQ V1 GP> ףrWA\AGzv@dowcave.stemple1.3@vzGJP V1 GP> ףrWA\AGzu@dowcave.stemple1.4@uzGJO V1 GPzWARARv@dowcave.stemple1.5@vRJN V1 GP\WAQAQ v@dowcave.stemple1.6@v QJM V1 GP3333WAQAq= ף v@dowcave.stemple1.7@v =qJL V1 GP3333WAQAp= v@dowcave.stemple1.8@v =pJK V1 GPףp=WA> ףAp= v@dowcave.stemple1.9@v =pKJ V3 GP)\–WAAp= v@dowcave.stemple1.10@v =pKI V3 GP3333WA(Ap= v@dowcave.stemple1.11@v =pJH V1  GP3333OWA(Au@dowcave.stemple2.2@uٙ 3j7 Q  l ~ - : HXgw&Eg<[}3G. V+ GP)\TAAQt@dowcave.dow2.32@tQG- V+ GP> ףUA)\A)\t@dowcave.dow2.33@t\)G, V+ GPGz;UA> ףAzGt@dowcave.dow2.34@tGzG+ V+ GPQTA\At@dowcave.dow2.30@tG* V+ GP̴TAGzAQt@dowcave.dow2.29@tQG) V+ GP ףpTARwAGzt@dowcave.dow2.28@tzGH( V- GP\IRA\oAzGt@dowcave.dow1.13a@tGzH' V- GP(/RAq= ׈AzGt@dowcave.dow1.13b@tGzH& V- GP3333RA ףpAzGt@dowcave.dow1.13c@tGzH% V- GP(\SA(A ףp=zt@dowcave.dow1.24a@tz=p H$ V- GPRSAp= AHzt@dowcave.dow1.24b@tzHH# V- GP(\SAgfffA(\{t@dowcave.dow1.24c@t{\(G" V+  GP(\VUA ףpAt@dowcave.dow2.35@tG! V+ GP3333UAp= At@dowcave.dow2.36@tG V+ GPHzUAAt@dowcave.dow2.37@tG V+ GPQUARAt@dowcave.dow2.38@tH V- GP)\_UAAt@dowcave.dow2.35a@tH V- GP(NUAp= At@dowcave.dow2.35b@tH V- GPHztUA{GA33333t@dowcave.dow2.35c@t33333N V9  GPgfffTA̮AzGt@dowcave.dribblemine.31@tGzM V7 GP> ףTA̟A33333t@dowcave.dribblemine.1@t33333M V7 GP> ףTA̟A u@dowcave.dribblemine.2@u M V7 GPGTẠA u@dowcave.dribblemine.3@u N V9 GPQTAgfffA u@dowcave.dribblemine.3a@u M V7 GPq= TARA u@dowcave.dribblemine.4@u M V7 GPGzTA(\A ףp=u@dowcave.dribblemine.5@u=p M V7 GP\TA)\¬A33333t@dowcave.dribblemine.6@t33333M V7 GPzUAAp= u@dowcave.dribblemine.7@u =pM V7 GPHz.UA)\¹AQu@dowcave.dribblemine.8@uQM V7 GPHz.UA)\¹AQAu@dowcave.dribblemine.9@uAQN V9 GPHz.UA)\¹AQYu@dowcave.dribblemine.10@uYQN V9 GP> ףKUA)\AQYu@dowcave.dribblemine.11@uYQN V9 GP0UAףp=AQYu@dowcave.dribblemine.12@uYQN V9 GP0UAףp=ARu@dowcave.dribblemine.13@uRN V9 GP(\#UARARu@dowcave.dribblemine.14@uRN V9 GP(\#UARARu@dowcave.dribblemine.15@uRN V9 GPR6UAQARu@dowcave.dribblemine.16@uRN V9 GPR6UAQARu@dowcave.dribblemine.17@uRI V/ GPףp=UA3333Aq= ףu@dowcave.hobsons.5@uȣ =qI V/ GP{GUA(A ףp= v@dowcave.hobsons.4@v =p I V/ GP(\UA\AQ%v@dowcave.hobsons.2@v%QJ V1 GP(\cUAAQ1v@dowcave.hobsons.1a@v1QI V/ GPRUAQAQ1v@dowcave.hobsons.1@v1QJ V1 GPQUAQA)\v@dowcave.hobsons.1b@v\)J V1 GP ףp|UAףp=AQ1v@dowcave.hobsons.1c@v1QI V/ GP)\“UA ףpAQev@dowcave.hobsons.3@veQJ V1 GP ףpUAףp=AQev@dowcave.hobsons.3a@veQJ V1 GP(\UA(AQev@dowcave.hobsons.3b@veQJ~ V1 GPףp=UARAQev@dowcave.hobsons.3c@veQH} V- GP$VAq= A)\u@dowcave.depot.15@u\)H| V- GP&VAA(\Qv@dowcave.depot.11@vQ\( 3h2 J c  | / H a x*@Vl4Le}0Ka V3 GPgWAp= yA̠t@dowbergill1.dgp3.9a@tJ` V1 GPiWA\yA̠t@dowbergill1.dgp3.9@tJ_ V1 GPQYWAQA)\t@dowbergill1.dgp3.8@t\)J^ V1 GP3333OWAGAQt@dowbergill1.dgp3.7@tQJ] V1 GP(\ ףpt@dowbergill1.dgp3.4@tp =JY V1 GPWA0AQt@dowbergill1.dgp3.3@tQJX V1 GP(\VA(LAgfffft@dowbergill1.dgp3.2@tfffffJW V1  GPGzVAQKAgfffft@dowbergill1.dgp3.1@tfffffKV V3  GPGzVAQKAgfffft@dowbergill1.dgp2.26@tfffffKU V3 GP ףpVAgA(\t@dowbergill1.dgp2.25@t\(KT V3 GPVAA{Gt@dowbergill1.dgp2.24@tG{KS V3 GPGVA> ףAHzt@dowbergill1.dgp2.23@tzHKR V3 GPGVAq= ׫Ap= דt@dowbergill1.dgp2.22@t =pKQ V3 GPQVAzA\(t@dowbergill1.dgp2.21@t(\KP V3 GP̽VAHzAQt@dowbergill1.dgp2.20@tQKO V3 GP(\VA ףpAQt@dowbergill1.dgp2.19@tQKN V3 GP(\VAGAq= ףt@dowbergill1.dgp2.18@t =qKM V3 GPVAA̔t@dowbergill1.dgp2.17@tKL V3 GP\VAHz2A̔t@dowbergill1.dgp2.16@tKK V3 GP)\–VAGzLA)\t@dowbergill1.dgp2.15@t\)KJ V3 GP(VAףp=WAQt@dowbergill1.dgp2.14@tQKI V3 GPHzVA\yA> ףpt@dowbergill1.dgp2.13@tp =KH V3 GPzgVAA ףp=t@dowbergill1.dgp2.12@t=p KG V3 GPeVAQAgfffft@dowbergill1.dgp2.11@tfffffKF V3 GP(cVAp= Agfffft@dowbergill1.dgp2.10@tfffffJE V1 GP3333VVA3333AQt@dowbergill1.dgp2.9@tQJD V1 GP)\NVAGzAQt@dowbergill1.dgp2.8@tQJC V1 GPFVAA{Gt@dowbergill1.dgp2.7@tG{JB V1 GP=VA33332Aףp= t@dowbergill1.dgp2.6@t =pJA V1 GP> ף3VAףp=CA33333t@dowbergill1.dgp2.5@t33333J@ V1 GPz3VA{GCA\(t@dowbergill1.dgp2.4@t(\J? V1 GP,VA)\QAGzt@dowbergill1.dgp2.3@tzGJ> V1 GPG*VAGUA ףp=t@dowbergill1.dgp2.2@t=p J= V1  GP*VA\UA ףp=t@dowbergill1.dgp2.1@t=p J< V1  GPgfffTA̮AzGt@dowbergill1.dgp1.1@tGzJ; V1 GPTAQA33333t@dowbergill1.dgp1.2@t33333J: V1 GPGTAףp=A ףp=t@dowbergill1.dgp1.3@t=p J9 V1 GPQTAgfffAt@dowbergill1.dgp1.4@tJ8 V1 GPUA\bAzGt@dowbergill1.dgp1.5@tGzK7 V3 GP UAcAQt@dowbergill1.dgp1.5a@tQJ6 V1 GPQ*UA(A(\t@dowbergill1.dgp1.6@t\(J5 V1 GP> ףOUA(AQt@dowbergill1.dgp1.7@tQJ4 V1 GPQcUAfARt@dowbergill1.dgp1.8@tRJ3 V1 GPQUAףp=-AQt@dowbergill1.dgp1.9@tQK2 V3 GP{G~UAGz,AQt@dowbergill1.dgp1.9a@tQK1 V3 GP(\UA> ףAQt@dowbergill1.dgp1.10@tQK0 V3 GPq= כUA{GA\(t@dowbergill1.dgp1.11@t(\G/ V+  GPgfffTA̮AzGt@dowcave.dow2.31@tGz 3dz, B X p # ; S k3I^v(AZ q"K V3 GP0YAQA)\u@dowbergill1.dgp5.13@u\)K V3 GP(\(YA3333AHzu@dowbergill1.dgp5.12@uϮzHL V5 GPq= YAzA> ףpu@dowbergill1.dgp5.11a@up =K V3 GP(\YAq= A> ףpu@dowbergill1.dgp5.11@up =K V3 GPYA ףpAGzu@dowbergill1.dgp5.10@uzGJ V1 GP\YARAp= u@dowbergill1.dgp5.9@u =pJ V1 GPp= YAp= .A)\u@dowbergill1.dgp5.8@u\)J V1 GPp= YAHz.AQu@dowbergill1.dgp5.7@uQJ V1 GPGzYAzSA33333u@dowbergill1.dgp5.6@u33333J V1 GPQYAGzbAQu@dowbergill1.dgp5.5@uQJ V1 GPq= XA̓A(\•u@dowbergill1.dgp5.4@u\(J V1 GP(\XAp= AQu@dowbergill1.dgp5.3@uQK V3 GP ףpXAQA> ףpu@dowbergill1.dgp5.2a@up =J V1 GP)\XARA> ףpu@dowbergill1.dgp5.2@up =J V1  GPHzXAQA(\u@dowbergill1.dgp5.1@u\(K V3  GPHzXAQA(\u@dowbergill1.dgp4.19@u\(K V3 GPGzXAQAzGu@dowbergill1.dgp4.18@uGzK V3 GPRXA{GoA ףp=u@dowbergill1.dgp4.17@u=p L V5 GP ףpqXAQAHzu@dowbergill1.dgp4.16a@uzHK V3 GPp= nXAAHzu@dowbergill1.dgp4.16@uzHK V3 GPp= jXAQA(\ v@dowbergill1.dgp4.15@v \(K V3 GP{GdXA)\A(\ v@dowbergill1.dgp4.14@v \(K~ V3 GP_XAGAHzu@dowbergill1.dgp4.13@uۮzHK} V3 GP\YXAQAQv@dowbergill1.dgp4.12@vQK| V3 GPQGXA Agffff"v@dowbergill1.dgp4.11@v"fffffK{ V3 GP;XAGzAA> ףpv@dowbergill1.dgp4.10@vp =Jz V1 GP{G4XAףp=BAq= ףu@dowbergill1.dgp4.9@u =qKy V3 GP)\!XARxA> ףpu@dowbergill1.dgp4.8a@up =Jx V1 GPXARwA> ףpu@dowbergill1.dgp4.8@up =Kw V3 GP> ףXAףp=AR v@dowbergill1.dgp4.7a@v RJv V1 GPq= XA> ףAR v@dowbergill1.dgp4.7@v RJu V1 GP> ף XA(Agffffu@dowbergill1.dgp4.6@ufffffKt V3 GP( XA)\A(\u@dowbergill1.dgp4.5a@u\(Js V1 GPGzXAףp=ARu@dowbergill1.dgp4.5@uRJr V1 GPGzXA ףpAGzvu@dowbergill1.dgp4.4@uvzGJq V1 GP> ף XA\AzG1u@dowbergill1.dgp4.3@u1GzJp V1 GPgfffXAzAQt@dowbergill1.dgp4.2@tQJo V1  GP ףpXAGA{Gt@dowbergill1.dgp4.1@tG{Kn V3  GP ףpXAGA{Gt@dowbergill1.dgp3.22@tG{Km V3 GPRWAAq= ףt@dowbergill1.dgp3.21@t =qKl V3 GPWAAzGt@dowbergill1.dgp3.20@tGzKk V3 GP\WA(AzGt@dowbergill1.dgp3.19@tGzKj V3 GPWAp= EA33333t@dowbergill1.dgp3.18@t33333Ki V3 GP(\WAp= ~Ap= ׃t@dowbergill1.dgp3.17@t =pKh V3 GPq= רWA ףpAףp= t@dowbergill1.dgp3.16@t =pKg V3 GPףp=WAQAq= ףt@dowbergill1.dgp3.15@t =qKf V3 GPp= WAA(\t@dowbergill1.dgp3.14@t\(Ke V3 GP{GWAgfffA̜t@dowbergill1.dgp3.13@tKd V3 GPp= WAR3ARt@dowbergill1.dgp3.12@tRKc V3 GP> ף|WA ףpOAgfffft@dowbergill1.dgp3.11@tfffffKb V3 GP ףpnWA\iAq= ףt@dowbergill1.dgp3.10@t =q 3~cy+ A W m  5 Kaw)?Uk4Mf~KG V3  GPzZAHzXAPv@dowbergill2.dgp7.43@vPJF V1  GPzZAHzXAPv@dowbergill2.dgp6.1@vPJE V1 GPQZAQ]A> ףp)v@dowbergill2.dgp6.2@v)p =JD V1 GPQZAQA(\u@dowbergill2.dgp6.3@u\(JC V1 GPZAQA ףp=v@dowbergill2.dgp6.4@v=p JB V1 GP{GZA)\AGz2v@dowbergill2.dgp6.5@v2zGJA V1 GP> ףZAAHz/v@dowbergill2.dgp6.6@v/zHJ@ V1 GPgfffZA ףpAQu@dowbergill2.dgp6.7@uׅQJ? V1 GPZAGAHzu@dowbergill2.dgp6.8@uϮzHJ> V1 GPQZA)\Au@dowbergill2.dgp6.9@u͙K= V3 GPp= ZA> ף5A ףp=u@dowbergill2.dgp6.10@u=p K< V3 GP> ףZAG^Au@dowbergill2.dgp6.11@uK; V3 GPQ{ZA ףpXAu@dowbergill2.dgp6.12@uՙK: V3 GP)\sZA(\~A(\u@dowbergill2.dgp6.13@uƏ\(K9 V3 GPףp=tZA)\‘AzGu@dowbergill2.dgp6.14@uGzK8 V3 GPz`ZA̻Au@dowbergill2.dgp6.15@uK7 V3 GPVZAQAu@dowbergill2.dgp6.16@uK6 V3 GPOZAAףp= u@dowbergill2.dgp6.17@u =pK5 V3 GPq= GZA(AzGu@dowbergill2.dgp6.18@uGzK4 V3 GP(\3ZA3333[AHzu@dowbergill2.dgp6.19@uzHK3 V3 GP> ף$ZAz}A> ףpu@dowbergill2.dgp6.20@up =K2 V3 GP(\ZA(\AGzu@dowbergill2.dgp6.21@uzGK1 V3 GPzZAףp=Aq= ףu@dowbergill2.dgp6.22@uģ =qK0 V3 GPRZAQAQu@dowbergill2.dgp6.23@uQK/ V3 GPq= YAQ Aףp= u@dowbergill2.dgp6.24@u =pK. V3 GPףp=YAQ8A(\­u@dowbergill2.dgp6.25@u\(K- V3 GP3333YAQGAQu@dowbergill2.dgp6.26@uQK, V3 GPQYAHzqAp= u@dowbergill2.dgp6.27@u =pK+ V3 GPQYA> ףARu@dowbergill2.dgp6.28@uRK* V3 GPYAq= ךA33333u@dowbergill2.dgp6.29@u33333K) V3 GPQYA ףpA33333u@dowbergill2.dgp6.30@u33333K( V3 GP(\YA3333ARu@dowbergill2.dgp6.31@uRK' V3 GPQYA(\AQu@dowbergill2.dgp6.32@uQK& V3 GPQYA)\AQu@dowbergill2.dgp6.33@uQK% V3 GPHzYAGA\(u@dowbergill2.dgp6.34@u(\K$ V3 GP(\{YA ףpAQu@dowbergill2.dgp6.35@uQK# V3 GP(\xYAQ-AGzu@dowbergill2.dgp6.36@uzGK" V3 GP(sYA?AzGuu@dowbergill2.dgp6.37@uuGzK! V3 GP ףpqYAףp=LApu@dowbergill2.dgp6.38@upK V3 GP(\jYAgfff[AQ}u@dowbergill2.dgp6.39@u}QK V3 GP{GhYA3333^A(\bu@dowbergill2.dgp6.40@ub\(K V3 GPG_YARnARmu@dowbergill2.dgp6.41@umRK V3 GPףp=UYA(\kA ףp=nu@dowbergill2.dgp6.42@un=p K V3 GP{GMYA(\A(\fu@dowbergill2.dgp6.43@uf\(K V3 GPq= BYAzAQou@dowbergill2.dgp6.44@uoQK V3 GP> ף9YA{GAQyu@dowbergill2.dgp6.45@uyQK V3  GPDYAq= ׬AQu@dowbergill2.dgp6.46@uQK V3  GPDYAq= ׬AQu@dowbergill1.dgp5.16@uQK V3 GP?YAAHzu@dowbergill1.dgp5.15@uzHL V5 GP> ף8YA\AQu@dowbergill1.dgp5.14a@uQK V3 GPQ5YAGzAQu@dowbergill1.dgp5.14@uQ 2dz, B X n 6 Lbx*@X q$=JWMy V7 GPq= ו\A ףpkAHzw@providencepot.ppot6.8@wzHMx V7 GPx\A(\lAQiw@providencepot.ppot6.9@wiQNw V9 GPGX\Aףp=dA> ףp%w@providencepot.ppot6.10@w%p =Nv V9 GPGX\AQdA33333w@providencepot.ppot6.11@w33333Nu V9 GPT\Aףp=qAq= ףv@providencepot.ppot6.12@v =qNt V9 GP(P\ARuA\(w@providencepot.ppot6.13@w(\Ns V9 GP(A\Agfff}AQv@providencepot.ppot6.14@vQNr V9  GPGz;\AHzAGzw@providencepot.ppot6.15@wzGJq V1  GPGz;\AHzAGzw@dowbergill2.dgp7.1@wzGJp V1 GPQA\A> ףA> ףpv@dowbergill2.dgp7.2@vp =Jo V1 GPq= !\Aq= ׵AQv@dowbergill2.dgp7.3@vQJn V1 GP \AAgffffv@dowbergill2.dgp7.4@vfffffJm V1 GPHz\Aq= AQv@dowbergill2.dgp7.5@vۅQJl V1 GPQ\AGAp= v@dowbergill2.dgp7.6@v =pJk V1 GP ףp[A{G.Av@dowbergill2.dgp7.7@vJj V1 GPQ[A(\LAv@dowbergill2.dgp7.8@vJi V1 GP{G[AQXARw@dowbergill2.dgp7.9@wRKh V3 GP{G[AQnAv@dowbergill2.dgp7.10@vKg V3 GP\[A(\A(\v@dowbergill2.dgp7.11@v\(Kf V3 GP3333[AQAQv@dowbergill2.dgp7.12@vƸQKe V3 GPz[AQAv@dowbergill2.dgp7.13@vKd V3 GP[AQAv@dowbergill2.dgp7.14@vKc V3 GPp= [AHzAQv@dowbergill2.dgp7.15@vQKb V3 GPHz[AAQv@dowbergill2.dgp7.16@vQKa V3 GP)\¤[AG A(\v@dowbergill2.dgp7.17@v\(K` V3 GP[AgfffAq= ףv@dowbergill2.dgp7.18@v =qK_ V3 GP(\[A(1AQv@dowbergill2.dgp7.19@vQK^ V3 GP[AQEA(\v@dowbergill2.dgp7.20@v\(K] V3 GP(\[AgfffRAv@dowbergill2.dgp7.21@vK\ V3 GPgfff[AGzRA{Gv@dowbergill2.dgp7.22@vG{K[ V3 GPQ[AHziAv@dowbergill2.dgp7.23@vKZ V3 GPQ[AhA ףp=v@dowbergill2.dgp7.24@v=p KY V3 GP3333w[A(\Ap= ׷v@dowbergill2.dgp7.25@v =pKX V3 GPHzn[A> ףAQv@dowbergill2.dgp7.26@vQKW V3 GP(\l[AHzAGzv@dowbergill2.dgp7.27@vzGKV V3 GP(e[AA(\v@dowbergill2.dgp7.28@v\(KU V3 GPq= \[AzAQv@dowbergill2.dgp7.29@vQKT V3 GPףp=T[A> ףA(\v@dowbergill2.dgp7.30@v֏\(KS V3 GPGN[Aq= A(\v@dowbergill2.dgp7.31@v֏\(KR V3 GP3333Z[AGAQv@dowbergill2.dgp7.32@vÅQKQ V3 GP3333Q[A(A ףp=v@dowbergill2.dgp7.33@v=p KP V3 GP>[A(-Aq= ףv@dowbergill2.dgp7.34@vģ =qKO V3 GPp= 5[A> ףEAzGv@dowbergill2.dgp7.35@vGzKN V3 GP"[ÀA(\¹v@dowbergill2.dgp7.36@v\(KM V3 GP("[AQAףp= v@dowbergill2.dgp7.37@v =pKL V3 GPQ[AQA> ףpv@dowbergill2.dgp7.38@vp =KK V3 GP[AQAHzv@dowbergill2.dgp7.39@vzHKJ V3 GP ףpZA($AQv@dowbergill2.dgp7.40@vQKI V3 GP(ZA(\4AQsv@dowbergill2.dgp7.41@vsQKH V3 GPZAq= CAQ:v@dowbergill2.dgp7.42@v:Q 1`p 0 ? L Y  f s"/?O_ly(5N* V9 GP~]Ap= A ףp=x@providencepot.ppot2.10@x=p N) V9 GPy]AQAQx@providencepot.ppot2.11@xQN( V9 GPw]AQAx@providencepot.ppot2.12@xN' V9 GP\w]A(AQx@providencepot.ppot2.13@xQN& V9 GPn]A)\&A)\x@providencepot.ppot2.14@x\)N% V9 GPn]A&A)\xx@providencepot.ppot2.23@xx\)N$ V9 GPRb]Aףp=A ףp=vx@providencepot.ppot2.24@xv=p N# V9 GPGI]AAxx@providencepot.ppot2.25@xxN" V9 GPI]AAQ\x@providencepot.ppot2.26@x\QN! V9 GP{GB]AA)\Xx@providencepot.ppot2.27@xX\)N V9 GPQB]AzA\(hx@providencepot.ppot2.28@xh(\N V9  GP)\2]AzA\(xx@providencepot.ppot2.29@xx(\M V7  GP)\2]AzA\(xx@providencepot.ppot3.1@xx(\M V7 GP3333*]Ap= Aq= ף|x@providencepot.ppot3.2@x| =qM V7 GP$]AGAx@providencepot.ppot3.3@xM V7 GPgfff]A(\*Aq= ףx@providencepot.ppot3.4@x =qM V7 GPq= ]AQ6AzGx@providencepot.ppot3.5@xGzM V7 GP(\]AAA\(x@providencepot.ppot3.6@x(\M V7 GP]AHzAAQrx@providencepot.ppot3.7@xrQM V7 GP]Aq= PA)\hx@providencepot.ppot3.8@xh\)M V7 GPGz ]AOA)\hx@providencepot.ppot3.9@xh\)N V9 GP{G\AHzzA> ףpix@providencepot.ppot3.10@xip =N V9 GP\AuA> ףpix@providencepot.ppot3.11@xip =N V9 GP> ף\AHzuAGzx@providencepot.ppot3.12@xzGN V9 GPQ\AAGzx@providencepot.ppot3.13@xzGN V9 GPq= \A3333Aq= ףx@providencepot.ppot3.14@x =qN V9 GPq= \A{GA)\tx@providencepot.ppot3.15@xt\)N V9 GP\AGzAQox@providencepot.ppot3.16@xoQN V9 GPq= \ARAq= ף`x@providencepot.ppot3.17@x` =qN V9 GPp= \Aq= טA`x@providencepot.ppot3.18@x`N V9 GP(\\AGAq= ףdx@providencepot.ppot3.19@xd =qN V9 GP> ף\AAdx@providencepot.ppot3.20@xdN V9 GP3333\A(\AQlx@providencepot.ppot3.21@xlQN V9 GP\AgfffAGzlx@providencepot.ppot3.22@xlzGN V9 GPp= \A ףpA(\_x@providencepot.ppot3.23@x_\(N V9 GPGz\A\A(\_x@providencepot.ppot3.24@x_\(N V9 GPR\AAQgx@providencepot.ppot3.25@xgQN V9  GPGz\A> ףAp= gx@providencepot.ppot3.26@xg =pM V7  GPGz\A> ףAp= gx@providencepot.ppot4.1@xg =pM V7 GPp= \A> ף9A> ףpIx@providencepot.ppot4.2@xIp =M V7 GP(\\AG+A(\Fx@providencepot.ppot4.3@xF\(M V7  GPGz\A6A(\Bx@providencepot.ppot4.5@xB\(M V7  GPGz\A6A(\Bx@providencepot.ppot6.1@xB\(M V7 GPR\A7Aףp= x@providencepot.ppot6.2@x =pM~ V7 GP(\\A33339Aףp= x@providencepot.ppot6.3@x =pM} V7 GP\Aףp=9A(\w@providencepot.ppot6.4@w\(M| V7 GP)\¡\Ap= CAGzw@providencepot.ppot6.5@wzGM{ V7 GP̡\AHzCA ףp=w@providencepot.ppot6.6@w=p Mz V7 GP{G\AHA ףp=w@providencepot.ppot6.7@w=p 2z`p / < I V  c p 0@Tj2NdzK\ V3 GPgfffUA(=AGzt@dowbergill1.dgp1.33@tzGK[ V3 GPUA(\]A(\t@dowbergill1.dgp1.34@tڏ\(KZ V3 GPUA> ף]Aq= ףu@dowbergill1.dgp1.35@u =qKY V3 GP̽UAzA33333u@dowbergill1.dgp1.36@u33333KX V3 GPףp=VAGzzAt@dowbergill1.dgp1.26@tKW V3 GPq= VAAq= ףt@dowbergill1.dgp1.25@t =qKV V3 GPHz VAQA\(t@dowbergill1.dgp1.24@t(\EU V3 GPQVAQAt@dowbergill1.dgp1.23JKT V3 GP(UA> ףAHzt@dowbergill1.dgp1.22@tzHKS V3 GP(\UA(\AQt@dowbergill1.dgp1.21@tQKR V3 GP\UAQ$ARt@dowbergill1.dgp1.20@tRKQ V3 GP ףpUAHzDAzGt@dowbergill1.dgp1.19@tGzKP V3 GP3333UAOAzGt@dowbergill1.dgp1.18@tGzKO V3 GP(UAQhA̜t@dowbergill1.dgp1.17@tKN V3 GPQUAyAq= ףt@dowbergill1.dgp1.16@t =qKM V3 GP> ףUAGzAGzt@dowbergill1.dgp1.15@tzGKL V3 GP> ףUAGzA\(t@dowbergill1.dgp1.14@t(\KK V3 GP> ףUAGzAףp= t@dowbergill1.dgp1.13@t =pMJ V7 GPp= ]Aףp=A)\x@providencepot.ppot1.2@x\)MI V7 GPHz]ARA{Gx@providencepot.ppot1.3@xG{MH V7 GPQ]A> ףAףp= {x@providencepot.ppot1.4@x{ =pMG V7 GPp= ]AAףp= {x@providencepot.ppot1.5@x{ =pMF V7 GP]AAux@providencepot.ppot1.6@xuME V7 GPGz]AAzGix@providencepot.ppot1.7@xiGzMD V7 GP]A ףpA33333gx@providencepot.ppot1.8@xg33333MC V7 GPHz]A> ףA\(hx@providencepot.ppot1.9@xh(\NB V9 GPp= ]A)\A> ףpex@providencepot.ppot1.9a@xep =NA V9 GPףp=]AQA\x@providencepot.ppot1.10@x\N@ V9 GPQ]AHzAQ]x@providencepot.ppot1.11@x]QN? V9 GP ףp]A)\AQkx@providencepot.ppot1.12@xkQN> V9 GP(]AGAQcx@providencepot.ppot1.14@xcQN= V9 GP3333]AA{GNx@providencepot.ppot1.15@xNG{N< V9 GP{G]AHz(ARQx@providencepot.ppot1.16@xQRN; V9 GP)\]AQ*AGzRx@providencepot.ppot1.17@xRzGN: V9 GP)\]A*A{G"x@providencepot.ppot1.18@x"G{N9 V9 GPz]Agfff.AzGx@providencepot.ppot1.19@xGzN8 V9 GP(\]Aףp=MA33333x@providencepot.ppot1.20@x33333N7 V9 GPGz]Aq= VAGzx@providencepot.ppot1.21@xzGN6 V9 GP\]AbA> ףp%x@providencepot.ppot1.22@x%p =N5 V9 GP\]Aq= bAgffff:x@providencepot.ppot1.23@x:fffffN4 V9 GP)\¸]A{GiA8x@providencepot.ppot1.24@x8N3 V9  GPףp=]A\|AHzOx@providencepot.ppot1.25@xOzHM2 V7  GPףp=]A\|AHzOx@providencepot.ppot2.1@xOzHM1 V7 GPp= ]AA)\tx@providencepot.ppot2.2@xt\)M0 V7 GPHz]AHzAx@providencepot.ppot2.3@xM/ V7 GP> ף]Ap= AHzx@providencepot.ppot2.5@xzHM. V7 GPz]AHzAp= ׏x@providencepot.ppot2.6@x =pM- V7 GPp= ]A(\Aq= ףx@providencepot.ppot2.7@x =qM, V7 GPG]A(\AQx@providencepot.ppot2.8@xQM+ V7 GP(\]AQA33333x@providencepot.ppot2.9@x33333 2dz+ J h  7 P  f |.CVix$}*1BG V+  GP)\šWA)\.Agffffv@dowcave.dow3.11@vfffffG V+ GPq= ׊WAHzEAףp= u@dowcave.dow3.10@u =pF V) GP(]WAp= lA(\u@dowcave.dow3.9@u\(P V= GP3333XAq= Aףp= Ox@dowcave.choke2.albert2.2@xO =pP V= GP(\XA(AzG)x@dowcave.choke2.albert2.3@x)GzP V= GPQXAQAGzx@dowcave.choke2.albert2.4@xzGP V= GPXA3333A(\x@dowcave.choke2.albert2.5@x\(P V= GPRXA\ Ax@dowcave.choke2.albert2.7@xP V= GPXAHzAq= ף x@dowcave.choke2.albert2.8@x =qP V= GP)\XAA{Gx@dowcave.choke2.albert2.9@xG{Q V? GPRXAzA(\'x@dowcave.choke2.albert2.10@x'\(Q V? GPXAA{G*x@dowcave.choke2.albert2.11@x*G{P V=  GP> ףXA)\A(\"x@dowcave.choke2.albert2.1@x"\(L V5  GP(\VUA ףpAt@dowcave.glooploop.18@tL V5 GPSUAA\(0u@dowcave.glooploop.17@u0(\L V5 GP3333EUAQAGz8u@dowcave.glooploop.16@u8zGL~ V5 GPp= :UA{GA ףp=Zu@dowcave.glooploop.15@uZ=p L} V5 GPp= UAAp= [u@dowcave.glooploop.14@u[ =pL| V5 GPTA\AHz_u@dowcave.glooploop.13@u_zHL{ V5 GP ףpTAQAGzfu@dowcave.glooploop.12@ufzGLz V5 GPTAGzAmu@dowcave.glooploop.11@umLy V5 GP{GTAGzAq= ף`u@dowcave.glooploop.10@u` =qKx V3 GPHzTA{GAmu@dowcave.glooploop.9@umKw V3 GP ףpTA ףpA(\}u@dowcave.glooploop.8@u}\(Kv V3  GPp= TAq= AHzu@dowcave.glooploop.7@uzHKu V3 GP̉TARAHzu@dowcave.glooploop.6@uzHKt V3 GPxTAq= Ap= u@dowcave.glooploop.5@u =pKs V3 GP]TA)\A)\hu@dowcave.glooploop.4@uh\)Kr V3 GP)\ZTAQA)\t@dowcave.glooploop.3@t\)Kq V3  GPQTA(A> ףpt@dowcave.glooploop.2@tp =Kp V3  GPףp=[TAAHzt@dowcave.glooploop.1@tzHJo V1  GP(\VUA ףpAt@dowcave.hobsons.35@tJn V1 GPUAzA(\t@dowcave.hobsons.12@t\(Jm V1 GP\UA(\AQt@dowcave.hobsons.11@tQJl V1 GPGUAGzAQt@dowcave.hobsons.10@tQIk V/ GPgfffUAGAQt@dowcave.hobsons.9@tQIj V/ GPQUAq= AzG%u@dowcave.hobsons.8@u%GzIi V/ GPQUAq= A(\ju@dowcave.hobsons.6@uj\(Ih V/  GP(UAHzA{Gfu@dowcave.hobsons.7@ufG{Hg V-  GP(UAHzA{Gfu@dowcave.depot.20@ufG{Hf V- GPp= UAgfffAQ{u@dowcave.depot.19@u{QHe V- GP(VA)\Au@dowcave.depot.18@uHd V- GP(VA)\Ap= u@dowcave.depot.17@u =pHc V-  GPgfff7VAgfffAp= חu@dowcave.depot.16@u =pLb V5 GP*VAVAQt@dowbergill1.dgp1.27a@tQKa V3 GP*VAgfffVAu@dowbergill1.dgp1.28@uK` V3 GPp= VA3333A> ףpu@dowbergill1.dgp1.29@up =K_ V3 GP(\VAq= Ap= u@dowbergill1.dgp1.30@u =pK^ V3 GPzUAHz'AQt@dowbergill1.dgp1.31@tQK] V3 GPgfffUAp= =At@dowbergill1.dgp1.32@t 2l"D f  > N ^  m z)6CNU[7VL@ V5 GP(\>VAAQu@dowcave.dripstone.73@uQL? V5 GP(\6VA3333AQu@dowcave.dripstone.72@uQL> V5  GPgfff7VAgfffAp= חu@dowcave.dripstone.71@u =pF= V) GP)\WA{GAu@dowcave.dow3.7@uəF< V) GPgfffVAGA)\u@dowcave.dow3.6@u\)F; V) GP(VAgfffAHzu@dowcave.dow3.5@uzHF: V) GPzbVAGzAq= ףu@dowcave.dow3.4@u =qF9 V) GP(\`VA ףpAzGu@dowcave.dow3.3@uGzF8 V) GPQPVAQAGzu@dowcave.dow3.2@uzGP7 V= GP> ףXA)\A(\w@dowcave.choke2.albert1.2@w\(Q6 V? GPףp=XA{G"A(\w@dowcave.choke2.albert1.2a@w\(P5 V= GPףp=XAQ)AzGw@dowcave.choke2.albert1.3@wGzP4 V= GPQXA\.AHzw@dowcave.choke2.albert1.4@wۮzHP3 V= GP3333XA\?AQw@dowcave.choke2.albert1.5@wQP2 V= GP\XAgfffDAGzw@dowcave.choke2.albert1.6@wzGP1 V=  GPRXA(:AGzw@dowcave.choke2.albert1.7@wzGN0 V9  GPRXA(:AGzw@dowcave.choke2.diga.22@wzGN/ V9 GPq= װXA{G.AQw@dowcave.choke2.diga.21@wQN. V9 GPq= װXA{G.AQw@dowcave.choke2.diga.20@wQN- V9 GP(\XA/AQw@dowcave.choke2.diga.19@wQN, V9 GPHzXAgfff-A> ףpyw@dowcave.choke2.diga.18@wyp =N+ V9 GPXA(A)\dw@dowcave.choke2.diga.17@wd\)N* V9 GPGzXA(\"A)\dw@dowcave.choke2.diga.16@wd\)N) V9 GPzXA> ף%AHz_w@dowcave.choke2.diga.15@w_zHN( V9 GPzXA> ף%AHzWw@dowcave.choke2.diga.14@wWzHN' V9 GPzXA> ף%AHzGw@dowcave.choke2.diga.13@wGzHN& V9 GP> ףXA(\"AHzGw@dowcave.choke2.diga.12@wGzHN% V9 GP> ףXA(\"AHz?w@dowcave.choke2.diga.11@w?zHN$ V9 GP ףpXA> ף"AHz?w@dowcave.choke2.diga.10@w?zHM# V7 GPQwXA ףp0AHz?w@dowcave.choke2.diga.9@w?zHM" V7 GPG|XAGzDAHz?w@dowcave.choke2.diga.8@w?zHM! V7 GPG|XAGzDAGzfw@dowcave.choke2.diga.7@wfzGM V7 GP)\yXAgfffNAGzfw@dowcave.choke2.diga.6@wfzGM V7 GP)\yXAgfffNAGzlw@dowcave.choke2.diga.5@wlzGM V7 GPp= {XAz^A{Gw@dowcave.choke2.diga.4@wG{M V7 GPgfffXAףp=fAQ}w@dowcave.choke2.diga.3@w}QM V7 GPQXA ףpjA(\?w@dowcave.choke2.diga.2@w?\(G V+  GP(\}XAp= xA(\*w@dowcave.dow3.24@w*\(G V+ GP)\YXAA> ףp!w@dowcave.dow3.23@w!p =G V+ GP)\YXAA)\w@dowcave.dow3.22@w\)G V+ GPRXAp= A)\v@dowcave.dow3.21@v\)G V+ GPRXAp= AHzv@dowcave.dow3.20@vîzHG V+ GP(BXAQAHzv@dowcave.dow3.19@vîzHG V+ GP\XA3333Aףp= v@dowcave.dow3.18@v =pG V+ GPRWAq= Aףp= v@dowcave.dow3.17@v =pG V+ GPWA)\Aףp= v@dowcave.dow3.16@v =pG V+  GPQWA(A\(v@dowcave.dow3.15@v(\G V+  GPQWA(ARmv@dowcave.dow3.14@vmRG V+ GPq= WARARmv@dowcave.dow3.13@vmRG V+ GP\WARA ףp=v@dowcave.dow3.12@v=p 4bu% C \  v * C \ u(C_{/Pu,Pr(Gt V+ GP(\RAyA)\t@dowcave.dow1.16@t\)Gs V+ GP ףpxRA)\WA33333t@dowcave.dow1.15@t33333Gr V+ GP\IRA\oAHzt@dowcave.dow1.14@tzHGq V+ GPgfff8RA0A33333t@dowcave.dow1.13@t33333Gp V+ GP(QA(HAףp= t@dowcave.dow1.12@t =pGo V+ GPQQAHz5Ap= ׻t@dowcave.dow1.11@t =pGn V+ GPQAp= ARt@dowcave.dow1.10@tRFm V) GPHzQAGzAp= st@dowcave.dow1.9@ts =pFl V) GPQQA(\AGzt@dowcave.dow1.8@tzGFk V) GP(\XQA(A(\t@dowcave.dow1.7@t\(Fj V) GP\BQA> ףAHzt@dowcave.dow1.6@tzHFi V) GPgfff!QA At@dowcave.dow1.5@tFh V) GP(\QA(ARmt@dowcave.dow1.4@tmRFg V) GP\PAHzA]t@dowcave.dow1.3@t]Ff V) GPq= PA(AR]t@dowcave.dow1.2@t]RJe V1  GP3333OWA(Au@dowcave.rattle1.1a@uٙId V/ GPQWA(A(\ v@dowcave.rattle1.1@v \(Ic V/ GP> ףNWA{GA(\v@dowcave.rattle1.2@v\(Ib V/ GPzdWA ףpA333337v@dowcave.rattle1.3@v733333Ia V/ GPz[WA> ףA\(Pv@dowcave.rattle1.4@vP(\I` V/ GPGzTWAGzAzGUv@dowcave.rattle1.5@vUGzI_ V/ GPRUWAAzGav@dowcave.rattle1.6@vaGzI^ V/ GP{GFWAGzA(\jv@dowcave.rattle1.7@vj\(I] V/  GPףp=FWAgfffA(\‘v@dowcave.rattle1.8@v\(I\ V/ GPzTWAAgffffv@dowcave.rattle1.9@vfffffJ[ V1 GP(UWAQAv@dowcave.rattle1.10@vJZ V1 GPp= \WA(\AHzv@dowcave.rattle1.11@vîzHJY V1 GP\WARAv@dowcave.rattle1.12@vJX V1 GPQTWAGzA ףp=v@dowcave.rattle1.13@v=p JW V1 GP> ףAWAGz AGzw@dowcave.rattle1.14@wzGJV V1  GP\'WAA!w@dowcave.rattle1.15@w!JU V1  GP\'WAA!w@dowcave.rattle3.15@w!JT V1 GPq= WAGAQw@dowcave.rattle3.16@wQJS V1 GP{GVA A{Gw@dowcave.rattle3.17@wG{JR V1 GP(VAAQ(w@dowcave.rattle3.18@w(QJQ V1 GPp= VA)\AQ3w@dowcave.rattle3.19@w3QIP V/ GPRVAQA(\1w@dowcave.rattle3.f@w1\(IO V/ GPGzVA> ףAR w@dowcave.rattle3.e@w RJN V1  GPHzVA\Aףp= v@dowcave.rattle4.47@v =pJM V1 GPp= VAAv@dowcave.rattle4.46@vəJL V1 GPzVAQA\(v@dowcave.rattle4.45@v(\JK V1 GPQVA3333AQv@dowcave.rattle4.44@vQJJ V1 GPzVAGz A{Gv@dowcave.rattle4.43@vG{JI V1 GP> ףVAgfff Aףp= v@dowcave.rattle4.42@v =pDH V1 GPVA3333Apv@dowcave.rattle4.41gKG V3  GP\VAA(\u@dowcave.rattle4.41a@u\(MF V7  GP\VAA(\u@dowcave.dripstone.78a@u\(LE V5 GP\VA(\ARu@dowcave.dripstone.78@uRLD V5 GP ףpVA ףpAq= ףu@dowcave.dripstone.77@u =qLC V5 GPQVA(\Ap= ׋u@dowcave.dripstone.76@u =pLB V5 GP\`VAGAףp= u@dowcave.dripstone.75@u =pLA V5 GPp= aVAGAgffffu@dowcave.dripstone.74@ufffff  =l"D f  @ Z  =H V9 GP]AAy@providencepot.entranceG V7  GP]AAy@providencepot.ppot1.1B V- GPPAAt@dowcave.entranceN@ V)  GPPAAt@dowcave.dow1.1NK V3  GP*VA\UA ףp=t@dowbergill1.dgp1.27@t=p K V3 GP̽UAA{Gt@dowbergill1.dgp1.12@tG{G V+  GPףp=[TAAHzt@dowcave.dow2.27@tzHF V)  GPgfff7VAgfffAp= חu@dowcave.dow3.1@u =pF V)  GP3333OWA(Au@dowcave.dow3.8@uٙG V+  GPףp=[TAAHzt@dowcave.dow1.27@tzHG~ V+ GP(#TAGzAQt@dowcave.dow1.26@tQG} V+ GP> ףSAzAp= ׷t@dowcave.dow1.25@t =pG| V+ GPSA̗AQt@dowcave.dow1.24@tQG{ V+ GPq= SA)\®AGzlt@dowcave.dow1.23@tlzGGz V+ GPQSA)\Aht@dowcave.dow1.22@thGy V+ GPףp=XSAQ)Ap= ot@dowcave.dow1.21@to =pGx V+ GPgfff!SAAGzpt@dowcave.dow1.20@tpzGGw V+ GPQRA(A> ףpqt@dowcave.dow1.19@tqp =Gv V+ GP ףpRAHzIAQut@dowcave.dow1.18@tuQGu V+ GPHzRA(At@dowcave.dow1.17@t D^-q!polygonsgeomgpkg_rtree_indexhttp://www.geopackage.org/spec120/#extension_rtreewrite-onlyZ-q!legsgeomgpkg_rtree_indexhttp://www.geopackage.org/spec120/#extension_rtreewrite-only^-q!stationsgeomgpkg_rtree_indexhttp://www.geopackage.org/spec120/#extension_rtreewrite-only "-polygonsgeomgpkg_rtree_index-legsgeomgpkg_rtree_index!- stationsgeomgpkg_rtree_index.-T10/,+ * )(                             -ZP$GH(H*HHEH:HH1H3HHHHHHH H HHHHH!H#HAHCHHHHHHHHHHHHHHH֌H֎HHHHHHH&H(HoHqHWHYH8H8H݀H݂HHHݸHݸH\H^HHHHHHHJH\H^HޞHޠHtHvHHHoHqHZH\HHHH߁HaHcHHHrHtHHHHHoHqHmHoHfHhHHP$HHHHvH֌HqHHH9HDHBHQHoHRHHOHª}H°H{HCH»H¿HH)HžHª_HqHX HºH`HHr H±WH½GH^Hz H…@H¬HaHT Hµ1H·HH瘣 HHHHcHȠHH4eHArH!HHH3HHHHHHHHHHCHYHH¾9H)HR H[H¬HµH疤HHH9HHHùHCH"H牄H¸6HºH甙H  -ZP$5Hª}HªHAHC4H«H«H7H92H«H«HbHd3H¬H¬HhHj1H¬H¬H燍H燏0H¬H¬HHYH­H­H焍H焏KH®%H®'H"H$LH®%H®'H"H$MH®%H®'H"H$NH®aH®cHHOH®H®HDHFPH®H®H{H}QH®H®HH!ZH¯H¯HH[H¯H¯HHRH¯.H¯0H!H#\H¯[H¯]HH]H¯[H¯]HH^H¯H¯H7H9SH¯H¯HQHSTH¯H¯HHUH°1H°3H~|H~~_H°9H°;H%H'VH°WH°YH~!H~#WH°H°H}?H}A`H°H°H}H} H­H­H焐H焐XH°H°H{H{P$1mHJHLHHHHHHoHBHDHVHXnHBHDHVHXjHBHDHVHXdHBHDHVHXZHBHDHVHXHHHeHgqHHHrHtpHHHrHtlHHHvHxkHHHvHxHHHvHxbHPHRH犉H犋aHPHRH犉H犋`HHH犘H犘iH+H-H犧H犩rHHHHH3H5HHHHHHHHHPHRtHHH狒H狔sHHH狒H狔{HH狝H狟HHHHHHHHHHHH|HHHHuHHHHHïHñHMHOHHH猭H猯HHH猭H猯H_HaH猛H猝HoHqH猁H猃HoHqH猁H猃HHHIHKHvHxHH HHHIHKHHHPHRHHHPHRHHH猇H猉HHH猇H猉HHHHHHHRHTHHHHHHHsHuHHHsHuHHH"H$HHH"H$P$HBHDHBHBHHHCHCHǍHǏHDHDH H HDHDHƢHƤHEHEHƾHHEHEHƏHƑHEHEHƏHƑHEHEHHHJHJHlHnHKzHK|HpHrHM+HM-HÊHÌHM9HM;HPHRHN'HN)H"H$HN~HN~HHHNHN}HHHO|HO~|H9H;HQHQ  -ZP $"HºHºH甖H甘HºHºH甖H甘H»H»H:H<H»H»H:H<H» H» HHHJH»GH»IHPHRH»GH»IHPHRH»GH»IHPHRH»OH»QHHH»OH»QHHH»yH»{H8H8H»yH»{H8H8H»yH»{H8H8H»H»H6H8H»H»H6H8H»H»HHH»H»H\H^H»H»H8H8H¼H¼H$H&H¼XH¼ZHHH¼`H¼bH畼H畾H¼`H¼bH畼H畾H¼vH¼xHWHYH¼H¼HAHCH¼H¼HHH¼H¼H畇H畉H½H½H畺H畼H¾H¾HHH¾H¾HHH/H1HpHrHLHNHHH^H`HHHºHºH`HbH»%H»'HbHdP$3H¤_H¤aHHH¥H¥HHH¥H¥HHH¥H¥HH H¦H¦HH§ H§ HiHkH§SH§UHvHxH§H§HfHhH¨uH¨wH畣H略 H©H©H畴H當 H©H©H畴H當H©oH©qHHH©oH©qHHH©oH©qHH H©H©HHH©H©HH H©H©HH H©H©HHHª]Hª_HH#HžHžHH$HŸ,HŸ.H0H2%HŸHŸHqHs)H¤H¤H瓼H瓾*H¥H¥HH+H¦7H¦9HH -H¨%H¨'HFHH.H§.H§0HH/H§SH§UHvHx6H©QH©SHqHs7H¨SH¨UHH8H¨GH¨IHH9H§H§HcHe:H§H§HH;H§H§HGHIH½gH½iHOHQH¼H¼H琫H琭H¼H¼H琳H琵H¼H¼HHH¼H¼HHH¼nH¼pHgHiH¼H¼HvHxH¼H¼HvHxH»H»HHH¼)H¼+HHH¾`H¾bH`HbH¼UH¼WH'H)H¼H¼HvHxH½H½HHH¾UH¾WHlHnH¿/H¿1HHH¿/H¿1HHH¿H¿H玮H现H¿H¿HuHw  -ZP $Hµ1Hµ3HKHMHµ]Hµ_H[H]Hµ]Hµ_HZH\Hµ~HµH9H;HµHµH8H:HµHµHHHµHµH2H4HµHµH[H]H¶H¶H瘝H瘟H¶H¶HHH¶zH¶|HH¶zH¶|HH¶H¶HHH¶H¶HHH¶H¶H瘗H瘙H¶H¶H疗H疙H¶H¶H瘆H瘈H¶H¶H瘆H瘈H¶H¶H瘇H瘉H¶H¶HH H¶H¶HSHUH¶H¶HHH¶H¶H6H8H·H·H[H]H·'H·)H瘡H瘣H·\H·^HxHxH·H·HWHYH·H·H瘐H瘒P $1&HxHzHRHT'H‘yH‘{HEHG(H’NH’PH~H盀,H©H©HEHGHªqHªsH0H2"HªHªHHHªH«HFHHH«H«H{H}H«H«HHH«H«H痨H痪H¬ H¬HOHQH¬H¬H瘠H瘢nH¬ H¬ HeHg!H¬(H¬*HXHZH¬TH¬VH>H@H¬wH¬yHaHcH¬H¬HrHtoHªHªHHsH¢H¢HHtH£H£H-H/uH¤NH¤PHH}H¨H¨HH~H©H©HHHª(Hª*HQHSHªHªH痎H痐HªHªHHH†H†HHH‡H‡H疗H疙HˆHˆH!H#H‰ H‰ HOHQHŠHŠHuHwHŠHŠH痙H痛HŒ?HŒAHLHNHŒ?HŒAHJHLHŽVHŽXHHHŽHŽH癧H癩HŽHŽHAHCH‘H‘H癆H癈H’NH’PH~H盀H“H“H皾HH•DH•FHHH–H–HHH–H–HGHIH–H–HHH™ H™ HHHšHšHLHNHQHSH.H0H…@H…@H痀H痀H…@H…@H痀H痀P $/H±WH±YHzHzPHµHµHnHnOHµHµHo*Ho,NHµHµHpGHpILH´H´HqHqKH´H´HrbHrdJH´H´HrHrIH´7H´9HsHsGH³.H³0HvLHvNFH³H³HvHvEH²H²HwxHwzDH²vH²xHx"Hx$BH±H±HyHyAH±H±HzHz@H±H±HzHz?H±fH±hHzHz=H±WH±YHzHz>H±WH±YHzHzQH¶H¶HnHnRH¶gH¶iHm]Hm_SH¶H¶HlHlUH·JH·LHk;Hk=VH·H·HjWHjYWH·H·HjWHjYXH·H·HjaHjc[H¹lH¹nHgzHg|]H¹H¹HfHf^HºxHºzHe?HeA_HºHºHd|Hd~`H»KH»MHcHcaH»;H»=HcHcbH»rH»tHcNHcPcH»H»HbzHb|dH¼@H¼BHaHaeH¼bH¼dH`H`fH¼H¼H`3H`5gH¼H¼H_H_hH½EH½GH^H^aH±WH±YHzHzMHµHµHpHqCH²0H²0HxHxYH¸8H¸8HiHiZH¸xH¸xHi;Hi=HH³=H³?HuHuTH¶H¶HlHHlH\H¹uH¹wHgHgbH±WH±YHzHz  -ZP$HHHHHգHեH'H)HՂHՄHHHeHgHH!HHH "H $HHH H HԤHԦH H HxHzH!H!HHH"H"H%H'H"H"HӞHӠH#H#HӠHӢH$H$HHH%H%HҷHҹH&H&HxHxH'.H'0H=H?H(H(HљHћH*H*H%H'H+H+HHH-H-H-H/H.H.HHH/|H/~HmHoH0QH0SH8H:H1H1HΈHΊH27H29H!H#H3H3P$#HHH4eH4gHHH4H4HiHkH5H5H͟H͡H5H5&HRHTH5H5HH H69H6;H̿HH6H6H7H9H7H7%HHH8eH8gHHH8H8HHH9iH9kH˙H˛H9H9HˊHˌH:`H:bHTHVH:H:HBHDH:H:HʨHʪH;YH;[HHH;tH;vHjHlH<4H<6HHHJH>LHHH>VH>XHɇHɉH>H>HAHCH?H?HHH@-H@/HHH@5H@7HȿHH@H@HȾHH@H@HȠHȢHAoHAqAHȠHȢHAoHAqHȠHȢHApHArP $,HIHKHH+H9H;HH1HHHoHq)H,H.HH*HHHH2HHHH HHHWHY3HHHH4HHHH H0H2HH6HlHnH8H:5HlHnH8H:7HRHTHBHDHHHH HHHH8HHHH(HeHgHHHHHHHHHH'H2H4HaHc HHHGHI H H"HHHUHWHdHfHVHXHbHdHmHoH*H,HmHoH(H*HHHHHHHHHHHHHHHH |vpjd^XRLF@:4.(" ztnhb\VPJD>82,&  ~ x r l f ` Z T N H B < 6 0 * $     z s l e ^ W P I B ; 4 - &     ~ w p i b [ T M F ? 8 1 * #     { t m f _ X Q J C < 5 . '     x q j c \ U N G @ 9 2 + $     |ung`YRKD=6/(! yrkd]VOHA:3,% }vohaZSLE>70)" zsle^WPIB;4-& ~wpib[TMF?81*#TSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjih g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A @ ? > = <;:9876543210/.-, +*)( ' & %$#" !                 ~}|{zyxwvutsrqponmlkj i hgf edcba`_^ ] \ [ Z Y X W V U T SR Q P O N M L K J I HGFED C B A@? > = < ; : 9 8 7 65 4 3 2 1 0 / . - , +*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:98 7 6 5 4 3 2 1 0/.-, + * ) ( ' &%$#"!       4{tmf_XQJC<5.'  xqjc\UNG@92+$ | u n g ` Y R K D = 6 / ( !    y r k d ] V O H A : 3 , %     } v o h a Z S L E > 7 0 ) "    z s l e ^ W P I B ; 4 - &     ~ w p i b [ T M F ? 8 1 * #     {tmf_XQJC<5.'     ~}|{z y x w v u t s r q p o n m l k j i h g f edcb a`_^]\[ZYXWVUTS R Q P O N M L K J I HGFE DCBA@?>=< ; :9876543210/.-,+*)('&%$#"!          ~ } |{zyxwvu t s rqpo n mlkjihgfedcb a `_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!                      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVU  -ZP$"!H$H&HYH[8HAHCHhHj HHHH7H"H$HHHHHH5HHHH6HHHH4HHHJHL2HHHH3HHHHH+H-HHHDHFHHHHHHHHHHHHHHHHHHHHHOHQHxHzHyH{HHHzH|HHHzH|HHHzH|0H_HaHHHHHHHHHH1H`HbHHH>H@HHHHHH H;H=HHH;H=HHHEHGH]H_.HHHH/HHHH-HHHH,HHHHP$$H#H%HH!HHHH HHHHHPHRHH#HOHQHH"HOHQHHHHHHHHHH HHH H HHHQHSHYH[HXHZ HHHdHf HHHHHHHH HHHHHHHH HHHHHHH HHHHFHHHRHTHxHxH4H6HxHzH{H}HH-HHHHH@H@HHHHHH.HHHH/HHHH0HHHH$HHHH%HpHpH6H8&HpHpH6H8'HHH1H3(HHH/H1)HHHH*HHHxHz+H!H#HHP$ HHHH9HHHHHHHHHHHHHHHHHHH_Ha;HHHHHHHHHHHHHHHH:H>H@HHHHHHHHHHHHHHHHHHHHHHH H HCHEH~HHHH H HHHHHH HHHH ?HHHH H HH}HH HHH  -ZP$HHHHH H HH~H H HHHkHmH0H2HqHsH5H7hHąHćH|H~_HĆHĈHH^HĈHĊH HcHĔHĖH*H,YHĜHĞH+H-zHĸHĺHHgHļHľH]H_XHHH H \HHHgHi]HHHHeHHHkHmfHHHkHm[HHHaHcyH+H-H狯H狱WH2H4HHVH2H4HHxHHH狥H狧wHHH_HavH&H(H HUH7H9HHH|H~HHH|H~HHHŞHŠH#H%HHHHP$1H¬H¬HHH­H­ HHmH­&H­(HHH­JH­LH痱H痳 H­H­HHH­H­HYH[lH­H­HbHdH® H®"HHkH®[H®]H7H9H®H®H疤H疦iH®H®HuHwjH®H®HuHwH®H®HHH®H®HHgH¯H¯HGHIhH¯H¯HGHIH¯wH¯yHHH¯H¯HHH¯H¯HHH¯H¯H痚H痜H¯H¯H痚H痜fH¯H¯HsHuH¯H¯HHH°H° HHdH°AH°CH痎H痐eH°AH°CH痎H痐H°pH°rHHH°H°H痸H痺H±H±HHH± H±"H瘸H瘸H±#H±%H5H7H±3H±5H>H@H±H±H瘷H瘹H±H±H瘷H瘹cH±H±HcHeH²H²HWHYH³H³HZH\H³H³H H H±H±HcHeH±H±H痨H痪H±H±HSHUH³H³ HOHQH³H³HHH´qH´sHAHCH´H´HHHµHµH0H0HµHµH0H0HµHµH0H2H±H±HcHeP$mH¿H¿HWHWoH:HH¿@HYFHYHlH¿H¿HXHXjH¾H¾HZ(HZ* Z -ZP$%H¸6H¸8HHH¸UH¸WH瘗H瘙H¸H¸HHH¸H¸HHH¸H¸HHH¸H¸H:H<H¸H¸H]H_H¹H¹H甙H甛H¹2H¹4HHH¹>H¹@H瘶H瘸H¹>H¹@H瘶H瘸H¹nH¹pH瘓H瘕H¹H¹HHHº HºHjHlHº0Hº2HCHEHº9Hº;HGHIHºBHºDHH HºPHºPHHHºVHºXHjHlHºxHºzH1H3HºxHºzH1H3HºxHºzH1H3HºHºH{H}HºHºH瘲H瘴HºHºH瘜H瘞HºHºH瘜H瘞HºHºH瘼H瘾HºHºHwHyHº0Hº2HCHEHº2Hº4HBHDHºHºH痖H痘HºHºH"H$HºHºHHHºuHºwH:H<HºHºH畑H畓HºxHºzH1H3HºxHºzH1H3P$&HùHûH牂H牄HHHH}HHHiHkHUHWHHHUHWHHHHH-H/HHH-H/HHH-H/OHƥHƧH父H爸THƥHƧH父H爸HƥHƧH父H爸NHƶHƸH爤H爦PHƿHHIHKHHH爾HHHH]H_HH/H1HH1H3MHBHDHHHdHfHHRHǂHDŽH"H$SHǑHǓH,H.HǠHǠH8H:HǣHǥH爯H爱HǦHǨH爰H爰HHH^H`LHHHHHJKH5H7HqHsQHAHCHGHIHHHHHHH@H@H?HAHkHmH$H&HH牁HŅHŇHrHtHŅHŇHrHtHTHVHvHxHƀHƂHLHNHƈHƊHHHƥHƧH父H爸 ;O;l U6 ==tablertree_stations_geom_nodertree_stations_geom_node&CREATE TABLE "rtree_stations_geom_node"(nodeno INTEGER PRIMARY KEY,data) ??!tablertree_stations_geom_rowidrtree_stations_geom_rowid%CREATE TABLE "rtree_stations_geom_rowid"(rowid INTEGER PRIMARY KEY,nodeno)331tablertree_stations_geomrtree_stations_geomCREATE VIRTUAL TABLE "rtree_stations_geom" USING rtree(id, minx, maxx, miny, maxy)},77tablertree_legs_geom_rowidrtree_legs_geom_rowidYCREATE TABLE "rtree_legs_geom_rowid"(rowid INTEGER PRIMARY KEY,nodeno)x+++)tablertree_legs_geomrtree_legs_geomCREATE VIRTUAL TABLE "rtree_legs_geom" USING rtree(id, minx, maxx, miny, maxy)n*Otriggertrigger_delete_feature_count_legslegsCREATE TRIGGER "trigger_delete_feature_count_legs" AFTER DELETE ON "legs" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count - 1 WHERE lower(table_name) = lower('legs'); ENDn)Otriggertrigger_insert_feature_count_legslegsCREATE TRIGGER "trigger_insert_feature_count_legs" AFTER INSERT ON "legs" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count + 1 WHERE lower(table_name) = lower('legs'); ENDN(tablelegslegs3CREATE TABLE "legs" ( "fid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "geom" LINESTRING, "NAME" TEXT, "ELEVATION" REAL, "STYLE" TEXT, "DATE1" DATE, "DATE2" DATE, "NLEGS" MEDIUMINT, "LENGTH" REAL, "ERROR" REAL, "ERROR_HORIZ" REAL, "ERROR_VERT" REAL, "SURFACE" MEDIUMINT, "DUPLICATE" MEDIUMINT, "SPLAY" MEDIUMINT)Q'AOtriggerrtree_stations_geom_deletestationsCREATE TRIGGER "rtree_stations_geom_delete" AFTER DELETE ON "stations" WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_stations_geom" WHERE id = OLD."fid"; END&CWtriggerrtree_stations_geom_update4stationsCREATE TRIGGER "rtree_stations_geom_update4" AFTER UPDATE ON "stations" WHEN OLD."fid" != NEW."fid" AND (NEW."geom" ISNULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_stations_geom" WHERE id IN (OLD."fid", NEW."fid"); END!%Cmtriggerrtree_stations_geom_update3stationsCREATE TRIGGER "rtree_stations_geom_update3" AFTER UPDATE ON "stations" WHEN OLD."fid" != NEW."fid" AND (NEW."geom" NOTNULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_stations_geom" WHERE id = OLD."fid"; INSERT OR REPLACE INTO "rtree_stations_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END$CMtriggerrtree_stations_geom_update2stationsCREATE TRIGGER "rtree_stations_geom_update2" AFTER UPDATE OF "geom" ON "stations" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" ISNULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_stations_geom" WHERE id = OLD."fid"; ENDr#Ctriggerrtree_stations_geom_update1stationsCREATE TRIGGER "rtree_stations_geom_update1" AFTER UPDATE OF "geom" ON "stations" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" NOTNULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_stations_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDM"AGtriggerrtree_stations_geom_insertstationsCREATE TRIGGER "rtree_stations_geom_insert" AFTER INSERT ON "stations" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_stations_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END!AA-tablertree_stations_geom_parentrtree_stations_geom_parent'CREATE TABLE "rtree_stations_geom_parent"(nodeno INTEGER PRIMARY KEY,parentnode)$/X}wqke_YSMGA;5/W*VUTkSVRAQ,PONmMXLCK1JI H{GiFWEED3C!BA}@k?Y>G=5<#;:9m8[7I675%4 D,X  4 `<hDQn%!!GPHzQAQQAGzA(\Ap= st@Gzt@HzQAGzAp= st@QQA(\AGzt@dowcave.dow1@t =pNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPHzQAQAGzAp= Ap= st@Rt@QAp= ARt@HzQAGzAp= st@dowcave.dow1@tzG{NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPQAQQAp= AHz5ARt@p= ׻t@QQAHz5Ap= ׻t@QAp= ARt@dowcave.dow1@tG{NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPQQA(QAHz5A(HAףp= t@p= ׻t@(QA(HAףp= t@QQAHz5Ap= ׻t@dowcave.dow1@tp =NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP(QAgfff8RA0A(HAףp= t@33333t@gfff8RA0A33333t@(QA(HAףp= t@dowcave.dow1@t =pNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPgfff8RA\IRA0A\oA33333t@Hzt@\IRA\oAHzt@gfff8RA0A33333t@dowcave.dow1@tQNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Q n%!!GP\IRA ףpxRA)\WA\oA33333t@Hzt@ ףpxRA)\WA33333t@\IRA\oAHzt@dowcave.dow1@tQNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Q n%!!GP ףpxRA(\RA)\WAyA)\t@33333t@(\RAyA)\t@ ףpxRA)\WA33333t@dowcave.dow1@tzGNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Q n%!!GP(\RAHzRAyA(At@)\t@HzRA(At@(\RAyA)\t@dowcave.dow1@t\(NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Q n%!!GPHzRA ףpRAHzIA(AQut@t@ ףpRAHzIAQut@HzRA(At@dowcave.dow1@t{\(NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Q n%!!GP ףpRAQRA(AHzIA> ףpqt@Qut@QRA(A> ףpqt@ ףpRAHzIAQut@dowcave.dow1@ts\(NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPQRAgfff!SA(AAGzpt@> ףpqt@gfff!SAAGzpt@QRA(A> ףpqt@dowcave.dow1@tp\)NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPgfff!SAףp=XSAAQ)Ap= ot@Gzpt@ףp=XSAQ)Ap= ot@gfff!SAAGzpt@dowcave.dow1@tp(\NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPףp=XSAQSA)\AQ)Aht@p= ot@QSA)\Aht@ףp=XSAQ)Ap= ot@dowcave.dow1@tlNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPQSAq= SA)\®A)\Aht@Gzlt@q= SA)\®AGzlt@QSA)\Aht@dowcave.dow1@tj=p NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPq= SASA̗A)\®AGzlt@Qt@SA̗AQt@q= SA)\®AGzlt@dowcave.dow1@tvG{NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPSA> ףSAzA̗AQt@p= ׷t@> ףSAzAp= ׷t@SA̗AQt@dowcave.dow1@tzGNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP> ףSA(#TAGzAzAQt@p= ׷t@(#TAGzAQt@> ףSAzAp= ׷t@dowcave.dow1@tNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP(#TAףp=[TAAGzAHzt@Qt@ףp=[TAAHzt@(#TAGzAQt@dowcave.dow1@tRNORMAL1982-02-071982-02-07@t =q@@\(?Q ,X  4 ]*S|T%n+!!GP(UWAp= \WA(\AQAv@Hzv@(UWAQAv@p= \WA(\AHzv@dowcave.rattle1@vQNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T$n+!!GPzTWA(UWAAQAgffffv@v@zTWAAgffffv@(UWAQAv@dowcave.rattle1@vNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T#n+!!GPףp=FWAzTWAgfffAA(\‘v@gffffv@ףp=FWAgfffA(\‘v@zTWAAgffffv@dowcave.rattle1@vNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T"n+!!GPףp=FWA{GFWAgfffAGzA(\jv@(\‘v@{GFWAGzA(\jv@ףp=FWAgfffA(\‘v@dowcave.rattle1@v~zGNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T!n+!!GP{GFWARUWAAGzAzGav@(\jv@RUWAAzGav@{GFWAGzA(\jv@dowcave.rattle1@veRNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T n+!!GPGzTWARUWAGzAAzGUv@zGav@GzTWAGzAzGUv@RUWAAzGav@dowcave.rattle1@v[33333NORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Tn+!!GPGzTWAz[WA> ףAGzA\(Pv@zGUv@z[WA> ףA\(Pv@GzTWAGzAzGUv@dowcave.rattle1@vRQNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Tn+!!GPz[WAzdWA ףpA> ףA333337v@\(Pv@zdWA ףpA333337v@z[WA> ףA\(Pv@dowcave.rattle1@vCzHNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Tn+!!GP> ףNWAzdWA{GA ףpA(\v@333337v@> ףNWA{GA(\v@zdWA ףpA333337v@dowcave.rattle1@v*G{NORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Tn+!!GP> ףNWAQWA(A{GA(\ v@(\v@QWA(A(\ v@> ףNWA{GA(\v@dowcave.rattle1@vzGNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Tn+!!GP3333OWAQWA(A(Au@(\ v@3333OWA(Au@QWA(A(\ v@dowcave.rattle1@uzHNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >Qn%!!GPPAq= PA(AAR]t@t@q= PA(AR]t@PAAt@dowcave.dow1@t =pNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPq= PA\PAHzA(A]t@R]t@\PAHzA]t@q= PA(AR]t@dowcave.dow1@t]\(NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP\PA(\QAHzA(A]t@Rmt@(\QA(ARmt@\PAHzA]t@dowcave.dow1@te\(NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP(\QAgfff!QA(A ARmt@t@gfff!QA At@(\QA(ARmt@dowcave.dow1@t\)NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GPgfff!QA\BQA A> ףAHzt@t@\BQA> ףAHzt@gfff!QA At@dowcave.dow1@t =pNORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP\BQA(\XQA(A> ףAHzt@(\t@(\XQA(A(\t@\BQA> ףAHzt@dowcave.dow1@t33333NORMAL1982-02-071982-02-07@t =q@@\(?Q녁Qn%!!GP(\XQAQQA(\A(AGzt@(\t@QQA(\AGzt@(\XQA(A(\t@dowcave.dow1@t=p NORMAL1982-02-071982-02-07@t =q@@\(?Q )R {  Hq>gT7n+!!GP\VAVAA3333A(\u@pv@VA3333Apv@\VAA(\u@dowcave.rattle4@v7\(NORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T6n+!!GPVA> ףVA3333Agfff Apv@ףp= v@> ףVAgfff Aףp= v@VA3333Apv@dowcave.rattle4@vyNORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T5n+!!GP> ףVAzVAgfff AGz Aףp= v@{Gv@zVAGz A{Gv@> ףVAgfff Aףp= v@dowcave.rattle4@v =pNORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T4n+!!GPzVAQVA3333AGz A{Gv@Qv@QVA3333AQv@zVAGz A{Gv@dowcave.rattle4@vG{NORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T3n+!!GPQVAzVAQA3333AQv@\(v@zVAQA\(v@QVA3333AQv@dowcave.rattle4@vp =NORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T2n+!!GPzVAp= VAQAA\(v@v@p= VAAv@zVAQA\(v@dowcave.rattle4@v\)NORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T1n+!!GPp= VAHzVAA\Av@ףp= v@HzVA\Aףp= v@p= VAAv@dowcave.rattle4@v=p NORMAL1988-01-101988-01-10%@dQ@Gz@@"p >T0n+!!GPGzVAHzVA> ףA\Aףp= v@R w@GzVA> ףAR w@HzVA\Aףp= v@dowcave.rattle3@vfffffNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T/n+!!GPGzVARVA> ףAQAR w@(\1w@RVAQA(\1w@GzVA> ףAR w@dowcave.rattle3@wRNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T.n+!!GPRVAp= VAQA)\A(\1w@Q3w@p= VA)\AQ3w@RVAQA(\1w@dowcave.rattle3@w2QNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T-n+!!GPp= VA(VA)\AAQ(w@Q3w@(VAAQ(w@p= VA)\AQ3w@dowcave.rattle3@w-RNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T,n+!!GP(VA{GVAA A{Gw@Q(w@{GVA A{Gw@(VAAQ(w@dowcave.rattle3@w#zHNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T+n+!!GP{GVAq= WA AGAQw@{Gw@q= WAGAQw@{GVA A{Gw@dowcave.rattle3@wNORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T*n+!!GPq= WA\'WAGAAQw@!w@\'WAA!w@q= WAGAQw@dowcave.rattle3@wp =NORMAL1987-12-271987-12-27%@dQ@Gz@@"p >T)n+!!GP\'WA> ףAWAGz AAGzw@!w@> ףAWAGz AGzw@\'WAA!w@dowcave.rattle1@wQNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T(n+!!GP> ףAWAQTWAGz AGzA ףp=v@Gzw@QTWAGzA ףp=v@> ףAWAGz AGzw@dowcave.rattle1@w\(NORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T'n+!!GPQTWA\WARAGzAv@ ףp=v@\WARAv@QTWAGzA ףp=v@dowcave.rattle1@v =pNORMAL1986-04-021986-04-02%@dQ@Gz@@"p >T&n+!!GP\WAp= \WARA(\AHzv@v@p= \WA(\AHzv@\WARAv@dowcave.rattle1@vRNORMAL1986-04-021986-04-02%@dQ@Gz@@"p > 'N u  8Z| ,QvXIn3!!GP(\XAq= װXA{G.A/AQw@Qw@q= װXA{G.AQw@(\XA/AQw@dowcave.choke2.diga@wQNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XHn3!!GPq= װXAq= װXA{G.A{G.AQw@Qw@q= װXA{G.AQw@q= װXA{G.AQw@dowcave.choke2.diga@wQNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XGn3!!GPRXAq= װXA{G.A(:AQw@Gzw@RXA(:AGzw@q= װXA{G.AQw@dowcave.choke2.diga@wfffffNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)[Fn9!!GPRXA\XA(:AgfffDAGzw@Gzw@\XAgfffDAGzw@RXA(:AGzw@dowcave.choke2.albert1@wΏ\(NORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)[En9!!GP\XA3333XA\?AgfffDAGzw@Qw@3333XA\?AQw@\XAgfffDAGzw@dowcave.choke2.albert1@wfffffNORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)[Dn9!!GP3333XAQXA\.A\?AQw@Hzw@QXA\.AHzw@3333XA\?AQw@dowcave.choke2.albert1@wNORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)[Cn9!!GPQXAףp=XAQ)A\.AHzw@zGw@ףp=XAQ)AzGw@QXA\.AHzw@dowcave.choke2.albert1@wzGNORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)UBn9!!GPףp=XAףp=XA{G"AQ)AzGw@(\w@ףp=XA{G"A(\w@ףp=XAQ)AzGw@dowcave.choke2.albert1NORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)[An9!!GPףp=XA> ףXA)\A{G"A(\w@(\w@> ףXA)\A(\w@ףp=XA{G"A(\w@dowcave.choke2.albert1@w\(NORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)[@n9!!GP> ףXA> ףXA)\A)\A(\w@(\"x@> ףXA)\A(\"x@> ףXA)\A(\w@dowcave.choke2.albert1@x \(NORMAL1986-09-281986-09-28@S7 =p@p =q@333333@ (\)V?n/!!GP(\6VAgfff7VAgfffA3333Ap= חu@Qu@(\6VA3333AQu@gfff7VAgfffAp= חu@dowcave.dripstone@uNORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V>n/!!GP(\6VA(\>VAA3333AQu@Qu@(\>VAAQu@(\6VA3333AQu@dowcave.dripstone@u =qNORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V=n/!!GP(\>VAp= aVAGAAgffffu@Qu@p= aVAGAgffffu@(\>VAAQu@dowcave.dripstone@u =pNORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V<n/!!GP\`VAp= aVAGAGAgffffu@ףp= u@\`VAGAףp= u@p= aVAGAgffffu@dowcave.dripstone@uQNORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V;n/!!GP\`VAQVAGA(\Aףp= u@p= ׋u@QVA(\Ap= ׋u@\`VAGAףp= u@dowcave.dripstone@up =NORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V:n/!!GPQVA ףpVA ףpA(\Ap= ׋u@q= ףu@ ףpVA ףpAq= ףu@QVA(\Ap= ׋u@dowcave.dripstone@u(\NORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V9n/!!GP ףpVA\VA ףpA(\Aq= ףu@Ru@\VA(\ARu@ ףpVA ףpAq= ףu@dowcave.dripstone@uGzNORMAL1988-01-311988-01-31%@dQ@Gz@@"p >V8n/!!GP\VA\VA(\AARu@(\u@\VAA(\u@\VA(\ARu@dowcave.dripstone@u=p NORMAL1988-01-311988-01-31%@dQ@Gz@@"p > %J o  (Mr+PuX[n3!!GP(\}XAQXA ףpjAp= xA(\*w@(\?w@QXA ףpjA(\?w@(\}XAp= xA(\*w@dowcave.choke2.diga@w4\)NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XZn3!!GPQXAgfffXAףp=fA ףpjA(\?w@Q}w@gfffXAףp=fAQ}w@QXA ףpjA(\?w@dowcave.choke2.diga@w^=p NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XYn3!!GPp= {XAgfffXAz^Aףp=fAQ}w@{Gw@p= {XAz^A{Gw@gfffXAףp=fAQ}w@dowcave.choke2.diga@wRNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XXn3!!GP)\yXAp= {XAgfffNAz^AGzlw@{Gw@)\yXAgfffNAGzlw@p= {XAz^A{Gw@dowcave.choke2.diga@wy\(NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XWn3!!GP)\yXA)\yXAgfffNAgfffNAGzfw@Gzlw@)\yXAgfffNAGzfw@)\yXAgfffNAGzlw@dowcave.choke2.diga@wiGzNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XVn3!!GP)\yXAG|XAGzDAgfffNAGzfw@Gzfw@G|XAGzDAGzfw@)\yXAgfffNAGzfw@dowcave.choke2.diga@wfzGNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XUn3!!GPG|XAG|XAGzDAGzDAHz?w@Gzfw@G|XAGzDAHz?w@G|XAGzDAGzfw@dowcave.choke2.diga@wRG{NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XTn3!!GPQwXAG|XA ףp0AGzDAHz?w@Hz?w@QwXA ףp0AHz?w@G|XAGzDAHz?w@dowcave.choke2.diga@w?zHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XSn3!!GPQwXA ףpXA> ף"A ףp0AHz?w@Hz?w@ ףpXA> ף"AHz?w@QwXA ףp0AHz?w@dowcave.choke2.diga@w?zHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XRn3!!GP ףpXA> ףXA(\"A> ף"AHz?w@Hz?w@> ףXA(\"AHz?w@ ףpXA> ף"AHz?w@dowcave.choke2.diga@w?zHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XQn3!!GP> ףXA> ףXA(\"A(\"AHz?w@HzGw@> ףXA(\"AHzGw@> ףXA(\"AHz?w@dowcave.choke2.diga@wCzHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XPn3!!GP> ףXAzXA(\"A> ף%AHzGw@HzGw@zXA> ף%AHzGw@> ףXA(\"AHzGw@dowcave.choke2.diga@wGzHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XOn3!!GPzXAzXA> ף%A> ף%AHzGw@HzWw@zXA> ף%AHzWw@zXA> ף%AHzGw@dowcave.choke2.diga@wOzHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XNn3!!GPzXAzXA> ף%A> ף%AHzWw@Hz_w@zXA> ף%AHz_w@zXA> ף%AHzWw@dowcave.choke2.diga@w[zHNORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XMn3!!GPzXAGzXA(\"A> ף%AHz_w@)\dw@GzXA(\"A)\dw@zXA> ף%AHz_w@dowcave.choke2.diga@wb=p NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XLn3!!GPGzXAXA(\"A(A)\dw@)\dw@XA(A)\dw@GzXA(\"A)\dw@dowcave.choke2.diga@wd\)NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XKn3!!GPXAHzXA(Agfff-A)\dw@> ףpyw@HzXAgfff-A> ףpyw@XA(A)\dw@dowcave.choke2.diga@wo33333NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\)XJn3!!GP(\XAHzXAgfff-A/A> ףpyw@Qw@(\XA/AQw@HzXAgfff-A> ףpyw@dowcave.choke2.diga@w\)NORMAL1986-07-191986-07-19@S7 =p@p =q@333333@ (\) ,X  4 `<h[mn9!!GP3333XA(\XA(Aq= AzG)x@ףp= Ox@3333XAq= Aףp= Ox@(\XA(AzG)x@dowcave.choke2.albert2@x<(\NORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[ln9!!GP> ףXA3333XAq= A)\A(\"x@ףp= Ox@> ףXA)\A(\"x@3333XAq= Aףp= Ox@dowcave.choke2.albert2@x8NORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁Qkn%!!GP3333OWA(]WAp= lA(Au@(\u@(]WAp= lA(\u@3333OWA(Au@dowcave.dow3@uۮzHNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qjn%!!GP(]WAq= ׊WAHzEAp= lA(\u@ףp= u@q= ׊WAHzEAףp= u@(]WAp= lA(\u@dowcave.dow3@ufffffNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qin%!!GPq= ׊WA)\šWA)\.AHzEAףp= u@gffffv@)\šWA)\.Agffffv@q= ׊WAHzEAףp= u@dowcave.dow3@vQNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qhn%!!GP)\šWA\WARA)\.Agffffv@ ףp=v@\WARA ףp=v@)\šWA)\.Agffffv@dowcave.dow3@v=p NORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qgn%!!GP\WAq= WARARA ףp=v@Rmv@q= WARARmv@\WARA ףp=v@dowcave.dow3@vFzGNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qfn%!!GPq= WAQWA(ARARmv@Rmv@QWA(ARmv@q= WARARmv@dowcave.dow3@vmRNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qen%!!GPQWAQWA(A(ARmv@\(v@QWA(A\(v@QWA(ARmv@dowcave.dow3@v =pNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qdn%!!GPQWAWA)\A(Aףp= v@\(v@WA)\Aףp= v@QWA(A\(v@dowcave.dow3@vzHNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qcn%!!GPWARWAq= A)\Aףp= v@ףp= v@RWAq= Aףp= v@WA)\Aףp= v@dowcave.dow3@v =pNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qbn%!!GPRWA\XA3333Aq= Aףp= v@ףp= v@\XA3333Aףp= v@RWAq= Aףp= v@dowcave.dow3@v =pNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Qan%!!GP\XA(BXAQA3333Aףp= v@Hzv@(BXAQAHzv@\XA3333Aףp= v@dowcave.dow3@vp =NORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Q`n%!!GP(BXARXAQAp= AHzv@Hzv@RXAp= AHzv@(BXAQAHzv@dowcave.dow3@vîzHNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Q_n%!!GPRXARXAp= Ap= AHzv@)\v@RXAp= A)\v@RXAp= AHzv@dowcave.dow3@v=p NORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Q^n%!!GPRXA)\YXAp= AA)\v@)\w@)\YXAA)\w@RXAp= A)\v@dowcave.dow3@v\)NORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Q]n%!!GP)\YXA)\YXAAA)\w@> ףp!w@)\YXAA> ףp!w@)\YXAA)\w@dowcave.dow3@wGzNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\)Q\n%!!GP)\YXA(\}XAp= xAA> ףp!w@(\*w@(\}XAp= xA(\*w@)\YXAA> ףp!w@dowcave.dow3@w&zGNORMAL1986-01-081986-01-08@S7 =p@p =q@333333@ (\) "D f 7^!HoVn/!!GP ףpTAHzTA{GA ףpAmu@(\}u@HzTA{GAmu@ ףpTA ףpA(\}u@dowcave.glooploop@uu\(NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)V~n/!!GPHzTA{GTA{GAGzAq= ף`u@mu@{GTAGzAq= ף`u@HzTA{GAmu@dowcave.glooploop@ug33333NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)V}n/!!GP{GTATAGzAGzAq= ף`u@mu@TAGzAmu@{GTAGzAq= ף`u@dowcave.glooploop@ug33333NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)V|n/!!GPTA ףpTAGzAQAGzfu@mu@ ףpTAQAGzfu@TAGzAmu@dowcave.glooploop@uiRNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)V{n/!!GP ףpTATAQA\AHz_u@Gzfu@TA\AHz_u@ ףpTAQAGzfu@dowcave.glooploop@ubG{NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vzn/!!GPTAp= UA\AAp= [u@Hz_u@p= UAAp= [u@TA\AHz_u@dowcave.glooploop@u]\(NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vyn/!!GPp= UAp= :UAA{GA ףp=Zu@p= [u@p= :UA{GA ףp=Zu@p= UAAp= [u@dowcave.glooploop@u[ =pNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vxn/!!GPp= :UA3333EUA{GAQAGz8u@ ףp=Zu@3333EUAQAGz8u@p= :UA{GA ףp=Zu@dowcave.glooploop@uIp =NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vwn/!!GP3333EUASUAQAA\(0u@Gz8u@SUAA\(0u@3333EUAQAGz8u@dowcave.glooploop@u4QNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vvn/!!GPSUA(\VUAA ףpAt@\(0u@(\VUA ףpAt@SUAA\(0u@dowcave.glooploop@tzGNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)[un9!!GP> ףXAXA)\AA(\"x@{G*x@XAA{G*x@> ףXA)\A(\"x@dowcave.choke2.albert2@x&QNORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[tn9!!GPXARXAAzA(\'x@{G*x@RXAzA(\'x@XAA{G*x@dowcave.choke2.albert2@x)QNORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[sn9!!GPRXA)\XAAzA{Gx@(\'x@)\XAA{Gx@RXAzA(\'x@dowcave.choke2.albert2@x33333NORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[rn9!!GPXA)\XAAHzA{Gx@q= ף x@XAHzAq= ף x@)\XAA{Gx@dowcave.choke2.albert2@x =pNORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[qn9!!GPXARXA\ AHzAx@q= ף x@RXA\ Ax@XAHzAq= ף x@dowcave.choke2.albert2@x33333NORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[pn9!!GPXARXA3333A\ A(\x@x@XA3333A(\x@RXA\ Ax@dowcave.choke2.albert2@xzGNORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[on9!!GPQXAXAQA3333AGzx@(\x@QXAQAGzx@XA3333A(\x@dowcave.choke2.albert2@xNORMAL1987-01-101987-01-10 @>@&p >@zG@1Q녁[nn9!!GP(\XAQXAQA(AGzx@zG)x@(\XA(AzG)x@QXAQAGzx@dowcave.choke2.albert2@xG{NORMAL1987-01-101987-01-10 @>@&p >@zG@1Q &L r 2Z"LvRn'!!GP(VAgfff7VAgfffA)\Ap= חu@p= u@(VA)\Ap= u@gfff7VAgfffAp= חu@dowcave.depot@uRNORMAL1985-12-241985-12-24@Z$zG@)Q@-# =p@(\)Rn'!!GP(VA(VA)\A)\Au@p= u@(VA)\Au@(VA)\Ap= u@dowcave.depot@uRNORMAL1985-12-241985-12-24@Z$zG@)Q@-# =p@(\)Rn'!!GPp= UA(VAgfffA)\AQ{u@u@p= UAgfffAQ{u@(VA)\Au@dowcave.depot@u\(NORMAL1985-12-241985-12-24@Z$zG@)Q@-# =p@(\)Rn'!!GP(UAp= UAHzAgfffA{Gfu@Q{u@(UAHzA{Gfu@p= UAgfffAQ{u@dowcave.depot@uqGzNORMAL1985-12-241985-12-24@Z$zG@)Q@-# =p@(\)T n+!!GPQUA(UAHzAq= A{Gfu@(\ju@QUAq= A(\ju@(UAHzA{Gfu@dowcave.hobsons@uhNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)T n+!!GPQUAQUAq= Aq= AzG%u@(\ju@QUAq= AzG%u@QUAq= A(\ju@dowcave.hobsons@uHNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)T n+!!GPgfffUAQUAGAq= AQt@zG%u@gfffUAGAQt@QUAq= AzG%u@dowcave.hobsons@uQNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)T n+!!GPGUAgfffUAGAGzAQt@Qt@GUAGzAQt@gfffUAGAQt@dowcave.hobsons@tQNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)T n+!!GP\UAGUA(\AGzAQt@Qt@\UA(\AQt@GUAGzAQt@dowcave.hobsons@tQNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)Tn+!!GPUA\UA(\AzA(\t@Qt@UAzA(\t@\UA(\AQt@dowcave.hobsons@tQNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)Tn+!!GP(\VUAUAzA ףpAt@(\t@(\VUA ףpAt@UAzA(\t@dowcave.hobsons@tGzNORMAL1985-12-151985-12-15@Z$zG@)Q@-# =p@(\)Vn/!!GPQTAףp=[TAA(AHzt@> ףpt@QTA(A> ףpt@ףp=[TAAHzt@dowcave.glooploop@t\(NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GPQTA)\ZTA(AQA> ףpt@)\t@)\ZTAQA)\t@QTA(A> ףpt@dowcave.glooploop@tGzNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GP)\ZTA]TAQA)\A)\t@)\hu@]TA)\A)\hu@)\ZTAQA)\t@dowcave.glooploop@u \)NORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GP]TAxTA)\Aq= A)\hu@p= u@xTAq= Ap= u@]TA)\A)\hu@dowcave.glooploop@utQNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GPxTẢTARAq= Ap= u@Hzu@̉TARAHzu@xTAq= Ap= u@dowcave.glooploop@u =pNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GP̉TAp= TAq= ARAHzu@Hzu@p= TAq= AHzu@̉TARAHzu@dowcave.glooploop@uzHNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\)Vn/!!GPp= TA ףpTAq= A ףpA(\}u@Hzu@ ףpTA ףpA(\}u@p= TAq= AHzu@dowcave.glooploop@u~QNORMAL1982-06-011982-06-01@Z$zG@)Q@-# =p@(\) 'N u  8_"OvU#n-!!GP\UA(\UA(\AQ$ARt@Qt@(\UA(\AQt@\UAQ$ARt@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04@V,?Q?Q? =pU"n-!!GP(\UA(UA> ףA(\AQt@Hzt@(UA> ףAHzt@(\UA(\AQt@dowbergill1.dgp1@tzHNORMAL2003-10-042003-10-04@V,?Q?Q? =pU!n-!!GP(UAQVAQA> ףAHzt@t@QVAQAt@(UA> ףAHzt@dowbergill1.dgp1@t =pNORMAL2003-10-042003-10-04@V,?Q?Q? =pO n-!!GPQVAHz VAQAQAt@\(t@Hz VAQA\(t@QVAQAt@dowbergill1.dgp1JNORMAL2003-10-042003-10-04@V,?Q?Q? =pUn-!!GPHz VAq= VAAQA\(t@q= ףt@q= VAAq= ףt@Hz VAQA\(t@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04@V,?Q?Q? =pUn-!!GPq= VAףp=VAGzzAAq= ףt@t@ףp=VAGzzAt@q= VAAq= ףt@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04@V,?Q?Q? =pUn-!!GPףp=VA*VA\UAGzzAt@ ףp=t@*VA\UA ףp=t@ףp=VAGzzAt@dowbergill1.dgp1@tRNORMAL2003-10-042003-10-04@V,?Q?Q? =pUn-!!GP̽UA̽UAzAA{Gt@33333u@̽UAzA33333u@̽UAA{Gt@dowbergill1.dgp1@t =pNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GP̽UAUA> ף]AzAq= ףu@33333u@UA> ף]Aq= ףu@̽UAzA33333u@dowbergill1.dgp1@uRNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPUAUA(\]A> ף]A(\t@q= ףu@UA(\]A(\t@UA> ף]Aq= ףu@dowbergill1.dgp1@t홙NORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPUAgfffUA(=A(\]AGzt@(\t@gfffUA(=AGzt@UA(\]A(\t@dowbergill1.dgp1@təNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPgfffUAgfffUAp= =A(=AGzt@t@gfffUAp= =At@gfffUA(=AGzt@dowbergill1.dgp1@tָQNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPgfffUAzUAHz'Ap= =AQt@t@zUAHz'AQt@gfffUAp= =At@dowbergill1.dgp1@tzGNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPzUA(\VAq= AHz'AQt@p= u@(\VAq= Ap= u@zUAHz'AQt@dowbergill1.dgp1@uzGNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GP(\VAp= VA3333Aq= Ap= u@> ףpu@p= VA3333A> ףpu@(\VAq= Ap= u@dowbergill1.dgp1@u =qNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GPp= VA*VAgfffVA3333Au@> ףpu@*VAgfffVAu@p= VA3333A> ףpu@dowbergill1.dgp1@uQNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GP*VA*VAVAgfffVAQt@u@*VAVAQt@*VAgfffVAu@dowbergill1.dgp1@t(\NORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =pׁUn-!!GP*VA*VA\UAVAQt@ ףp=t@*VA\UA ףp=t@*VAVAQt@dowbergill1.dgp1@tfffffNORMAL2003-10-042003-10-04 @Zffffg@ p =q@(\)@ =p 'N u  8[~ -PsY5n3!!GPףp=]Ap= ]A)\AQA\x@> ףpex@p= ]A)\A> ףpex@ףp=]AQA\x@providencepot.ppot1@x`NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y4n3!!GPHz]Ap= ]A)\A> ףA> ףpex@\(hx@Hz]A> ףA\(hx@p= ]A)\A> ףpex@providencepot.ppot1@xfG{NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y3n3!!GPHz]A]A ףpA> ףA33333gx@\(hx@]A ףpA33333gx@Hz]A> ףA\(hx@providencepot.ppot1@xgzHNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y2n3!!GPGz]A]AA ףpA33333gx@zGix@Gz]AAzGix@]A ףpA33333gx@providencepot.ppot1@xh(\NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y1n3!!GP]AGz]AAAzGix@ux@]AAux@Gz]AAzGix@providencepot.ppot1@xoQNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y0n3!!GPp= ]A]AAAux@ףp= {x@p= ]AAףp= {x@]AAux@providencepot.ppot1@xxQNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y/n3!!GPQ]Ap= ]A> ףAAףp= {x@ףp= {x@Q]A> ףAףp= {x@p= ]AAףp= {x@providencepot.ppot1@x{ =pNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y.n3!!GPHz]AQ]ARA> ףAףp= {x@{Gx@Hz]ARA{Gx@Q]A> ףAףp= {x@providencepot.ppot1@x =pNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y-n3!!GPp= ]AHz]ARAףp=A{Gx@)\x@p= ]Aףp=A)\x@Hz]ARA{Gx@providencepot.ppot1@xNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y,n3!!GP]Ap= ]AAףp=A)\x@y@]AAy@p= ]Aףp=A)\x@providencepot.ppot1@xfffffNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)U+n-!!GP̽UA> ףUAGzAA{Gt@ףp= t@> ףUAGzAףp= t@̽UAA{Gt@dowbergill1.dgp1@t =pNORMAL2003-10-042003-10-04@V,?Q?Q? =pU*n-!!GP> ףUA> ףUAGzAGzAףp= t@\(t@> ףUAGzA\(t@> ףUAGzAףp= t@dowbergill1.dgp1@tzHNORMAL2003-10-042003-10-04@V,?Q?Q? =pU)n-!!GP> ףUA> ףUAGzAGzAGzt@\(t@> ףUAGzAGzt@> ףUAGzA\(t@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04@V,?Q?Q? =pU(n-!!GP> ףUAQUAyAGzAGzt@q= ףt@QUAyAq= ףt@> ףUAGzAGzt@dowbergill1.dgp1@t =qNORMAL2003-10-042003-10-04@V,?Q?Q? =pU'n-!!GPQUA(UAQhAyAq= ףt@̜t@(UAQhA̜t@QUAyAq= ףt@dowbergill1.dgp1@tNORMAL2003-10-042003-10-04@V,?Q?Q? =pU&n-!!GP(UA3333UAOAQhA̜t@zGt@3333UAOAzGt@(UAQhA̜t@dowbergill1.dgp1@t\)NORMAL2003-10-042003-10-04@V,?Q?Q? =pU%n-!!GP3333UA ףpUAHzDAOAzGt@zGt@ ףpUAHzDAzGt@3333UAOAzGt@dowbergill1.dgp1@tGzNORMAL2003-10-042003-10-04@V,?Q?Q? =pU$n-!!GP ףpUA\UAQ$AHzDAzGt@Rt@\UAQ$ARt@ ףpUAHzDAzGt@dowbergill1.dgp1@tNORMAL2003-10-042003-10-04@V,?Q?Q? =p #F i Ad<_YGn3!!GP> ף]A]ARAp= AHzx@̰x@]ARA̰x@> ף]Ap= AHzx@providencepot.ppot2@x(\NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YFn3!!GP]AHz]AHzARAx@̰x@Hz]AHzAx@]ARA̰x@providencepot.ppot2@x33333NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YEn3!!GPp= ]AHz]AAHzA)\tx@x@p= ]AA)\tx@Hz]AHzAx@providencepot.ppot2@xGzNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YDn3!!GPp= ]Aףp=]A\|AAHzOx@)\tx@ףp=]A\|AHzOx@p= ]AA)\tx@providencepot.ppot2@xb=p NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YCn3!!GPףp=]A)\¸]A{GiA\|A8x@HzOx@)\¸]A{GiA8x@ףp=]A\|AHzOx@providencepot.ppot1@xD(\NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)YBn3!!GP)\¸]A\]Aq= bA{GiA8x@gffff:x@\]Aq= bAgffff:x@)\¸]A{GiA8x@providencepot.ppot1@x9NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)SAn3!!GP\]A\]AbAq= bA> ףp%x@gffff:x@\]AbA> ףp%x@\]Aq= bAgffff:x@providencepot.ppot1NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y@n3!!GP\]AGz]Aq= VAbAGzx@> ףp%x@Gz]Aq= VAGzx@\]AbA> ףp%x@providencepot.ppot1@x \)NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y?n3!!GPGz]A(\]Aףp=MAq= VA33333x@Gzx@(\]Aףp=MA33333x@Gz]Aq= VAGzx@providencepot.ppot1@x =pNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y>n3!!GP(\]Az]Agfff.Aףp=MA33333x@zGx@z]Agfff.AzGx@(\]Aףp=MA33333x@providencepot.ppot1@x(\NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)S=n3!!GPz]A)\]A*Agfff.AzGx@{G"x@)\]A*A{G"x@z]Agfff.AzGx@providencepot.ppot1NORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y<n3!!GP)\]A)\]AQ*A*A{G"x@GzRx@)\]AQ*AGzRx@)\]A*A{G"x@providencepot.ppot1@x:fffffNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y;n3!!GP)\]A{G]AHz(AQ*ARQx@GzRx@{G]AHz(ARQx@)\]AQ*AGzRx@providencepot.ppot1@xQRNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y:n3!!GP{G]A3333]AAHz(A{GNx@RQx@3333]AA{GNx@{G]AHz(ARQx@providencepot.ppot1@xPQNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y9n3!!GP(]A3333]AGAA{GNx@Qcx@(]AGAQcx@3333]AA{GNx@providencepot.ppot1@xYGzNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y8n3!!GP ףp]A(]A)\AGAQcx@Qkx@ ףp]A)\AQkx@(]AGAQcx@providencepot.ppot1@xgQNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y7n3!!GP ףp]AQ]AHzA)\AQ]x@Qkx@Q]AHzAQ]x@ ףp]A)\AQkx@providencepot.ppot1@xdQNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\)Y6n3!!GPQ]Aףp=]AQAHzA\x@Q]x@ףp=]AQA\x@Q]AHzAQ]x@providencepot.ppot1@x\zGNORMAL2005-02-042005-02-04@9\)@&333333@,Q@(\) v#F i ;^ 0SvYYn3!!GP$]A3333*]AGAp= Aq= ף|x@x@3333*]Ap= Aq= ף|x@$]AGAx@providencepot.ppot3@x33333NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)YXn3!!GP3333*]A)\2]Ap= AzA\(xx@q= ף|x@)\2]AzA\(xx@3333*]Ap= Aq= ף|x@providencepot.ppot3@xzfffffNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)YWn3!!GP)\2]AQB]AzAzA\(hx@\(xx@QB]AzA\(hx@)\2]AzA\(xx@providencepot.ppot2@xp(\NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YVn3!!GP{GB]AQB]AAzA)\Xx@\(hx@{GB]AA)\Xx@QB]AzA\(hx@providencepot.ppot2@x`zGNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YUn3!!GP{GB]AI]AAA)\Xx@Q\x@I]AAQ\x@{GB]AA)\Xx@providencepot.ppot2@xZ\(NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YTn3!!GPGI]AI]AAAQ\x@xx@GI]AAxx@I]AAQ\x@providencepot.ppot2@xjzGNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YSn3!!GPGI]ARb]AAףp=A ףp=vx@xx@Rb]Aףp=A ףp=vx@GI]AAxx@providencepot.ppot2@xw =pNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YRn3!!GPRb]An]Aףp=A&A ףp=vx@)\xx@n]A&A)\xx@Rb]Aףp=A ףp=vx@providencepot.ppot2@xwzHNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YQn3!!GPn]An]A)\&A&A)\xx@)\x@n]A)\&A)\x@n]A&A)\xx@providencepot.ppot2@x\)NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YPn3!!GPn]A\w]A(A)\&AQx@)\x@\w]A(AQx@n]A)\&A)\x@providencepot.ppot2@x =pNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YOn3!!GPw]A\w]AQA(AQx@x@w]AQAx@\w]A(AQx@providencepot.ppot2@x\(NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YNn3!!GPw]Ay]AQAQAQx@x@y]AQAQx@w]AQAx@providencepot.ppot2@x\(NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YMn3!!GPy]A~]Ap= AQA ףp=x@Qx@~]Ap= A ףp=x@y]AQAQx@providencepot.ppot2@xzHNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YLn3!!GP~]A(\]AQAp= A33333x@ ףp=x@(\]AQA33333x@~]Ap= A ףp=x@providencepot.ppot2@x =qNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YKn3!!GP(\]AG]A(\AQA33333x@Qx@G]A(\AQx@(\]AQA33333x@providencepot.ppot2@x =pNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YJn3!!GPG]Ap= ]A(\A(\Aq= ףx@Qx@p= ]A(\Aq= ףx@G]A(\AQx@providencepot.ppot2@xfffffNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YIn3!!GPp= ]Az]AHzA(\Aq= ףx@p= ׏x@z]AHzAp= ׏x@p= ]A(\Aq= ףx@providencepot.ppot2@x=p NORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\)YHn3!!GP> ף]Az]Ap= AHzAp= ׏x@Hzx@> ף]Ap= AHzx@z]AHzAp= ׏x@providencepot.ppot2@x =pNORMAL2005-04-092005-04-09@9\)@&333333@,Q@(\) v#F i ;^ 0SvYkn3!!GP3333\A> ף\AA(\Adx@Qlx@> ף\AAdx@3333\A(\AQlx@providencepot.ppot3@xhzGNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yjn3!!GP> ף\A(\\AGAAq= ףdx@dx@(\\AGAq= ףdx@> ף\AAdx@providencepot.ppot3@xdNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yin3!!GP(\\Ap= \Aq= טAGA`x@q= ףdx@p= \Aq= טA`x@(\\AGAq= ףdx@providencepot.ppot3@xbQNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yhn3!!GPp= \Aq= \ARAq= טAq= ף`x@`x@q= \ARAq= ף`x@p= \Aq= טA`x@providencepot.ppot3@x`NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ygn3!!GP\Aq= \AGzARAq= ף`x@Qox@\AGzAQox@q= \ARAq= ף`x@providencepot.ppot3@xhNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yfn3!!GP\Aq= \A{GAGzAQox@)\tx@q= \A{GA)\tx@\AGzAQox@providencepot.ppot3@xr=p NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yen3!!GPq= \Aq= \A3333A{GA)\tx@q= ףx@q= \A3333Aq= ףx@q= \A{GA)\tx@providencepot.ppot3@xNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ydn3!!GPq= \AQ\AA3333AGzx@q= ףx@Q\AAGzx@q= \A3333Aq= ףx@providencepot.ppot3@x =qNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ycn3!!GPQ\A> ף\AHzuAAGzx@Gzx@> ף\AHzuAGzx@Q\AAGzx@providencepot.ppot3@xzGNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ybn3!!GP\A> ף\AuAHzuA> ףpix@Gzx@\AuA> ףpix@> ף\AHzuAGzx@providencepot.ppot3@x =pNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yan3!!GP\A{G\AuAHzzA> ףpix@> ףpix@{G\AHzzA> ףpix@\AuA> ףpix@providencepot.ppot3@xip =NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y`n3!!GP{G\AGz ]AOAHzzA)\hx@> ףpix@Gz ]AOA)\hx@{G\AHzzA> ףpix@providencepot.ppot3@xiGzNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y_n3!!GPGz ]A]AOAq= PA)\hx@)\hx@]Aq= PA)\hx@Gz ]AOA)\hx@providencepot.ppot3@xh\)NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y^n3!!GP]A]AHzAAq= PA)\hx@Qrx@]AHzAAQrx@]Aq= PA)\hx@providencepot.ppot3@xmRNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y]n3!!GP(\]A]AAAHzAAQrx@\(x@(\]AAA\(x@]AHzAAQrx@providencepot.ppot3@x{QNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y\n3!!GP(\]Aq= ]AQ6AAA\(x@zGx@q= ]AQ6AzGx@(\]AAA\(x@providencepot.ppot3@xQNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Y[n3!!GPq= ]Agfff]A(\*AQ6Aq= ףx@zGx@gfff]A(\*Aq= ףx@q= ]AQ6AzGx@providencepot.ppot3@x =pNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)YZn3!!GPgfff]A$]AGA(\*Ax@q= ףx@$]AGAx@gfff]A(\*Aq= ףx@providencepot.ppot3@x33333NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\) v#F i ;^ 0SvY}n3!!GPGX\AGX\Aףp=dAQdA33333w@> ףp%w@GX\Aףp=dA> ףp%w@GX\AQdA33333w@providencepot.ppot6@w=p NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Y|n3!!GPGX\Ax\Aףp=dA(\lA> ףp%w@Qiw@x\A(\lAQiw@GX\Aףp=dA> ףp%w@providencepot.ppot6@wG\(NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Y{n3!!GPx\Aq= ו\A ףpkA(\lAQiw@Hzw@q= ו\A ףpkAHzw@x\A(\lAQiw@providencepot.ppot6@wtQNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yzn3!!GPq= ו\A{G\AHA ףpkAHzw@ ףp=w@{G\AHA ףp=w@q= ו\A ףpkAHzw@providencepot.ppot6@w =pNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yyn3!!GP{G\A̡\AHzCAHA ףp=w@ ףp=w@̡\AHzCA ףp=w@{G\AHA ףp=w@providencepot.ppot6@w=p NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yxn3!!GP)\¡\A̡\Ap= CAHzCA ףp=w@Gzw@)\¡\Ap= CAGzw@̡\AHzCA ףp=w@providencepot.ppot6@wp =NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Ywn3!!GP\A)\¡\Aףp=9Ap= CAGzw@(\w@\Aףp=9A(\w@)\¡\Ap= CAGzw@providencepot.ppot6@wNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yvn3!!GP(\\A\A33339Aףp=9A(\w@ףp= x@(\\A33339Aףp= x@\Aףp=9A(\w@providencepot.ppot6@xGzNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yun3!!GPR\A(\\A7A33339Aףp= x@ףp= x@R\A7Aףp= x@(\\A33339Aףp= x@providencepot.ppot6@x =pNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Ytn3!!GPGz\AR\A6A7Aףp= x@(\Bx@Gz\A6A(\Bx@R\A7Aףp= x@providencepot.ppot6@x(NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Ysn3!!GPGz\A(\\AG+A6A(\Bx@(\Fx@(\\AG+A(\Fx@Gz\A6A(\Bx@providencepot.ppot4@xD =qNORMAL2009-05-292009-05-29@9\)@&333333@,Q@(\)Yrn3!!GP(\\Ap= \AG+A> ף9A(\Fx@> ףpIx@p= \A> ף9A> ףpIx@(\\AG+A(\Fx@providencepot.ppot4@xHNORMAL2009-05-292009-05-29@9\)@&333333@,Q@(\)Yqn3!!GPp= \AGz\A> ףA> ף9A> ףpIx@p= gx@Gz\A> ףAp= gx@p= \A> ף9A> ףpIx@providencepot.ppot4@xX =qNORMAL2009-05-292009-05-29@9\)@&333333@,Q@(\)Ypn3!!GPGz\AR\AA> ףAQgx@p= gx@R\AAQgx@Gz\A> ףAp= gx@providencepot.ppot3@xgzHNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yon3!!GPGz\AR\A\AA(\_x@Qgx@Gz\A\A(\_x@R\AAQgx@providencepot.ppot3@xcQNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ynn3!!GPp= \AGz\A ףpA\A(\_x@(\_x@p= \A ףpA(\_x@Gz\A\A(\_x@providencepot.ppot3@x_\(NORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Ymn3!!GP\Ap= \AgfffA ףpA(\_x@Gzlx@\AgfffAGzlx@p= \A ףpA(\_x@providencepot.ppot3@xeRNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\)Yln3!!GP\A3333\A(\AgfffAQlx@Gzlx@3333\A(\AQlx@\AgfffAGzlx@providencepot.ppot3@xlQNORMAL2006-06-042006-06-04@9\)@&333333@,Q@(\) #F i $Jp.TzVn-!!GPp= [A[AQAHzAQv@v@[AQAv@p= [AHzAQv@dowbergill2.dgp7@vΏ\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP[Az[AQAQAv@v@z[AQAv@[AQAv@dowbergill2.dgp7@vNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GPz[A3333[AQAQAQv@v@3333[AQAQv@z[AQAv@dowbergill2.dgp7@v\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GP3333[A\[A(\AQAQv@(\v@\[A(\A(\v@3333[AQAQv@dowbergill2.dgp7@v\)NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GP\[A{G[AQnA(\A(\v@v@{G[AQnAv@\[A(\A(\v@dowbergill2.dgp7@vzGNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GP{G[A{G[AQXAQnAv@Rw@{G[AQXARw@{G[AQnAv@dowbergill2.dgp7@vp =NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GP{G[AQ[A(\LAQXAv@Rw@Q[A(\LAv@{G[AQXARw@dowbergill2.dgp7@vp =NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPQ[A ףp[A{G.A(\LAv@v@ ףp[A{G.Av@Q[A(\LAv@dowbergill2.dgp7@vfffffNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP ףp[AQ\AGA{G.Ap= v@v@Q\AGAp= v@ ףp[A{G.Av@dowbergill2.dgp7@vNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPQ\AHz\Aq= AGAQv@p= v@Hz\Aq= AQv@Q\AGAp= v@dowbergill2.dgp7@v߮zHNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP \AHz\AAq= Agffffv@Qv@ \AAgffffv@Hz\Aq= AQv@dowbergill2.dgp7@v\)NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP \Aq= !\Aq= ׵AAgffffv@Qv@q= !\Aq= ׵AQv@ \AAgffffv@dowbergill2.dgp7@v\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPq= !\AQA\A> ףAq= ׵AQv@> ףpv@QA\A> ףA> ףpv@q= !\Aq= ׵AQv@dowbergill2.dgp7@v\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPGz;\AQA\AHzA> ףA> ףpv@Gzw@Gz;\AHzAGzw@QA\A> ףA> ףpv@dowbergill2.dgp7@v =pNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Yn3!!GPGz;\A(A\Agfff}AHzAQv@Gzw@(A\Agfff}AQv@Gz;\AHzAGzw@providencepot.ppot6@vQNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yn3!!GP(A\A(P\ARuAgfff}AQv@\(w@(P\ARuA\(w@(A\Agfff}AQv@providencepot.ppot6@v=p NORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Yn3!!GP(P\AT\Aףp=qARuAq= ףv@\(w@T\Aףp=qAq= ףv@(P\ARuA\(w@providencepot.ppot6@vfffffNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\)Y~n3!!GPT\AGX\AQdAףp=qAq= ףv@33333w@GX\AQdA33333w@T\Aףp=qAq= ףv@providencepot.ppot6@wRNORMAL2010-03-232010-03-23@9\)@&333333@,Q@(\) &L r 0V|:`V!n-!!GP3333Q[A3333Z[AGA(AQv@ ףp=v@3333Z[AGAQv@3333Q[A(A ףp=v@dowbergill2.dgp7@vG{NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V n-!!GPGN[A3333Z[Aq= AGAQv@(\v@GN[Aq= A(\v@3333Z[AGAQv@dowbergill2.dgp7@vQNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPGN[Aףp=T[A> ףAq= A(\v@(\v@ףp=T[A> ףA(\v@GN[Aq= A(\v@dowbergill2.dgp7@v֏\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPףp=T[Aq= \[AzA> ףAQv@(\v@q= \[AzAQv@ףp=T[A> ףA(\v@dowbergill2.dgp7@vRNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPq= \[A(e[AAzA(\v@Qv@(e[AA(\v@q= \[AzAQv@dowbergill2.dgp7@v=p NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP(e[A(\l[AAHzAGzv@(\v@(\l[AHzAGzv@(e[AA(\v@dowbergill2.dgp7@vģ =qNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP(\l[AHzn[A> ףAHzAQv@Gzv@Hzn[A> ףAQv@(\l[AHzAGzv@dowbergill2.dgp7@vNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPHzn[A3333w[A(\A> ףAQv@p= ׷v@3333w[A(\Ap= ׷v@Hzn[A> ףAQv@dowbergill2.dgp7@vzHNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP3333w[AQ[AhA(\Ap= ׷v@ ףp=v@Q[AhA ףp=v@3333w[A(\Ap= ׷v@dowbergill2.dgp7@v =pNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPQ[AQ[AhAHziAv@ ףp=v@Q[AHziAv@Q[AhA ףp=v@dowbergill2.dgp7@vNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPQ[Agfff[AGzRAHziAv@{Gv@gfff[AGzRA{Gv@Q[AHziAv@dowbergill2.dgp7@v(\NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP(\[Agfff[AgfffRAGzRA{Gv@v@(\[AgfffRAv@gfff[AGzRA{Gv@dowbergill2.dgp7@vp =NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP(\[A[AQEAgfffRA(\v@v@[AQEA(\v@(\[AgfffRAv@dowbergill2.dgp7@v\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP[A(\[A(1AQEA(\v@Qv@(\[A(1AQv@[AQEA(\v@dowbergill2.dgp7@vQNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP(\[A[AgfffA(1Aq= ףv@Qv@[AgfffAq= ףv@(\[A(1AQv@dowbergill2.dgp7@vNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP[A)\¤[AG AgfffAq= ףv@(\v@)\¤[AG A(\v@[AgfffAq= ףv@dowbergill2.dgp7@vzGNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GP)\¤[AHz[AAG A(\v@Qv@Hz[AAQv@)\¤[AG A(\v@dowbergill2.dgp7@vRNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)Vn-!!GPHz[Ap= [AHzAAQv@Qv@p= [AHzAQv@Hz[AAQv@dowbergill2.dgp7@vQNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\) &L r 0V|:`V3n-!!GPQZAZAGA)\Au@Hzu@ZAGAHzu@QZA)\Au@dowbergill2.dgp6@uθQNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V2n-!!GPZAgfffZA ףpAGAHzu@Qu@gfffZA ףpAQu@ZAGAHzu@dowbergill2.dgp6@uӮzHNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V1n-!!GPgfffZA> ףZAA ףpAQu@Hz/v@> ףZAAHz/v@gfffZA ףpAQu@dowbergill2.dgp6@vzHNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V0n-!!GP> ףZA{GZA)\AAHz/v@Gz2v@{GZA)\AGz2v@> ףZAAHz/v@dowbergill2.dgp6@v0\)NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V/n-!!GP{GZAZAQA)\A ףp=v@Gz2v@ZAQA ףp=v@{GZA)\AGz2v@dowbergill2.dgp6@v (\NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V.n-!!GPZAQZAQAQA(\u@ ףp=v@QZAQA(\u@ZAQA ףp=v@dowbergill2.dgp6@vNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V-n-!!GPQZAQZAQ]AQA(\u@> ףp)v@QZAQ]A> ףp)v@QZAQA(\u@dowbergill2.dgp6@vfffffNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V,n-!!GPQZAzZAHzXAQ]A> ףp)v@Pv@zZAHzXAPv@QZAQ]A> ףp)v@dowbergill2.dgp6@v=QNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V+n-!!GPZAzZAq= CAHzXAQ:v@Pv@ZAq= CAQ:v@zZAHzXAPv@dowbergill2.dgp7@vE\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V*n-!!GPZA(ZA(\4Aq= CAQ:v@Qsv@(ZA(\4AQsv@ZAq= CAQ:v@dowbergill2.dgp7@vW33333NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V)n-!!GP ףpZA(ZA($A(\4AQsv@Qv@ ףpZA($AQv@(ZA(\4AQsv@dowbergill2.dgp7@v}QNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V(n-!!GP ףpZA[AQA($AQv@Hzv@[AQAHzv@ ףpZA($AQv@dowbergill2.dgp7@vGzNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V'n-!!GP[AQ[AQAQAHzv@> ףpv@Q[AQA> ףpv@[AQAHzv@dowbergill2.dgp7@vΏ\(NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V&n-!!GPQ[A("[AQAQAףp= v@> ףpv@("[AQAףp= v@Q[AQA> ףpv@dowbergill2.dgp7@v=p NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V%n-!!GP"[A("[ÀAQA(\¹v@ףp= v@"[ÀA(\¹v@("[AQAףp= v@dowbergill2.dgp7@vfffffNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V$n-!!GP"[Ap= 5[A> ףEÀA(\¹v@zGv@p= 5[A> ףEAzGv@"[ÀA(\¹v@dowbergill2.dgp7@vQNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V#n-!!GPp= 5[A>[A(-A> ףEAzGv@q= ףv@>[A(-Aq= ףv@p= 5[A> ףEAzGv@dowbergill2.dgp7@v\)NORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\)V"n-!!GP>[A3333Q[A(A(-Aq= ףv@ ףp=v@3333Q[A(A ףp=v@>[A(-Aq= ףv@dowbergill2.dgp7@vӅQNORMAL2015-07-182015-07-18@9\)@&333333@,Q@(\) ,R x  6\@fVEn-!!GPQYA3333YAQGAHzqAQu@p= u@3333YAQGAQu@QYAHzqAp= u@dowbergill2.dgp6@uzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VDn-!!GP3333YAףp=YAQ8AQGA(\­u@Qu@ףp=YAQ8A(\­u@3333YAQGAQu@dowbergill2.dgp6@uQNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VCn-!!GPףp=YAq= YAQ AQ8A(\­u@ףp= u@q= YAQ Aףp= u@ףp=YAQ8A(\­u@dowbergill2.dgp6@ufffffNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VBn-!!GPq= YARZAQAQ Aףp= u@Qu@RZAQAQu@q= YAQ Aףp= u@dowbergill2.dgp6@u\)NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VAn-!!GPRZAzZAףp=AQAQu@q= ףu@zZAףp=Aq= ףu@RZAQAQu@dowbergill2.dgp6@uzHNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V@n-!!GPzZA(\ZA(\Aףp=AGzu@q= ףu@(\ZA(\AGzu@zZAףp=Aq= ףu@dowbergill2.dgp6@u\(NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V?n-!!GP(\ZA> ף$ZAz}A(\A> ףpu@Gzu@> ף$ZAz}A> ףpu@(\ZA(\AGzu@dowbergill2.dgp6@u\(NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V>n-!!GP> ף$ZA(\3ZA3333[Az}A> ףpu@Hzu@(\3ZA3333[AHzu@> ף$ZAz}A> ףpu@dowbergill2.dgp6@u\(NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V=n-!!GP(\3ZAq= GZA(A3333[AHzu@zGu@q= GZA(AzGu@(\3ZA3333[AHzu@dowbergill2.dgp6@ufffffNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V<n-!!GPq= GZAOZAA(AzGu@ףp= u@OZAAףp= u@q= GZA(AzGu@dowbergill2.dgp6@uzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V;n-!!GPOZAVZAQAAu@ףp= u@VZAQAu@OZAAףp= u@dowbergill2.dgp6@uRNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V:n-!!GPVZAz`ZA̻AQAu@u@z`ZA̻Au@VZAQAu@dowbergill2.dgp6@ufffffNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V9n-!!GPz`ZAףp=tZA)\‘A̻AzGu@u@ףp=tZA)\‘AzGu@z`ZA̻Au@dowbergill2.dgp6@uƏ\(NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V8n-!!GP)\sZAףp=tZA(\~A)\‘AzGu@(\u@)\sZA(\~A(\u@ףp=tZA)\‘AzGu@dowbergill2.dgp6@uNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V7n-!!GP)\sZAQ{ZA ףpXA(\~A(\u@u@Q{ZA ףpXAu@)\sZA(\~A(\u@dowbergill2.dgp6@uzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V6n-!!GPQ{ZA> ףZA ףpXAG^Au@u@> ףZAG^Au@Q{ZA ףpXAu@dowbergill2.dgp6@uNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)V5n-!!GP> ףZAp= ZA> ף5AG^A ףp=u@u@p= ZA> ף5A ףp=u@> ףZAG^Au@dowbergill2.dgp6@u =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)P4n-!!GPp= ZAQZA)\A> ף5Au@ ףp=u@QZA)\Au@p= ZA> ף5A ףp=u@dowbergill2.dgp6]NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\) &L r 0V|:`VWn-!!GP> ף9YAq= BYAzA{GAQou@Qyu@q= BYAzAQou@> ף9YA{GAQyu@dowbergill2.dgp6@utQNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VVn-!!GPq= BYA{GMYA(\AzA(\fu@Qou@{GMYA(\A(\fu@q= BYAzAQou@dowbergill2.dgp6@uk =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VUn-!!GP{GMYAףp=UYA(\kA(\A(\fu@ ףp=nu@ףp=UYA(\kA ףp=nu@{GMYA(\A(\fu@dowbergill2.dgp6@ujfffffNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VTn-!!GPףp=UYAG_YA(\kARnARmu@ ףp=nu@G_YARnARmu@ףp=UYA(\kA ףp=nu@dowbergill2.dgp6@unzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VSn-!!GPG_YA{GhYA3333^ARnA(\bu@Rmu@{GhYA3333^A(\bu@G_YARnARmu@dowbergill2.dgp6@uh(\NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VRn-!!GP{GhYA(\jYAgfff[A3333^A(\bu@Q}u@(\jYAgfff[AQ}u@{GhYA3333^A(\bu@dowbergill2.dgp6@uo =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VQn-!!GP(\jYA ףpqYAףp=LAgfff[Apu@Q}u@ ףpqYAףp=LApu@(\jYAgfff[AQ}u@dowbergill2.dgp6@uw =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VPn-!!GP ףpqYA(sYA?Aףp=LApu@zGuu@(sYA?AzGuu@ ףpqYAףp=LApu@dowbergill2.dgp6@us =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VOn-!!GP(sYA(\xYAQ-A?AzGuu@Gzu@(\xYAQ-AGzu@(sYA?AzGuu@dowbergill2.dgp6@u|\)NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VNn-!!GP(\xYA(\{YA ףpAQ-AGzu@Qu@(\{YA ףpAQu@(\xYAQ-AGzu@dowbergill2.dgp6@uRNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VMn-!!GP(\{YAHzYAGA ףpA\(u@Qu@HzYAGA\(u@(\{YA ףpAQu@dowbergill2.dgp6@u =pNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VLn-!!GPHzYAQYA)\AGA\(u@Qu@QYA)\AQu@HzYAGA\(u@dowbergill2.dgp6@uRNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VKn-!!GPQYAQYA(\A)\AQu@Qu@QYA(\AQu@QYA)\AQu@dowbergill2.dgp6@uRNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VJn-!!GPQYA(\YA3333A(\AQu@Ru@(\YA3333ARu@QYA(\AQu@dowbergill2.dgp6@uQNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VIn-!!GP(\YAQYA3333A ףpA33333u@Ru@QYA ףpA33333u@(\YA3333ARu@dowbergill2.dgp6@uzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VHn-!!GPQYAYAq= ךA ףpA33333u@33333u@YAq= ךA33333u@QYA ףpA33333u@dowbergill2.dgp6@uQNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VGn-!!GPQYAYA> ףAq= ךA33333u@Ru@QYA> ףARu@YAq= ךA33333u@dowbergill2.dgp6@uzGNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\)VFn-!!GPQYAQYAHzqA> ףARu@p= u@QYAHzqAp= u@QYA> ףARu@dowbergill2.dgp6@uG{NORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\) &L r 0V|:`Vin-!!GP ףpXA)\XAQARA> ףpu@> ףpu@ ףpXAQA> ףpu@)\XARA> ףpu@dowbergill1.dgp5@up =NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vhn-!!GP ףpXA(\XAp= AQAQu@> ףpu@(\XAp= AQu@ ףpXAQA> ףpu@dowbergill1.dgp5@u\(NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vgn-!!GP(\XAq= XA̓Ap= A(\•u@Qu@q= XA̓A(\•u@(\XAp= AQu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vfn-!!GPq= XAQYAGzbA̓A(\•u@Qu@QYAGzbAQu@q= XA̓A(\•u@dowbergill1.dgp5@u\)NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Ven-!!GPQYAGzYAzSAGzbAQu@33333u@GzYAzSA33333u@QYAGzbAQu@dowbergill1.dgp5@u\(NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vdn-!!GPGzYAp= YAHz.AzSA33333u@Qu@p= YAHz.AQu@GzYAzSA33333u@dowbergill1.dgp5@u\(NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vcn-!!GPp= YAp= YAp= .AHz.AQu@)\u@p= YAp= .A)\u@p= YAHz.AQu@dowbergill1.dgp5@ụ =qNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Vbn-!!GPp= YA\YARAp= .Ap= u@)\u@\YARAp= u@p= YAp= .A)\u@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)Van-!!GPYA\YA ףpARAGzu@p= u@YA ףpAGzu@\YARAp= u@dowbergill1.dgp5@uzGNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V`n-!!GPYA(\YAq= A ףpAGzu@> ףpu@(\YAq= A> ףpu@YA ףpAGzu@dowbergill1.dgp5@u\)NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V_n-!!GP(\YAq= YAq= AzA> ףpu@> ףpu@q= YAzA> ףpu@(\YAq= A> ףpu@dowbergill1.dgp5@up =NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V^n-!!GPq= YA(\(YA3333AzAHzu@> ףpu@(\(YA3333AHzu@q= YAzA> ףpu@dowbergill1.dgp5@uУ =qNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V]n-!!GP(\(YA0YAQA3333A)\u@Hzu@0YAQA)\u@(\(YA3333AHzu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V\n-!!GP0YAQ5YAGzAQAQu@)\u@Q5YAGzAQu@0YAQA)\u@dowbergill1.dgp5@u =pNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)V[n-!!GPQ5YA> ף8YAGzA\AQu@Qu@> ף8YA\AQu@Q5YAGzAQu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)VZn-!!GP> ף8YA?YAA\AHzu@Qu@?YAAHzu@> ף8YA\AQu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)VYn-!!GP?YADYAq= ׬AAQu@Hzu@DYAq= ׬AQu@?YAAHzu@dowbergill1.dgp5@u33333NORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\)VXn-!!GP> ף9YADYAq= ׬A{GAQyu@Qu@> ף9YA{GAQyu@DYAq= ׬AQu@dowbergill2.dgp6@uRNORMAL2015-10-032015-10-03@9\)@&333333@,Q@(\) &L r 0V|:`V{n-!!GP( XA> ף XA(A)\A(\u@gffffu@> ף XA(Agffffu@( XA)\A(\u@dowbergill1.dgp4@uNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vzn-!!GP> ף XAq= XA> ףA(Agffffu@R v@q= XA> ףAR v@> ף XA(Agffffu@dowbergill1.dgp4@vzGNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vyn-!!GPq= XA> ףXA> ףAףp=AR v@R v@> ףXAףp=AR v@q= XA> ףAR v@dowbergill1.dgp4@v RNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vxn-!!GP> ףXAXARwAףp=A> ףpu@R v@XARwA> ףpu@> ףXAףp=AR v@dowbergill1.dgp4@uzHNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vwn-!!GPXA)\!XARwARxA> ףpu@> ףpu@)\!XARxA> ףpu@XARwA> ףpu@dowbergill1.dgp4@up =NORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vvn-!!GP)\!XA{G4XAףp=BARxA> ףpu@q= ףu@{G4XAףp=BAq= ףu@)\!XARxA> ףpu@dowbergill1.dgp4@uQNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vun-!!GP{G4XA;XAGzAAףp=BAq= ףu@> ףpv@;XAGzAA> ףpv@{G4XAףp=BAq= ףu@dowbergill1.dgp4@u =pNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vtn-!!GP;XAQGXA AGzAA> ףpv@gffff"v@QGXA Agffff"v@;XAGzAA> ףpv@dowbergill1.dgp4@vNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vsn-!!GPQGXA\YXAQA AQv@gffff"v@\YXAQAQv@QGXA Agffff"v@dowbergill1.dgp4@v\(NORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vrn-!!GP\YXA_XAGAQAHzu@Qv@_XAGAHzu@\YXAQAQv@dowbergill1.dgp4@u33333NORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vqn-!!GP_XA{GdXA)\AGAHzu@(\ v@{GdXA)\A(\ v@_XAGAHzu@dowbergill1.dgp4@u33333NORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vpn-!!GP{GdXAp= jXAQA)\A(\ v@(\ v@p= jXAQA(\ v@{GdXA)\A(\ v@dowbergill1.dgp4@v =pNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Von-!!GPp= jXAp= nXAAQAHzu@(\ v@p= nXAAHzu@p= jXAQA(\ v@dowbergill1.dgp4@u噙NORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vnn-!!GPp= nXA ףpqXAAQAHzu@Hzu@ ףpqXAQAHzu@p= nXAAHzu@dowbergill1.dgp4@uzHNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vmn-!!GP ףpqXARXA{GoAQA ףp=u@Hzu@RXA{GoA ףp=u@ ףpqXAQAHzu@dowbergill1.dgp4@u =pNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vln-!!GPRXAGzXAQA{GoA ףp=u@zGu@GzXAQAzGu@RXA{GoA ףp=u@dowbergill1.dgp4@u =pNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vkn-!!GPGzXAHzXAQAQA(\u@zGu@HzXAQA(\u@GzXAQAzGu@dowbergill1.dgp4@uٙNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vjn-!!GPHzXA)\XARAQA> ףpu@(\u@)\XARA> ףpu@HzXAQA(\u@dowbergill1.dgp5@uǮzHNORMAL2004-05-032004-05-03@9\)@&333333@,Q@(\) &L r 0V|:`V n-!!GPgWA ףpnWA\iAp= yAq= ףt@̠t@ ףpnWA\iAq= ףt@gWAp= yA̠t@dowbergill1.dgp3@tNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)V n-!!GP ףpnWA> ף|WA ףpOA\iAgfffft@q= ףt@> ף|WA ףpOAgfffft@ ףpnWA\iAq= ףt@dowbergill1.dgp3@tQNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)V n-!!GP> ף|WAp= WAR3A ףpOARt@gfffft@p= WAR3ARt@> ף|WA ףpOAgfffft@dowbergill1.dgp3@t(\NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)V n-!!GPp= WA{GWAgfffAR3ARt@̜t@{GWAgfffA̜t@p= WAR3ARt@dowbergill1.dgp3@t\(NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)V n-!!GP{GWAp= WAAgfffA(\t@̜t@p= WAA(\t@{GWAgfffA̜t@dowbergill1.dgp3@tzGNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPp= WAףp=WAQAA(\t@q= ףt@ףp=WAQAq= ףt@p= WAA(\t@dowbergill1.dgp3@tNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPףp=WAq= רWA ףpAQAףp= t@q= ףt@q= רWA ףpAףp= t@ףp=WAQAq= ףt@dowbergill1.dgp3@tRNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPq= רWA(\WAp= ~A ףpAp= ׃t@ףp= t@(\WAp= ~Ap= ׃t@q= רWA ףpAףp= t@dowbergill1.dgp3@tQNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GP(\WAWAp= EAp= ~A33333t@p= ׃t@WAp= EA33333t@(\WAp= ~Ap= ׃t@dowbergill1.dgp3@tQNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPWA\WA(Ap= EA33333t@zGt@\WA(AzGt@WAp= EA33333t@dowbergill1.dgp3@t=p NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GP\WAWAA(AzGt@zGt@WAAzGt@\WA(AzGt@dowbergill1.dgp3@tGzNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPWARWAAAq= ףt@zGt@RWAAq= ףt@WAAzGt@dowbergill1.dgp3@t =pNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPRWA ףpXAGAAq= ףt@{Gt@ ףpXAGA{Gt@RWAAq= ףt@dowbergill1.dgp3@t =pNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPgfffXA ףpXAzAGA{Gt@Qt@gfffXAzAQt@ ףpXAGA{Gt@dowbergill1.dgp4@tGzNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)Vn-!!GPgfffXA> ף XA\AzAQt@zG1u@> ף XA\AzG1u@gfffXAzAQt@dowbergill1.dgp4@uQNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)V~n-!!GPGzXA> ף XA\A ףpAzG1u@Gzvu@GzXA ףpAGzvu@> ף XA\AzG1u@dowbergill1.dgp4@uSzHNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)V}n-!!GPGzXAGzXAףp=A ףpAGzvu@Ru@GzXAףp=ARu@GzXA ףpAGzvu@dowbergill1.dgp4@uRNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\)V|n-!!GPGzXA( XA)\Aףp=ARu@(\u@( XA)\A(\u@GzXAףp=ARu@dowbergill1.dgp4@u =pNORMAL2004-04-252004-04-25@9\)@&333333@,Q@(\) &L r 0V|:`Vn-!!GP(\VA(\VA ףpAGAQt@q= ףt@(\VA ףpAQt@(\VAGAq= ףt@dowbergill1.dgp2@tzGNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GP(\VA̽VAHzA ףpAQt@Qt@̽VAHzAQt@(\VA ףpAQt@dowbergill1.dgp2@tQNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GP̽VAQVAzAHzA\(t@Qt@QVAzA\(t@̽VAHzAQt@dowbergill1.dgp2@t(\NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GPQVAGVAq= ׫AzAp= דt@\(t@GVAq= ׫Ap= דt@QVAzA\(t@dowbergill1.dgp2@tNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GPGVAGVA> ףAq= ׫Ap= דt@Hzt@GVA> ףAHzt@GVAq= ׫Ap= דt@dowbergill1.dgp2@t =pNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GPGVAVAA> ףA{Gt@Hzt@VAA{Gt@GVA> ףAHzt@dowbergill1.dgp2@tGzNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GPVA ףpVAgAA(\t@{Gt@ ףpVAgA(\t@VAA{Gt@dowbergill1.dgp2@tQNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GP ףpVAGzVAQKAgAgfffft@(\t@GzVAQKAgfffft@ ףpVAgA(\t@dowbergill1.dgp2@t\(NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)Vn-!!GPGzVA(\VAQKA(LAgfffft@gfffft@(\VA(LAgfffft@GzVAQKAgfffft@dowbergill1.dgp3@tfffffNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GP(\VAWA0A(LAgfffft@Qt@WA0AQt@(\VA(LAgfffft@dowbergill1.dgp3@t\(NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPWAWAgfff'A0A> ףpt@Qt@WAgfff'A> ףpt@WA0AQt@dowbergill1.dgp3@t\)NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPWA(\-WA ףpAgfff'AGzt@> ףpt@(\-WA ףpAGzt@WAgfff'A> ףpt@dowbergill1.dgp3@t\)NORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GP(\-WAq= .WA ףpAAGzt@Gzt@q= .WAAGzt@(\-WA ףpAGzt@dowbergill1.dgp3@tzGNORMAL2004-01-182004-01-18@9\)@&333333@,Q@(\)Vn-!!GPq= .WA(\ ף3VAz3VAףp=CA{GCA33333t@\(t@> ף3VAףp=CA33333t@z3VA{GCA\(t@dowbergill1.dgp2@t\(NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V,n-!!GP> ף3VA=VA33332Aףp=CAףp= t@33333t@=VA33332Aףp= t@> ף3VAףp=CA33333t@dowbergill1.dgp2@t =pNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V+n-!!GP=VAFVAA33332A{Gt@ףp= t@FVAA{Gt@=VA33332Aףp= t@dowbergill1.dgp2@t =pNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V*n-!!GPFVA)\NVAGzAAQt@{Gt@)\NVAGzAQt@FVAA{Gt@dowbergill1.dgp2@tG{NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V)n-!!GP)\NVA3333VVA3333AGzAQt@Qt@3333VVA3333AQt@)\NVAGzAQt@dowbergill1.dgp2@tQNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V(n-!!GP3333VVA(cVAp= A3333Agfffft@Qt@(cVAp= Agfffft@3333VVA3333AQt@dowbergill1.dgp2@t\(NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V'n-!!GP(cVAeVAQAp= Agfffft@gfffft@eVAQAgfffft@(cVAp= Agfffft@dowbergill1.dgp2@tfffffNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V&n-!!GPeVAzgVAAQA ףp=t@gfffft@zgVAA ףp=t@eVAQAgfffft@dowbergill1.dgp2@t=p NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V%n-!!GPzgVAHzVA\yAA> ףpt@ ףp=t@HzVA\yA> ףpt@zgVAA ףp=t@dowbergill1.dgp2@tRNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V$n-!!GPHzVA(VAףp=WA\yAQt@> ףpt@(VAףp=WAQt@HzVA\yA> ףpt@dowbergill1.dgp2@tGzNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V#n-!!GP(VA)\–VAGzLAףp=WA)\t@Qt@)\–VAGzLA)\t@(VAףp=WAQt@dowbergill1.dgp2@t\)NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V"n-!!GP)\–VA\VAHz2AGzLA̔t@)\t@\VAHz2A̔t@)\–VAGzLA)\t@dowbergill1.dgp2@t\)NORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V!n-!!GP\VAVAAHz2A̔t@̔t@VAA̔t@\VAHz2A̔t@dowbergill1.dgp2@tNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\)V n-!!GPVA(\VAGAAq= ףt@̔t@(\VAGAq= ףt@VAA̔t@dowbergill1.dgp2@tNORMAL2003-12-142003-12-14@9\)@&333333@,Q@(\) 'N u  8_*UQCn%!!GP̴TAQTAGzA\AQt@t@QTA\At@̴TAGzAQt@dowcave.dow2@t =qNORMAL1982-09-261982-09-26@E33333@"zG@&@QQBn%!!GPQTAgfffTA\A̮AzGt@t@gfffTA̮AzGt@QTA\At@dowcave.dow2@tp =NORMAL1982-09-261982-09-26@E33333@"zG@&@QQAn%!!GPGz;UA(\VUA> ףA ףpAzGt@t@Gz;UA> ףAzGt@(\VUA ףpAt@dowcave.dow2@t =qNORMAL1982-09-261982-09-26@B^Q@p =q@Gz@=p >Q@n%!!GP> ףUAGz;UA)\A> ףA)\t@zGt@> ףUA)\A)\t@Gz;UA> ףAzGt@dowcave.dow2@t =pNORMAL1982-09-261982-09-26@B^Q@p =q@Gz@=p >Q?n%!!GP)\TA> ףUAA)\A)\t@Qt@)\TAAQt@> ףUA)\A)\t@dowcave.dow2@t\)NORMAL1982-09-261982-09-26@B^Q@p =q@Gz@=p >Q>n%!!GP)\TAgfffTA̮AAzGt@Qt@gfffTA̮AzGt@)\TAAQt@dowcave.dow2@t33333NORMAL1982-09-261982-09-26@B^Q@p =q@Gz@=p >U=n-!!GPq= כUA̽UAA{GA{Gt@\(t@q= כUA{GA\(t@̽UAA{Gt@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU<n-!!GP(\UAq= כUA{GA> ףA\(t@Qt@(\UA> ףAQt@q= כUA{GA\(t@dowbergill1.dgp1@t(\NORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU;n-!!GP{G~UA(\UA> ףAGz,AQt@Qt@{G~UAGz,AQt@(\UA> ףAQt@dowbergill1.dgp1@t =qNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU:n-!!GP{G~UAQUAGz,Aףp=-AQt@Qt@QUAףp=-AQt@{G~UAGz,AQt@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU9n-!!GPQcUAQUAףp=-AfAQt@Rt@QcUAfARt@QUAףp=-AQt@dowbergill1.dgp1@tNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU8n-!!GP> ףOUAQcUAfA(ARt@Qt@> ףOUA(AQt@QcUAfARt@dowbergill1.dgp1@tNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU7n-!!GPQ*UA> ףOUA(A(AQt@(\t@Q*UA(A(\t@> ףOUA(AQt@dowbergill1.dgp1@t =qNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU6n-!!GP UAQ*UA(AcAQt@(\t@ UAcAQt@Q*UA(A(\t@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU5n-!!GPUA UA\bAcAQt@zGt@UA\bAzGt@ UAcAQt@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU4n-!!GPQTAUA\bAgfffAzGt@t@QTAgfffAt@UA\bAzGt@dowbergill1.dgp1@tp =NORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU3n-!!GPGTAQTAgfffAףp=A ףp=t@t@GTAףp=A ףp=t@QTAgfffAt@dowbergill1.dgp1@tNORMAL2003-10-042003-10-04 @bfffffg@@\(\?QU2n-!!GPGTATAףp=AQA ףp=t@33333t@TAQA33333t@GTAףp=A ףp=t@dowbergill1.dgp1@tQNORMAL2003-10-042003-10-04 @bfffffg@@\(\?Q +V 4 ~  [$g0s<9Xn3!!GP0UA0UAףp=Aףp=AQYu@Ru@0UAףp=AQYu@0UAףp=ARu@dowcave.dribblemine@uQNORMAL1987-06-221987-06-22A9Wn3!!GPHz.UA0UA)\¹Aףp=AQYu@QYu@Hz.UA)\¹AQYu@0UAףp=AQYu@dowcave.dribblemine@uYQNORMAL1987-06-221987-06-22A9Vn3!!GPHz.UA> ףKUA)\¹A)\AQYu@QYu@Hz.UA)\¹AQYu@> ףKUA)\AQYu@dowcave.dribblemine@uYQNORMAL1987-06-221987-06-22A9Un3!!GPHz.UAHz.UA)\¹A)\¹AQAu@QYu@Hz.UA)\¹AQAu@Hz.UA)\¹AQYu@dowcave.dribblemine@uMQNORMAL1987-06-221987-06-22A9Tn3!!GPHz.UAHz.UA)\¹A)\¹AQu@QAu@Hz.UA)\¹AQu@Hz.UA)\¹AQAu@dowcave.dribblemine@u)QNORMAL1987-06-221987-06-22A9Sn3!!GPzUAHz.UAA)\¹Ap= u@Qu@zUAAp= u@Hz.UA)\¹AQu@dowcave.dribblemine@u fffffNORMAL1987-06-221987-06-22A9Rn3!!GP\TAzUA)\¬AA33333t@p= u@\TA)\¬A33333t@zUAAp= u@dowcave.dribblemine@tQNORMAL1987-06-221987-06-22A9Qn3!!GPGzTA\TA)\¬A(\A33333t@ ףp=u@GzTA(\A ףp=u@\TA)\¬A33333t@dowcave.dribblemine@tQNORMAL1987-06-221987-06-22A9Pn3!!GPq= TAGzTARA(\A ףp=u@ u@q= TARA u@GzTA(\A ףp=u@dowcave.dribblemine@uQNORMAL1987-06-221987-06-22A9On3!!GPGTAq= TẠARA u@ u@GTẠA u@q= TARA u@dowcave.dribblemine@u NORMAL1987-06-221987-06-22A9Nn3!!GPQTAGTAgfffẠA u@ u@GTẠA u@QTAgfffA u@dowcave.dribblemine@u NORMAL1987-06-221987-06-22A9Mn3!!GP> ףTAGTA̟ẠA u@ u@> ףTA̟A u@GTẠA u@dowcave.dribblemine@u NORMAL1987-06-221987-06-22A3Ln3!!GP> ףTA> ףTA̟A̟A33333t@ u@> ףTA̟A33333t@> ףTA̟A u@dowcave.dribblemineNNORMAL1987-06-221987-06-22A2Kn%!!GP(\SARSAgfffAp= A(\{t@Hzt@RSAp= AHzt@(\SAgfffA(\{t@dowcave.dow1@tNORMAL1982-02-071982-02-07A2Jn%!!GP(\SARSAp= A(A ףp=zt@Hzt@(\SA(A ףp=zt@RSAp= AHzt@dowcave.dow1@t\)NORMAL1982-02-071982-02-07A2In%!!GPSA(\SA(A̗A ףp=zt@Qt@SA̗AQt@(\SA(A ףp=zt@dowcave.dow1@t}\(NORMAL1982-02-071982-02-07A2Hn%!!GP3333RA(/RAq= ׈A ףpAzGt@zGt@(/RAq= ׈AzGt@3333RA ףpAzGt@dowcave.dow1@tGzNORMAL1982-02-071982-02-07A2Gn%!!GP(/RA\IRA\oAq= ׈AzGt@zGt@\IRA\oAzGt@(/RAq= ׈AzGt@dowcave.dow1@tGzNORMAL1982-02-071982-02-07A2Fn%!!GP\IRA\IRA\oA\oAHzt@zGt@\IRA\oAHzt@\IRA\oAzGt@dowcave.dow1@tzGNORMAL1982-02-071982-02-07AQEn%!!GPףp=[TA ףpTARwAAGzt@Hzt@ ףpTARwAGzt@ףp=[TAAHzt@dowcave.dow2@tzGNORMAL1982-09-261982-09-26@E33333@"zG@&@QQDn%!!GP ףpTA̴TARwAGzAGzt@Qt@̴TAGzAQt@ ףpTARwAGzt@dowcave.dow2@tzGNORMAL1982-09-261982-09-26@E33333@"zG@&@Q C S ( oJ%nI3mn'!!GPzUA3333VAףp=AA(\%w@(\Fw@zUAA(\%w@3333VAףp=A(\Fw@dowcave.depot@w6zGNORMAL1985-12-241985-12-24A3ln'!!GPQUAzUAARAGz w@(\%w@QUARAGz w@zUAA(\%w@dowcave.depot@wNORMAL1985-12-241985-12-24A3kn'!!GP̻UA> ףUA(\A(\AGz6w@GzBw@̻UA(\AGz6w@> ףUA(\AGzBw@dowcave.depot@w<NORMAL1985-12-241985-12-24A3jn'!!GP̻UA)\UA(\A\A> ףpw@Gz6w@)\UA\A> ףpw@̻UA(\AGz6w@dowcave.depot@w =pNORMAL1985-12-241985-12-24A3in'!!GP)\UAQUARA\A> ףpw@Gz w@QUARAGz w@)\UA\A> ףpw@dowcave.depot@w\(NORMAL1985-12-241985-12-24A3hn'!!GPQUA{GUAGzARAHzv@Gz w@{GUAGzAHzv@QUARAGz w@dowcave.depot@v\)NORMAL1985-12-241985-12-24A3gn'!!GP{GUAVAGzAQAQv@Hzv@VAQAQv@{GUAGzAHzv@dowcave.depot@vřNORMAL1985-12-241985-12-24A3fn'!!GPVAףp=VAQA\Av@Qv@ףp=VA\Av@VAQAQv@dowcave.depot@v\(NORMAL1985-12-241985-12-24A3en'!!GPףp=VAGz VAA\Aףp= sv@v@Gz VAAףp= sv@ףp=VA\Av@dowcave.depot@vNORMAL1985-12-241985-12-24A3dn'!!GPGz VA&VAAA(\Qv@ףp= sv@&VAA(\Qv@Gz VAAףp= sv@dowcave.depot@vbfffffNORMAL1985-12-241985-12-24A3cn'!!GP$VA&VAq= AA)\u@(\Qv@$VAq= A)\u@&VAA(\Qv@dowcave.depot@v p =NORMAL1985-12-241985-12-24A3bn'!!GP$VAgfff7VAq= AgfffAp= חu@)\u@gfff7VAgfffAp= חu@$VAq= A)\u@dowcave.depot@uQNORMAL1985-12-241985-12-24A5an+!!GPRUA(\UA\AQAQ%v@Q1v@(\UA\AQ%v@RUAQAQ1v@dowcave.hobsons@v+ =pNORMAL1985-12-151985-12-15A5`n+!!GP(\UA)\“UA\A ףpAQ%v@Qev@)\“UA ףpAQev@(\UA\AQ%v@dowcave.hobsons@vEQNORMAL1985-12-151985-12-15A5_n+!!GP)\“UA{GUA(A ףpA ףp= v@Qev@{GUA(A ףp= v@)\“UA ףpAQev@dowcave.hobsons@v7zHNORMAL1985-12-151985-12-15A5^n+!!GP{GUAףp=UA(A3333Aq= ףu@ ףp= v@ףp=UA3333Aq= ףu@{GUA(A ףp= v@dowcave.hobsons@up =NORMAL1985-12-151985-12-15A5]n+!!GPףp=UAQUAq= A3333A(\ju@q= ףu@QUAq= A(\ju@ףp=UA3333Aq= ףu@dowcave.hobsons@uNORMAL1985-12-151985-12-15A9\n3!!GPR6UAR6UAQAQARu@Ru@R6UAQARu@R6UAQARu@dowcave.dribblemine@uRNORMAL1987-06-221987-06-22A9[n3!!GP(\#UAR6UARAQARu@Ru@(\#UARARu@R6UAQARu@dowcave.dribblemine@uRNORMAL1987-06-221987-06-22A9Zn3!!GP(\#UA(\#UARARARu@Ru@(\#UARARu@(\#UARARu@dowcave.dribblemine@uRNORMAL1987-06-221987-06-22A9Yn3!!GP(\#UA0UARAףp=ARu@Ru@0UAףp=ARu@(\#UARARu@dowcave.dribblemine@uRNORMAL1987-06-221987-06-22A I $ m @ V+rG5n+!!GPzVAGVAgfff A ARv@ףp= v@GVA ARv@zVAgfff Aףp= v@dowcave.rattle2@vzGNORMAL1987-12-271987-12-27A5n+!!GPGVAQVA AARv@v@QVAAv@GVA ARv@dowcave.rattle2@v =pNORMAL1987-12-271987-12-27A5n+!!GPQVAVAAףp=A(\v@v@VAףp=A(\v@QVAAv@dowcave.rattle2@vzHNORMAL1987-12-271987-12-27A5n+!!GPVA\WAףp=Ap= AQv@(\v@\WAp= AQv@VAףp=A(\v@dowcave.rattle2@vRNORMAL1987-12-271987-12-27A5~n+!!GP\WAQWAHzAp= AQv@Hzv@QWAHzAHzv@\WAp= AQv@dowcave.rattle2@vzGNORMAL1987-12-271987-12-27A5}n+!!GPQWAQWAHzAHzAHzv@zGv@QWAHzAzGv@QWAHzAHzv@dowcave.rattle2@vzGNORMAL1987-12-271987-12-27A5|n+!!GPQWAq= WAHzAףp=AzGv@Gzv@q= WAףp=AGzv@QWAHzAzGv@dowcave.rattle2@vG{NORMAL1987-12-271987-12-27A5{n+!!GPq= WA ףp&WA(\Aףp=AQv@Gzv@ ףp&WA(\AQv@q= WAףp=AGzv@dowcave.rattle2@vRNORMAL1987-12-271987-12-27A5zn+!!GP ףp&WA\-WAA(\AQv@(\v@\-WAA(\v@ ףp&WA(\AQv@dowcave.rattle2@v =pNORMAL1987-12-271987-12-27A5yn+!!GP\-WAףp=FWAgfffAA(\‘v@(\v@ףp=FWAgfffA(\‘v@\-WAA(\v@dowcave.rattle2@v(\NORMAL1987-12-271987-12-27A7xn/!!GP\VA ףpVA(A(\ARu@Gzu@\VA(\ARu@ ףpVA(AGzu@dowcave.dripstone@uGzNORMAL1988-01-311988-01-31A7wn/!!GPWAq= QWAq= ׫AAq= ףu@{Gu@WAq= ׫Aq= ףu@q= QWAA{Gu@dowcave.dripstone@u =pNORMAL1988-01-311988-01-31A7vn/!!GP3333VAWAq= ׫Aq= A(\u@q= ףu@3333VAq= A(\u@WAq= ׫Aq= ףu@dowcave.dripstone@uGzNORMAL1988-01-311988-01-31A7un/!!GP\VA3333VAq= A(\ARu@(\u@\VA(\ARu@3333VAq= A(\u@dowcave.dripstone@uRNORMAL1988-01-311988-01-31A7tn/!!GP\VA3333VA(\AgfffARu@Ru@\VA(\ARu@3333VAgfffARu@dowcave.dripstone@uRNORMAL1988-01-311988-01-31A3sn'!!GPUAUAQAQAQ{u@Gzv@UAQAQ{u@UAQAGzv@dowcave.depot@uNORMAL1985-12-241985-12-24A3rn'!!GPUAp= UAgfffAQAQ{u@Q{u@p= UAgfffAQ{u@UAQAQ{u@dowcave.depot@u{QNORMAL1985-12-241985-12-24A3qn'!!GP ףp0VA ףp0VAGAGA33333v@(\w@ ףp0VAGA33333v@ ףp0VAGA(\w@dowcave.depot@wzGNORMAL1985-12-241985-12-24A3pn'!!GPp= $VA ףp0VAGAAzGv@33333v@p= $VAAzGv@ ףp0VAGA33333v@dowcave.depot@v(\NORMAL1985-12-241985-12-24A3on'!!GPp= $VA&VAAA(\Qv@zGv@&VAA(\Qv@p= $VAAzGv@dowcave.depot@voQNORMAL1985-12-241985-12-24A3nn'!!GP{GUA{GUAGzAGzARv@Hzv@{GUAGzAHzv@{GUAGzARv@dowcave.depot@vG{NORMAL1985-12-241985-12-24A G  a 3 yKc5{6n-!!GP)\yWA3333{WAARAv@Gzv@)\yWARAGzv@3333{WAAv@dowcave.stemple2@vRNORMAL1986-01-261986-01-26A6n-!!GPQoWA)\yWAARA(\v@Gzv@QoWAA(\v@)\yWARAGzv@dowcave.stemple2@v¸QNORMAL1986-01-261986-01-26A6n-!!GPQ WAJWAQAQAףp= v@33333v@JWAQAףp= v@Q WAQA33333v@dowcave.stemple2@v =pNORMAL1986-01-261986-01-26A6n-!!GPJWAQoWAQAA(\±v@ףp= v@QoWAA(\±v@JWAQAףp= v@dowcave.stemple2@vQNORMAL1986-01-261986-01-26A6n-!!GPQoWAQoWAAA(\±v@(\v@QoWAA(\v@QoWAA(\±v@dowcave.stemple2@v\(NORMAL1986-01-261986-01-26A6n-!!GPQoWAQoWAAAQcv@(\v@QoWAAQcv@QoWAA(\v@dowcave.stemple2@vQNORMAL1986-01-261986-01-26A6n-!!GP3333OWAQoWA(AARUv@Qcv@3333OWA(ARUv@QoWAAQcv@dowcave.stemple2@v\NORMAL1986-01-261986-01-26A6n-!!GP3333OWA3333OWA(A(Au@RUv@3333OWA(Au@3333OWA(ARUv@dowcave.stemple2@v =pNORMAL1986-01-261986-01-26A6n-!!GP3333WA)\–WAA(Ap= v@p= v@)\–WAAp= v@3333WA(Ap= v@dowcave.stemple1@v =pNORMAL1987-06-261987-06-26A6n-!!GPףp=WA)\–WA> ףAAp= v@p= v@ףp=WA> ףAp= v@)\–WAAp= v@dowcave.stemple1@v =pNORMAL1987-06-261987-06-26A6 n-!!GPףp=WA3333WAQA> ףAp= v@p= v@3333WAQAp= v@ףp=WA> ףAp= v@dowcave.stemple1@v =pNORMAL1987-06-261987-06-26A6 n-!!GP3333WA3333WAQAQAp= v@q= ף v@3333WAQAq= ף v@3333WAQAp= v@dowcave.stemple1@v=p NORMAL1987-06-261987-06-26A6 n-!!GP3333WA\WAQAQAQ v@q= ף v@\WAQAQ v@3333WAQAq= ף v@dowcave.stemple1@v\(NORMAL1987-06-261987-06-26A6 n-!!GPzWA\WARAQARv@Q v@zWARARv@\WAQAQ v@dowcave.stemple1@vQNORMAL1987-06-261987-06-26A6 n-!!GP> ףrWAzWARA\AGzu@Rv@> ףrWA\AGzu@zWARARv@dowcave.stemple1@uGzNORMAL1987-06-261987-06-26A6n-!!GP> ףrWA> ףrWA\A\AGzu@Gzv@> ףrWA\AGzv@> ףrWA\AGzu@dowcave.stemple1@uzGNORMAL1987-06-261987-06-26A6n-!!GPdWA> ףrWA\A3333AGzv@Gzv@dWA3333AGzv@> ףrWA\AGzv@dowcave.stemple1@vzGNORMAL1987-06-261987-06-26A6n-!!GP3333OWAdWA(A3333Au@Gzv@3333OWA(Au@dWA3333AGzv@dowcave.stemple1@u =pNORMAL1987-06-261987-06-26A5n+!!GP ףpVAGzVARAHzAQv@Qv@ ףpVARAQv@GzVAHzAQv@dowcave.rattle2@vNORMAL1987-12-271987-12-27A5n+!!GP ףpVA ףpVARARAQv@Qv@ ףpVARAQv@ ףpVARAQv@dowcave.rattle2@vQNORMAL1987-12-271987-12-27A5n+!!GP ףpVAzVARAgfff Aףp= v@Qv@zVAgfff Aףp= v@ ףpVARAQv@dowcave.rattle2@vGzNORMAL1987-12-271987-12-27A F  ^ 0 vH`6~4,n)!!GPp= WAWAHzAAQv@> ףpv@p= WAAQv@WAHzA> ףpv@dowcave.bridge@vzGNORMAL1986-02-091986-02-09A4+n)!!GPp= WA> ףWAARAq= ף|v@Qv@> ףWARAq= ף|v@p= WAAQv@dowcave.bridge@vzGNORMAL1986-02-091986-02-09A4*n)!!GP̍WA> ףWARAHz-A(\yv@q= ף|v@̍WAHz-A(\yv@> ףWARAq= ף|v@dowcave.bridge@v{33333NORMAL1986-02-091986-02-09A4)n)!!GPQWA̍WAHz-Aq= CARv@(\yv@QWAq= CARv@̍WAHz-A(\yv@dowcave.bridge@v? =pNORMAL1986-02-091986-02-09A6(n-!!GPQ6WAQGWAQAq= ׹AGzv@Gzv@QGWAQAGzv@Q6WAq= ׹AGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6'n-!!GPQGWAףp=^WA)\’AQAGzv@Gzv@ףp=^WA)\’AGzv@QGWAQAGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6&n-!!GPףp=^WAףp=^WA)\’A)\’AGzv@Gzv@ףp=^WA)\’AGzv@ףp=^WA)\’AGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6%n-!!GPףp=^WA{GbWAGzA)\’AGzv@Gzv@{GbWAGzAGzv@ףp=^WA)\’AGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6$n-!!GP{GbWA{GbWAGzAGzAGzv@Gzv@{GbWAGzAGzv@{GbWAGzAGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6#n-!!GP{GbWAGiWA3333~AGzAGzv@Gzv@GiWA3333~AGzv@{GbWAGzAGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6"n-!!GPGiWAGiWA3333~A3333~AGzv@Gzv@GiWA3333~AGzv@GiWA3333~AGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6!n-!!GPHziWAGiWA3333jA3333~AGzv@Gzv@HziWA3333jAGzv@GiWA3333~AGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6 n-!!GPHziWAHziWA3333jA3333jAHzv@Gzv@HziWA3333jAHzv@HziWA3333jAGzv@dowcave.clogsway@vzGNORMAL1991-09-061991-09-06A6n-!!GPHziWAHziWA3333jA3333jAzGu@Hzv@HziWA3333jAzGu@HziWA3333jAHzv@dowcave.clogsway@vHzGNORMAL1991-09-061991-09-06A6n-!!GPQXAR XAQAףp=A33333v@33333v@R XAQA33333v@QXAףp=A33333v@dowcave.stemple2@v33333NORMAL1986-01-261986-01-26A6n-!!GPR XA XAp= AQA33333v@33333v@R XAQA33333v@ XAp= A33333v@dowcave.stemple2@v33333NORMAL1986-01-261986-01-26A6n-!!GP{GWAR XAp= AQA33333v@33333v@{GWAp= A33333v@R XAQA33333v@dowcave.stemple2@v33333NORMAL1986-01-261986-01-26A6n-!!GP{GWA{GWAp= Ap= AGzv@33333v@{GWAp= AGzv@{GWAp= A33333v@dowcave.stemple2@v\(NORMAL1986-01-261986-01-26A6n-!!GP ףpWA{GWAGzAp= AGzv@v@ ףpWAGzAv@{GWAp= AGzv@dowcave.stemple2@vRNORMAL1986-01-261986-01-26A6n-!!GPRWA ףpWAGAGzAv@v@RWAGAv@ ףpWAGzAv@dowcave.stemple2@vNORMAL1986-01-261986-01-26A6n-!!GP3333{WARWAAGAv@v@3333{WAAv@RWAGAv@dowcave.stemple2@vNORMAL1986-01-261986-01-26A H & n F hFY9An3!!GPG-XAz2XAQAzAq= ףv@q= ףv@G-XAQAq= ףv@z2XAzAq= ףv@dowcave.roofgardens@ṿ =qNORMAL1988-04-021988-04-02A9@n3!!GPG-XAG-XAQAQAq= ףv@p= w@G-XAQAp= w@G-XAQAq= ףv@dowcave.roofgardens@v=p NORMAL1988-04-021988-04-02A9?n3!!GPG-XA\NXAp= AQAp= w@> ףp9w@\NXAp= A> ףp9w@G-XAQAp= w@dowcave.roofgardens@w, =qNORMAL1988-04-021988-04-02A9>n3!!GP\NXAQlXAp= AgfffA w@> ףp9w@QlXAgfffA w@\NXAp= A> ףp9w@dowcave.roofgardens@w#33333NORMAL1988-04-021988-04-02A9=n3!!GPQlXA(\}XAp= xAgfffA w@(\*w@(\}XAp= xA(\*w@QlXAgfffA w@dowcave.roofgardens@wzHNORMAL1988-04-021988-04-02A2<n%!!GPWA3333WA> ףA> ףARv@Gzv@WA> ףARv@3333WA> ףAGzv@dowcave.tube@vRNORMAL1986-02-091986-02-09A2;n%!!GP\WAWA> ףAAGzv@Rv@\WAAGzv@WA> ףARv@dowcave.tube@vGzNORMAL1986-02-091986-02-09A2:n%!!GP{GWA\WAAHzAGzv@Gzv@\WAAGzv@{GWAHzAGzv@dowcave.tube@vzGNORMAL1986-02-091986-02-09A29n%!!GP\WAWAA3333Agffffv@Gzv@WA3333Agffffv@\WAAGzv@dowcave.tube@vQNORMAL1986-02-091986-02-09A28n%!!GPWAQWA3333A(A\(v@gffffv@QWA(A\(v@WA3333Agffffv@dowcave.tube@v\(NORMAL1986-02-091986-02-09A47n)!!GPQ~WA(\WA(\ARCAHz;w@Hz;w@(\WA(\AHz;w@Q~WARCAHz;w@dowcave.bridge@w;zHNORMAL1986-02-091986-02-09A46n)!!GPHzWA(\WAA(\AHz;w@Hz;w@HzWAAHz;w@(\WA(\AHz;w@dowcave.bridge@w;zHNORMAL1986-02-091986-02-09A45n)!!GPHzWAGzWAQAAHz;w@Hz;w@GzWAQAHz;w@HzWAAHz;w@dowcave.bridge@w;zHNORMAL1986-02-091986-02-09A44n)!!GPGzWAQWAQAHz AHz;w@Hzkw@GzWAQAHz;w@QWAHz AHzkw@dowcave.bridge@wSzHNORMAL1986-02-091986-02-09A43n)!!GPGzWAWA\AQAHz;w@Hz;w@WA\AHz;w@GzWAQAHz;w@dowcave.bridge@w;zHNORMAL1986-02-091986-02-09A42n)!!GPWA ףpWA{GA\A(\w@Hz;w@ ףpWA{GA(\w@WA\AHz;w@dowcave.bridge@w)QNORMAL1986-02-091986-02-09A41n)!!GP ףpWA ףpWA{GA{GA(\w@(\w@ ףpWA{GA(\w@ ףpWA{GA(\w@dowcave.bridge@w (\NORMAL1986-02-091986-02-09A.0n)!!GPRWA ףpWA{GAA ףp=v@(\w@RWAA ףp=v@ ףpWA{GA(\w@dowcave.bridgepNORMAL1986-02-091986-02-09A4/n)!!GPRWARWAAA> ףpv@ ףp=v@RWAA> ףpv@RWAA ףp=v@dowcave.bridge@v =pNORMAL1986-02-091986-02-09A4.n)!!GPWARWAHzAA> ףpv@> ףpv@WAHzA> ףpv@RWAA> ףpv@dowcave.bridge@vp =NORMAL1986-02-091986-02-09A4-n)!!GPWAQWAGzAHzA> ףpv@(\v@WAHzA> ףpv@QWAGzA(\v@dowcave.bridge@vQNORMAL1986-02-091986-02-09A GC 7 r 3v?CG;Vn7!!GP ףpXA ףpXA ףp@AJA)\w@)\w@ ףpXAJA)\w@ ףpXA ףp@A)\w@dowcave.choke2.wetway@w\)NORMAL1986-07-191986-07-19A;Un7!!GP ףpXA ףpXAJAJA\( w@)\w@ ףpXAJA\( w@ ףpXAJA)\w@dowcave.choke2.wetway@w\(NORMAL1986-07-191986-07-19A;Tn7!!GPףp=XA ףpXAJAGzNA\( w@\( w@ףp=XAGzNA\( w@ ףpXAJA\( w@dowcave.choke2.wetway@w (\NORMAL1986-07-191986-07-19A;Sn7!!GPףp=XAףp=XAGzNAGzNA(\w@\( w@ףp=XAGzNA(\w@ףp=XAGzNA\( w@dowcave.choke2.wetway@w\)NORMAL1986-07-191986-07-19A;Rn7!!GPq= ~XAףp=XAGzNA\ZA(\w@(\w@q= ~XA\ZA(\w@ףp=XAGzNA(\w@dowcave.choke2.wetway@w\(NORMAL1986-07-191986-07-19A;Qn7!!GPq= ~XA> ףXA\ZAGzrA(\w@(\w@> ףXAGzrA(\w@q= ~XA\ZA(\w@dowcave.choke2.wetway@w\(NORMAL1986-07-191986-07-19A;Pn7!!GP> ףXA> ףXAGzrAGzrA(\w@(\*w@> ףXAGzrA(\*w@> ףXAGzrA(\w@dowcave.choke2.wetway@w(\NORMAL1986-07-191986-07-19A;On7!!GP(\}XA> ףXAGzrAp= xA(\*w@(\*w@(\}XAp= xA(\*w@> ףXAGzrA(\*w@dowcave.choke2.wetway@w*\(NORMAL1986-07-191986-07-19A9Nn3!!GPgfffXA)\XAq= aAHzlAGzhw@p= ׋w@gfffXAHzlAGzhw@)\XAq= aAp= ׋w@dowcave.choke2.digb@wzzGNORMAL1988-04-021988-04-02A9Mn3!!GPGXAgfffXAHzlAztA ףp=Jw@Gzhw@GXAztA ףp=Jw@gfffXAHzlAGzhw@dowcave.choke2.digb@wYp =NORMAL1988-04-021988-04-02A9Ln3!!GPgfffXAGXAztAGuAp= ;w@ ףp=Jw@gfffXAGuAp= ;w@GXAztA ףp=Jw@dowcave.choke2.digb@wC =pNORMAL1988-04-021988-04-02A9Kn3!!GP3333XAgfffXAGuAp= xA(\#w@p= ;w@3333XAp= xA(\#w@gfffXAGuAp= ;w@dowcave.choke2.digb@w/zHNORMAL1988-04-021988-04-02A9Jn3!!GP(\XA3333XA> ףsAp= xA{Gw@(\#w@(\XA> ףsA{Gw@3333XAp= xA(\#w@dowcave.choke2.digb@w =pNORMAL1988-04-021988-04-02A9In3!!GP(\}XA(\XA> ףsAp= xA{Gw@(\*w@(\}XAp= xA(\*w@(\XA> ףsA{Gw@dowcave.choke2.digb@w"QNORMAL1988-04-021988-04-02AAHnC!!GPGzXA)\XAQ-AQ9Aq= ףw@q= ףw@GzXAQ9Aq= ףw@)\XAQ-Aq= ףw@dowcave.choke2.roofchambers@w =qNORMAL1987-05-241987-05-24AAGnC!!GPGzXAGzXAQ9AQ9Aq= ףw@q= ףw@GzXAQ9Aq= ףw@GzXAQ9Aq= ףw@dowcave.choke2.roofchambers@w =qNORMAL1987-05-241987-05-24AAFnC!!GPGyXAGzXAQ9Aq= @A{Gw@q= ףw@GyXAq= @A{Gw@GzXAQ9Aq= ףw@dowcave.choke2.roofchambers@w\(NORMAL1987-05-241987-05-24AAEnC!!GP(\xXAGyXAq= @AzLA(\zw@{Gw@(\xXAzLA(\zw@GyXAq= @A{Gw@dowcave.choke2.roofchambers@wQNORMAL1987-05-241987-05-24AADnC!!GP(\xXAGz}XAzLANAGznw@(\zw@Gz}XANAGznw@(\xXAzLA(\zw@dowcave.choke2.roofchambers@wtQNORMAL1987-05-241987-05-24A9Cn3!!GPz2XA(:XA(\AzAq= ףv@q= ףv@z2XAzAq= ףv@(:XA(\Aq= ףv@dowcave.roofgardens@v =qNORMAL1988-04-021988-04-02A9Bn3!!GPz2XAz2XAzAzAq= ףv@q= ףv@z2XAzAq= ףv@z2XAzAq= ףv@dowcave.roofgardens@vܣ =qNORMAL1988-04-021988-04-02A <A  E  I MK< ףKAMAp= +w@p= +w@(\XA> ףKAp= +w@gfffXAMAp= +w@dowcave.choke2.wetway@w+ =pNORMAL1986-07-191986-07-19A;\n7!!GPzXA(\XA> ףKAQOAp= +w@p= +w@zXAQOAp= +w@(\XA> ףKAp= +w@dowcave.choke2.wetway@w+ =pNORMAL1986-07-191986-07-19A;[n7!!GPgfffXAzXAQOAHzUAp= +w@)\ ף=YADYAHzAq= ׬AQu@Qu@DYAq= ׬AQu@> ף=YAHzAQu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03A6yn-!!GPp= YAp= YAHz.AHz.AQDu@Qu@p= YAHz.AQu@p= YAHz.AQDu@dowbergill1.dgp5@uQNORMAL2004-05-032004-05-03A6xn-!!GP(=XAHzEXAzEAGzSA\(t@t@(=XAGzSA\(t@HzEXAzEAt@dowbergill1.dgp3@tNORMAL2004-01-182004-01-18A6wn-!!GPQ8XA(=XAGzSAHz`A ףp=t@\(t@Q8XAHz`A ףp=t@(=XAGzSA\(t@dowbergill1.dgp3@t33333NORMAL2004-01-182004-01-18A6vn-!!GPHz3XAQ8XAHz`AQlA ףp=t@33333t@Hz3XAQlA33333t@Q8XAHz`A ףp=t@dowbergill1.dgp3@tQNORMAL2004-01-182004-01-18A6un-!!GP ףp+XAHz3XAQlAHz~Aq= ףt@33333t@ ףp+XAHz~Aq= ףt@Hz3XAQlA33333t@dowbergill1.dgp3@tRNORMAL2004-01-182004-01-18A6tn-!!GPXA ףp+XAHz~AzAq= ףt@q= ףt@XAzAq= ףt@ ףp+XAHz~Aq= ףt@dowbergill1.dgp3@t =qNORMAL2004-01-182004-01-18A6sn-!!GP> ףXAXAzAgfffA33333t@q= ףt@> ףXAgfffA33333t@XAzAq= ףt@dowbergill1.dgp3@tNORMAL2004-01-182004-01-18A6rn-!!GPgfffXA> ףXAgfffA̸A33333t@gfffft@gfffXA̸Agfffft@> ףXAgfffA33333t@dowbergill1.dgp3@tNORMAL2004-01-182004-01-18A6qn-!!GPHzXAgfffXA̸A{GA ףp=t@gfffft@HzXA{GA ףp=t@gfffXA̸Agfffft@dowbergill1.dgp3@tQNORMAL2004-01-182004-01-18A6pn-!!GP ףpXAHzXA{GAGA ףp=t@{Gt@ ףpXAGA{Gt@HzXA{GA ףp=t@dowbergill1.dgp3@t\(NORMAL2004-01-182004-01-18A ףpw@> ףpw@)\XA3333)A> ףpw@zYA(.A> ףpw@dowcave.choke2.albert3@wp =NORMAL1987-01-251987-01-25A ףpw@> ףpw@ ףpXAA> ףpw@)\XA3333)A> ףpw@dowcave.choke2.albert3@wp =NORMAL1987-01-251987-01-25A ףpw@XAQA{Gw@ ףpXAA> ףpw@dowcave.choke2.albert3@wzGNORMAL1987-01-251987-01-25A ףXAGXA( A)\A(\"x@(\"x@> ףXA)\A(\"x@GXA( A(\"x@dowcave.choke2.albert2@x"\(NORMAL1987-01-101987-01-10A E  Y ( m< NZ9n3!!GP̞]Agfff]ARAARMx@33333Sx@gfff]ARA33333Sx@̞]AARMx@providencepot.ppot1@xPzGNORMAL2005-02-042005-02-04A9n3!!GPgfff]Aףp=]A\|ARAHzOx@33333Sx@ףp=]A\|AHzOx@gfff]ARA33333Sx@providencepot.ppot1@xQp =NORMAL2005-02-042005-02-04A9n3!!GPGz]AQ]A(KAQA33333x@Qx@Q]A(KAQx@Gz]AQA33333x@providencepot.ppot1@x =pNORMAL2005-02-042005-02-04A9n3!!GPQ]Az]Agfff.A(KAQx@zGx@z]Agfff.AzGx@Q]A(KAQx@providencepot.ppot1@xRNORMAL2005-02-042005-02-04A9n3!!GPp= ]A ףp]A)\AQ.AQkx@x@ ףp]A)\AQkx@p= ]AQ.Ax@providencepot.ppot1@x =pNORMAL2005-02-042005-02-04A9n3!!GPQ ^A ףp^A(AQAq= ףdx@Qhx@Q ^AQAq= ףdx@ ףp^A(AQhx@providencepot.ppot1@xffffffNORMAL2005-02-042005-02-04A9n3!!GPp= ]AQ ^A)\AQAq= ףdx@> ףpex@p= ]A)\A> ףpex@Q ^AQAq= ףdx@providencepot.ppot1@xeQNORMAL2005-02-042005-02-04A6n-!!GP)\YAHzYAGA> ף A\(u@gffffu@HzYAGA\(u@)\YA> ף Agffffu@dowbergill2.dgp6@u\(NORMAL2015-10-032015-10-03A6 n-!!GP ףpYAQYA{GA ףpA33333u@33333u@QYA ףpA33333u@ ףpYA{GA33333u@dowbergill2.dgp6@u33333NORMAL2015-10-032015-10-03A7 n/!!GP ףpf\A> ףl\A(\A( Ap= {w@> ףpw@> ףl\A(\Ap= {w@ ףpf\A( A> ףpw@dowbergill2.dgp8a@wQNORMAL2009-12-122009-12-12A7 n/!!GP> ףl\ARm\Aףp=A(\AGz`w@p= {w@Rm\Aףp=AGz`w@> ףl\A(\Ap= {w@dowbergill2.dgp8a@wnzGNORMAL2009-12-122009-12-12A7 n/!!GPG\A{G\AQA]Ap= ?w@p= ?w@G\A]Ap= ?w@{G\AQAp= ?w@dowbergill2.dgp8a@w? =pNORMAL2009-12-122009-12-12A7 n/!!GPG\AG\A]A]Ap= ?w@ףp= Ow@G\A]Aףp= Ow@G\A]Ap= ?w@dowbergill2.dgp8a@wGQNORMAL2009-12-122009-12-12A7n/!!GP ףp\AG\A]AQAףp= Ow@GzZw@ ףp\AQAGzZw@G\A]Aףp= Ow@dowbergill2.dgp8b@wTzGNORMAL2010-03-212010-03-21A7n/!!GP(\A ףp\AQAQA\(Hw@GzZw@(\AQA\(Hw@ ףp\AQAGzZw@dowbergill2.dgp8b@wQQNORMAL2010-03-212010-03-21A7n/!!GPQ}\A(\AQAQA\(Hw@\(Pw@Q}\AQA\(Pw@(\AQA\(Hw@dowbergill2.dgp8b@wL(\NORMAL2010-03-212010-03-21A7n/!!GPRm\AQ}\AQAףp=A\(Pw@Gz`w@Rm\Aףp=AGz`w@Q}\AQA\(Pw@dowbergill2.dgp8a@wXQNORMAL2009-12-122009-12-12A7n/!!GPRm\ARm\Aףp=Aףp=AQ w@Gz`w@Rm\Aףp=AQ w@Rm\Aףp=AGz`w@dowbergill2.dgp8a@w@QNORMAL2009-12-122009-12-12A7n/!!GPGzj\ARm\Aףp=AGzAGzw@Q w@Gzj\AGzAGzw@Rm\Aףp=AQ w@dowbergill2.dgp8a@w33333NORMAL2009-12-122009-12-12A7n/!!GPq= `\AGzj\AGzA{GAq= ףw@Gzw@q= `\A{GAq= ףw@Gzj\AGzAGzw@dowbergill2.dgp8a@w\(NORMAL2009-12-122009-12-12A7n/!!GPq= P\Aq= `\A{GA{GAq= ףw@Qw@q= P\A{GAQw@q= `\A{GAq= ףw@dowbergill2.dgp8a@w zGNORMAL2009-12-122009-12-12A C O  [$g0s<9*n3!!GPQ]A̞]AQ8AQAAףp= x@\(x@Q]AQ8Aףp= x@̞]AQAA\(x@providencepot.ppot2@xzHNORMAL2005-04-092005-04-09A9)n3!!GP]AQ]AR2AQ8A|x@ףp= x@]AR2A|x@Q]AQ8Aףp= x@providencepot.ppot2@x}NORMAL2005-04-092005-04-09A9(n3!!GPQ~]A]AR,AR2A|x@|x@Q~]AR,A|x@]AR2A|x@providencepot.ppot2@x|NORMAL2005-04-092005-04-09A9'n3!!GP(\z]AQ~]A$AR,A|x@̀x@(\z]A$Àx@Q~]AR,A|x@providencepot.ppot2@x~fffffNORMAL2005-04-092005-04-09A9&n3!!GPn]A(\z]A$A)\&Àx@)\x@n]A)\&A)\x@(\z]A$Àx@providencepot.ppot2@x\)NORMAL2005-04-092005-04-09A9%n3!!GP]A]ARARA̰x@x@]ARA̰x@]ARAx@providencepot.ppot2@xNORMAL2005-04-092005-04-09A9$n3!!GP]Aq= ר]ARAzA̰x@̰x@]ARA̰x@q= ר]AzA̰x@providencepot.ppot2@xNORMAL2005-04-092005-04-09A9#n3!!GP)\]]A)\]]AAA33333Cw@Lw@)\]]AALw@)\]]AA33333Cw@providencepot.ppot1@wHNORMAL2005-02-042005-02-04A9"n3!!GP)\]]A\g]AA(\ALw@ew@\g]A(\Aew@)\]]AALw@providencepot.ppot1@wYGzNORMAL2005-02-042005-02-04A9!n3!!GP\g]Ap= r]AQA(\Aew@)\tw@p= r]AQA)\tw@\g]A(\Aew@providencepot.ppot1@wmGzNORMAL2005-02-042005-02-04A9 n3!!GPp= r]AQ]AGzAQA)\tw@Qw@Q]AGzAQw@p= r]AQA)\tw@providencepot.ppot1@w =pNORMAL2005-02-042005-02-04A9n3!!GPQ]A3333]A(\AGzAQw@Qw@3333]A(\AQw@Q]AGzAQw@providencepot.ppot1@w =qNORMAL2005-02-042005-02-04A9n3!!GP3333]A]A(\A ףpAQw@̼w@]A ףpA̼w@3333]A(\AQw@providencepot.ppot1@w\(NORMAL2005-02-042005-02-04A9n3!!GP]A]A ףpA ףpA̼w@w@]A ףpAw@]A ףpA̼w@providencepot.ppot1@w33333NORMAL2005-02-042005-02-04A9n3!!GP]Aq= ח]AQA ףpAw@ףp= w@q= ח]AQAףp= w@]A ףpAw@providencepot.ppot1@wQNORMAL2005-02-042005-02-04A9n3!!GPq= ח]Az]A(\AQAףp= w@> ףpx@z]A(\A> ףpx@q= ח]AQAףp= w@providencepot.ppot1@w(\NORMAL2005-02-042005-02-04A9n3!!GPQ]AG]A)\]ÂA(\w@(\w@Q]ÂA(\w@G]A)\]A(\w@providencepot.ppot1@w\(NORMAL2005-02-042005-02-04A9n3!!GPQ]Az]ÂA(\A(\w@> ףpx@z]A(\A> ףpx@Q]ÂA(\w@providencepot.ppot1@wNORMAL2005-02-042005-02-04A9n3!!GPz]Az]A(\A(\A> ףpx@p= 'x@z]A(\Ap= 'x@z]A(\A> ףpx@providencepot.ppot1@x =qNORMAL2005-02-042005-02-04A9n3!!GPz]A̞]A(\AAp= 'x@gffff.x@̞]AAgffff.x@z]A(\Ap= 'x@providencepot.ppot1@x+33333NORMAL2005-02-042005-02-04A9n3!!GP̞]A̞]AAAgffff.x@RMx@̞]AARMx@̞]AAgffff.x@providencepot.ppot1@x>zGNORMAL2005-02-042005-02-04A  C O 91n3!!GP\A(\\AzAG+A(\Fx@(\sx@(\\AG+A(\Fx@\AzA(\sx@providencepot.ppot4@x\\)NORMAL2009-05-292009-05-29A90n3!!GPGz\AGz\A> ףA> ףAp= gx@Gzx@Gz\A> ףAp= gx@Gz\A> ףAGzx@providencepot.ppot3@x\)NORMAL2006-06-042006-06-04A9/n3!!GPQ+]A)\2]AzAףp=+A\(xx@q= ףx@)\2]AzA\(xx@Q+]Aףp=+Aq= ףx@providencepot.ppot2@xfffffNORMAL2005-04-092005-04-09A9.n3!!GP]A> ף]Aq= TAףp=[A ףp=~x@ ףp=~x@]Aq= TA ףp=~x@> ף]Aףp=[A ףp=~x@providencepot.ppot2@x~=p NORMAL2005-04-092005-04-09A9-n3!!GP(\]A]Aףp=OAq= TA|x@ ףp=~x@(\]Aףp=OA|x@]Aq= TA ףp=~x@providencepot.ppot2@x}NORMAL2005-04-092005-04-09A9,n3!!GP{G]A(\]AHAףp=OA|x@Qx@{G]AHAQx@(\]Aףp=OA|x@providencepot.ppot2@x~zGNORMAL2005-04-092005-04-09A9+n3!!GP̞]A{G]AQAAHAQx@\(x@̞]AQAA\(x@{G]AHAQx@providencepot.ppot2@x =pNORMAL2005-04-092005-04-09AcbTeda`_ ^ ]\                            -ZP$"H…@H†HH痀H†H‡H疗HH‡HˆH疗H#HˆH‰ H!HQH‰ HŠHOHwHŠHŠH痙HwHŠHŒAHLH痛HŒ?HŒAHJHNHŒ?HŽXHJHHŽVHŽHH癩HŽHŽH癧HCHŽH‘H癆HCH‘H’PH癆H盀 H’NH“H皾H盀 H“H•FH皾H H•DH–HH H–H–HGH H–H–HHIH–H™ HHH™ HšHHNHšHSH.HNHQHžHvH0HžHžH甾HxHžHŸH甭HHŸH¡H甒H甯H¡H¢H[H甔H¢H¢HH H¢H¢H[HH’NH’PH~H盀H‘yH’PH~HGHxH‘{HEHTHžHŸHqHHŸHŸ.H0HsHžHŸ.HH2P$H¢H¢H HH¢H¤H瓼H]H¢H£HH/H£H¤PHH/H¤NH¤H5HH¤_H¥HH H¤H¥H瓼HH¤H¥H5H<H¥H¦ H H<H¥H¥HHH¥H¥HH H¥H¦HH>H¥H¦9HH ~H¦H¦lH H,H¦7H§UHHx}H¦jH¦HH,H¦H§ H4H¼H½iHHHHHH@HHHHHHH;HGHH_H;H=HHHpHH H8HHH HfHHHdHHHHHHHHHHHH HHHH6HFHzH4H@HxHH@HHHHYHHHZP$H{HHHHHHH HRH}HxHHHTHxHHHHHHHHHHHHHHmHHH*HmHoH(H,HVHoH*HdHVHWHbHfH HWHdHHH"HHIHHHGHYH0HHWHHH2HHHHHHHHHHHHHHHHHoHHHHHqHHHHHHHHP$!nHH/H3oHH1H_pHǠHH8H`lHƥHH]H爸qHǣHH^H爱rHǣHǨH爰H爱sHdHǨH爰H@HƥHƧH父H爸uHƥHH父HAHƈHƧH父HtHHfH爾HBHƀHƊHHNKHHAH@HmCHTHƂHLHxJH$HAHkH牁HHŅHŇHrHtIH$HŇHrH牁GH|HŇHrHDHHVHvHFH|HŠHH%EHŞHHH%MHHHH/LHHHH@OHHH-H/NHHH-H/iHH4H HjH2H4HHkHǠHCH8HIlHƥHHIH爸mHƶHDH爤HnHBHHHJoHH7HHHs  -ZP $'HµHµHo*HpIHµHµHnHo,HµH¶HnHnH¶H¶iHm]HnH¶gH¶HlHm_H¶H¶HlHHlH¶H·LHk;HlHH·JH·HjWHk=H·H·HjWHjcH·H¸8HiHjcH¸8H¸xHi;HiH¸xH¹nHgzHi=H¹lH¹wHgzHgH¹uH¹HfHgH¹HºzHe?HfHºxHºHd|HeAHºH»MHcHd~H»;H»MHcHcH»;H»tHcNHcH»rH»HbzHcPH»H¼BHaHb|H¼@H¼dH`HaH¼bH¼H`3H`H¼H¼H_H`5H¼H½GH^H_H½EH¾;H[H^H¾9H¾HZ(H[HµHµHpGHqH´HµHpHqH´H´HqHrdH´H´HrbHrH´7H´HrHsH³=H´9HsHuH³.H³?HuHvNH³H³0HvLHvH²H³HvHwzH²vH²HwxHx$H²0H²xHx"HxH±H²0HxHyP $H݀HݸH\HHWH݂HH8H&HYH8HqHH(HoHHܤHHH HܠHܦH H +HqHܠH )H H9HuH H IHqHuH H H!H;H CH IH۸H#H CH SHoHۺH QH ?HaHqH =H H)HcH {H HH+H {HGHڠHHEHHwHڢHH HwHHH!!HڈHHH"HHڊHHk#H٨HHiH/$HH٪H-H%HHHH>&HHHHHHHHHHHHTHBHHRHnH8HDHlHnH8H:HlHHH:HHHHHeHnH8HH2HgHHcHHHHHHHHa  -ZP$"H¾H¿@HYFHZ*H¿>H¿HXHYHH¿H¿HWHXH¿HH?\HɇHɩH>JH>[HɧHH>JH>XZHHH=H>XWHHHH%HћH*H+=HљH?H(H*H瘸H± H±H瘷H瘸H±H±H瘷H瘹Hµ~HµHH;Hµ~H¶HH;H¶zH¶HHºHjH瘸H¹nHº2HCH瘕(Hº HºHjH瘴"Hº0Hº4HCHD#Hº0HºHCHy!Hº2HºH痖HD(H¹Hº;HGHP$$H§ H§HfHkH§.H§UHvHH§.H¨'HHH{H§2H§HHXH§SH§HGHxH§H§HHIH§H§HcHH§H¨wHfH略zH§H¨HVHH§H¨IHHeH¨%H©HFHGH¨GH¨UHHH¨SH©SHqHH¨uH©qH畣HyH¨H©HHH©H©H畴H當H©H©H畴HH©H©H畴HH©QHªHAHsH©oH©qHHH©oH©qHHH©oH©HHH©oHª_HHH©H©HHxH©Hª*HHSH©HªHEHwHª(HªHQH痐Hª}H«H7HCvHªHªH痎HHªH¬ HeHH«H¬HhH9H«H¬HbHjH«H¬H燍HdH¬H¬HH燏H©H©HHH¬ H¬VH>HQP$!H¬ H­(HHgH¬TH¬H>HtH¬H­LH痱HtH­&H­HHdH­JH®"H痱HH­H®HYHH­H®]H7HdH® H®HuHH®[H®H7HwH®H®HuHwH®H¯HGHwH®H¯yHHH¯H¯HGHuH¯wH¯H痚HH¯wH¯HHH¯H¯HHH¯H¯HsHH¯H¯H痚H痜H¯H° H痚HH¯H°CHsH痐H¯H°H痸HH°H°rHHH°AH°CH痎H痐H°AH±HcH痐H°pH±HHH±H±5HH@H±#H±5H5H@H±#H±H5He?H±H±HcH痪>H±H±HSH痪=H±H³ HOHU82,&  ~ x r l f ` Z T N H B < 6 0 * $     z s l e ^ W P I B ; 4 - &     ~ w p i b [ T M F ? 8 1 * #     { t m f _ X Q J C < 5 . '     x q j c \ U N G @ 9 2 + $     |ung`YRKD=6/(! yrkd]VOHA:3,% }vohaZSLE>70)" zsle^WPIB;4-& ~wpib[TMF?81*#TSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+ * ) ( ' & % $ # " !                                   ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQP O N M L K J I H G F E D C B A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 / . - , + * ) ( ' & % $ # " !                                         ~ } | { z y x w v u t s r q p onmlkjihgfedcba`_^]\ [ Z Y X W V U T S R Q P O N M L K J I H G F E DCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!       {tmf_XQJC<5.'  xqjc\UNG@92+$ | u n g ` Y R K D = 6 / ( !    y r k d ] V O H A : 3 , %     } v o h a Z S L E > 7 0 ) "    z s l e ^ W P I B ; 4 - &     1 0 / . - , + * ) ( ' & % $ # " !                      ~ } | { zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVU  -ZP$!QHUHWHHRHHWHHPHUHHH/SHùHHH牄HH HHiHTHùHH牂H$GH H HHFHH HHVHBHLHHXWHHLHHxEHHHHgUHHH"H$VHHH"HuUHBHDHVHXYHBHDHVHXTHHDHVHtZH+HDHVH犩]HļHH]Hm\HąHľH]H~DHHHeHx^HHHkHmSHHHrHtRHHHrHWHHHsHuXHHHsHXHHHvHx[H+HćH|H犩_HBHRHVH犋`HPHRH犉H犋aHHRH犉H犘bHHĈH犘HgHBHĞH+HXhHĜHH H-P$-HºPH»{HH8HºuHºH畑H<HºuH»'H:HdHºxHºzH1H3HºxHºH1H畓kHºxHºH`H3HºxH» H1HJHºxH»{H1H8'HºHºH瘜H瘴 HºHºH"H痘HºHºHH$$HºHºHwH瘾%HºHºH瘜H瘾HºH»'HbH&HºHºH瘜H瘞jHºH¼WH'HbH» H»H6HJH»yH»{H8H8H»yH»{H8H8H»H»H6H8 H»H¼H$H8 H¼H¼xH$HY H¼XH¼bH畼HH¼XH¼HH H¼`H¼bH畼H畾 H¼`H¼xHWH畾H¼H¼HHCH»yH»H8H^H»H»H8H^H»H¼H8H畉H¼H½H畇H畼H½H¾H畺HH¾H¾HHH¾HNHHHLH`HHH/HNHHrH»GH»IHPHR H»GH»IHPHR!H»GH»QHPH"H»OH»QHH#H»H»QHH<$H»H»H:H<%HºH»H:H甘&HºHºH甖H甘'Hº9HºH甖HIP$:H´qH´HHC9H´HµHH;7HµHµH0H28HµHµH9H06HµHµ_H0H]5Hµ]Hµ_H[H\4Hµ]HµH8H\Hµ~HµH9H]3HµH¶HH:2H¶H¶HH瘉H¶zH¶H  - -P$QHHHH狔YHHmHH2NHH(H HaZHHmH0HT[HHHRHMHHH_H狧PHHH狒H狔OHHH狒HIHH>H狝HJHHvHaHH猝`HHHIHRCHHHIH猯aHHHIH_HHHPHR^HHHPH猉@HoHqH猁H猃AHoHH猁H猯]HHH猇H猉BHHH猭H猯cHĆHĊHHdHĈHH HeHHHHifHHHaHi  ` 2 S :==tablertree_polygons_geom_nodertree_polygons_geom_nodelCREATE TABLE "rtree_polygons_geom_node"(nodeno INTEGER PRIMARY KEY,data) 9??!tablertree_polygons_geom_rowidrtree_polygons_geom_rowidkCREATE TABLE "rtree_polygons_geom_rowid"(rowid INTEGER PRIMARY KEY,nodeno)8331tablertree_polygons_geomrtree_polygons_geomCREATE VIRTUAL TABLE "rtree_polygons_geom" USING rtree(id, minx, maxx, miny, maxy)7Wtriggertrigger_delete_feature_count_polygonspolygonsCREATE TRIGGER "trigger_delete_feature_count_polygons" AFTER DELETE ON "polygons" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count - 1 WHERE lower(table_name) = lower('polygons'); END6Wtriggertrigger_insert_feature_count_polygonspolygonsCREATE TRIGGER "trigger_insert_feature_count_polygons" AFTER INSERT ON "polygons" BEGIN UPDATE gpkg_ogr_contents SET feature_count = feature_count + 1 WHERE lower(table_name) = lower('polygons'); END 5gtablepolygonspolygonsgCREATE TABLE "polygons" ( "fid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "geom" POLYGON, "ELEVATION" REAL)=497triggerrtree_legs_geom_deletelegsCREATE TRIGGER "rtree_legs_geom_delete" AFTER DELETE ON "legs" WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_legs_geom" WHERE id = OLD."fid"; END3;?triggerrtree_legs_geom_update4legsCREATE TRIGGER "rtree_legs_geom_update4" AFTER UPDATE ON "legs" WHEN OLD."fid" != NEW."fid" AND (NEW."geom" ISNULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_legs_geom" WHERE id IN (OLD."fid", NEW."fid"); END 2;Mtriggerrtree_legs_geom_update3legsCREATE TRIGGER "rtree_legs_geom_update3" AFTER UPDATE ON "legs" WHEN OLD."fid" != NEW."fid" AND (NEW."geom" NOTNULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_legs_geom" WHERE id = OLD."fid"; INSERT OR REPLACE INTO "rtree_legs_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END}1;5triggerrtree_legs_geom_update2legsCREATE TRIGGER "rtree_legs_geom_update2" AFTER UPDATE OF "geom" ON "legs" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" ISNULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_legs_geom" WHERE id = OLD."fid"; END^0;wtriggerrtree_legs_geom_update1legsCREATE TRIGGER "rtree_legs_geom_update1" AFTER UPDATE OF "geom" ON "legs" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" NOTNULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_legs_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END9/9/triggerrtree_legs_geom_insertlegsCREATE TRIGGER "rtree_legs_geom_insert" AFTER INSERT ON "legs" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_legs_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END.99%tablertree_legs_geom_parentrtree_legs_geom_parent[CREATE TABLE "rtree_legs_geom_parent"(nodeno INTEGER PRIMARY KEY,parentnode)y-55tablertree_legs_geom_nodertree_legs_geom_nodeZCREATE TABLE "rtree_legs_geom_node"(nodeno INTEGER PRIMARY KEY,data)ji&h 3f 2 e 1d0cJGPaʋ[A[A\{CAzRA(\v@v@[AQEA(\v@aʋ[A\{CA(\v@ی[AQAv@v|[AzRAv@[AQEA(\v@@v\(JGPaʋ[A $[Ano0AQEA(\v@Qv@ $[Aa1AQv@7 i[Ano0AQv@aʋ[A\{CA(\v@[AQEA(\v@ $[Aa1AQv@@vQJGP7 i[AUݟ[A~' Aa1Aq= ףv@Qv@Uݟ[AAq= ףv@\C;b[A~' Aq= ףv@7 i[Ano0AQv@ $[Aa1AQv@Uݟ[AAq= ףv@@vJGP\C;b[Aj8[[A3 AAq= ףv@(\v@j8[[A <A(\v@n)[A3 A(\v@\C;b[A~' Aq= ףv@Uݟ[AAq= ףv@j8[[A <A(\v@@vzGJGPn)[AHz[A=@A <A(\v@Qv@Hz[AAQv@P[A=@AQv@n)[A3 A(\v@j8[[A <A(\v@Hz[AAQv@@vRJGPP[Alf[AHzAAQv@Qv@lf[AME}AQv@p= [AHzAQv@P[A=@AQv@Hz[AAQv@lf[AME}AQv@@vQJ GP[A)V,y[A֭iAME}AQv@v@)V,y[A6^cAv@[A֭iAv@p= [AHzAQv@lf[AME}AQv@)V,y[A6^cAv@@vΏ\(ÁJ GP[Ap9%'[A0uA6^cAv@v@p9%'[ARtAv@A-[A0uAv@[A֭iAv@)V,y[A6^cAv@p9%'[ARtAv@@v́J GPA-[A3333[Ae|ARtAQv@v@3333[AQAQv@P[Ae|AQv@A-[A0uAv@p9%'[ARtAv@3333[AQAQv@@v\(J GPP[Ai[A3AQAQv@(\v@i[AA(\v@O7q[A3A(\v@P[Ae|AQv@3333[AQAQv@i[AA(\v@@v\)J GPO7q[Aqx+[A_\SlAA(\v@v@qx+[AnAv@,3C[A_\SlAv@O7q[A3A(\v@i[AA(\v@qx+[AnAv@@vzGJGP,3C[A{G[AVAnAv@Rw@{G[AQXARw@M[AVARw@,3C[A_\SlAv@qx+[AnAv@{G[AQXARw@@vp =JGPM[AQ[AGJAQXAv@Rw@Q[A(\LAv@.Ih[AGJAv@M[AVARw@{G[AQXARw@Q[A(\LAv@@vp =JGP.Ih[A ףp[A0[-A(\LAv@v@ ףp[A{G.Av@uN[A0[-Av@.Ih[AGJAv@Q[A(\LAv@ ףp[A{G.Av@@vfffffJGPuN[AR'r\AGA{G.Ap= v@v@R'r\AxAp= v@Q\AGAp= v@uN[A0[-Av@ ףp[A{G.Av@R'r\AxAp= v@@vJGPQ\A-\Ad?MAxAQv@p= v@-\A:MEAQv@2\Ad?MAQv@Q\AGAp= v@R'r\AxAp= v@-\A:MEAQv@@v߮zHJGP2\A>PEt\A:]:A:MEAgffffv@Qv@>PEt\AAgffffv@x \A:]:Agffffv@2\Ad?MAQv@-\A:MEAQv@>PEt\AAgffffv@@v\)JGPx \Am>ia'\AiAAgffffv@Qv@m>ia'\A(MȹAQv@e<<\AiAQv@x \A:]:Agffffv@>PEt\AAgffffv@m>ia'\A(MȹAQv@@v\(JGPe<<\AڋD\ANA(MȹAQv@> ףpv@ڋD\A3A> ףpv@4G=\ANA> ףpv@e<<\AiAQv@m>ia'\A(MȹAQv@ڋD\A3A> ףpv@@v\( 3f 2 e 1d0cJ&GP# ZAfZ6ZAC#A(\4AQsv@Qv@fZ6ZAI$AQv@# ZAC#AQv@pxZAiP2AQsv@(ZA(\4AQsv@fZ6ZAI$AQv@@v}Q녁J%GP# ZAo>[AջEhAI$AQv@Hzv@o>[A AHzv@|+ZAջEhAHzv@# ZAC#AQv@fZ6ZAI$AQv@o>[A AHzv@@vGzJ$GP|+ZA1[A dA AHzv@> ףpv@1[AL]XєA> ףpv@5J[A dA> ףpv@|+ZAջEhAHzv@o>[A AHzv@1[AL]XєA> ףpv@@vΏ\(ÁJ#GP5J[A}$[AuAL]XєAףp= v@> ףpv@}$[Aj2FJAףp= v@ *[AuAףp= v@5J[A dA> ףpv@1[AL]XєA> ףpv@}$[Aj2FJAףp= v@@v=p J"GP *[A}$[A>^(Aj2FJA(\¹v@ףp= v@'Y$[A_GA(\¹v@w>o[A>^(A(\¹v@ *[AuAףp= v@}$[Aj2FJAףp= v@'Y$[A_GA(\¹v@@vfffffJ!GPw>o[Aa;[ADA_GA(\¹v@zGv@a;[ArGAzGv@o[A>^(A(\¹v@'Y$[A_GA(\¹v@a;[ArGAzGv@@vQJ GP ףAq= A(\v@(\v@ʑGV[AkA(\v@ףp=T[A> ףA(\v@GN[Aq= A(\v@ ?P[AAA(\v@ʑGV[AkA(\v@@v֏\(ÁJGPףp=T[Aѷc[A?&AkAQv@(\v@ѷc[AAQv@ixX[A?&AQv@ףp=T[A> ףA(\v@ʑGV[AkA(\v@ѷc[AAQv@@vRJGPixX[A^f[AAA(\v@Qv@^f[Az A(\v@(e[AA(\v@ixX[A?&AQv@ѷc[AAQv@^f[Az A(\v@@v=p JGP(e[A(\l[As*Az AGzv@(\v@(\l[AHzAGzv@/k[As*AGzv@(e[AA(\v@^f[Az A(\v@(\l[AHzAGzv@@vģ =qJGP[kh[A`3n[A43IAHzAQv@Gzv@`3n[A(\էAQv@[kh[A43IAQv@/k[As*AGzv@(\l[AHzAGzv@`3n[A(\էAQv@@v́JGP[kh[Aз8z[A(\A(\էAQv@p= ׷v@з8z[A &Ap= ׷v@3333w[A(\Ap= ׷v@[kh[A43IAQv@`3n[A(\էAQv@з8z[A &Ap= ׷v@@vzHJGP3333w[A [A[hfA &Ap= ׷v@ ףp=v@ [ArjA ףp=v@#u\[A[hfA ףp=v@3333w[A(\Ap= ׷v@з8z[A &Ap= ׷v@ [ArjA ףp=v@@v =pׁJGP#u\[Aë[A[hfArjAv@ ףp=v@ë[ARĞiAv@[A%VfAv@#u\[A[hfA ףp=v@ [ArjA ףp=v@ë[ARĞiAv@@vJGP[Av|[AQARĞiAv@v@v|[AzRAv@ی[AQAv@[A%VfAv@ë[ARĞiAv@v|[AzRAv@@vG{ 3f  8 k 7j6iJ8GPl(\Alg@\AjwqAAp= v@Gzw@55\AjwqAp= v@l(\Aex}Ap= v@z58\AAGzw@lg@\Aq {AGzw@55\AjwqAp= v@@w(\J7GP*IS\A55\Aʗ^Aex}Ap= v@Gzw@Evw+\Aw^AGzw@*IS\Aʗ^AGzw@l(\Aex}Ap= v@55\AjwqAp= v@Evw+\Aw^AGzw@@v =pׁJ6GP*IS\AE.\AVA^Aw@Gzw@E.\A^Aw@(!\AVAw@*IS\Aʗ^AGzw@Evw+\Aw^AGzw@E.\A^Aw@@wRJ5GP(!\AT9\AF2A^Aw@(\ w@T9\Aڍ*9A(\ w@d5\AF2A(\ w@(!\AVAw@E.\A^Aw@T9\Aڍ*9A(\ w@@w\(J4GPd5\AG\AF2Aڍ*9ARw@(\ w@G\A]&7ARw@ E\A73ARw@d5\AF2A(\ w@T9\Aڍ*9A(\ w@G\A]&7ARw@@wRJ3GP E\ARg!S\APA]&7ARw@Qw@Rg!S\Ah AQw@^O\APAQw@ E\A73ARw@G\A]&7ARw@Rg!S\Ah AQw@@w Q녁J2GP^O\Aaxd\AAh Aq= ףw@Qw@axd\A!@Aq= ףw@ڇ9`\AAq= ףw@^O\APAQw@Rg!S\Ah AQw@axd\A!@Aq= ףw@@w zGJ1GPڇ9`\A7gk\A$IA!@Aq= ףw@Gzw@7gk\ActAGzw@{%h\A$IAGzw@ڇ9`\AAq= ףw@axd\A!@Aq= ףw@7gk\ActAGzw@@w\(J0GP{%h\Ap\A!.ActAGzw@Q w@u2El\A.AQ w@p\A!.AQ w@{%h\A$IAGzw@7gk\ActAGzw@u2El\A.AQ w@@w33333J/GPbf\Ap\A!.AzAQ w@> ףpw@bf\AzA> ףpw@%3g\AQ;A> ףpw@p\A!.AQ w@u2El\A.AQ w@bf\AzA> ףpw@@w\\)J.GPbf\A> ףl\AuWAzAp= {w@> ףpw@> ףl\A(\Ap= {w@-Cg\AuWAp= {w@%3g\AQ;A> ףpw@bf\AzA> ףpw@> ףl\A(\Ap= {w@@wQJ-GPlh`\Aޏv\A ףl\A(\Ap= {w@ޏv\A3[AGz`w@@wnzGJ,GPlh`\A͙g\A wnMA3[A\(Pw@Gz`w@͙g\Ai:2A\(Pw@]n\A wnMA\(Pw@lh`\ACMtriggerrtree_polygons_geom_update2polygonsCREATE TRIGGER "rtree_polygons_geom_update2" AFTER UPDATE OF "geom" ON "polygons" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" ISNULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_polygons_geom" WHERE id = OLD."fid"; ENDr=Ctriggerrtree_polygons_geom_update1polygonsCREATE TRIGGER "rtree_polygons_geom_update1" AFTER UPDATE OF "geom" ON "polygons" WHEN OLD."fid" = NEW."fid" AND (NEW."geom" NOTNULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_polygons_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDM<AGtriggerrtree_polygons_geom_insertpolygonsCREATE TRIGGER "rtree_polygons_geom_insert" AFTER INSERT ON "polygons" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_polygons_geom" VALUES (NEW."fid",ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"),ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END;AA-tablertree_polygons_geom_parentrtree_polygons_geom_parentmCREATE TABLE "rtree_polygons_geom_parent"(nodeno INTEGER PRIMARY KEY,parentnode)qgis3-survex-import-1.2/example/DowProv.svx0000664000175000017500000000451713614350061020465 0ustar wookeywookey; Dow Cave - Providence Pot system, including Dowbergill Passage ; Created 27/10/2015 by Patrick Warren (PBW) from an original by Steve Warren ; Surveyed 1982 (Dow Cave) -- 2015 (Dowbergill upstream of 800 yds chamber) ; Historically Providence Pot was classed as from the entrance to Stalagmite ; Corner, and the rest was classed as Dowbergill Passage (or Dowber Gill ; Passage), part of Dow Cave -- N. Brindle, CPC Journal 2(1), 4-9 (1955). ; The usage here 'Dowbergill Passage' follows Northern Caves vol 1 (1972-9). ; In terms of the survey data, Dowbergill Passage splits naturally at 800 yds ; chamber, where the WRPC re-survey ended in 2004. ; Magnetic declinations in individual files were originally calculated ; using the International Geomagnetic Reference Field (IGRF) model, ; with the online NOAA magnetic declination calculator, for the ; location (WGS84) 54.14929 N, 2.04008 W corresponding to SD 97480 ; 72608 (Dowbergill Bridge, just above Kettlewell). All these ; declinations are now commented out, as this method is deprecated in ; favour of using the *declination auto command below. However it has ; been verified that both methods generate the exact same reduced ; survey data. ; People involved (in alphabetical order): ; Steve Barwick, Howard Beck, Simon Beck, David Bradley, Andy Cole, ; Peter Lamb, Becka Lawson, Shawn McMinn, Dave Morris, Russel Myers, ; Dennis Round, Gareth Sewell (Sweeney), Carmen Smith, Patrick Warren, ; Steve Warren, Edward Whitaker, Peter Whitaker. ; Clubs involved (in alphabetical order): ; Craven Pothole Club (CPC) ; Red Rose Cave and Pothole Club (RRCPC) ; White Rose Pothole Club (WRPC) ; Input CRS *fixes are NGR references, relative to the SW corner of ; the Ordnance Survey SD grid square, ie SD 000 000. ; Output CRS is OSGB 1936 / British National Grid (EPSG:7405) *cs OSGB:SD *cs out EPSG:7405 ; *cs out EPSG:3042 ; WGS84 UTM zone 30N (includes zone 30U) ; Mag dec calculated for SD 97480 72608 alt 225m ; Dowbergill Bridge, just above Kettlewell *declination auto 97480 72608 225 *title DowProv *include DowCave *include Dowbergill1 *include Dowbergill2 *include ProvidencePot *equate DowCave.dow2.31 Dowbergill1.dgp1.1 *equate Dowbergill1.dgp5.16 Dowbergill2.dgp6.46 *equate Dowbergill2.dgp7.1 ProvidencePot.PPot6.15 *flags surface *include HagDyke ; surface feature -- building *flags not surface qgis3-survex-import-1.2/example/ppot6.svx0000664000175000017500000000132513614350061020127 0ustar wookeywookey;Title PPot6 ; Providence Pot, Dungeon to Stalagmite Corner ; 23/3/2010 -- PBW and SEW *date 2010.03.23 *begin PPot6 *export 1 15 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 23-03-2010 (2010.22192) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 2.82 *data normal from to tape clino compass 1 2 3.23 down - 2 3 1.10 0 65 3 4 1.74 down - 5 4 2.84 30 195 5 6 3.40 down - 7 6 1.33 0 177 7 8 9.45 -15 344 8 9 7.43 -11 274 9 10 9.30 -27 258 10 11 1.40 down - 11 12 3.57 -19 344 12 13 1.54 8 316 13 14 4.31 -10 300 15 14 1.96 -31 125 *end PPot6 qgis3-survex-import-1.2/example/rattle4.svx0000664000175000017500000000127713614350061020444 0ustar wookeywookey;100188 3MC M/S fourth part *date 1988.01.10 ;S11 Part 4 ;Line 78 ;Book 13.5 ;41 - 41a is Rattle Pitch down to main streamway *begin rattle4 *export 41a 47 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 10-01-1988 (1988.02459) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.27 *data normal from to tape compass clino 41 41a 7.00 0.00 -90.00 ; 41a is 78a of 310188 Line 80 Book 19/1 41 42 2.90 68.00 23.00 42 43 1.40 0.00 90.00 44 43 3.05 303.00 -39.00 44 45 3.27 112.50 14.00 46 45 5.80 242.00 0.00 46 47 1.50 0.00 90.00 ; 47 is b of 271287a *end rattle4 qgis3-survex-import-1.2/example/dgp2.svx0000664000175000017500000000242513614350061017715 0ustar wookeywookey; Title: Dowbergill Passage - end of traverses to rock window *date 2003.12.14 ; by Andy Cole, Steve Warren, Sweeney ;Locn:Dowber Gill Passage, Dow Cave end ;title dgp2.svx;team Insts Andy Cole ;team Notes Steve Warren ;team front tape and station finder Sweeney ;instrument Compass/Clino set SEW ; ====== stations refindable to link to other surveys: ====== ; from to tape compass clino ; remarks *begin dgp2 *export 1 *export 26 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 14-12-2003 (2003.95068) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.83 *data normal from to tape compass clino 1 2 2.50 0.00 90.00 2 3 1.10 158.00 0.00 3 4 4.20 158.00 -19.00 4 5 1.80 0.00 -90.00 5 6 4.90 153.00 0.00 6 7 6.65 165.00 0.00 7 8 5.50 160.00 0.00 8 9 5.60 164.00 0.00 9 10 6.60 154.00 0.00 10 11 3.60 173.00 0.00 11 12 4.90 178.00 0.00 12 13 16.90 155.00 0.00 13 14 9.00 167.00 0.00 14 15 3.00 156.00 0.00 15 16 6.80 168.00 0.00 16 17 4.70 168.00 0.00 17 18 6.60 153.00 0.00 18 19 9.40 163.00 0.00 19 20 1.80 180.00 0.00 20 21 2.45 151.00 0.00 21 22 10.70 170.00 0.00 22 23 5.80 157.00 15.00 23 24 4.40 158.00 -24.00 24 25 8.80 164.00 0.00 25 26 7.60 162.00 0.00 *end dgp2 qgis3-survex-import-1.2/example/dripstone.svx0000664000175000017500000000165013614350061021067 0ustar wookeywookey;310188 *date 1988.01.31 ; around 2nd M/Ch ; Stemple Rift Mkr, Triple Oxbow, Swimming Pool *begin dripstone *export 71 78a ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 31-01-1988 (1988.08197) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.27 *data normal from to tape compass clino 72 71 2.17 179.00 0.00 ; 71 is Depot Chamber Mkr 72 73 3.35 149.00 0.00 74 73 8.67 278.00 9.00 74 75 2.79 187.00 0.00 ; 74-75-76 is along narrow rift 76 75 11.54 265.00 0.00 76 77 3.58 121.00 0.00 78 77 5.22 263.00 0.00 78 79 3.22 78.00 0.00 78 78a 10.90 341.00 39.00 ; 78a is base of 7m pitch Rattle (100188.41a) 1 2 13.50 272.00 -19.00 ; 1 is corner of Miner's Platform 3 2 17.75 116.00 3.00 3 78 14.22 315.00 -4.00 ; 3 is left of Triple Oxbow S 78 11.05 359.00 -10.0 ; S is Swimming Pool *end dripstone qgis3-survex-import-1.2/example/digA.svx0000664000175000017500000000214313614350061017722 0ustar wookeywookey;190786a 2ChMkr to Crawl to Dig A *date 1986.07.19 ;1=2CM ;Line is L49 ;Survey S25 ;2nd Choke ;2nd Choke Mkr - Crawl - Dig A - Dig B - Wet Way - Albert Hall ;190786a is 2nd Choke Mkr (1) - Start of Crawl (down slot 7-8) - Dig A *begin digA *export 1 22 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 19-07-1986 (1986.54521) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.48 *data normal from to tape compass clino 1 2 3.70 175.0 20.5 2 3 5.20 114.0 48.0 3 4 5.00 254.0 7.0 4 5 4.40 191.0 -22.0 5 6 0.40 0.0 -90.0 6 7 2.60 169.0 0.0 7 8 2.40 0.0 -90.0 ; 7-8 down slot 8 9 5.20 202.0 0.0 9 10 4.00 156.0 0.0 10 11 2.80 97.0 0.0 11 12 0.50 0.0 90.0 12 13 3.60 84.0 0.0 13 14 1.00 0.0 90.0 14 15 0.50 0.0 90.0 15 16 1.90 121.0 10.0 16 17 1.50 31.0 0.0 ; 17 is centre of pole base riser first part of Dig A 17 18 2.40 55.0 32.0 18 19 1.80 312.0 53.0 19 20 3.10 104.0 0.0 20 21 3.5 0.0 90.0 21 22 3.00 0.0 5.0 ; 22 is top of Dig A = 7 of 280896 *end digA qgis3-survex-import-1.2/example/dgp6.svx0000664000175000017500000000314013614350061017714 0ustar wookeywookey; Dowbergill Passage -- Bridge Cavern to 800 yds Chamber *date 2015.10.03 ; Carmen Smith - instruments - distox ; Patrick Warren - notes *begin dgp6 *export 1 46 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 03-10-2015 (2015.75342) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 1.83 *data normal from to tape compass clino 1 2 4.10 295 -37 2 3 16.61 348 -10.3 3 4 10.62 341 6.3 4 5 4.60 346 29.0 5 6 3.85 348 -2.3 6 7 10.34 339 -32.5 7 8 5.34 344 -5.4 8 9 1.30 305 -5.8 9 10 6.58 349 2.4 10 11 10.61 347 3.2 11 12 2.92 237 -8 12 13 9.72 350 -5.7 13 14 4.76 003 -4 14 15 11.58 336 3.2 15 16 7.35 342 -1.7 ; 16 17 4.01 332 2 17 18 11.21 352 -3.3 18 19 18.92 345 -1.3 19 20 9.34 338 -1 20 21 15.92 350 1.8 21 22 8.40 327 1 22 23 6.07 349 -10.7 23 24 8.10 326 -1.8 24 25 11.58 353 -0.5 25 26 6.63 305 1.7 26 27 11.03 344 7.3 27 28 7.48 344 -16.6 28 29 3.57 005 -10.8 29 30 6.70 343 -2.2 30 31a 2.42 271 0 30 31 1.77 261 5.3 31 32 5.87 330 -1 32 33 4.88 334 -3.7 33 34 7.80 328 -5.3 34 35a 6.76 346 7.6 34 35 11.51 346 17.5 35 36 5.45 350 -42.7 36 37 4.67 345 -11.8 37 38 3.30 354 -4.9 38 39 4.20 337 10.4 39 40 1.88 322 -61.7 40 41 4.61 334 8.7 41 42 2.82 255 0.3 42 43 7.06 345 -4 43 44 6.11 336 5.2 44 45 6.32 340 5.4 45 46 3.72 126 25.4 *end dgp6 qgis3-survex-import-1.2/example/dgp5.svx0000664000175000017500000000157713614350061017727 0ustar wookeywookey; Title: Dowbergill Passage - roof level traverses above narrows to 800 yds chamber *date 2004.05.03 ;dgp5 *begin dgp5 *export 1 16 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 03-05-2004 (2004.33607) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.77 1 2 2.60 145.00 -29.00 2 2a 1.10 230.00 0.00 2a 3 6.55 153.00 -12.00 3 4 4.55 114.00 -14.00 4 5 13.00 164.00 2.00 5 6 4.50 162.00 29.00 6 7 9.80 166.00 2.00 7 7a 8.00 0.00 -90.00 7 8 1.05 0.00 90.00 8 9 4.20 170.00 -1.00 9 10 2.70 0.00 -90.00 10 11 6.60 168.00 23.00 11 11a 0.70 74.00 0.00 11a 12 5.65 164.00 -1.00 12 13 5.90 162.00 -4.00 13 14 4.50 170.00 -3.00 14 14a 1.00 70.00 0.00 14a 15 4.85 160.00 -19.00 15 16 3.80 163.00 -24.00 16 17 1.85 260.00 0.00 *end dgp5 qgis3-survex-import-1.2/example/dow3.svx0000664000175000017500000000267113614350061017740 0ustar wookeywookey; Title: main passage to second choke *date 1986.01.08 ; 080186 1 - 16 Dep Ch - Dry Casc & Dry Casc - 2nd Ch ; 080186.1 is 241285.16 is Dep Ch Mkr ; 080186.24 is 2nd Ch Mkr ; SS 24-17 is from 230186 ; 2nd Choke Mkr back to Dry cascade *begin dow3 *export 1 8 11 14 15 24 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 08-01-1986 (1986.01918) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.55 *data normal from to tape compass clino *flags duplicate ; (Main Passage) dripstone to miners platform; duplicates dripstone.svx 2 1 6.37 279.0 0.0 ; 1 is depot Chamber Mkr 2 3 3.96 95.0 0.0 3 4 2.52 173.0 0.0 5 4 17.07 269.0 -6.0 5 6 12.88 122.0 12.0 6 7 21.11 126.0 2.0 7 8 12.95 97.0 6.0 ; 8 is likely Miners platform (cf dripstone.svx) *flags not duplicate 8 9 14.94 173.0 1.0 9 10 15.09 137.0 6.0 10 11 7.01 151.0 12.0 *flags duplicate ; (Main Passage) to base of first waterfall 11 11a 20.70 150.0 0.0 *flags not duplicate 11 12 14.17 148.0 4.0 12 13 7.92 155.00 39.0 13 14 8.08 129.0 0.0 14 15 3.14 0.0 90.0 ; 15 is top of dry cascade 15 16 3.73 122.0 -1.0 ; 16 is block on floor above Dry Cascade 23 24 10.87 131.5 3.0 ; 24 is 2nd choke Mkr 23 22 2.03 0.0 -90.0 21 22 3.00 55.0 30.0 21 20 2.33 0.0 -90.0 19 20 3.96 94.0 0.0 18 19 11.01 124.0 12.0 17 18 15.24 151.0 0.0 16 17 2.13 151.0 0.00 ; 1 1a 50 100 0 ; 1a 1b 20 0 90 *end dow3 qgis3-survex-import-1.2/example/stemple2.svx0000664000175000017500000000230313614350061020607 0ustar wookeywookey;260186a *date 1986.01.26 ; is Survey line S9 ; is book 16/4 ; is Line 27 ; is Stemple Rift Mine Series SR M/S ;by SEW, SB (Simon Beck) ;260186a.2 is Mkr for SR M/S = 080186.8 ;To include in drawup ;100386 Liine 34 ;Stemple Rift Mine Risers ;Taking 260 at top of 2nd climb *begin stemple2 *export 2 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 26-01-1986 (1986.06849) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.55 *data normal from to tape compass clino *flags splay ; (3rd Miners Chamber) 1 2 2.23 61.0 18.0 1 1a 4.57 18.0 47.0 *flags not splay 2 3 7.77 0.0 90.0 4 3 8.08 275.0 -6.0 4 5 5.49 0.0 90.0 5 6 0.60 0.0 -90.0 7 6 9.65 82.0 -2.0 8 7 10.82 83.0 -8.0 9 5 2.99 253.0 -18.0 10 9 1.30 349.0 24.0 10 11 8.69 80.0 0.0 11 12 5.49 79.0 0.0 12 13 9.30 91.0 -6.0 13 14 1.07 0.0 90.0 14 15 12.95 88.0 0.0 16 15 2.00 350.0 0.0 15 17 3.00 350.0 0.0 ;A A1 6.00 0.00 30.00 ;A1 A2 2.50 180.00 0.00 ;B B1 6.70 0.00 90.00 ;C C1 8.50 0.00 90.00 ;C1 C2 5.00 0.00 90.00 ;D D1 6.00 0.00 90.00 ;D1 D2 5.00 270.00 0.00 ;D2 D3 6.00 0.00 90.00 *end stemple2 qgis3-survex-import-1.2/example/albert3.svx0000664000175000017500000000126213614350061020413 0ustar wookeywookey;250187 ALBERT Hall *date 1987.01.25 ;SEW DMorris ;Book 11/4 ;Line L55 ;Albert Hall Mkr back to wall is at 70 deg *begin albert3 *export 5 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 25-01-1987 (1987.06575) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.41 *data normal from to tape compass clino 2 1 3.00 72.0 0.0 ; 1 is stream end 2 3 6.0 240.0 0.0 ; 2-3 in stream through low duck 4 3 4.70 77.0 5.0 ; 4 in bottom of Albert Hall *flags duplicate ; (Albert Hall) tie in 5 4 4.30 140.0 -80.0 ; 5 is Albert Hall Mkr *flags not duplicate *end albert3 qgis3-survex-import-1.2/example/dow1.svx0000664000175000017500000000313413614350061017731 0ustar wookeywookey; Title: Dow Cave - main streamway to Gloop Loop *date 1982.02.07 ; by SEW (Steve Warren), EEW (Edward Whitaker), PL (Peter Lamb), PBW (Patrick Warren) ; is 1 - 15, Main Streamway Dow Ent Mkr to Gloop Loop Mkr ; includes 270682 15 - 27 ; includes 180982 First Inlet *begin dow1 *export 1 27 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 07-02-1982 (1982.10137) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 7.14 *data normal from to tape compass clino 1 2 15.26 123.50 -32.00 ;1 is Dow Cave Entrance Mkr 2 3 7.66 106.00 0.00 3 4 5.90 49.00 10.00 4 5 12.59 45.50 15.50 5 6 8.64 88.50 -10.00 6 7 8.70 148.50 3.00 7 8 12.20 107.50 0.00 8 9 1.88 0.00 -90.00 9 10 17.67 77.50 3.00 10 11 14.40 24.50 14.50 11 12 5.35 10.50 -25.50 12 13 23.80 109.50 1.50 13 14 16.45 23.00 2.00 14 13a 2.10 0.00 90.00 ;13a - c is First Inlet - low crawl (180982) 13a 13b 9.14 320.00 0.00 13b 13c 8.00 280.00 0.00 14 15 13.10 123.50 0.00 15 16 14.83 62.00 -8.00 16 17 10.67 84.00 -1.00 17 18 14.33 180.00 -3.00 ; 18-27 is from Gloop Loop Mkr ;along Main Stream to DGP Mkr ; which is (270682) 18 19 11.43 185.00 -1.00 19 20 17.98 93.00 0.00 20 21 14.02 85.00 0.00 21 22 22.40 119.00 -1.00 22 23 22.55 170.00 1.00 23 24 6.83 155.00 11.00 ; 24 - 24c is loop round Treacle Mine 24 24a 5.00 126.00 -5.00 24a 24b 3.20 166.00 47.00 24b 24c 5.79 270.00 -23.00 24 25 9.14 100.00 22.00 25 26 12.34 100.00 -9.00 26 27 14.17 103.00 -3.00 ; 27 is Mkr for Gloop Loop (see 010682a for high level thro Gloop Loop) *end dow1qgis3-survex-import-1.2/example/stemple1.svx0000664000175000017500000000127713614350061020617 0ustar wookeywookey;260687 Stemple Rift Inlet *date 1987.06.26 ;This is S10 Line 72 ;There is no Excel file ;1 is Stemple Rift Mkr = in stream and is Mkr for 2rd M/Ch ;11 is Sump *begin stemple1 *export 1 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 26-06-1987 (1987.48219) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.35 *data normal from to tape compass clino 1 2 5.90 88.0 27.0 3 2 3.70 285.0 0.0 3 4 1.00 0.0 -90.0 5 4 4.20 285.0 -15.0 6 5 3.50 248.0 -5.0 7 6 3.50 174.0 -23 7 8 1.30 0.0 -90.0 8 9 1.50 357.0 0.0 9 10 3.00 80.0 0.0 11 10 2.00 160.0 0.0 ; 11 is Sump *end stemple1 qgis3-survex-import-1.2/example/bridge.svx0000664000175000017500000000215313614350061020313 0ustar wookeywookey;090286a Bridge section *date 1986.02.09 ;SEW, Steve Barwick, Shawn McMinn, David Bradley ; 1 is pointed boulder in stream under Bridge looking back downstream to SS2 *begin bridge *export 1 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 09-02-1986 (1986.10685) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.54 *data normal from to tape compass clino *flags duplicate ; (Bridge Section) tie in to main passage 2 1 7.54 141.0 4.0 *flags not duplicate 2 3 9.45 166.0 50.0 3 4 5.03 143.0 2.0 4 5 5.94 239.0 52.0 ; 4 - 5 is up natural staircase to high level passage 5 6 9.20 173.0 7.0 6 7 5.05 104.0 10.0 *flags splay ; (Goliath formation) 7 Gol 5.00 5.0 0.0 *flags not splay 6 8 1.32 28.0 0.0 ; 8 is corner of miners platform 8 9 2.3 0.0 90.0 9 10 4.16 113.0 3.0 10 10a 1.30 0.0 90.0 10a 11 5.49 320.0 25.0 11 12 2.13 342.0 0.0 12 14 4.27 337.0 0.0 12 13 6.00 90.0 30.0 ; 12-13 is up through squeeze into small aven 14 14a 1 67.0 0.0 14a 14b 12 340.0 0.0 *end bridge qgis3-survex-import-1.2/example/roofgardens.svx0000664000175000017500000000162513614350061021373 0ustar wookeywookey;020488 Dig B out (PART THEREOF) *date 1988.04.02 ;Book 15/1 SEW AD ;Line is L83 ;SS7 is 2nd Choke Mkr ;Dig B Resurvey ;1 is at Dig B ;7-13 is into Roof gardens ;9 is wedged flake start of Roof Gardens = 2nd chocks *begin roofgardens *export 7 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 02-04-1988 (1988.25137) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.24 *data normal from to tape compass clino ;2 1 3.85 150.5 35.0 ;3 2 3.00 164.0 39.0 ;4 3 5.20 99.5 10.0 ;5 4 3.90 105.0 23.0 ;6 5 4.10 80.5 7.5 ;6 7 2.95 299.5 19.5 8 7 8.30 154.0 13.0 8 9 9.05 244.0 18.0 *flags splay ; (Roof Gardens) 8 8c 6.65 30.0 24.0 *flags not splay 10 9 9.25 121.0 10.0 10 11 5.20 0.0 -90.0 12 11 1.80 228.0 0.0 12 13 2.00 0.0 90.0 14 13 3.60 335.00 0.0 *end roofgardens qgis3-survex-import-1.2/example/rattle2.svx0000664000175000017500000000133713614350061020437 0ustar wookeywookey;271287b 3MC M/S third part *date 1987.12.27 ; S11 Part 3 ; Book 13.4 *begin rattle2 *export 34 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 27-12-1987 (1987.98630) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.28 *data normal from to tape compass clino 22 21 3.10 21.00 -16.00 22 23 4.20 0.00 -90.00 24 23 3.00 262.00 15.00 25 24 2.10 268.00 9.00 25 26 2.45 75.00 15.00 27 26 3.85 264.00 8.00 27 28 3.65 64.00 -3.00 29 28 3.10 281.00 -23.00 29 30 1.10 0.00 90.00 30 31 1.85 78.00 22.00 31 32 3.65 99.00 -21.00 33 32 2.90 323.00 -19.00 33 34 7.60 119.00 -30.00 *end rattle2 qgis3-survex-import-1.2/example/dgp3.svx0000664000175000017500000000222513614350061017714 0ustar wookeywookey; Title: Dowbergill Passage - rock window to narrows *date 2004.01.18 ;Locn:Dowber Gill Passage, Dow Cave end *begin dgp3 *export 1 22 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 18-01-2004 (2004.04645) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.82 *data normal from to tape compass clino 1 2 1.05 78.00 0.00 2 3 7.90 155.00 12.00 3 4 3.10 143.00 -8.00 4 5 15.90 154.00 0.00 5 5a 0.40 70.00 0.00 5a 6 8.70 160.00 -2.00 6 7 11.00 158.00 2.00 7 8 6.50 161.00 0.00 8 9 6.80 146.00 0.00 9 9a 0.50 250.00 0.00 9a 10 4.10 159.00 0.00 10 11 7.50 155.00 -1.00 11 12 7.50 161.00 -2.00 12 13 5.35 172.00 2.00 13 14 6.40 161.00 -3.00 14 15 5.35 158.00 1.00 15 16 6.60 162.00 -3.00 16 17 24.30 164.00 -2.00 17 18 15.20 162.00 0.00 18 19 7.55 162.00 3.00 19 20 10.15 162.00 3.00 20 21 8.10 171.00 -2.00 21 22 4.00 144.00 13.00 22 23 5.20 165.00 -6.00 23 24 2.95 157.00 5.00 24 25 5.70 173.00 -2.00 25 26 5.15 167.00 1.00 26 27 5.40 144.00 0.00 27 28 4.75 160.00 2.00 28 29 3.40 162.00 -1.00 29 30 3.40 162.00 2.00 30 31 4.00 154.00 7.00 *end dgp3 qgis3-survex-import-1.2/example/dgp1.svx0000664000175000017500000000207513614350061017715 0ustar wookeywookey; Title: Dowbergill Passage - Dow Cave to end of traverses *date 2003.10.04 ;Locn:Dowber Gill Passage, Dow Cave end *begin dgp1 *export 1 27 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 04-10-2003 (2003.75616) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 3.86 *data normal from to tape compass clino 1 2 2.7 127 -19 2 3 1.6 211 -2 3 4 6.45 155 2 4 5 10.8 166 0 5 5a 0.5 72 0 5a 6 22.75 162 1 6 7 27.1 162 0 7 8 17 166 -1 8 9 16.1 156 0 9 9a 0.5 254 0 9a 10 15.5 164 0 10 11 6.5 162 0 11 12 19.7 157 0 12 13 3.8 157 0 13 14 2.55 0 90 14 15 2 0 -90 15 16 3.3 148 0 16 17 4.45 168 0 17 18 6.6 166 0 18 19 3 168 0 19 20 8.3 167 0 20 21 15.3 165 0 21 22 2.2 144 0 22 23 5.3 164 0 23 24 3.1 161 0 24 25 7.6 163 0 25 26 11.6 172 0 26 27 9.6 166 0 27 27a 1.00 0.00 -90.00 27a 28 8.15 0.00 90.00 28 29 19.3 348 0 29 30 17.3 350 -1 30 31 17.6 344 -8 31 32 5.6 350 0 32 33 3.8 0 -90 33 34 8.65 347 14 34 35 2.35 0 90 35 36 15.8 328 0 36 12 7.05 0 -90 *end dgp1 qgis3-survex-import-1.2/example/roofchambers.svx0000664000175000017500000000215213614350061021530 0ustar wookeywookey;240587 Roof Chambers *date 1987.05.24 ;Line is L64 ;SEW, Steve Barwick ;Notebook is 2 *begin roofchambers *export 1 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 24-05-1987 (1987.39178) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.36 *data normal from to tape compass clino *flags duplicate ; (Roof Chambers) tie in to dig A 2 1 3.80 357.0 -23.0 ; 1=2nd ChMkr, 4m above stream 2 3 5.20 110.0 44.0 ; 2-3 is Greasy Slab as before 4 3 5.00 73.0 -4.0 ; 4 is tip of stal in chamber (as previously) 4 5 4.20 180.5 -17.0 ; 5 at start of Crawl *flags not duplicate *flags splay ; (Roof Chambers) 4 4A 2.80 113.0 0.0 ; 4a is tip of rock in roof above climb *flags not splay 6 5 1.55 73.0 -30.0 ; 5-6-7 goes off to right into Roof Chambers 6 7 3.15 180.0 19.0 ; 7 is side of broken stal RHW 7 8 3.00 141.0 27.0 ; 8 on floor centre of squeeze up 8 9 1.00 0.0 90.0 ; 9 is near much distorted 9 10 3.00 185.0 0.0 ; end of Roof Chambers w floor of broken rock and mud *end roofchambers qgis3-survex-import-1.2/example/cellar.svx0000664000175000017500000000137213614350061020323 0ustar wookeywookey;120887 Cellar *date 1987.08.12 ;SEW ;Book 11/6 ;Line is L74 *begin cellar *export 4 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 12-08-1987 (1987.61096) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) *calibrate declination 6.33 *data normal from to tape compass clino 2 1 3 284.5 10 2 3 3.4 0 -90 4 3 1.7 20 7 ; 4 is pointed rock centtre of Cellar *flags duplicate ; (Cellar) extra leg 4 5 3.2 124 -27 *flags not duplicate ;at 1m Hole 3 - 4 m deep down to stream ;at U 2m above 3 and 2m opp 3 is crawl ;thr to crawl at high level 11 1 5 254 6 ; 11 is Mkr for climb up from stream a b 2 280 0 b c 2.5 170 0 c d 3.3 270 0 11 d 2.1 10 -30 *end cellar qgis3-survex-import-1.2/example/rattle1.svx0000664000175000017500000000204013614350061020426 0ustar wookeywookey;020486 3MCh M/S (Rattle and Sploosh) first part *date 1986.04.02 ; S11 Part 1 ; Book 13.3 ; Line 43 *begin rattle1 *export 1a 8 15 ; autogenerated from Magnetic Model: IGRF12 (calculator version 0.5.0.7) ; using location 54.14929 N, -2.04008 E, date 02-04-1986 (1986.24932) ; (WGS84) 54.14929 N, 2.04008 W (Dowbergill Bridge, just above Kettlewell) ;*calibrate declination 6.52 *data normal from to tape compass clino 1 2 5.49 359.00 12.00 ; 1 is corner Miners Platform 2 3 5.94 83.00 16.00 3 4 5.79 343.00 16.50 ; 3 choked with deads but could continue 4 5 2.06 305.00 10.00 5 6 3.73 11.00 12.50 6 7 6.67 332.00 6.00 ; 6 on floor at base of aven 7 8 2.54 0.00 90.00 ; 7 at base of riser 8 9 4.11 72.00 12.00 ; 7-8 up riser 9 10 2.59 10.00 29.00 ; at 10 is riser with roof of choke boulders 10 11 2.36 127.00 30.00 11 12 1.37 0.00 90.00 ; near 12 is run in shaft 12 13 3.20 298.00 50.00 ; at 15 is shaft above water 13 14 5.18 251.00 8.00 14 15 7.01 297.00 14.00 1a 1 4.57 18.00 47.0 ; 1a is 8 of 080186 *end rattle1 qgis3-survex-import-1.2/cave_surveying_and_GIS.tex0000664000175000017500000005242413614350061021767 0ustar wookeywookey\documentclass[]{article} \usepackage{lmodern} \usepackage{amssymb,amsmath} \usepackage{color} \usepackage{fixltx2e} % provides \textsubscript % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} % use microtype if available \IfFileExists{microtype.sty}{% \usepackage{microtype} \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \usepackage[unicode=true]{hyperref} \hypersetup{colorlinks = true, linkcolor = blue, urlcolor = blue, citecolor = blue, anchorcolor = blue, pdfborder={0 0 0}, breaklinks=true} %\urlstyle{same} % don't use monospace font for urls \IfFileExists{parskip.sty}{% \usepackage{parskip} }{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt} } \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{0} % Redefines (sub)paragraphs to behave more like sections \ifx\paragraph\undefined\else \let\oldparagraph\paragraph \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} \fi \ifx\subparagraph\undefined\else \let\oldsubparagraph\subparagraph \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} \fi % set default figure placement to htbp \makeatletter \def\fps@figure{htbp} \makeatother \newcommand{\zdimension}{$z$-dimension} \newcommand{\latin}[1]{\emph{#1}} \newcommand{\ie}{\latin{i.\,e.}} \newcommand{\eg}{\latin{e.\,g.}} \newcommand{\etc}{\latin{etc}} \begin{document} \section{Notes on cave surveying and GIS} \subsection{Summary}\label{summary} The idea that reduced cave survey data should be easily readable into a Geographic Information System (GIS) platform such as \href{http://www.qgis.org/}{QGIS} is practically a no-brainer, as it can then be integrated with other geographical data such as maps, satellite imagery, digital elevation models, and the like. This is much closer to being achievable than one might think. Here's the contents of a typical \href{https://survex.com/}{survex} \verb}.3d} file as exposed by running \verb}dump3d}: \begin{itemize} \tightlist \item survey metadata: title, date, and co-ordinate reference system; \item strings of survey legs with metadata: names, flags (normal, duplicate, splay, surface); \item survey stations with metadata: names, flags (exported, entrance, fixed, surface) and passage cross-sections (LRUD data). \end{itemize} Now compare this to a typical \href{https://en.wikipedia.org/wiki/Shapefile}{ESRI shapefile}, or the \href{https://en.wikipedia.org/wiki/GeoPackage}{GeoPackage} data format from the \href{https://en.wikipedia.org/wiki/Open_Geospatial_Consortium}{Open Geospatial Consortium}, which are well known containers for GIS vector data. These formats specify: \begin{itemize} \tightlist \item a co-ordinate reference system, and possible other metadata; \item geometries comprising points, lines, polylines (line strings), and polygons, with or without \zdimension\ (elevation) data; \item geometry attributes consisting of records of various kinds that are user-configurable. \end{itemize} At this point you are supposed to slap yourself on the head and ask why on earth we haven't been using a GIS-compatible format for storing reduced survey data all along! It's certainly flexible enough to contain all the information normally included in a \verb}.3d} file. \subsection{Spatial Reference Systems}\label{spatial-reference-systems} In order for this to work smoothly, we first have to be on top of our \href{https://en.wikipedia.org/wiki/Spatial_reference_system}{spatial reference system (SRS)} in general GIS parlance, or co-ordinate reference system (CRS) in QGIS language. The following notes hopefully contain enough of the truth to be useful. Something closer to the truth can be found in \href{https://www.ordnancesurvey.co.uk/docs/support/guide-coordinate-systems-great-britain.pdf}{{\it A guide to coordinate systems in Great Britain}} by the Ordnance Survey (OS). An SRS usually comprises: \begin{itemize} \item a \href{https://en.wikipedia.org/wiki/Geodetic_datum}{geodetic datum} or Terrestrial Reference System, which is usually an ellipsoid which specifies the overall shape of the earth's surface: \href{https://en.wikipedia.org/wiki/World_Geodetic_System}{WGS84} used in GPS, and \href{https://en.wikipedia.org/wiki/Ordnance_Survey_National_Grid}{OSGB36} used by the Ordnance Survey in the UK are two examples; \item a map projection which is nearly always a \href{https://en.wikipedia.org/wiki/Transverse_Mercator_projection}{Transverse Mercator} projection, such as the \href{https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system}{Universal Transverse Mercator (UTM)} system used in GPS: the map projection tries to flatten \emph{locally} the curved surface of the earth (there is always some compromise involved here) and a given geodetic datum may have more than one map projection depending which part of the Earth's surface one is interested in (UTM has 60 zones for instance, and all karst in mainland Britain lies in UTM zone 30N); \item a co-ordinate system (typically metric) defined on top of the map projection, usually specifying a `false origin' so that co-ordinates are always positive. \end{itemize} Given the geodetic datum one can always work with latitudes and longitudes, but these aren't terribly convenient for cave survey data crunching. Also beware that the same point on the earth's surface may have a different latitude and longitude according to the choice of datum: this is known as a datum shift, and a well-known example is the \href{https://en.wikipedia.org/wiki/Ordnance_Survey_National_Grid\#Datum_shift_between_OSGB_36_and_WGS_84}{datum shift between WGS84 and OSGB36} that nowadays only shows up in \href{http://www.natureonthemap.naturalengland.org.uk/MagicMap.aspx}{Magic Map}. WGS84 is pretty much universally used nowadays on the internet, for example Google's \href{https://developers.google.com/kml/}{Keyhole Markup Language (KML)} only supports WGS84 latitude and longitude, to upload to \href{https://en.wikipedia.org/wiki/Google_Earth}{Google Earth}. Also most GPS devices report latitude and longitude for WGS84, though more often than not you won't see this directly but rather get metric UTM co-ordinates, or metric British National Grid co-ordinates in the UK. To further add to the confusion, latitude and longitude can be reported in decimal degrees; or degrees, minutes, and seconds (or even degrees and decimal minutes). For example the entrance to Dow Cave is at NGR SD\,983{\small78}\,743{\small00}, which translates to (WGS84) $54^\circ\,9'\,52.2''$\,N $2^\circ\,1'\,34.8''$\,W where one decimal place in the seconds corresponds to approximately 3\,m on the ground, or (WGS84) $54.16450^\circ$\,N $2.02634^\circ$\,W where five decimal places corresponds approximately to 1\,m on the ground, or (WGS84) 30U 6\,002\,262\enskip563\,570 for UTM. Online converters between British National Grid references and WGS84 latitudes and logitudes can be found on the internet by searching for `OSGB36 to WGS84 converter'. To check things, the WGS84 latitude and longitude in decimal degrees can be copied and pasted into Google maps for example, or for that matter directly into the Google search engine. Note there is a confusing difference between the \href{https://en.wikipedia.org/wiki/Web_Mercator}{Web Mercator} often used for online maps, and the standard conformal Mercator projection. For this reason the US DoD has declared the Web Mercator projection `to be unacceptable for any official use', which is a good enough reason for me to avoid where possible. In the UK, Ordnance Survey (OS) \href{https://en.wikipedia.org/wiki/Ordnance_Survey_National_Grid}{British National Grid} co-ordinates provide a metric SRS which is convenient for cave survey data. Typically one fixes cave entrances using the numeric part of the national grid reference (NGR). The NGR can be specified in two ways. The most convenient way is to use the OS grid letter system in which a pair of letters specifies a $100\,\mathrm{km}\times100\,\mathrm{km}$ square. Then, within that, a 10-figure national grid reference (NGR) specifies a location to within a square metre. This system (two letters plus 10 figures) is what is usually encountered when using a GPS device set to the British National Grid. Many datasets in the Cave Registry have entrance fixes specified as 10-fig NGRs, without the grid letters which are assumed known. Alternatively, and more commonly in GIS, one can use an all-numeric 12-figure NGR in which the leading figures signal the $100\,\mathrm{km}\times100\,\mathrm{km}$ square. For example in the all-numeric scheme the entrance to Dow Cave is at NGR\,{\small3}983{\small78}\,{\small4}743{\small00}. In the letter-based system the co-ordinates are often truncated to 8-fig or 6-fig NGRs, to reflect the accuracy of the GPS device for instance (thus 8-fig NGRs are used in the new Northern Caves). In case you forgot your school geography lessons, recall that the correct way to truncate an NGR is to \emph{drop} the least significant figures, not to round to the nearest 10 or 100. This is because an 8-fig (or 6-fig) NGR actually specifies a $10\,\mathrm{m}\times10\,\mathrm{m}$ (or $100\,\mathrm{m}\times100\,\mathrm{m}$) \emph{square} and not an approximate position as such. Thus the 6-fig NGR for the Dow Cave entrance is NGR SD\,983\,743. To check NGRs in the UK, one can use the `Where am I?' tool in the \href{http://www.natureonthemap.naturalengland.org.uk/MagicMap.aspx}{Magic Map} application. Note that unless explicitly set to use WGS84, Magic Map reports OSGB36 latitude and longitude, which as mentioned is offset from WGS84 by a datum shift of up to 50--100\,m. Beware copying and pasting these OSGB36 latitudes and longitudes into Google Maps! Elsewhere in the world, or for that matter in the UK as well, the UTM system offers a convenient metric SRS for embedding cave survey data. Typically one fixes the entrance co-ordinates as the numeric part of the UTM position, making a note of the UTM grid zone. Online converters from WGS84 latitude and longitude to UTM or back are easily found (thus, for example, the Dow Cave entrance above). Perhaps it's restating the obvious but if you accidentally paste OSGB36 latitudes and longitudes into a UTM converter, you will likely be out by 50--100\,m. \subsection{Georeferencing cave survey data}\label{georeferencing-cave-survey-data} Back to cave surveying: for most surveys the earth's surface can be regarded as essentially flat, so one is working in a 3d world with eastings, northings, and altitudes, with the origin of the co-ordinate system chosen at one's convenience. Perhaps for synoptic maps of very large karst areas, one might be worried about the curvature of the earth's surface, but for the most part assuming the world is flat should introduce negligible errors, at least in comparison to the errors that typically creep into cave survey projects. As long as this local cave co-ordinate system can be tied into one of the known geodetic SRS schemes (\ie\ \href{https://en.wikipedia.org/wiki/Georeferencing}{\emph{georeferenced}}), then any feature in the cave will have a known position in GIS terms, and can thus be tied into any other georeferenced data such as maps, satellite imagery, digital elevation models, \etc. Given that most cave surveying is done in metres, it is obviously convenient to tie into an SRS which uses metric co-ordinates, such as UTM or British National Grid. Note that once you've tied the dataset into a recognised SRS, any GIS platform worth its salt will be able to re-project into a different SRS, and will be able to display and combine information from different sources irrespective of the SRS. The easiest way to georeference cave survey data, with a modern survex distribution, is to \verb}*fix} cave entrances with appropriate co-ordinates and make judicious use of the \verb}*cs} commands (for co-ordinate system): use a plain \verb}*cs} command to specify the input SRS that the entrance co-ordinates are given in, and a \verb}*cs out} command to specify what the output SRS should be. In the UK for instance one can use this to convert between the OS grid letter system and the all-numeric scheme. The cave survey data used in the examples below is included in the repository under the \verb}DowProv} directory. It is for the \href{http://www.mudinmyhair.co.uk/}{Dow Cave - Providence Pot system} (Great Whernside, Wharfedale, UK), and is essentially a snapshot of the data held in the \href{http://cave-registry.org.uk/}{Cave Registry Data Archive}. Note that the \verb}.svx} files have \href{https://en.wikipedia.org/wiki/Newline}{unix-style line endings} so on Windows you might have to use something like \href{https://notepad-plus-plus.org/}{Notepad{\small++}} to look at them. The processed data is \verb}DowProv.3d}, generated using survex 1.2.32. Back to georeferencing, the cave-specific file \verb}DowCave.svx} (for example) contains \begin{verbatim} *begin DowCave *export entrance ... *entrance entrance *fix entrance 98378 74300 334 *equate entrance dow1.1 ... \end{verbatim} and the master file \verb}DowProv.svx} contains \begin{verbatim} *cs OSGB:SD *cs out EPSG:7405 ... *begin DowProv *include DowCave ... \end{verbatim} (obviously this is only one of many possible ways to add the metadata into the survex files). Thus the file \verb}DowCave.svx} contains a \verb}*fix} which specifies the entrance location as a 10-fig NGR SD\,98378\,74300, without the SD part. The easting and northing here (and elevation \href{https://en.wikipedia.org/wiki/Ordnance_datum}{ODN}) were obtained by field work. Then the file \verb}DowProv.svx} specifies input SRS is the SD square, and asks that the reduced data should be exported using the all-numeric British National Grid scheme, here codified with \href{http://spatialreference.org/}{European Petroleum Survey Group (EPSG)} code \verb+EPSG:7405+. Using EPSG numbers avoids potential misunderstanding when importing into a GIS platform, for example in QGIS one can find the exact exported SRS easily enough by searching on the EPSG number. If you check the processed survey in \verb}aven}, or run \verb}3dtopos} on the \verb}.3d} file, the processed entrance co-ordinates are now indeed \begin{verbatim} (398378.00, 474300.00, 334.00 ) dowprov.dowcave.entrance \end{verbatim} Whilst this may seem like a crazily over-the-top way to add a `3' and `4' to the entrance co-ordinates, it is actually very simple to implement: one only needs to add two lines (the \verb}*cs} and \verb}*cs out} commands) to the survex file. The benefit is that it is robust, clean, and unambiguous. Moreover, the output SRS is included as metadata in the \verb}.3d} file; thus with \verb}dump3d} one sees \begin{verbatim} CS +init=epsg:7405 +no_defs \end{verbatim} (this is in fact a \href{http://proj4.org/}{PROJ.4} string which species the map projection, and can be directly pushed to a GIS application). As a slightly less trivial example, one can ask for the reduced survey data to be re-projected as UTM co-ordinates. This can be done almost totally trivially by replacing the previous \verb}*cs out} command with \verb}*cs out EPSG:3042} which specifies the output SRS is (WGS84) UTM zone 30N (this includes zone 30U). If we now reduce the data with \verb}cavern} and check with \verb}3dtopos} we find the Dow Cave entrance has magically moved to \begin{verbatim} (563570.22, 6002262.20, 384.57 ) dowprov.dowcave.entrance \end{verbatim} and the exported SRS from \verb}dump3d} is \begin{verbatim} CS +init=epsg:3042 +no_defs \end{verbatim} As expected, the entrance location in UTM is the same as obtained by converting the original NGR first to WGS84 latitude and longitude, then to UTM, using the online converters. Note that in re-projecting to UTM, we also get a vertical datum shift. For another example, the CUCC Austria data set which comes as sample data with the survex distribution can be georeferenced by adding the following to the top of the \verb}all.svx} file: \begin{verbatim} *cs custom "+proj=tmerc +lat_0=0 +lon_0=13d20 +k=1 +x_0=0 +y_0=-5200000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs" *cs out EPSG:31255 \end{verbatim} The first 4 lines are all one line in the real file, and this specifies the custom SRS in which the co-ordinates of the surface fixed points in the Austria data set are specified. The second line determines the output SRS. This doesn't really matter too much as long as the SRS can be recognised by the GIS platform: this example uses the MGI / Austria Gauss-Kr\"uger (GK) Central SRS (\verb+EPSG:31255+), where the \emph{only} difference compared to custom SRS is in the \verb:+y_0: false origin. Another output SRS could be \verb}EPSG:3045} which is (WGS84) UTM zone 33N. I've gone into these examples in some detail as the survex documentation on the \verb}*cs} command is rather spartan. As a further benefit, providing the survex data files include correctly formatted \verb}*date} commands (as the Dow-Providence dataset does), the \verb}*cs} commands make survex aware of the geodetic SRS and magnetic declination corrections can be automatically added. This is another reason one might want to `do things properly' with \verb}*cs} commands. The \verb}DowProv.svx} master file thus also contains the lines (the first two are just comments) \begin{verbatim} ; Mag dec calculated for SD 97480 72608 alt 225m ; Dowbergill Bridge, just above Kettlewell *declination auto 97480 72608 225 \end{verbatim} This correctly applies the magnetic declination using the \href{https://en.wikipedia.org/wiki/International_Geomagnetic_Reference_Field}{International Geomagnetic Reference Field (IGRF)} model, calculated at the specified location in the input SRS, and applied to \emph{all} the included survey files, in this case taking into account the range of dates which spans some 30 years. \subsection{GIS import methods}\label{gis-import-methods} \subsubsection{Using DXF}\label{quick-and-dirty-two-dimensional-flat-import} Once the dataset has been georeferenced as just described, a DXF file can be generated using the survex \verb}cad3d} tool, or exporting as such from \verb}aven}. This DXF file can then be directly imported into QGIS. At present this route does not neatly capture \zdimension\ (elevation) data. \subsubsection{DXF conversion using GDAL}\label{three-dimensional-import} This route requires command-line access to the \href{http://www.gdal.org/ogr_utilities.html}{GDAL utilities}. From the DXF file, the centreline can be extracted by running \begin{verbatim} ogr2ogr -f "ESRI Shapefile" DowProv_centreline.shp DowProv.dxf \ -where "Layer='CentreLine'" -a_srs EPSG:7405 \end{verbatim} We take the opportunity here to add an SRS to match that used in the georeferenced survey data. The resulting shapefile can then be imported in QGIS, and this route \emph{does} preserve \zdimension\ (elevation) data. Similarly the stations with labels (and elevations) can be extracted by running \begin{verbatim} ogr2ogr -f "ESRI Shapefile" DowProv_stations.shp DowProv.dxf \ -where "Layer='Labels'" -a_srs EPSG:7405 \end{verbatim} \subsubsection{QGIS import plugins (preferred route)}\label{import-using-qgis-plugin} Features of these plugins include: \begin{itemize} \tightlist \item no dependencies, natively reads binary .3d files ; \item import stations and legs with full metadata ; \item features carry \zdimension\ (elevation) data ; \item create passage walls, cross-sections, and polygons from LRUD data ; \item CRS can be set from a PROJ.4 string embedded in \verb}.3d} file ; \item save results into a GeoPackage (\verb+.gpkg+) shapefile. \end{itemize} More details and installation instructions can be found in the \href{https://github.com/patrickbwarren/qgis-survex-import}{QGIS2} and \href{https://github.com/patrickbwarren/qgis3-survex-import}{QGIS3} plugin repositories. Additional scripts can be found in the \verb+extra+ directories. \subsection{Georeferencing images, maps, and old surveys}\label{georeferencing-images-maps-and-old-surveys} Georeferencing here refers to assigning a co-ordinate system to an image or map, or a scanned hard copy of a survey. The actual steps require identifying so-called Ground Control Points (GCPs), which are identifiable features on the map for which actual co-ordinates are known. One way to do this is to use the \href{https://docs.qgis.org/2.8/en/docs/user_manual/plugins/plugins_georeferencer.html}{GDAL Georeferencer} plugin in QGIS. Georeferencing surveys may be easier if there is more than one entrance and the positions are known, or there is already a surface grid. If there is only one entrance then tracing a centerline in Inkscape and using the survex output tool as described \href{https://github.com/patrickbwarren/inkscape-survex-export}{here} may help. \subsubsection{Copying}\label{copying} These notes are licensed under a \href{https://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0)}. These notes are distributed `as is', in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of FITNESS FOR A PARTICULAR PURPOSE. \subsubsection{Copyright}\label{copyright} Copyright \copyright\ (2017--19) Patrick B Warren. \end{document} qgis3-survex-import-1.2/styles/0000775000175000017500000000000013614350061016204 5ustar wookeywookeyqgis3-survex-import-1.2/styles/colour_lines_by_elevation_using_zminzmax.qml0000664000175000017500000004461013614350061027323 0ustar wookeywookey zmax zmin 400 320 0 0 0 Layer . . 0 . 0 generatedlayout 1 qgis3-survex-import-1.2/styles/README.md0000664000175000017500000000047513614350061017471 0ustar wookeywookey# QGIS color style files This directory contains QGIS style files for coloring imported cave survey data (points, lines, polygons) by (mean) elevation, either using specified ranges or interpolating between the `zmin` and `zmax` variables. See discussion in the [`README`](../README.md) in the top level directory. qgis3-survex-import-1.2/styles/colour_lines_by_elevation_using_ranges.qml0000664000175000017500000007003513614350061026725 0ustar wookeywookey 0 0 0 Layer . . 0 . 0 generatedlayout 1 qgis3-survex-import-1.2/styles/colour_points_by_elevation_using_ranges.qml0000664000175000017500000006727513614350061027143 0ustar wookeywookey 0 0 0 NAME 0 0 generatedlayout 0 qgis3-survex-import-1.2/styles/colour_polygons_by_elevation_using_ranges.qml0000664000175000017500000005374013614350061027471 0ustar wookeywookey "ELEVATION" 0 0 0 ELEVATION 0 0 generatedlayout 2 qgis3-survex-import-1.2/styles/colour_polygons_by_elevation_using_zminzmax.qml0000664000175000017500000003411113614350061030056 0ustar wookeywookey "ELEVATION" zmax zmin 400 320 0 0 0 ELEVATION 0 0 generatedlayout 2 qgis3-survex-import-1.2/styles/colour_points_by_elevation_using_zminzmax.qml0000664000175000017500000004136513614350061027531 0ustar wookeywookey zmax zmin 400 320 0 0 0 NAME 0 0 generatedlayout 0 qgis3-survex-import-1.2/README.md0000664000175000017500000004300713614350061016144 0ustar wookeywookey# QGIS3 plugin to import survex .3d files **Current version 1.2** ### Changelog v1.2 - fixed CRS import methods v1.1 - minor updates, tagged for packaging v1.0 - migrated and updated from QGIS 2.18 plugin ***For QGIS 2.18 visit https://github.com/patrickbwarren/qgis-survex-import*** ### Features * no dependencies, natively reads binary (v8 format) survex .3d files; * import stations and legs with full metadata; * create passage walls, cross-sections, and polygons from LRUD data; * all features have _z_ dimensions, and (mean) elevations to assist downstream workflow; * the co-ordinate reference system (CRS) can be imported from the .3d file (*); * results can be saved immediately as a GeoPackage file. (*) with the appropriate `*cs` commands in the .svx source files (see below). ### Installation To install the plugin: * clone or download this repository; * copy `survex_import` to `python/plugins/` in the current active profile, the location of which can be found from within QGIS3 by going to 'Settings → User Profiles → Open Active Profile Folder' (\*); * enable the plugin in QGIS3 by going to 'Plugins → Manage and Install Plugins...'; make sure the box next to 'Import .3d file' is checked, in the 'Installed' tab. (\*) Alternatively if you have `pb_tool` you can run `pb_tool deploy` from _within_ the `survex_import` directory. When installed, a menu item 'Import .3d file' should appear on the 'Vector' drop-down menu in the main QGIS3 window, and (if enabled) a .3d icon in a toolbar. #### Debian users may be able to install from a packaged version https://packages.debian.org/sid/qgis3-survex-import ### Usage Selecting 'Import .3d file' (or clicking on the .3d icon) brings up a window for the user to select a .3d file with a number of options: * Import legs, with options to include splay, duplicate, and surface legs; * Import stations, with the option to include surface stations (\*); * Import passage data computed from LRUDs, with the option to use clino weights (see below): - as polygons, with an option to include mean up / down data; - as walls; - as cross sections; - as traverses, showing the centrelines used for above; * Optionally, set the co-ordinate reference system (CRS) from the .3d file or inherit from the QGIS3 project; * Keep features from previous import(s) (optional); * Select a GeoPackage (.gpkg) file to save results (optional). (\*) In rare cases a station may be flagged both surface and underground, in which case it is imported even if the 'surface' option is left unchecked. On clicking OK, vector layers are created to contain the imported features as desired. Legs, walls, cross sections, and traverses are imported as line strings in separate vector layers for convenience. All created layers are saved to the GeoPackage file if requested (any existing content is overwritten). A CRS selector dialog box will appear, if neither of the CRS selector options are checked, or if CRS from .3d file is selected but there is no CRS in the .3d file. If 'keep features' is selected, then previously imported features are not discarded, and the newly-created layers will contain both the previously imported features plus any new features imported from the designated .3d file. This choice allows processed survey data sets to be combined from multiple sources. Note that cumulative imports do not result in features being overwritten, even if they happen to share the same name, since all features are assigned a unique ID. #### Therion users The latest version (v1.2) fixes a bug that introduced a mismatch between the CRS and the proj4 string in the .3d file. Import of .3d files generated by Therion should now work. #### Imported attributes All layers are created with an ELEVATION attribute, for convenience. For stations this is the just the _z_ dimension. For all other features it is the mean elevation. For station and leg layers, the following additional attribute fields that are created: * stations: NAME, and flags SURFACE, UNDERGROUND, ENTRANCE, EXPORTED, FIXED, ANON * legs: NAME, STYLE, DATE1, DATE2, NLEGS (\*), LENGTH (\*), ERROR (\*), ERROR_HORIZ (\*), ERROR_VERT (\*), and flags SURFACE, DUPLICATE, SPLAY (\*) These fields correspond to the error data reported in the .3d file, which is only generated (by survex) if loop closures are present. The flags are integer fields set to 0 or 1. The STYLE field for legs is one of NORMAL, DIVING, CARTESIAN, CYLPOLAR, or NOSURVEY. The DATE fields are either the same, or represent a date range, in the standard QGIS3 format YYYY-MM-DD. If up / down data for passage polygons is requested, then the polygons have MEAN_UP and MEAN_DOWN attributes in addition to ELEVATION. These are computed from the LRUD data for the two stations at either end of the leg. They can be used in 3d work (see end). #### Passage walls Passage walls (as line strings), polygons, and cross sections (as lines) are computed from the left and right measurements in the LRUD data in the same way that the `aven` viewer in survex displays passage 'tubes' (well, near enough...). The direction of travel (bearing) is worked out, and used to compute the positions of points on the left and right hand passage walls. These wall points are then assembled into the desired features (walls, polygons, cross sections). The direction of travel is inferred from the directions of the two legs on either side of the given station (with special treatment for stations at the start and end of a traverse). In averaging these, either the legs can be weighted equally (except true plumbs which break the sequence), or the option is given to weight legs by the cosine of the inclination (computed from the processed data, not the actual clino reading). The former is the default, and the latter corresponds to checking the 'use clino weights' box in the import dialog. This alternative option downplays the significance of the occasional steeply inclined leg in an otherwise horizontal passage. One might want to do this for the following reason. In the 'good old days' steeply inclined legs were usually avoided as they are difficult to sight a compass along, and instead good practice was to keep legs mostly horizontal and add in the occasional plumbed leg when dealing with rough ground. Also pitches were nearly always plumbed. This meant that inferring passage direction as a simple average, ignoring plumbed legs, was most likely correct. For modern surveying with digital instruments, this is no longer the case: there is no loss of accuracy for steeply inclined legs, and shining a laser down a pitch at an off-vertical angle is no problem. Therefore, the 'use clino weights' option has been invented to give such steeply included legs less weight when inferring the passage direction. Note that in a steeply inclined _passage_, all legs are likely roughly equally inclined, and therefore roughly equally weighted, so using clino weights shouldn't affect the inferred direction of travel in that situation. _TL;DR: if in doubt try first with the 'use clino weights' option selected._ Note that passage wall data is _inferred_ and any resemblance to reality may be pure coincidence: if in doubt, use splays! #### Co-ordinate reference system (CRS) To be integrated with other sources of geographical information such as maps, GPS tracks, and so on, an imported survey should be _georeferenced_. This means that the _spatial reference system_ (SRS) should be specified; in QGIS parlance this is referred to as a _co-ordinate reference system_ (CRS). The easiest way to do this is to use survex `*cs` and `*cs out` commands in the .svx file to set an output CRS in the .3d file, then select 'CRS from .3d file' in the import dialog. For example `DowProv.svx` contains ``` *cs OSGB:SD *cs out EPSG:7405 ``` This specifies that the entrance `*fix`'s are in the Ordnance Survey (OS) 100km x 100km SD grid square, and that the output should use the all-numeric British National Grid ([EPSG:7405](https://spatialreference.org/ref/epsg/osgb36-british-national-grid-odn-height/)). Using `dump3d` to inspect `DowProv.3d` one finds the line ``` CS +init=epsg:7405 +no_defs ``` This is a [proj4](https://en.wikipedia.org/wiki/PROJ) string embedded in the .3d file. The input filter uses this to identify the CRS: if the string contains an [EPSG](https://en.wikipedia.org/wiki/EPSG_Geodetic_Parameter_Dataset) number then that determines the CRS; otherwise a CRS is created using the proj4 string directly. If the .3d file does not contain a CS proj4 string then the input filter fall backs onto a CRS selector dialog. In some cases it may be helpful to create beforehand a user-defined CRS to select in the import dialog. For example, if the `*cs` commands are omitted from `DowProv.svx`, the resulting .3d file lacks a proj4 string and all co-ordinates are relative to the OS SD grid square. This .3d file can nevertheless still be imported into QGIS3 by first creating a custom CRS for the SD grid square, then specifying this custom CRS in the import dialog (or inheriting from the project CRS if that is set appropriately). For the OS SD grid square, the requisite custom CRS can be created from the following proj4 string ``` +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=100000 +y_0=-500000 +ellps=airy +towgs84=375,-111,431,0,0,0,0 +units=m +vunits=m +no_defs ``` (all on one line). This is identical to the proj4 string for the British National Grid except that the `+x_0` and `+y_0` entries have been shifted to a new false origin for the SD grid square. Another example is the Austrian Loser plateau data that accompanies the survex distribution as sample data. Many of the cave entrances are recorded using a truncated form of the MGI / Gauss-Krüger (GK) Central Austria SRS (the non-truncated form is [EPSG:31255](https://spatialreference.org/ref/epsg/mgi-austria-gk-central/)). This truncated SRS corresponds to a proj4 string ``` +proj=tmerc +lat_0=0 +lon_0=13d20 +k=1 +x_0=0 +y_0=-5200000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs ``` (again this should be all on one line). This is derived from the proj4 string for [EPSG:31255](https://spatialreference.org/ref/epsg/mgi-austria-gk-central/) by changing the `+y_0` entry. For more details and examples of survex `*cs` commands see [cave_surveying_and_gis.pdf](cave_surveying_and_gis.pdf) in the present repository. In-depth explanations of co-ordinate reference systems can be found in the Ordnance Survey booklet entitled _A Guide to Coordinate Systems in Great Britain_ which can be found on the Ordnance Survey website. _TL;DR: for optimal use, specify the CRS using `*cs out` with an EPSG number._ Also, choose a *metric* co-ordinate system, such as the British National Grid ([EPSG:7405](https://spatialreference.org/ref/epsg/osgb36-british-national-grid-odn-height/)) or a WGS 84 UTM zone ([EPSG:32601](https://spatialreference.org/ref/epsg/32601/) ... [EPSG:32660](https://spatialreference.org/ref/epsg/32660/); [EPSG:32701](https://spatialreference.org/ref/epsg/32701/) ... [EPSG:32760](https://spatialreference.org/ref/epsg/32760/)). ### What to do next Once the data is in QGIS3 one can do various things with it. For example, features (stations, legs, polygons) can be colored by elevation to mimic the behaviour of the `aven` viewer in survex (hat tip Julian Todd for figuring some of this out). The easiest way to do this is to use the `.qml` style files provided in this repository. For example to color legs by depth, open the properties dialog and under the 'Style' tab, at the bottom select 'Style → Load Style', then choose one of the `color_lines_by_elevation*.qml` style files. This will apply a color scheme to the ELEVATION field data with an inverted spectral color ramp. Use `lines` for legs, walls, cross sections and traverses; `points` for stations; and `polygons` for polygons. Two versions of these style files are provided. The first version uses a graduated, inverted spectral color ramp to color ranges of ELEVATION. A small limitation is that these ranges are not automatically updated to match the vertical range of the current data set, but these can be refreshed by clicking on 'Classify' (then 'Apply' to see the changes). The second version uses a simple marker (line, or fill) with the color set by an expression that maps the ELEVATION to a spectral color ramp. There are no ranges here, but rather these styles rely on _zmin_ and _zmax_ variables being set (see 'Variables' tab under layer → Properties). By matching _zmin_ and _zmax_ between layers with these styles, one can be assured that a common coloring scheme is being applied. A handy way to choose values for _zmin_ and _zmax_ is to open the statistics panel (View → Panels → Statistics Panel) to check out the min and max values in the ELEVATION field. Color legs by date is possible using an expression like `day(age("DATE1",'1970-01-01'))` (which gives the number of days between the recorded DATE1 and the given date). Color legs by error is also possible. Another thing one can do is enable 'map tips', for example to use the NAME field. Then, hovering the mouse near a station (or leg) will show the name as a pop-up label. For this to work: * 'View → Map Tips' should be checked in the main menu; * the map tip has to be set up to use the NAME field ('Properties → Display') in the relevant layer; * the layer has to be the currently _selected_ one, though one can set the symbology to 'No symbols' to avoid having to display the features. With a _digital elevation model_ (DEM raster layer) even more interesting things can be done. For example one can use raster interpolation to find the surface elevation at all the imported stations and save for example to a SURFACE_ELEV field. Then, one can use the field calculator to make a DEPTH field containing the depth below surface, as SURFACE_ELEV minus ELEVATION. Stations can be colored by this, or the information can be added to the 'map tip', etc. Three dimensional views can be made directly in QGIS3 with 3D Map View though more conveniently with the Qgis2threejs plugin, usually in combination with a DEM. To render features in 3d use the _z_ co-ordinate for points and lines. Passage 'tubes' like those in aven can be approximately rendered using LRUD polygons, with the base set to floor level and the extruded height set to roof level. To do this import the MEAN_UP and MEAN_DOWN fields mentioned above and use the field calculator to make two new floating point (double) fields: FLOOR equal to ELEVATION minus MEAN_DOWN, and HEIGHT equal to MEAN_DOWN plus MEAN_UP. Then render the polygons with the _z_ co-ordinate as the absolute FLOOR, and extruded height as HEIGHT. Note that there is currently a bug in the Qgis2threejs plugin for QGIS3 that causes a python error when features have data defined properties, such as color by elevation using _zmin_ and _zmax_ variables (second option above). The error looks like ``` AttributeError:'QgsSimpleLineSymbolLayer' object has no attribute 'dataDefinedProperty' ``` (The problem doesn't arise if features are colored by ranges as in the first option above.) A workaround is as follows. First add _zmin_ and _zmax_ variables into the layer properties (bring up the Properties window and go to the Variables tab): use the green '+' button to add two new variables then click on Apply and OK. Choose values suited to the data set of interest (as above), for example for the DowProv case they can be set to 320 and 400 respectively (elevation in metres ODN). Second, make sure in the main QGIS map window the features in the layer of interest (eg legs) use _only_ a simple style with a fixed colour (this is the default). Third, in the Qgis2threejs Exporter window, double click on the layer of interest (eg legs) to bring up the layer properties, and in the Style panel select Color → Expression. Paste the following into the Expression box. ``` ramp_color('Spectral',scale_linear("ELEVATION",@zmin,@zmax,1,0)) ``` If all is well the lines in the Qgis2threejs Exporter preview window should change to be colored by elevation. Note that if you encountered the python error the plugin may not function correctly any more. It may have to reloaded (which can be done if you have installed the 'Plugin Reloader' plugin); or QGIS3 restarted. ### Example Sample georeferenced survey data can be found in the `example` directory as [`DowProv.3d`](example/DowProv.3d). The corresponding GeoPackage file is in the `example` directory as [`DowProv.gpkg`](example/DowProv.gpkg). Further notes on cave surveying and GIS are in [`cave_surveying_and_GIS.pdf`](cave_surveying_and_GIS.pdf) in `docs`. ### Copying Code in this repository is licensed under GPL v2: This program is free software: you can redistribute it and / or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ### Copyright The .3d file parser is based on a GPL v2 library to handle Survex 3D files (`*.3d`), copyright © 2008-2012 Thomas Holder, http://sf.net/users/speleo3/; see https://github.com/speleo3/inkscape-speleo. Modifications and extensions copyright © (2018-2020) Patrick B Warren. qgis3-survex-import-1.2/LICENSE0000664000175000017500000004325413614350061015676 0ustar wookeywookey GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. qgis3-survex-import-1.2/extra/0000775000175000017500000000000013614350061016004 5ustar wookeywookeyqgis3-survex-import-1.2/extra/test3d.py0000775000175000017500000002666613614350061017607 0ustar wookeywookey#!/usr/bin/env python2.7 # Emulate dump3d in python (assuming v8 of .3d format) # Based on library to handle Survex 3D files (*.3d) # Copyright (C) 2008-2012 Thomas Holder, http://sf.net/users/speleo3/ # Modifications copyright (c) 2018-2019 Patrick B Warren # Distributed under the terms of the GNU General Public License v2 import argparse from struct import unpack from datetime import date import math as m styles = {0x00 : 'NORMAL', 0x01 : 'DIVING', 0x02 : 'CARTESIAN', 0x03 : 'CYLPOLAR', 0x04 : 'NOSURVEY'} line_flags = {0x01 : 'SURFACE', 0x02 : 'DUPLICATE', 0x04 : 'SPLAY'} node_flags = {0x01 : 'SURFACE', 0x02 : 'UNDERGROUND', 0x04 : 'ENTRANCE', 0x08 : 'EXPORTED', 0x10 : 'FIXED', 0x20 : 'ANON'} day_zero = date(1900, 1, 1).toordinal() def to_date(days): """Convert from integer days since 1990.01.01 to a string YYYY.mm.dd""" return date.fromordinal(day_zero + days).strftime('%Y.%m.%d') def to_date_range(days1, days2): """Convert from integer days range to a string YYYY.mm.dd-YYYY.mm.dd""" return to_date(days1) + '-' + to_date(days2) def to_string(ijk): """Convert xyz, lrud, nlehv (error info) tuples to strings""" if len(ijk) == 3: x, y, z = ijk return '%0.2f %0.2f %0.2f' % (0.01*x, 0.01*y, 0.01*z) if len(ijk) == 4: l, r, u, d = ijk return '%0.2f %0.2f %0.2f %0.2f' % (0.01*l, 0.01*r, 0.01*u, 0.01*d) if len(ijk) == 5: n, l, e, h, v = ijk return '#legs %i, len %0.2fm, E %0.2f H %0.2f V %0.2f' % (n, 0.01*l, 0.01*e, 0.01*h, 0.01*v) def to_lrud_string(lrud, label, date_string): """Convert LRUD data to string and annotate with label and date""" s = '%s [%s]' % (to_string(lrud), label) if args.show_dates and date_string: s = s + ' ' + date_string return s def read_xyz(fp): """Read xyz as signed integers according to .3d spec and return as tuple""" return unpack('> 4 nadd = byte & 0x0f else: ndel = read_len(fp) nadd = read_len(fp) oldlen = len(current_label) return current_label[:oldlen - ndel] + fp.read(nadd).decode('ascii') # Command line arguments parser = argparse.ArgumentParser(description='Dump contents of .3d file to stdout') parser.add_argument('-d', '--show-dates', action='store_true', help='show survey date information (if present)') parser.add_argument('FILE') args = parser.parse_args() # Start reading file with open(args.FILE, 'rb') as fp: line = fp.readline().rstrip() # File ID if not line.startswith(b'Survex 3D Image File'): raise IOError('Not a Survex 3D File: ' + args.FILE) line = fp.readline().rstrip() # File format version if not line.startswith(b'v'): raise IOError('Unrecognised .3d version: ' + args.FILE) version = int(line[1:]) if version < 8: raise IOError('Version >= 8 required: ' + args.FILE) line = fp.readline().rstrip() # Metadata (title and coordinate system) title, cs = [s.decode('utf-8') for s in line.split(b'\x00')] line = fp.readline().rstrip() # Timestamp if not line.startswith(b'@'): raise IOError('Unrecognised timestamp: ' + args.FILE) timestamp = int(line[1:]) # Write file header to match output of dump3d print('TITLE "%s"' % title) print('DATE "@%i"' % timestamp) print('DATE_NUMERIC %i' % timestamp) print('CS %s' % cs) print('VERSION %i' % version) print("SEPARATOR '.'") print('--') # System-wide flags flag = ord(fp.read(1)) if flag & 0x80: raise IOError('Flagged as extended elevation: ' + args.FILE) # All front-end data read in, now read byte-wise according to .3d spec, and process current_label = '' current_date = None current_style = 0xff traverse_list = [] traverse_label = [] current_traverse = [] xsect_list = [] current_xsect = [] station_xyz = {} while True: char = fp.read(1) if not char: # End of file reached (prematurely?) raise IOError('Premature end of file: ' + args.FILE) byte = ord(char) if byte <= 0x05: # STYLE if byte == 0x00 and current_style == 0x00: # this signals end of data print('STOP') if current_traverse: traverse_list.append(current_traverse) traverse_label.append(current_label) break # escape from byte-gobbling while loop else: current_style = byte elif byte <= 0x0e: # Reserved continue elif byte == 0x0f: # MOVE xyz = read_xyz(fp) print('MOVE ' + to_string(xyz)) if current_traverse: traverse_list.append(current_traverse) traverse_label.append(current_label) current_traverse = [] current_traverse.append(xyz) elif byte == 0x10: # DATE (none) current_date = None elif byte == 0x11: # DATE (single date) days = unpack(' 0: dx, dy, dz = x - xp, y - yp, z - zp dh2 = dx*dx + dy*dy norm = m.sqrt(dh2 + dz*dz) dx, dy = (-dy/norm, dx/norm) if norm > 0 and dh2 > 0 else (0, 0) dirn.append((dx, dy)) xp, yp, zp = x, y, z left_wall = [] right_wall = [] for i, (x, y, z, l, r) in enumerate(data): d1x, d1y = dirn[i-1] if i > 0 else (0, 0) d2x, d2y = dirn[i] if i+1 < len(data) else (0, 0) dx, dy = d1x+d2x, d1y+d2y norm = m.sqrt(dx*dx + dy*dy) ex, ey = (dx/norm, dy/norm) if norm > 0 else (0, 0) left_wall.append((x+l*ex, y+l*ey, z)) right_wall.append((x-r*ex, y-r*ey, z)) for x, y, z in left_wall: fwalls.write("%0.2f\t%0.2f\n" % (0.01*(x-xoff), 0.01*(y-yoff))) fwalls.write('&\n') for x, y, z in right_wall: fwalls.write("%0.2f\t%0.2f\n" % (0.01*(x-xoff), 0.01*(y-yoff))) fwalls.write('&\n') for (x1, y1, z1), (x2, y2, z2) in zip(left_wall, right_wall): fxsect.write("%0.2f\t%0.2f\n" % (0.01*(x1-xoff), 0.01*(y1-yoff))) fxsect.write("%0.2f\t%0.2f\n" % (0.01*(x2-xoff), 0.01*(y2-yoff))) fxsect.write('&\n') for i, xyz_pair in enumerate(zip(left_wall, right_wall)): if i > 0: quad = tuple(reversed(prev_xyz_pair)) + xyz_pair + (prev_xyz_pair[1],) for i, p in enumerate(quad): x, y = p[0:2] fquads.write("%0.2f\t%0.2f\n" % (0.01*(x-xoff), 0.01*(y-yoff))) fquads.write('&\n') prev_xyz_pair = xyz_pair qgis3-survex-import-1.2/extra/README.md0000664000175000017500000000076513614350061017273 0ustar wookeywookey# Extra python scripts * `dump3d.py` replicates _exactly_ the functionality of the survex `dump3d` command in pure python, for debugging. * `test3d.py` was used for debugging the treatment of the passage wall data. It runs like `dump3d.py`, but additionally generates a number of `*.dat` files containing xy data which can be read into a standard plotting package. * `old3d2json.py` converts old-style ASCII .3d files at v0.01 to GeoJSON, writing to stdout, and optionally adding a CRS. qgis3-survex-import-1.2/extra/dump3d.py0000775000175000017500000001635313614350061017565 0ustar wookeywookey#!/usr/bin/env python2.7 # Emulate dump3d in python (assuming v8 of .3d format) # Based on library to handle Survex 3D files (*.3d) # Copyright (C) 2008-2012 Thomas Holder, http://sf.net/users/speleo3/ # Modifications copyright (c) 2018-2019 Patrick B Warren # Distributed under the terms of the GNU General Public License v2 import argparse from struct import unpack from datetime import date styles = {0x00 : 'NORMAL', 0x01 : 'DIVING', 0x02 : 'CARTESIAN', 0x03 : 'CYLPOLAR', 0x04 : 'NOSURVEY'} line_flags = {0x01 : 'SURFACE', 0x02 : 'DUPLICATE', 0x04 : 'SPLAY'} node_flags = {0x01 : 'SURFACE', 0x02 : 'UNDERGROUND', 0x04 : 'ENTRANCE', 0x08 : 'EXPORTED', 0x10 : 'FIXED', 0x20 : 'ANON'} day_zero = date(1900, 1, 1).toordinal() def to_date(days): """Convert from integer days since 1990.01.01 to a string YYYY.mm.dd""" return date.fromordinal(day_zero + days).strftime('%Y.%m.%d') def to_date_range(days1, days2): """Convert from integer days range to a string YYYY.mm.dd-YYYY.mm.dd""" return to_date(days1) + '-' + to_date(days2) def to_string(ijk): """Convert xyz, lrud, nlehv (error info) tuples to strings""" if len(ijk) == 3: x, y, z = ijk return '%0.2f %0.2f %0.2f' % (0.01*x, 0.01*y, 0.01*z) if len(ijk) == 4: l, r, u, d = ijk return '%0.2f %0.2f %0.2f %0.2f' % (0.01*l, 0.01*r, 0.01*u, 0.01*d) if len(ijk) == 5: n, l, e, h, v = ijk return '#legs %i, len %0.2fm, E %0.2f H %0.2f V %0.2f' % (n, 0.01*l, 0.01*e, 0.01*h, 0.01*v) def to_lrud_string(lrud, label, date_string): """Convert LRUD data to string and annotate with label and date""" s = '%s [%s]' % (to_string(lrud), label) if args.show_dates and date_string: s = s + ' ' + date_string return s def read_xyz(fp): """Read xyz as signed integers according to .3d spec""" return unpack('> 4 nadd = byte & 0x0f else: ndel = read_len(fp) nadd = read_len(fp) oldlen = len(current_label) return current_label[:oldlen - ndel] + fp.read(nadd).decode('ascii') # Command line arguments parser = argparse.ArgumentParser(description='Dump contents of .3d file to stdout') parser.add_argument('-d', '--show-dates', action='store_true', help='show survey date information (if present)') parser.add_argument('FILE') args = parser.parse_args() # Start reading file with open(args.FILE, 'rb') as fp: line = fp.readline().rstrip() # File ID if not line.startswith(b'Survex 3D Image File'): raise IOError('Not a Survex 3D File: ' + args.FILE) line = fp.readline().rstrip() # File format version if not line.startswith(b'v'): raise IOError('Unrecognised .3d version: ' + args.FILE) version = int(line[1:]) if version < 8: raise IOError('Version >= 8 required: ' + args.FILE) line = fp.readline().rstrip() # Metadata (title and coordinate system) title, cs = [s.decode('utf-8') for s in line.split(b'\x00')] line = fp.readline().rstrip() # Timestamp if not line.startswith(b'@'): raise IOError('Unrecognised timestamp: ' + args.FILE) timestamp = int(line[1:]) # Write file header to match output of dump3d print('TITLE "%s"' % title) print('DATE "@%i"' % timestamp) print('DATE_NUMERIC %i' % timestamp) print('CS %s' % cs) print('VERSION %i' % version) print("SEPARATOR '.'") print('--') # System-wide flags flag = ord(fp.read(1)) if flag & 0x80: raise IOError('Flagged as extended elevation: ' + args.FILE) # All front-end data read in, now read byte-wise according to .3d spec, and process current_label = '' current_date = None current_style = 0xff while True: char = fp.read(1) if not char: # End of file reached (prematurely?) raise IOError('Premature end of file: ' + args.FILE) byte = ord(char) if byte <= 0x05: # STYLE if byte == 0x00 and current_style == 0x00: # this signals end of data print('STOP') break # escape from byte-gobbling while loop else: current_style = byte elif byte <= 0x0e: # Reserved continue elif byte == 0x0f: # MOVE xyz = read_xyz(fp) print('MOVE ' + to_string(xyz)) elif byte == 0x10: # DATE (none) current_date = None elif byte == 0x11: # DATE (single date) days = unpack(' sends to stdout # For example ./old3d2json.py --epsg=31255 1627_65.3d > 1627_65.json # EPSG:31255 is MGI / Austria GK Central CRS import sys import json # sort out the command line arguments try: if '--epsg' in sys.argv[1]: _, epsg = sys.argv[1].split('=', 2) filename = sys.argv[2] else: epsg, filename = None, sys.argv[1] except IndexError: print('Missing file name') print('Usage: %s [--epsg=EPSG] ' % sys.argv[0]) raise SystemExit # read the file and accumulate lists of legs and stations line, lines = None, [] names, coords = [], [] with open(filename) as f: for record in f: fields = record.split() if fields[0] in ['move', 'draw', 'name']: xyz = [float(v) for v in fields[-3:]] # last three fields if fields[0] == 'move': if line: # catch the last line string lines.append(line) line = [xyz] # start a new line string elif fields[0] == 'draw': line.append(xyz) # grow the current line string elif fields[0] == 'name': if line: # catch the last line string lines.append(line) names.append(fields[1]) # keep the name.. coords.append(xyz) # .. and the position # create a GIS data structure as a hierarchy of dicts and lists features = [] for i, line in enumerate(lines): geometry = {'type': 'LineString'} geometry['coordinates'] = line feature = {'type': 'Feature'} feature['geometry'] = geometry feature['properties'] = {'fid': i} features.append(feature) for i, (name, xyz) in enumerate(zip(names, coords)): geometry = {'type': 'Point'} geometry['coordinates'] = xyz feature = {'type': 'Feature'} feature['geometry'] = geometry feature['properties'] = {'fid': i, 'name': name} features.append(feature) feature_collection = {'type': 'FeatureCollection'} feature_collection['features'] = features # add the CRS as a property of the feature collection if epsg: crs = {'type': 'name'} crs['properties'] = {'name': 'urn:ogc:def:crs:EPSG::%i' % int(epsg)} feature_collection['crs'] = crs # finally write the data structure as a JSON to stdout print(json.dumps(feature_collection, indent=2)) # END qgis3-survex-import-1.2/survex_import/0000775000175000017500000000000013614350061017607 5ustar wookeywookeyqgis3-survex-import-1.2/survex_import/resources.py0000664000175000017500000001042713614350061022177 0ustar wookeywookey# -*- coding: utf-8 -*- # Resource object code # # Created by: The Resource Compiler for PyQt5 (Qt v5.11.3) # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore qt_resource_data = b"\ \x00\x00\x02\x7d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x17\x00\x00\x00\x18\x08\x06\x00\x00\x00\x11\x7c\x66\x75\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ \x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xe2\x01\x05\x0f\x02\x05\xd4\xe6\x18\x9b\x00\x00\x02\x0a\x49\x44\ \x41\x54\x48\xc7\xed\x94\x3d\x68\x53\x61\x14\x86\x9f\xef\xe6\xda\ \x14\x13\xcd\xad\x2d\x29\x54\x2a\x68\xb5\x58\x25\xc1\x0a\x42\x04\ \xd1\x04\x22\x55\xe3\xe2\x20\x4e\x12\x10\xd1\xc9\xc1\xc1\x82\x53\ \x33\xb4\x54\x5d\xa4\x50\x2b\x8e\x52\x9c\x44\x9a\xc1\x58\xd4\x90\ \x46\x10\x93\x0e\x42\x7f\xfc\x21\x01\x75\x28\xa6\x31\xd6\xf4\xf6\ \xb6\xc5\xa6\xf9\xb9\x2e\x46\x8a\x24\x90\xd8\x64\xf3\x9d\x3e\x38\ \xf0\x9c\xef\xbc\xe7\xf0\x0a\x5d\xd7\x5d\xeb\xea\xab\x8e\x9c\x16\ \xf1\x16\x72\x4b\xc7\xd8\xa4\x24\xd9\xf2\x5a\xde\x7e\xf4\x61\x83\ \x72\xe2\x93\xc8\x2c\x86\x2f\x67\x17\x5f\xde\xd5\xf5\xbc\x99\x1a\ \x49\x08\xc3\xca\x96\xa6\x93\xd7\xa5\x9c\x16\xf1\xd6\x12\x0c\xa0\ \xeb\x79\x73\x4e\x8b\x78\xa5\x5a\x58\x51\x4a\x85\xdc\xf2\x61\x89\ \xba\xa9\xb0\x55\xca\xaf\xce\xd6\x05\x9d\x5f\x9d\x45\x2e\x3e\x00\ \x0c\x26\xdb\x26\x7c\xd6\x11\x42\xb0\xf1\xb3\xf2\xdf\xdd\xfe\xb5\ \x89\xd2\x79\x9b\x46\xa3\x81\xc4\xe4\xa9\xd2\xf0\x8d\x4d\xc2\xd1\ \x05\xfa\x87\x63\xbc\x8b\x69\x98\x4d\x32\x2e\x47\x0b\x77\x6e\x1e\ \xa4\xc9\xd2\x50\xf9\xcd\x97\x2b\x8c\x3d\x4f\xf0\x60\xe0\x10\xb1\ \x90\x9b\xee\x03\x16\x1e\x3f\x4b\x30\x32\xfa\xa5\xaa\x69\xe4\x72\ \x85\xa1\x3e\x3b\x00\xaa\x96\x45\x08\x01\xc0\xee\x76\xd3\x9f\xfa\ \x23\xff\x1c\x03\xf7\xe2\x24\xbe\xad\x55\x0f\x07\xe8\x72\x07\x99\ \x4f\x65\x00\x38\xed\xb4\x72\xfe\x4c\x1b\x00\xb1\xcf\xcb\x5c\xf3\ \xcd\xb0\x67\x97\x89\xf8\x84\x1b\xff\x8b\x79\x7a\x07\xdf\x57\x6e\ \x0b\xc0\xc7\xa0\x9b\xf8\x84\x9b\x9e\xe3\x56\xc6\xc3\x29\xfa\x87\ \x63\x00\x84\xa3\x0b\x14\x0a\xe0\x71\xb5\x62\x6d\x36\x72\xf1\x5c\ \x7b\x75\x9e\x17\x65\x6d\x36\x72\xe1\xec\x4e\x00\xa6\x3e\x2c\xfd\ \x3e\xbb\x62\x86\x88\xca\x16\x6a\xeb\x09\xa1\xd8\x03\xa8\x5a\x96\ \x37\x6f\xd3\xdc\xba\x1f\xe7\x6b\xf2\x27\x69\x75\x9d\x27\xe3\x09\ \x00\x1c\xdd\x3b\x00\x70\x3a\x5a\x10\x02\x9e\x86\x92\xa4\x7e\x64\ \x18\x1d\x9b\xab\xdc\xf3\x23\x76\x85\xc9\xa9\x34\x9e\x4b\x51\x92\ \xdf\xd7\x68\x6b\x6d\xa4\xf7\xea\x3e\x6e\x5c\xd9\x0b\xc0\xfe\x8e\ \x6d\x0c\xf5\xd9\x18\x1c\x89\xd3\xe9\x0a\x96\x4f\x47\x75\xc6\xa3\ \xd7\x2b\x5d\xea\x18\x5c\xff\xe1\xa5\xa5\x49\x80\xbf\x4e\xf0\x90\ \x04\xf8\x00\xb5\xc6\x60\x15\xf0\x49\x8a\x3d\x30\x0d\x38\x6b\x38\ \x81\x1f\x70\x2a\xf6\xc0\xf4\x2f\xab\x42\xbd\x53\xdf\x32\x05\x45\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x07\ \x07\x3b\xe0\xb3\ \x00\x70\ \x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ \x00\x0d\ \x00\x97\xee\x34\ \x00\x73\ \x00\x75\x00\x72\x00\x76\x00\x65\x00\x78\x00\x5f\x00\x69\x00\x6d\x00\x70\x00\x6f\x00\x72\x00\x74\ \x00\x08\ \x0a\x61\x5a\xa7\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x14\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " qt_resource_struct_v2 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x14\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x6a\x93\xa3\x17\x7a\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] if qt_version < [5, 8, 0]: rcc_version = 1 qt_resource_struct = qt_resource_struct_v1 else: rcc_version = 2 qt_resource_struct = qt_resource_struct_v2 def qInitResources(): QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() qgis3-survex-import-1.2/survex_import/help/0000775000175000017500000000000013614350061020537 5ustar wookeywookeyqgis3-survex-import-1.2/survex_import/help/make.bat0000664000175000017500000001003613614350061022144 0ustar wookeywookey@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\template_class.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\template_class.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end qgis3-survex-import-1.2/survex_import/help/Makefile0000664000175000017500000001102213614350061022173 0ustar wookeywookey# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/template_class.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/template_class.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/template_class" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/template_class" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." qgis3-survex-import-1.2/survex_import/help/source/0000775000175000017500000000000013614350061022037 5ustar wookeywookeyqgis3-survex-import-1.2/survex_import/help/source/conf.py0000664000175000017500000001565313614350061023350 0ustar wookeywookey# -*- coding: utf-8 -*- # # SurvexImport documentation build configuration file, created by # sphinx-quickstart on Sun Feb 12 17:11:03 2012. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.todo', 'sphinx.ext.imgmath', 'sphinx.ext.viewcode'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'SurvexImport' copyright = u'2013, Patrick B Warren' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.1' # The full version, including alpha/beta/rc tags. release = '0.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_TemplateModuleNames = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'TemplateClassdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'SurvexImport.tex', u'SurvexImport Documentation', u'Patrick B Warren', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'TemplateClass', u'SurvexImport Documentation', [u'Patrick B Warren'], 1) ] qgis3-survex-import-1.2/survex_import/help/source/index.rst0000664000175000017500000000067313614350061023706 0ustar wookeywookey.. SurvexImport documentation master file, created by sphinx-quickstart on Sun Feb 12 17:11:03 2012. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to SurvexImport's documentation! ============================================ Contents: .. toctree:: :maxdepth: 2 Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` qgis3-survex-import-1.2/survex_import/resources.qrc0000664000175000017500000000015513614350061022331 0ustar wookeywookey icon.png qgis3-survex-import-1.2/survex_import/README.md0000664000175000017500000000052513614350061021070 0ustar wookeywookey# Plugin code To install, copy this directory (not just the contents) to `python/plugins/` in the current active profile, the location of which can be found from within QGIS3 by going to 'Settings → User Profiles → Open Active Profile Folder'. Alternatively if you have `pb_tool` you can run `pb_tool deploy` in this directory. qgis3-survex-import-1.2/survex_import/pb_tool.cfg0000664000175000017500000000551713614350061021736 0ustar wookeywookey#/*************************************************************************** # SurvexImport # # Configuration file for plugin builder tool (pb_tool) # Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/ # ------------------- # begin : 2019-05-03 # copyright : (C) 2019 by Patrick B Warren # email : patrickbwarren@gmail.com # ***************************************************************************/ # #/*************************************************************************** # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU General Public License as published by * # * the Free Software Foundation; either version 2 of the License, or * # * (at your option) any later version. * # * * # ***************************************************************************/ # # # You can install pb_tool using: # pip install http://geoapt.net/files/pb_tool.zip # # Consider doing your development (and install of pb_tool) in a virtualenv. # # For details on setting up and using pb_tool, see: # http://g-sherman.github.io/plugin_build_tool/ # # Issues and pull requests here: # https://github.com/g-sherman/plugin_build_tool: # # Sane defaults for your plugin generated by the Plugin Builder are # already set below. # # As you add Python source files and UI files to your plugin, add # them to the appropriate [files] section below. [plugin] # Name of the plugin. This is the name of the directory that will # be created in .qgis2/python/plugins name: survex_import # Full path to where you want your plugin directory copied. If empty, # the QGIS default path will be used. Don't include the plugin name in # the path. plugin_path: [files] # Python files that should be deployed with the plugin python_files: __init__.py survex_import.py survex_import_dialog.py # The main dialog file that is loaded (not compiled) main_dialog: survex_import_dialog_base.ui # Other ui files for dialogs you create (these will be compiled) compiled_ui_files: # Resource file(s) that will be compiled resource_files: resources.qrc # Other files required for the plugin extras: metadata.txt icon.png # Other directories to be deployed with the plugin. # These must be subdirectories under the plugin directory extra_dirs: # ISO code(s) for any locales (translations), separated by spaces. # Corresponding .ts files must exist in the i18n directory locales: [help] # the built help directory that should be deployed with the plugin dir: help/build/html # the name of the directory to target in the deployed plugin target: help qgis3-survex-import-1.2/survex_import/__init__.py0000664000175000017500000000310213614350061021714 0ustar wookeywookey# -*- coding: utf-8 -*- """ /*************************************************************************** SurvexImport A QGIS plugin Import features from survex .3d files Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/ ------------------- begin : 2019-05-03 copyright : (C) 2019 by Patrick B Warren email : patrickbwarren@gmail.com git sha : $Format:%H$ ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ This script initializes the plugin, making it known to QGIS. """ # noinspection PyPep8Naming def classFactory(iface): # pylint: disable=invalid-name """Load SurvexImport class from file SurvexImport. :param iface: A QGIS interface instance. :type iface: QgsInterface """ # from .survex_import import SurvexImport return SurvexImport(iface) qgis3-survex-import-1.2/survex_import/pylintrc0000664000175000017500000002113613614350061021401 0ustar wookeywookey[MASTER] # Specify a configuration file. #rcfile= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Profiled execution. profile=no # Add files or directories to the blacklist. They should be base names, not # paths. ignore=CVS # Pickle collected data for later comparisons. persistent=yes # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [MESSAGES CONTROL] # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time. See also the "--disable" option for examples. #enable= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once).You can also use "--disable=all" to # disable everything first and then reenable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" # see http://stackoverflow.com/questions/21487025/pylint-locally-defined-disables-still-give-warnings-how-to-suppress-them disable=locally-disabled,C0103 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html. You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. output-format=text # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Tells whether to display a full report or only the messages reports=yes # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectively contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (RP0004). comment=no # Template used to display messages. This is a python new-style format string # used to format the message information. See doc for all details #msg-template= [BASIC] # Required attributes for module, separated by a comma required-attributes= # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct attribute names in class # bodies class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=i,j,k,ex,Run,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # Regular expression which should only match function or class names that do # not require a docstring. no-docstring-rgx=__.*__ # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=-1 [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME,XXX,TODO [TYPECHECK] # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of classes names for which member attributes should not be checked # (useful for classes with attributes dynamically set). ignored-classes=SQLObject # When zope mode is activated, add a predefined set of Zope acquired attributes # to generated-members. zope=no # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E0201 when accessed. Python regular # expressions are accepted. generated-members=REQUEST,acl_users,aq_parent [VARIABLES] # Tells whether we should check for unused import in __init__ files. init-import=no # A regular expression matching the beginning of the name of dummy variables # (i.e. not used). dummy-variables-rgx=_$|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins= [FORMAT] # Maximum number of characters on a single line. max-line-length=80 # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )??$ # Allow the body of an if to be on the same line as the test if there is no # else. single-line-if-stmt=no # List of optional constructs for which whitespace checking is disabled no-space-check=trailing-comma,dict-separator # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # Ignore imports when computing similarities. ignore-imports=no [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report RP0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= [DESIGN] # Maximum number of arguments for function / method max-args=5 # Argument names that match this expression will be ignored. Default to name # with leading underscore ignored-argument-names=_.* # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branches=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=2 # Maximum number of public methods for a class (see R0904). max-public-methods=20 [CLASSES] # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=mcs [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" overgeneral-exceptions=Exception qgis3-survex-import-1.2/survex_import/icon.png0000664000175000017500000000117513614350061021251 0ustar wookeywookeyPNG  IHDR|fubKGD pHYs  tIME IDATH=hSaͭ-)T*hX% B"U NS3T]P+RDXԐFB!u(1Ŧ.F$d>8 ]]꫎rKؤ$Z~ar,/g_Iʖץ ysNxZXQJaUʯ_E.> &&|ByFMciM2.G wnP͗+=O`?K02ir>;Evӟ#$UrOe8rL\ͰgyzWn ǠV)c  qbm6r\{uem6rN>,>bj Z7oܺk'iu' ;p:Z~d#vɩ4KQhkm>n\ m  OGuƣ+]\ᥥIN`I=0 8k8p*/BS2EIENDB`qgis3-survex-import-1.2/survex_import/survex_import.py0000664000175000017500000010313613614350061023113 0ustar wookeywookey# -*- coding: utf-8 -*- """ /*************************************************************************** SurvexImport A QGIS plugin Import features from survex .3d files Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/ ------------------- begin : 2019-05-03 git sha : $Format:%H$ copyright : (C) 2019-2020 by Patrick B Warren email : patrickbwarren@gmail.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ """ from PyQt5.QtCore import QSettings, QTranslator, qVersion, QCoreApplication from PyQt5.QtCore import QFileInfo, QDate, QVariant from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QAction, QFileDialog from qgis.core import Qgis from qgis.core import QgsProject, QgsVectorLayer, QgsField, QgsFeature, QgsGeometry from qgis.core import QgsPoint, QgsLineString, QgsPolygon from qgis.core import QgsVectorFileWriter, QgsMessageLog from qgis.core import QgsCoordinateReferenceSystem from qgis.gui import QgsProjectionSelectionDialog # Initialize Qt resources from file resources.py from .resources import * # Import the code for the dialog from .survex_import_dialog import SurvexImportDialog from struct import unpack # used to read binary from .3d file from re import search # for matching and extracting substrings from math import log10, floor, sqrt import os # used for file system operations from osgeo import osr # spatial reference system API class SurvexImport: """QGIS Plugin Implementation.""" # The following are some dictionaries for flags in the .3d file station_attr = {0x01:'SURFACE', 0x02:'UNDERGROUND', 0x04:'ENTRANCE', 0x08:'EXPORTED', 0x10:'FIXED', 0x20:'ANON'} leg_attr = {0x01:'SURFACE', 0x02:'DUPLICATE', 0x04:'SPLAY'} style_type = {0x00:'NORMAL', 0x01:'DIVING', 0x02:'CARTESIAN', 0x03:'CYLPOLAR', 0x04:'NOSURVEY', 0xff:'NOSTYLE'} # lists of keys of above, sorted to restore ordering station_flags = sorted(station_attr.keys()) leg_flags = sorted(leg_attr.keys()) # field names if there is error data error_fields = ('ERROR_VERT', 'ERROR_HORIZ', 'ERROR', 'LENGTH') # main data structures leg_list = [] # accumulates legs + metadata station_list = [] # ditto stations xsect_list = [] # ditto for cross sections for walls station_xyz = {} # map station names to xyz coordinates crs = None # used to set layer CRS in memory provider crs_source = None # records the origin of the CRS title = '' # used to set layer title in memory provider path_3d = '' # to remember the path to the survex .3d file path_gpkg = '' # ditto for path to save GeoPackage (.gpkg) def __init__(self, iface): """Constructor. :param iface: An interface instance that will be passed to this class which provides the hook by which you can manipulate the QGIS application at run time. :type iface: QgsInterface """ # Save reference to the QGIS interface self.iface = iface # initialize plugin directory self.plugin_dir = os.path.dirname(__file__) # initialize locale locale = QSettings().value('locale/userLocale')[0:2] locale_path = os.path.join( self.plugin_dir, 'i18n', 'SurvexImport_{}.qm'.format(locale)) if os.path.exists(locale_path): self.translator = QTranslator() self.translator.load(locale_path) if qVersion() > '4.3.3': QCoreApplication.installTranslator(self.translator) # Declare instance attributes self.actions = [] self.menu = self.tr(u'&Import .3d file') # Check if plugin was started the first time in current QGIS session # Must be set in initGui() to survive plugin reloads self.first_start = None # noinspection PyMethodMayBeStatic def tr(self, message): """Get the translation for a string using Qt translation API. We implement this ourselves since we do not inherit QObject. :param message: String for translation. :type message: str, QString :returns: Translated version of message. :rtype: QString """ # noinspection PyTypeChecker,PyArgumentList,PyCallByClass return QCoreApplication.translate('SurvexImport', message) def add_action( self, icon_path, text, callback, enabled_flag=True, add_to_menu=True, add_to_toolbar=True, status_tip=None, whats_this=None, parent=None): """Add a toolbar icon to the toolbar. :param icon_path: Path to the icon for this action. Can be a resource path (e.g. ':/plugins/foo/bar.png') or a normal file system path. :type icon_path: str :param text: Text that should be shown in menu items for this action. :type text: str :param callback: Function to be called when the action is triggered. :type callback: function :param enabled_flag: A flag indicating if the action should be enabled by default. Defaults to True. :type enabled_flag: bool :param add_to_menu: Flag indicating whether the action should also be added to the menu. Defaults to True. :type add_to_menu: bool :param add_to_toolbar: Flag indicating whether the action should also be added to the toolbar. Defaults to True. :type add_to_toolbar: bool :param status_tip: Optional text to show in a popup when mouse pointer hovers over the action. :type status_tip: str :param parent: Parent widget for the new action. Defaults None. :type parent: QWidget :param whats_this: Optional text to show in the status bar when the mouse pointer hovers over the action. :returns: The action that was created. Note that the action is also added to self.actions list. :rtype: QAction """ icon = QIcon(icon_path) action = QAction(icon, text, parent) action.triggered.connect(callback) action.setEnabled(enabled_flag) if status_tip is not None: action.setStatusTip(status_tip) if whats_this is not None: action.setWhatsThis(whats_this) if add_to_toolbar: # Adds plugin icon to Plugins toolbar self.iface.addToolBarIcon(action) if add_to_menu: self.iface.addPluginToVectorMenu( self.menu, action) self.actions.append(action) return action def initGui(self): """Create the menu entries and toolbar icons inside the QGIS GUI.""" icon_path = ':/plugins/survex_import/icon.png' self.add_action( icon_path, text=self.tr(u'.3d import'), callback=self.run, parent=self.iface.mainWindow()) # will be set False in run() self.first_start = True def unload(self): """Removes the plugin menu item and icon from QGIS GUI.""" for action in self.actions: self.iface.removePluginVectorMenu( self.tr(u'&Import .3d file'), action) self.iface.removeToolBarIcon(action) def crs_from_file(self): """Enforce consistent CRS selector state""" if self.dlg.CRSFromFile.isChecked(): self.dlg.CRSFromProject.setChecked(False) def crs_from_project(self): """Enforce consistent CRS selector state""" if self.dlg.CRSFromProject.isChecked(): self.dlg.CRSFromFile.setChecked(False) def select_3d_file(self): """Select 3d file""" file_3d, _filter_3d = QFileDialog.getOpenFileName(self.dlg, "Select .3d file ", self.path_3d, '*.3d') self.dlg.selectedFile.setText(file_3d) self.path_3d = QFileInfo(file_3d).path() # memorise path selection def select_gpkg(self): """Select GeoPackage (.gpkg)""" file_gpkg, _filter_gpkg = QFileDialog.getSaveFileName(self.dlg, "Enter or select existing .gpkg file ", self.path_gpkg, '*.gpkg') self.dlg.selectedGPKG.setText(file_gpkg) self.path_gpkg = QFileInfo(file_gpkg).path() # memorise path selection def set_crs(self, s): """Figure out the CRS for layer creation, from the selected options and/or string""" if self.dlg.CRSFromProject.isChecked(): self.crs_source = 'from project' self.crs = QgsProject.instance().crs() elif self.dlg.CRSFromFile.isChecked() and s: self.crs_source = 'from .3d file' self.crs = QgsCoordinateReferenceSystem() match = search('epsg:([0-9]*)', s) # check for epsg in proj string if match: # if found, use the EPSG number explicitly self.crs.createFromString('EPSG:{}'.format(int(match.group(1)))) else: # fall back to proj4 self.crs.createFromProj4(s) else: # fall back to raising a CRS selection dialog self.crs_source = 'from dialog' dialog = QgsProjectionSelectionDialog() dialog.setMessage('define the CRS for the imported layers') dialog.exec() # run the dialog .. self.crs = dialog.crs() # .. and recover the user input if self.crs.isValid(): msg = 'CRS {} : {}'.format(self.crs_source, self.crs.authid()) QgsMessageLog.logMessage(msg, tag='Import .3d', level=Qgis.Info) QgsMessageLog.logMessage(self.crs.description(), tag='Import .3d', level=Qgis.Info) else: # hopefully never happens msg = "CRS invalid!" QgsMessageLog.logMessage(msg, tag='Import .3d', level=Qgis.Info) self.crs = None def add_layer(self, subtitle, geom): """Add a memory layer with title(subtitle) and geom""" name = '%s(%s)' % (self.title, subtitle) if self.title else subtitle layer = QgsVectorLayer(geom, name, 'memory') if self.crs: # this should have been set by now layer.setCrs(self.crs) if not layer.isValid(): raise Exception("Invalid layer with %s" % geom) msg = "Memory layer '%s' called '%s' added" % (geom, name) QgsMessageLog.logMessage(msg, tag='Import .3d', level=Qgis.Info) return layer # The next three routines are to do with reading .3d binary file format def read_xyz(self, fp): """Read xyz as integers, according to .3d spec""" return unpack('> 4 nadd = byte & 0x0f else: ndel = self.read_len(fp) nadd = self.read_len(fp) oldlen = len(current_label) return current_label[:oldlen - ndel] + fp.read(nadd).decode('ascii') def run(self): """Run method that performs all the real work""" # Create the dialog with elements (after translation) and keep reference # Only create GUI ONCE in callback, so that it will only load when the plugin is started if self.first_start == True: self.first_start = False self.dlg = SurvexImportDialog() self.dlg.selectedFile.clear() self.dlg.fileSelector.clicked.connect(self.select_3d_file) self.dlg.selectedGPKG.clear() self.dlg.GPKGSelector.clicked.connect(self.select_gpkg) self.dlg.CRSFromProject.setChecked(False) self.dlg.CRSFromFile.clicked.connect(self.crs_from_file) self.dlg.CRSFromFile.setChecked(False) self.dlg.CRSFromProject.clicked.connect(self.crs_from_project) self.dlg.show() # show the dialog result = self.dlg.exec_() # Run the dialog event loop if result: # The user pressed OK, and this is what happened next! survex_3d = self.dlg.selectedFile.text() gpkg_file = self.dlg.selectedGPKG.text() include_legs = self.dlg.Legs.isChecked() include_stations = self.dlg.Stations.isChecked() include_polygons = self.dlg.Polygons.isChecked() include_walls = self.dlg.Walls.isChecked() include_xsections = self.dlg.XSections.isChecked() include_traverses = self.dlg.Traverses.isChecked() exclude_surface_legs = not self.dlg.LegsSurface.isChecked() exclude_splay_legs = not self.dlg.LegsSplay.isChecked() exclude_duplicate_legs = not self.dlg.LegsDuplicate.isChecked() exclude_surface_stations = not self.dlg.StationsSurface.isChecked() use_clino_wgt = self.dlg.UseClinoWeights.isChecked() include_up_down = self.dlg.IncludeUpDown.isChecked() discard_features = not self.dlg.KeepFeatures.isChecked() if not os.path.exists(survex_3d): raise Exception("File '%s' doesn't exist" % survex_3d) if discard_features: self.leg_list = [] self.station_list = [] self.station_xyz = {} self.xsect_list = [] # Read .3d file as binary, parse, and save data structures with open(survex_3d, 'rb') as fp: line = fp.readline().rstrip() # File ID check if not line.startswith(b'Survex 3D Image File'): raise IOError('Not a survex .3d file: ' + survex_3d) line = fp.readline().rstrip() # File format version if not line.startswith(b'v'): raise IOError('Unrecognised survex .3d version in ' + survex_3d) version = int(line[1:]) if version < 8: raise IOError('Survex .3d version >= 8 required in ' + survex_3d) line = fp.readline().rstrip() # Metadata (title and coordinate system) fields = line.split(b'\x00') previous_title = '' if discard_features else self.title if previous_title: self.title = previous_title + ' + ' + fields[0].decode('ascii'); else: self.title = fields[0].decode('ascii'); self.set_crs(fields[1].decode('ascii') if len(fields) > 1 else None) line = fp.readline().rstrip() # Timestamp, unused in present application if not line.startswith(b'@'): raise IOError('Unrecognised timestamp in ' + survex_3d) # timestamp = int(line[1:]) flag = ord(fp.read(1)) # file-wide flag if flag & 0x80: # abort if extended elevation raise IOError("Can't deal with extended elevation in " + survex_3d) # All file-wide header data read in, now read byte-wise # according to .3d spec. Note that all elements must # be processed, in order, otherwise we get out of sync. # We first define some baseline dates date0 = QDate(1900, 1, 1) date1 = QDate(1900, 1, 1) date2 = QDate(1900, 1, 1) label, style = '', 0xff # initialise label and style legs = [] # will be used to capture leg data between MOVEs xsect = [] # will be used to capture XSECT data nlehv = None # .. remains None if there isn't any error data... while True: # start of byte-gobbling while loop char = fp.read(1) if not char: # End of file (reached prematurely?) raise IOError('Premature end of file in ' + survex_3d) byte = ord(char) if byte <= 0x05: # STYLE if byte == 0x00 and style == 0x00: # this signals end of data if legs: # there may be a pending list of legs to save self.leg_list.append((legs, nlehv)) break # escape from byte-gobbling while loop else: style = byte elif byte <= 0x0e: # Reserved continue elif byte == 0x0f: # MOVE xyz = self.read_xyz(fp) if legs: self.leg_list.append((legs, nlehv)) legs = [] elif byte == 0x10: # DATE (none) date1 = date2 = date0 elif byte == 0x11: # DATE (single date) days = unpack(' 0: dx, dy, dz = x - xp, y - yp, z - zp dh2 = dx*dx + dy*dy # integer horizontal displacement (mm^2) norm = sqrt(dh2 + dz*dz) if use_clino_wgt else sqrt(dh2) dx, dy = (dx/norm, dy/norm) if dh2 > 0 and norm > 0 else (0, 0) direction.append((dx, dy)) xp, yp, zp = x, y, z left_wall = [] right_wall = [] up_down = [] # We build the walls by walking through the list # of stations and directions, with simple defaults # for the start and end stations for i, (x, y, z, l, r, u, d) in enumerate(centerline): d1x, d1y = direction[i-1] if i > 0 else (0, 0) d2x, d2y = direction[i] if i+1 < len(centerline) else (0, 0) dx, dy = d1x+d2x, d1y+d2y # mean (sum of) direction vectors norm = sqrt(dx*dx + dy*dy) # normalise to unit vector ex, ey = (dx/norm, dy/norm) if norm > 0 else (0, 0) # Convert to metres when saving the points left_wall.append((0.01*(x-l*ey), 0.01*(y+l*ex), 0.01*z)) right_wall.append((0.01*(x+r*ey), 0.01*(y-r*ex), 0.01*z)) up_down.append((0.01*u, 0.01*d)) # Mean elevation of centerline, used for elevation attribute elev = 0.01 * sum([xyzlrud[2] for xyzlrud in centerline]) / len(centerline) attrs = [round(elev, 2)] # Now create the feature sets - first the centerline traverse points = [] for xyzlrud in centerline: xyz = [0.01*v for v in xyzlrud[0:3]] # These were mm, convert to metres points.append(QgsPoint(*xyz)) linestring = QgsLineString() linestring.setPoints(points) feat = QgsFeature() geom = QgsGeometry(linestring) feat.setGeometry(geom) feat.setAttributes(attrs) trav_features.append(feat) # The walls as line strings for wall in (left_wall, right_wall): points = [QgsPoint(*xyz) for xyz in wall] linestring = QgsLineString() linestring.setPoints(points) feat = QgsFeature() geom = QgsGeometry(linestring) feat.setGeometry(geom) feat.setAttributes(attrs) wall_features.append(feat) # Slightly more elaborate, pair up points on left # and right walls, and build a cross section as a # 2-point line string, and a quadrilateral polygon # with a closed 5-point line string for the # exterior ring. Note that QGIS polygons are # supposed to have their points ordered clockwise. for i, xyz_pair in enumerate(zip(left_wall, right_wall)): elev = 0.01 * centerline[i][2] # elevation of station in centerline attrs = [round(elev, 2)] points = [QgsPoint(*xyz) for xyz in xyz_pair] linestring = QgsLineString() linestring.setPoints(points) feat = QgsFeature() geom = QgsGeometry(linestring) feat.setGeometry(geom) feat.setAttributes(attrs) xsect_features.append(feat) if i > 0: elev = 0.5*(prev_xyz_pair[0][2] + xyz_pair[0][2]) # average elevation attrs = [round(elev, 2)] if include_up_down: # average up / down attrs += [ 0.5*(v1+v2) for (v1, v2) in zip(up_down[i-1], up_down[i]) ] points = [] # will contain the exterior 5-point ring, as follows... for xyz in tuple(reversed(prev_xyz_pair)) + xyz_pair + (prev_xyz_pair[1],): points.append(QgsPoint(*xyz)) linestring = QgsLineString() linestring.setPoints(points) polygon = QgsPolygon() polygon.setExteriorRing(linestring) feat = QgsFeature() geom = QgsGeometry(polygon) feat.setGeometry(geom) feat.setAttributes(attrs) quad_features.append(feat) prev_xyz_pair = xyz_pair # End of processing xsect_list - now add features to requested layers attrs = [QgsField('ELEVATION', QVariant.Double)] # common to all if include_traverses and trav_features: # traverse layer travs_layer = self.add_layer('traverses', 'LineStringZ') travs_layer.dataProvider().addAttributes(attrs) travs_layer.updateFields() travs_layer.dataProvider().addFeatures(trav_features) layers.append(travs_layer) if include_xsections and xsect_features: # xsection layer xsects_layer = self.add_layer('xsections', 'LineStringZ') xsects_layer.dataProvider().addAttributes(attrs) xsects_layer.updateFields() xsects_layer.dataProvider().addFeatures(xsect_features) layers.append(xsects_layer) if include_walls and wall_features: # wall layer walls_layer = self.add_layer('walls', 'LineStringZ') walls_layer.dataProvider().addAttributes(attrs) walls_layer.updateFields() walls_layer.dataProvider().addFeatures(wall_features) layers.append(walls_layer) if include_up_down: # add fields if requested for polygons attrs += [QgsField(s, QVariant.Double) for s in ('MEAN_UP', 'MEAN_DOWN')] if include_polygons and quad_features: # polygon layer quads_layer = self.add_layer('polygons', 'PolygonZ') quads_layer.dataProvider().addAttributes(attrs) quads_layer.updateFields() quads_layer.dataProvider().addFeatures(quad_features) layers.append(quads_layer) # All layers have been created, now update extents and add to QGIS registry if layers: [ layer.updateExtents() for layer in layers ] QgsProject.instance().addMapLayers(layers) # Write to GeoPackage if requested if gpkg_file: opts = [QgsVectorFileWriter.CreateOrOverwriteFile, QgsVectorFileWriter.CreateOrOverwriteLayer] for i, layer in enumerate(layers): options = QgsVectorFileWriter.SaveVectorOptions() options.actionOnExistingFile = opts[int(i > 0)] # create file or layer layer_name = layer.name() match = search(' - ([a-z]*)', layer_name) # ie, extract 'legs', 'stations', etc options.layerName = str(match.group(1)) if match else layer_name writer = QgsVectorFileWriter.writeAsVectorFormat(layer, gpkg_file, options) if writer: msg = "'{}' -> {} in {}".format(layer_name, options.layerName, gpkg_file) QgsMessageLog.logMessage(msg, tag='Import .3d', level=Qgis.Info) options, writer = None, None # End of 'if result:' (what happens if user pressed OK) # End of run function definition # That's it qgis3-survex-import-1.2/survex_import/survex_import_dialog.py0000664000175000017500000000400613614350061024426 0ustar wookeywookey# -*- coding: utf-8 -*- """ /*************************************************************************** SurvexImportDialog A QGIS plugin Import features from survex .3d files Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/ ------------------- begin : 2019-05-03 git sha : $Format:%H$ copyright : (C) 2019 by Patrick B Warren email : patrickbwarren@gmail.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ """ import os from PyQt5 import uic from PyQt5 import QtWidgets # This loads your .ui file so that PyQt can populate your plugin with the elements from Qt Designer FORM_CLASS, _ = uic.loadUiType(os.path.join( os.path.dirname(__file__), 'survex_import_dialog_base.ui')) class SurvexImportDialog(QtWidgets.QDialog, FORM_CLASS): def __init__(self, parent=None): """Constructor.""" super(SurvexImportDialog, self).__init__(parent) # Set up the user interface from Designer through FORM_CLASS. # After self.setupUi() you can access any designer object by doing # self., and you can use autoconnect slots - see # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html # #widgets-and-dialogs-with-auto-connect self.setupUi(self) qgis3-survex-import-1.2/survex_import/metadata.txt0000664000175000017500000000231013614350061022124 0ustar wookeywookey# This file contains metadata for the QGIS3 survex .3d import filter plugin. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # Copyright (2018-2020) Patrick B Warren (patrickbwarren@gmail.com) # See https://github.com/patrickbwarren/qgis3-survex-import # Mandatory items: [general] name=Import .3d file qgisMinimumVersion=3.0 description=Import features from survex .3d files version=1.2 author=Patrick B Warren email=patrickbwarren@gmail.com about=Import features into vector layers from a survex .3d file. tracker=https://github.com/patrickbwarren/qgis3-survex-import repository=https://github.com/patrickbwarren/qgis3-survex-import changelog=GitHub repository release versions 1.2 (current) - fixed CRS import methods 1.1 - minor updates, tagged for packaging 1.0 - migrated and updated from QGIS 2.18 plugin # Tags are comma separated with spaces allowed tags=python homepage=https://github.com/patrickbwarren/qgis3-survex-import category=Vector icon=icon.png experimental=False deprecated=False qgis3-survex-import-1.2/survex_import/survex_import_dialog_base.ui0000664000175000017500000002002713614350061025406 0ustar wookeywookey SurvexImportDialogBase 0 0 415 454 Survex Import 60 410 341 32 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok 10 40 311 16 Select a .3d file 350 60 31 23 ... 10 60 331 23 20 100 131 21 Import legs 20 130 171 21 Import stations 10 10 381 31 14 QGIS3 survex .3d import (version 1.0) 320 100 71 21 surface 150 100 61 21 splay 220 100 90 21 duplicate 320 130 71 21 surface 20 270 131 21 CRS from .3d file 120 200 61 21 Walls 20 230 141 21 Use clino weights 20 170 201 16 11 50 false Import passage data 200 200 121 21 XSections 310 200 131 21 Traverses 20 200 81 21 Polygons 20 300 271 21 Keep features from previous import(s) 20 360 321 23 Set destination folder 20 340 361 16 GeoPackage (.gpkg) file to save results (optional) 350 360 31 23 ... 200 230 141 21 Include up / down 200 270 181 21 CRS from QGIS project OK accepted() SurvexImportDialogBase accept() 20 20 20 20 OK rejected() SurvexImportDialogBase reject() 20 20 20 20