source: trunk/data/konvert/postnas_0.6/sichten.sql @ 106

Revision 105, 17.5 KB checked in by frank.jaeger, 13 years ago (diff)

Anpassung an PostNAS-Version 0.6:
Buchauskunft und Navigation: Formate des Feldes "lage" (Straßenschlüssel) werden gesteuert über einen neuen conf-Parameter $dbvers (05 oder 06).
Konverter-Scripte für PostNAS 0.6 in einem neuen Ordner.

Line 
1-- =====
2-- ALKIS
3-- =====
4
5--  PostNAS 0.6
6
7--  2011-07-25 PostNAS 06, Umbenennung
8
9--  -----------------------------------------
10--  Sichten fuer Verwendung im mapfiles (wms)
11--  -----------------------------------------
12
13
14-- Layer "ag_t_flurstueck"
15-- -----------------------
16
17-- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck"
18-- Die Verbindung erfolgt ÃŒber "alkis_beziehungen"
19
20-- PostNAS 0.5, September 2010:
21--   Musterdaten RLP: zaehler-nenner steht auch in Feld "ap_pto.schriftinhalt"
22--   Lippe NRW:       Feld "ap_pto.schriftinhalt" ist leer. Label aus Tabelle "ax_flurstueck" entnehmen
23
24
25-- In einigen Gebieten enthÀlt das Feld "ap_pto.art"
26-- nicht den Wert 'ZAE_NEN' sondern 'urn:adv:fachdatenverbindung'.
27-- Die FlurstÃŒcksnummer fehlt dann im WMS.
28-- Die Bedingung vorÌbergehend heraus nehmen. Ursache klÀren!
29
30
31-- Bruchnummerierung erzeugen
32
33CREATE OR REPLACE VIEW s_flurstueck_nr
34AS
35 SELECT ap_pto.ogc_fid,
36        ap_pto.wkb_geometry,   -- Position des Textes
37    --  ax_flurstueck.flurstueckskennzeichen,   -- am Stueck, aufgefuellt, unpraktisch
38    --  ax_flurstueck.gemarkungsnummer,  -- integer
39    --  ax_flurstueck.flurnummer,        -- integer
40    --  ax_flurstueck.zaehler,           -- integer
41    --  ax_flurstueck.nenner,            -- integer oder NULL
42        ax_flurstueck.zaehler::text || COALESCE ('/' || ax_flurstueck.nenner::text, '') AS fsnum
43   FROM ap_pto
44   JOIN alkis_beziehungen
45     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
46   JOIN ax_flurstueck
47     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
48  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
49  --AND ap_pto.art = 'ZAE_NEN'
50  ;
51
52COMMENT ON VIEW s_flurstueck_nr IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck';
53
54
55-- Layer "ag_t_gebaeude"
56-- ---------------------
57
58-- In einigen Gebieten in Lippe enthÀlt das Feld "ap_pto.art"
59-- nicht den Wert 'HNR'. Die Hausnummer fehlt dann im WMS.
60-- Die Bedingung vorÌbergehend heraus nehmen. Ursache klÀren!
61
62CREATE OR REPLACE VIEW s_hausnummer_gebaeude
63AS
64 SELECT ap_pto.ogc_fid,
65        ap_pto.wkb_geometry,
66        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- umn: ANGLE [drehwinkel]
67        ax_lagebezeichnungmithausnummer.hausnummer  -- umn: LABELITEM
68   FROM ap_pto
69   JOIN alkis_beziehungen
70     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
71   JOIN ax_lagebezeichnungmithausnummer
72     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmithausnummer.gml_id
73  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
74
75COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude';
76
77
78
79-- Layer "ag_p_flurstueck"
80-- -----------------------
81
82CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck
83AS
84 SELECT ap_ppo.ogc_fid,
85        ap_ppo.wkb_geometry,
86        ap_ppo.drehwinkel * 57.296 + 90 AS drehwinkel,
87        ax_flurstueck.flurstueckskennzeichen
88   FROM ap_ppo
89   JOIN alkis_beziehungen
90     ON ap_ppo.gml_id = alkis_beziehungen.beziehung_von
91   JOIN ax_flurstueck
92     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
93  WHERE ap_ppo.art = 'Haken'
94    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
95
96COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck IS 'fuer Kartendarstellung';
97
98
99-- Layer "s_zuordungspfeil_flurstueck"
100-- -----------------------------------
101
102CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck
103AS
104 SELECT ap_lpo.ogc_fid,
105        ap_lpo.wkb_geometry
106   FROM ap_lpo
107   JOIN alkis_beziehungen
108     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
109   JOIN ax_flurstueck
110     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
111  WHERE ap_lpo.art = 'Pfeil'
112    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
113
114COMMENT ON VIEW s_zuordungspfeil_flurstueck IS 'fuer Kartendarstellung';
115
116
117-- Layer NAME "ap_pto" GROUP "praesentation"
118-- ----------------------------------------
119-- Texte, die nicht schon in einem anderen Layer ausgegeben werden
120
121CREATE OR REPLACE VIEW s_beschriftung
122AS
123  SELECT ap_pto.ogc_fid,
124      -- ap_pto.gml_id,
125         ap_pto.schriftinhalt,
126         ap_pto.art,
127         ap_pto.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
128         ap_pto.wkb_geometry
129    FROM ap_pto
130   WHERE not ap_pto.schriftinhalt IS NULL
131     AND art NOT IN ('ZAE_NEN', 'HNR')
132   ;
133--  IN ('FKT', 'Friedhof', 'urn:adv:fachdatenv')
134
135-- Diese IN-Liste fortschreiben bei Erweiterungen des Mapfiles
136
137-- Lippe: Der Wert 'ZAE_NEN' fehlt. Diese FÀlle anders identifizieren?
138
139COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden';
140
141--  ------------------------------------------
142--  Sichten fuer Fehlersuche und Daten-Analyse
143--  ------------------------------------------
144
145-- Zeigt die Texte an, die nicht in einem der Mapfile-Views verarbeitet werden
146CREATE OR REPLACE VIEW s_allgemeine_texte
147AS
148 SELECT ap_pto.ogc_fid,
149      --ap_pto.wkb_geometry,
150      --ap_pto.gml_id,
151        ap_pto.art,
152        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- * 180 / Pi
153        ap_pto.schriftinhalt
154   FROM ap_pto
155  WHERE NOT ap_pto.art = 'ZAE_NEN'
156    AND NOT ap_pto.art = 'HNR'
157    AND NOT ap_pto.art = 'FKT'
158    AND NOT ap_pto.art = 'Friedhof'
159    AND ap_pto.schriftinhalt IS NOT NULL;
160
161
162-- Analyse zu o.g. Fehler:
163--  Welche Inhalte kommen im Feld ap_pto.art vor?
164CREATE OR REPLACE VIEW ap_pto_arten
165AS
166  SELECT DISTINCT art
167    FROM ap_pto;
168
169
170-- Umbruch im Label?
171-- z.B. "Schwimm-/nbecken"
172-- Sind 2 Buchstaben in Mapfile bei "WRAP" möglich?
173CREATE OR REPLACE VIEW texte_mit_umbruch
174AS
175 SELECT ogc_fid, schriftinhalt, art
176   FROM ap_pto
177  WHERE not schriftinhalt is null
178    AND schriftinhalt like '%/n%';
179
180-- ... schriftinhalt like '%/%';
181-- RLP: FlurstÌcks-Bruchnummer art='ZAE_NEN' als Schriftinhalt (2 FÀlle)
182
183
184
185CREATE OR REPLACE VIEW s_allgemeine_texte_arten
186AS
187 SELECT DISTINCT art
188   FROM s_allgemeine_texte;
189
190-- dies liefert die Werte:
191--  Bahnverkehr, BWF, FKT_LGT, Fliessgewaesser, FreierText, Gewanne, NAM, Platz,
192--  StehendesGewaesser, Strasse, urn:adv:fachdatenv, Weg, ZNM
193
194
195
196-- EXTENT fÃŒr Mapfile eines Mandenten ermitteln
197
198CREATE OR REPLACE VIEW flurstuecks_minmax AS
199 SELECT min(st_xmin(wkb_geometry)) AS r_min,
200        min(st_ymin(wkb_geometry)) AS h_min,
201        max(st_xmax(wkb_geometry)) AS r_max,
202        max(st_ymax(wkb_geometry)) AS h_max
203   FROM public.ax_flurstueck;
204
205COMMENT ON VIEW flurstuecks_minmax IS 'Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile';
206
207
208
209-- Nach Laden der Keytables:
210
211-- MAP ALT:
212-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, artderfestlegung, name, bezeichnung, stelle, wkb_geometry FROM ax_bauraumoderbodenordnungsrecht) as foo using unique ogc_fid using SRID=25832"
213
214CREATE OR REPLACE VIEW baurecht
215AS
216  SELECT r.ogc_fid,
217         r.wkb_geometry,
218         r.gml_id,
219         r.artderfestlegung as adfkey, -- Art der Festlegung - Key
220         r."name",                     -- Eigenname des Gebietes
221         r.stelle,                     -- Stelle Key
222         r.bezeichnung AS rechtbez,    -- Verfahrensnummer
223         a.bezeichner  AS adfbez,      -- Art der Festlegung - Bezeichnung
224         d.bezeichnung AS stellbez     -- Stelle Bezeichnung
225      -- , d.stellenart                -- weiter entschluesseln?
226    FROM ax_bauraumoderbodenordnungsrecht r
227    LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a
228      ON r.artderfestlegung = a.wert
229    LEFT JOIN ax_dienststelle d
230      ON r.land = d.land AND r.stelle = d.stelle
231 ;
232
233-- MAP NEU:
234-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, adfkey, name, stelle, rechtbez, adfbez, stellbez, wkb_geometry FROM baurecht) as foo using unique ogc_fid using SRID=25832" # gespeicherter View
235
236
237-- Man glaubt es kaum, aber im ALKIS haben Gemeinde und Gemarkung keinerlei Beziehung miteinander
238-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt.
239
240CREATE OR REPLACE VIEW gemeinde_in_gemarkung
241AS
242  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
243  FROM            ax_flurstueck
244  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
245;
246
247COMMENT ON VIEW gemeinde_in_gemarkung IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
248
249
250-- Untersuchen, welche Geometrie-Typen vorkommen
251
252CREATE OR REPLACE VIEW arten_von_flurstuecksgeometrie
253AS
254 SELECT   count(gml_id) as anzahl,
255          st_geometrytype(wkb_geometry)
256 FROM     ax_flurstueck
257 GROUP BY st_geometrytype(wkb_geometry);
258
259-- Lage
260--   256 ST_MultiPolygon
261-- 23377 ST_Polygon
262
263-- RLP
264--    2 ST_MultiPolygon
265-- 2367 ST_Polygon
266
267
268-- A d r e s s e n
269
270-- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) fuer eine Gemeinde
271-- Schluessel der Gemeinde nach Bedarf anpassen!
272
273--  FEHLER: Funktion to_char(character varying, unknown) existiert nicht
274
275
276CREATE VIEW  adressen_hausnummern
277AS
278    SELECT
279        s.bezeichnung AS strassenname,
280         g.bezeichnung AS gemeindename,
281         l.land,
282         l.regierungsbezirk,
283         l.kreis,
284         l.gemeinde,
285         l.lage        AS strassenschluessel,
286         l.hausnummer
287    FROM   ax_lagebezeichnungmithausnummer l 
288    JOIN   ax_gemeinde g
289      ON l.kreis=g.kreis
290     AND l.gemeinde=g.gemeinde
291    JOIN   ax_lagebezeichnungkatalogeintrag s
292      ON l.kreis=s.kreis
293     AND l.gemeinde=s.gemeinde
294  -- AND to_char(l.lage, 'FM00000')=s.lage   -- PostNAS 0.5
295     AND l.lage = s.lage                     -- PostNAS 0.6
296    WHERE     l.gemeinde = 40;  -- "40" = Stadt Lage
297
298
299-- Zuordnung dieser Adressen zu Flurstuecken
300-- Schluessel der Gemeinde nach Bedarf anpassen!
301
302CREATE VIEW adressen_zum_flurstueck
303AS
304    SELECT
305           f.gemarkungsnummer,
306           f.flurnummer,
307           f.zaehler,
308           f.nenner,
309           g.bezeichnung AS gemeindename,
310           s.bezeichnung AS strassenname,
311           l.lage        AS strassenschluessel,
312           l.hausnummer
313      FROM   ax_flurstueck f
314      JOIN   alkis_beziehungen v
315        ON f.gml_id=v.beziehung_von
316      JOIN   ax_lagebezeichnungmithausnummer l 
317        ON l.gml_id=v.beziehung_zu
318      JOIN   ax_gemeinde g
319        ON l.kreis=g.kreis
320       AND l.gemeinde=g.gemeinde
321      JOIN   ax_lagebezeichnungkatalogeintrag s
322        ON l.kreis=s.kreis
323       AND l.gemeinde=s.gemeinde
324    -- AND to_char(l.lage, 'FM00000')=s.lage   -- PostNAS 0.5
325       AND l.lage = s.lage                     -- PostNAS 0.6
326     WHERE v.beziehungsart='weistAuf'
327       AND l.gemeinde = 40  -- "40" = Stadt Lage
328     ORDER BY
329           f.gemarkungsnummer,
330           f.flurnummer,
331           f.zaehler,
332           f.nenner;
333
334
335-- FlurstÃŒcke eines EigentÃŒmers
336-- ----------------------------
337
338-- Dieser View liefert nur die (einfache) Buchungsart "GrundstÃŒck"
339-- Solche FÀlle wie "Erbbaurecht an GrundstÌck" oder "Wohnungs-/Teileigentum an aufgeteiltes GrundstÌck"
340-- oder "Miteigentum an aufteteiltes GrundstÃŒck" fehlen in deisere Auswertung.
341-- Dazu siehe: "rechte_eines_eigentuemers".
342
343-- Das Ergbenis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation
344-- oder einer einfachen Datenbank.
345
346-- Auch ein Export als Shape ist moeglich (dafuer: geom hinzugefuegt, Feldnamen gekuerzt)
347-- Kommando:
348--  pgsql2shp -h localhost -p 5432 -f "/data/.../alkis_fs_gemeinde.shp"  [db-name]  public.flurstuecke_eines_eigentuemers
349
350-- Übersicht der Tabellen:
351--
352-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle >istGebucht> Flurstueck
353--                                              *-> Bezirk                *-> Buchungsart     *-> Gemarkung
354
355-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
356
357CREATE VIEW flurstuecke_eines_eigentuemers
358AS
359   SELECT
360      k.bezeichnung                AS gemarkung,
361      k.gemarkungsnummer           AS gemkg_nr,
362      f.flurnummer                 AS flur,
363      f.zaehler                    AS fs_zaehler,
364      f.nenner                     AS fs_nenner,
365      f.amtlicheflaeche            AS flaeche,
366      f.wkb_geometry               AS geom,  -- fuer Export als Shape
367   -- g.bezirk,
368      b.bezeichnung                AS bezirkname,
369      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
370      g.blattart,
371      s.laufendenummer             AS bvnr,
372      art.bezeichner               AS buchgsart,
373   -- s.zaehler || '/' || s.nenner AS buchg_anteil,
374      n.laufendenummernachdin1421  AS name_num,
375   -- n.zaehler || '/' || n.nenner AS nam_anteil,
376      p.nachnameoderfirma          AS nachname --,
377   -- p.vorname
378   FROM       ax_person              p
379        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
380        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
381        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
382        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
383        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
384        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
385        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von
386        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert
387        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id
388        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
389        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
390   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'   -- ** Bei Bedarf anpassen!
391     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
392     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
393     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch
394     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle
395   ORDER BY   
396         k.bezeichnung,
397         f.flurnummer,
398         f.zaehler,
399         f.nenner,
400         g.bezirk,
401         g.buchungsblattnummermitbuchstabenerweiterung,
402         s.laufendenummer
403;
404
405
406-- Rechte eines EigentÃŒmers
407-- ------------------------
408
409-- Dieser View sucht speziell die FÀlle wo eine Buchungsstelle ein Recht "an" einer anderen Buchungsstelle hat.
410--  - "Erbbaurecht *an* GrundstÃŒck"
411--  - "Wohnungs-/Teileigentum *an* Aufgeteiltes GrundstÃŒck"
412--  - "Miteigentum *an* Aufteteiltes GrundstÃŒck"
413-- Suchkriterium ist der Name des EigentÃŒmers auf dem "herrschenden" Grundbuch, also dem Besitzer des Rechtes.
414
415-- Diese FÀlle fehlen im View "flurstuecke_eines_eigentuemers".
416
417-- Übersicht der Tabellen:
418--
419-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle-h >an> Stelle-d >istGebucht> Flurstueck
420--
421
422-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
423
424
425CREATE VIEW rechte_eines_eigentuemers
426AS
427   SELECT
428      k.bezeichnung                AS gemarkung,
429      k.gemarkungsnummer           AS gemkg_nr,
430      f.flurnummer                 AS flur,
431      f.zaehler                    AS fs_zaehler,
432      f.nenner                     AS fs_nenner,
433      f.amtlicheflaeche            AS flaeche,
434      f.wkb_geometry               AS geom,  -- fuer Export als Shape
435   -- g.bezirk,
436      b.bezeichnung                AS bezirkname,
437      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
438   -- g.blattart,
439      sh.laufendenummer            AS bvnr_herr,
440      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr,
441      arth.bezeichner              AS buchgsa_herr,
442      bss.beziehungsart            AS bez_art,
443      artd.bezeichner              AS buchgsa_dien,
444      sd.laufendenummer            AS bvnr_dien,
445   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien,
446      n.laufendenummernachdin1421  AS name_num,
447   -- n.zaehler || '/' || n.nenner AS nam_anteil,
448      p.nachnameoderfirma          AS nachname --, 
449   -- p.vorname
450   FROM       ax_person              p
451        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
452        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
453        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
454        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
455        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
456        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
457        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von  -- herrschende Buchung
458        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert
459        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von
460        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu   -- dienende Buchung
461        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert
462        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id
463        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
464        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
465   WHERE p.nachnameoderfirma LIKE 'Stadt %'   -- ** Bei Bedarf anpassen!
466     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
467     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
468     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch
469     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien.
470     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien
471   ORDER BY   
472         k.bezeichnung,
473         f.flurnummer,
474         f.zaehler,
475         f.nenner,
476         g.bezirk,
477         g.buchungsblattnummermitbuchstabenerweiterung,
478         sh.laufendenummer
479;
480
481-- END --
482
Note: See TracBrowser for help on using the repository browser.