1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME COMPONENTS -- 4-- -- 5-- A D A . C H A R A C T E R S . W I D E _ W I D E _ L A T I N _ 1 -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 1992-2018, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. -- 17-- -- 18-- As a special exception under Section 7 of GPL version 3, you are granted -- 19-- additional permissions described in the GCC Runtime Library Exception, -- 20-- version 3.1, as published by the Free Software Foundation. -- 21-- -- 22-- You should have received a copy of the GNU General Public License and -- 23-- a copy of the GCC Runtime Library Exception along with this program; -- 24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 25-- <http://www.gnu.org/licenses/>. -- 26-- -- 27-- GNAT was originally developed by the GNAT team at New York University. -- 28-- Extensive contributions were provided by Ada Core Technologies Inc. -- 29-- -- 30------------------------------------------------------------------------------ 31 32-- This package provides definitions analogous to those in the RM defined 33-- package Ada.Characters.Latin_1 except that the type of the constants 34-- is Wide_Wide_Character instead of Character. The provision of this package 35-- is in accordance with the implementation permission in RM (A.3.3(27)). 36 37package Ada.Characters.Wide_Wide_Latin_1 is 38 pragma Pure; 39 40 ------------------------ 41 -- Control Characters -- 42 ------------------------ 43 44 NUL : constant Wide_Wide_Character := Wide_Wide_Character'Val (0); 45 SOH : constant Wide_Wide_Character := Wide_Wide_Character'Val (1); 46 STX : constant Wide_Wide_Character := Wide_Wide_Character'Val (2); 47 ETX : constant Wide_Wide_Character := Wide_Wide_Character'Val (3); 48 EOT : constant Wide_Wide_Character := Wide_Wide_Character'Val (4); 49 ENQ : constant Wide_Wide_Character := Wide_Wide_Character'Val (5); 50 ACK : constant Wide_Wide_Character := Wide_Wide_Character'Val (6); 51 BEL : constant Wide_Wide_Character := Wide_Wide_Character'Val (7); 52 BS : constant Wide_Wide_Character := Wide_Wide_Character'Val (8); 53 HT : constant Wide_Wide_Character := Wide_Wide_Character'Val (9); 54 LF : constant Wide_Wide_Character := Wide_Wide_Character'Val (10); 55 VT : constant Wide_Wide_Character := Wide_Wide_Character'Val (11); 56 FF : constant Wide_Wide_Character := Wide_Wide_Character'Val (12); 57 CR : constant Wide_Wide_Character := Wide_Wide_Character'Val (13); 58 SO : constant Wide_Wide_Character := Wide_Wide_Character'Val (14); 59 SI : constant Wide_Wide_Character := Wide_Wide_Character'Val (15); 60 61 DLE : constant Wide_Wide_Character := Wide_Wide_Character'Val (16); 62 DC1 : constant Wide_Wide_Character := Wide_Wide_Character'Val (17); 63 DC2 : constant Wide_Wide_Character := Wide_Wide_Character'Val (18); 64 DC3 : constant Wide_Wide_Character := Wide_Wide_Character'Val (19); 65 DC4 : constant Wide_Wide_Character := Wide_Wide_Character'Val (20); 66 NAK : constant Wide_Wide_Character := Wide_Wide_Character'Val (21); 67 SYN : constant Wide_Wide_Character := Wide_Wide_Character'Val (22); 68 ETB : constant Wide_Wide_Character := Wide_Wide_Character'Val (23); 69 CAN : constant Wide_Wide_Character := Wide_Wide_Character'Val (24); 70 EM : constant Wide_Wide_Character := Wide_Wide_Character'Val (25); 71 SUB : constant Wide_Wide_Character := Wide_Wide_Character'Val (26); 72 ESC : constant Wide_Wide_Character := Wide_Wide_Character'Val (27); 73 FS : constant Wide_Wide_Character := Wide_Wide_Character'Val (28); 74 GS : constant Wide_Wide_Character := Wide_Wide_Character'Val (29); 75 RS : constant Wide_Wide_Character := Wide_Wide_Character'Val (30); 76 US : constant Wide_Wide_Character := Wide_Wide_Character'Val (31); 77 78 ------------------------------------- 79 -- ISO 646 Graphic Wide_Wide_Characters -- 80 ------------------------------------- 81 82 Space : constant Wide_Wide_Character := ' '; -- WC'Val(32) 83 Exclamation : constant Wide_Wide_Character := '!'; -- WC'Val(33) 84 Quotation : constant Wide_Wide_Character := '"'; -- WC'Val(34) 85 Number_Sign : constant Wide_Wide_Character := '#'; -- WC'Val(35) 86 Dollar_Sign : constant Wide_Wide_Character := '$'; -- WC'Val(36) 87 Percent_Sign : constant Wide_Wide_Character := '%'; -- WC'Val(37) 88 Ampersand : constant Wide_Wide_Character := '&'; -- WC'Val(38) 89 Apostrophe : constant Wide_Wide_Character := '''; -- WC'Val(39) 90 Left_Parenthesis : constant Wide_Wide_Character := '('; -- WC'Val(40) 91 Right_Parenthesis : constant Wide_Wide_Character := ')'; -- WC'Val(41) 92 Asterisk : constant Wide_Wide_Character := '*'; -- WC'Val(42) 93 Plus_Sign : constant Wide_Wide_Character := '+'; -- WC'Val(43) 94 Comma : constant Wide_Wide_Character := ','; -- WC'Val(44) 95 Hyphen : constant Wide_Wide_Character := '-'; -- WC'Val(45) 96 Minus_Sign : Wide_Wide_Character renames Hyphen; 97 Full_Stop : constant Wide_Wide_Character := '.'; -- WC'Val(46) 98 Solidus : constant Wide_Wide_Character := '/'; -- WC'Val(47) 99 100 -- Decimal digits '0' though '9' are at positions 48 through 57 101 102 Colon : constant Wide_Wide_Character := ':'; -- WC'Val(58) 103 Semicolon : constant Wide_Wide_Character := ';'; -- WC'Val(59) 104 Less_Than_Sign : constant Wide_Wide_Character := '<'; -- WC'Val(60) 105 Equals_Sign : constant Wide_Wide_Character := '='; -- WC'Val(61) 106 Greater_Than_Sign : constant Wide_Wide_Character := '>'; -- WC'Val(62) 107 Question : constant Wide_Wide_Character := '?'; -- WC'Val(63) 108 109 Commercial_At : constant Wide_Wide_Character := '@'; -- WC'Val(64) 110 111 -- Letters 'A' through 'Z' are at positions 65 through 90 112 113 Left_Square_Bracket : constant Wide_Wide_Character := '['; -- WC'Val (91) 114 Reverse_Solidus : constant Wide_Wide_Character := '\'; -- WC'Val (92) 115 Right_Square_Bracket : constant Wide_Wide_Character := ']'; -- WC'Val (93) 116 Circumflex : constant Wide_Wide_Character := '^'; -- WC'Val (94) 117 Low_Line : constant Wide_Wide_Character := '_'; -- WC'Val (95) 118 119 Grave : constant Wide_Wide_Character := '`'; -- WC'Val (96) 120 LC_A : constant Wide_Wide_Character := 'a'; -- WC'Val (97) 121 LC_B : constant Wide_Wide_Character := 'b'; -- WC'Val (98) 122 LC_C : constant Wide_Wide_Character := 'c'; -- WC'Val (99) 123 LC_D : constant Wide_Wide_Character := 'd'; -- WC'Val (100) 124 LC_E : constant Wide_Wide_Character := 'e'; -- WC'Val (101) 125 LC_F : constant Wide_Wide_Character := 'f'; -- WC'Val (102) 126 LC_G : constant Wide_Wide_Character := 'g'; -- WC'Val (103) 127 LC_H : constant Wide_Wide_Character := 'h'; -- WC'Val (104) 128 LC_I : constant Wide_Wide_Character := 'i'; -- WC'Val (105) 129 LC_J : constant Wide_Wide_Character := 'j'; -- WC'Val (106) 130 LC_K : constant Wide_Wide_Character := 'k'; -- WC'Val (107) 131 LC_L : constant Wide_Wide_Character := 'l'; -- WC'Val (108) 132 LC_M : constant Wide_Wide_Character := 'm'; -- WC'Val (109) 133 LC_N : constant Wide_Wide_Character := 'n'; -- WC'Val (110) 134 LC_O : constant Wide_Wide_Character := 'o'; -- WC'Val (111) 135 LC_P : constant Wide_Wide_Character := 'p'; -- WC'Val (112) 136 LC_Q : constant Wide_Wide_Character := 'q'; -- WC'Val (113) 137 LC_R : constant Wide_Wide_Character := 'r'; -- WC'Val (114) 138 LC_S : constant Wide_Wide_Character := 's'; -- WC'Val (115) 139 LC_T : constant Wide_Wide_Character := 't'; -- WC'Val (116) 140 LC_U : constant Wide_Wide_Character := 'u'; -- WC'Val (117) 141 LC_V : constant Wide_Wide_Character := 'v'; -- WC'Val (118) 142 LC_W : constant Wide_Wide_Character := 'w'; -- WC'Val (119) 143 LC_X : constant Wide_Wide_Character := 'x'; -- WC'Val (120) 144 LC_Y : constant Wide_Wide_Character := 'y'; -- WC'Val (121) 145 LC_Z : constant Wide_Wide_Character := 'z'; -- WC'Val (122) 146 Left_Curly_Bracket : constant Wide_Wide_Character := '{'; -- WC'Val (123) 147 Vertical_Line : constant Wide_Wide_Character := '|'; -- WC'Val (124) 148 Right_Curly_Bracket : constant Wide_Wide_Character := '}'; -- WC'Val (125) 149 Tilde : constant Wide_Wide_Character := '~'; -- WC'Val (126) 150 DEL : constant Wide_Wide_Character := 151 Wide_Wide_Character'Val (127); 152 153 -------------------------------------- 154 -- ISO 6429 Control Wide_Wide_Characters -- 155 -------------------------------------- 156 157 IS4 : Wide_Wide_Character renames FS; 158 IS3 : Wide_Wide_Character renames GS; 159 IS2 : Wide_Wide_Character renames RS; 160 IS1 : Wide_Wide_Character renames US; 161 162 Reserved_128 163 : constant Wide_Wide_Character := Wide_Wide_Character'Val (128); 164 Reserved_129 165 : constant Wide_Wide_Character := Wide_Wide_Character'Val (129); 166 BPH : constant Wide_Wide_Character := Wide_Wide_Character'Val (130); 167 NBH : constant Wide_Wide_Character := Wide_Wide_Character'Val (131); 168 Reserved_132 169 : constant Wide_Wide_Character := Wide_Wide_Character'Val (132); 170 NEL : constant Wide_Wide_Character := Wide_Wide_Character'Val (133); 171 SSA : constant Wide_Wide_Character := Wide_Wide_Character'Val (134); 172 ESA : constant Wide_Wide_Character := Wide_Wide_Character'Val (135); 173 HTS : constant Wide_Wide_Character := Wide_Wide_Character'Val (136); 174 HTJ : constant Wide_Wide_Character := Wide_Wide_Character'Val (137); 175 VTS : constant Wide_Wide_Character := Wide_Wide_Character'Val (138); 176 PLD : constant Wide_Wide_Character := Wide_Wide_Character'Val (139); 177 PLU : constant Wide_Wide_Character := Wide_Wide_Character'Val (140); 178 RI : constant Wide_Wide_Character := Wide_Wide_Character'Val (141); 179 SS2 : constant Wide_Wide_Character := Wide_Wide_Character'Val (142); 180 SS3 : constant Wide_Wide_Character := Wide_Wide_Character'Val (143); 181 182 DCS : constant Wide_Wide_Character := Wide_Wide_Character'Val (144); 183 PU1 : constant Wide_Wide_Character := Wide_Wide_Character'Val (145); 184 PU2 : constant Wide_Wide_Character := Wide_Wide_Character'Val (146); 185 STS : constant Wide_Wide_Character := Wide_Wide_Character'Val (147); 186 CCH : constant Wide_Wide_Character := Wide_Wide_Character'Val (148); 187 MW : constant Wide_Wide_Character := Wide_Wide_Character'Val (149); 188 SPA : constant Wide_Wide_Character := Wide_Wide_Character'Val (150); 189 EPA : constant Wide_Wide_Character := Wide_Wide_Character'Val (151); 190 191 SOS : constant Wide_Wide_Character := Wide_Wide_Character'Val (152); 192 Reserved_153 193 : constant Wide_Wide_Character := Wide_Wide_Character'Val (153); 194 SCI : constant Wide_Wide_Character := Wide_Wide_Character'Val (154); 195 CSI : constant Wide_Wide_Character := Wide_Wide_Character'Val (155); 196 ST : constant Wide_Wide_Character := Wide_Wide_Character'Val (156); 197 OSC : constant Wide_Wide_Character := Wide_Wide_Character'Val (157); 198 PM : constant Wide_Wide_Character := Wide_Wide_Character'Val (158); 199 APC : constant Wide_Wide_Character := Wide_Wide_Character'Val (159); 200 201 ----------------------------------- 202 -- Other Graphic Wide_Wide_Characters -- 203 ----------------------------------- 204 205 -- Wide_Wide_Character positions 160 (16#A0#) .. 175 (16#AF#) 206 207 No_Break_Space 208 : constant Wide_Wide_Character := Wide_Wide_Character'Val (160); 209 NBSP : Wide_Wide_Character renames No_Break_Space; 210 Inverted_Exclamation 211 : constant Wide_Wide_Character := Wide_Wide_Character'Val (161); 212 Cent_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (162); 213 Pound_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (163); 214 Currency_Sign 215 : constant Wide_Wide_Character := Wide_Wide_Character'Val (164); 216 Yen_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (165); 217 Broken_Bar : constant Wide_Wide_Character := Wide_Wide_Character'Val (166); 218 Section_Sign 219 : constant Wide_Wide_Character := Wide_Wide_Character'Val (167); 220 Diaeresis : constant Wide_Wide_Character := Wide_Wide_Character'Val (168); 221 Copyright_Sign 222 : constant Wide_Wide_Character := Wide_Wide_Character'Val (169); 223 Feminine_Ordinal_Indicator 224 : constant Wide_Wide_Character := Wide_Wide_Character'Val (170); 225 Left_Angle_Quotation 226 : constant Wide_Wide_Character := Wide_Wide_Character'Val (171); 227 Not_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (172); 228 Soft_Hyphen : constant Wide_Wide_Character := Wide_Wide_Character'Val (173); 229 Registered_Trade_Mark_Sign 230 : constant Wide_Wide_Character := Wide_Wide_Character'Val (174); 231 Macron : constant Wide_Wide_Character := Wide_Wide_Character'Val (175); 232 233 -- Wide_Wide_Character positions 176 (16#B0#) .. 191 (16#BF#) 234 235 Degree_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (176); 236 Ring_Above : Wide_Wide_Character renames Degree_Sign; 237 Plus_Minus_Sign 238 : constant Wide_Wide_Character := Wide_Wide_Character'Val (177); 239 Superscript_Two 240 : constant Wide_Wide_Character := Wide_Wide_Character'Val (178); 241 Superscript_Three 242 : constant Wide_Wide_Character := Wide_Wide_Character'Val (179); 243 Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (180); 244 Micro_Sign : constant Wide_Wide_Character := Wide_Wide_Character'Val (181); 245 Pilcrow_Sign 246 : constant Wide_Wide_Character := Wide_Wide_Character'Val (182); 247 Paragraph_Sign 248 : Wide_Wide_Character renames Pilcrow_Sign; 249 Middle_Dot : constant Wide_Wide_Character := Wide_Wide_Character'Val (183); 250 Cedilla : constant Wide_Wide_Character := Wide_Wide_Character'Val (184); 251 Superscript_One 252 : constant Wide_Wide_Character := Wide_Wide_Character'Val (185); 253 Masculine_Ordinal_Indicator 254 : constant Wide_Wide_Character := Wide_Wide_Character'Val (186); 255 Right_Angle_Quotation 256 : constant Wide_Wide_Character := Wide_Wide_Character'Val (187); 257 Fraction_One_Quarter 258 : constant Wide_Wide_Character := Wide_Wide_Character'Val (188); 259 Fraction_One_Half 260 : constant Wide_Wide_Character := Wide_Wide_Character'Val (189); 261 Fraction_Three_Quarters 262 : constant Wide_Wide_Character := Wide_Wide_Character'Val (190); 263 Inverted_Question 264 : constant Wide_Wide_Character := Wide_Wide_Character'Val (191); 265 266 -- Wide_Wide_Character positions 192 (16#C0#) .. 207 (16#CF#) 267 268 UC_A_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (192); 269 UC_A_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (193); 270 UC_A_Circumflex 271 : constant Wide_Wide_Character := Wide_Wide_Character'Val (194); 272 UC_A_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (195); 273 UC_A_Diaeresis 274 : constant Wide_Wide_Character := Wide_Wide_Character'Val (196); 275 UC_A_Ring : constant Wide_Wide_Character := Wide_Wide_Character'Val (197); 276 UC_AE_Diphthong 277 : constant Wide_Wide_Character := Wide_Wide_Character'Val (198); 278 UC_C_Cedilla 279 : constant Wide_Wide_Character := Wide_Wide_Character'Val (199); 280 UC_E_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (200); 281 UC_E_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (201); 282 UC_E_Circumflex 283 : constant Wide_Wide_Character := Wide_Wide_Character'Val (202); 284 UC_E_Diaeresis 285 : constant Wide_Wide_Character := Wide_Wide_Character'Val (203); 286 UC_I_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (204); 287 UC_I_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (205); 288 UC_I_Circumflex 289 : constant Wide_Wide_Character := Wide_Wide_Character'Val (206); 290 UC_I_Diaeresis 291 : constant Wide_Wide_Character := Wide_Wide_Character'Val (207); 292 293 -- Wide_Wide_Character positions 208 (16#D0#) .. 223 (16#DF#) 294 295 UC_Icelandic_Eth 296 : constant Wide_Wide_Character := Wide_Wide_Character'Val (208); 297 UC_N_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (209); 298 UC_O_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (210); 299 UC_O_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (211); 300 UC_O_Circumflex 301 : constant Wide_Wide_Character := Wide_Wide_Character'Val (212); 302 UC_O_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (213); 303 UC_O_Diaeresis 304 : constant Wide_Wide_Character := Wide_Wide_Character'Val (214); 305 Multiplication_Sign 306 : constant Wide_Wide_Character := Wide_Wide_Character'Val (215); 307 UC_O_Oblique_Stroke 308 : constant Wide_Wide_Character := Wide_Wide_Character'Val (216); 309 UC_U_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (217); 310 UC_U_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (218); 311 UC_U_Circumflex 312 : constant Wide_Wide_Character := Wide_Wide_Character'Val (219); 313 UC_U_Diaeresis 314 : constant Wide_Wide_Character := Wide_Wide_Character'Val (220); 315 UC_Y_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (221); 316 UC_Icelandic_Thorn 317 : constant Wide_Wide_Character := Wide_Wide_Character'Val (222); 318 LC_German_Sharp_S 319 : constant Wide_Wide_Character := Wide_Wide_Character'Val (223); 320 321 -- Wide_Wide_Character positions 224 (16#E0#) .. 239 (16#EF#) 322 323 LC_A_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (224); 324 LC_A_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (225); 325 LC_A_Circumflex 326 : constant Wide_Wide_Character := Wide_Wide_Character'Val (226); 327 LC_A_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (227); 328 LC_A_Diaeresis 329 : constant Wide_Wide_Character := Wide_Wide_Character'Val (228); 330 LC_A_Ring : constant Wide_Wide_Character := Wide_Wide_Character'Val (229); 331 LC_AE_Diphthong 332 : constant Wide_Wide_Character := Wide_Wide_Character'Val (230); 333 LC_C_Cedilla 334 : constant Wide_Wide_Character := Wide_Wide_Character'Val (231); 335 LC_E_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (232); 336 LC_E_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (233); 337 LC_E_Circumflex 338 : constant Wide_Wide_Character := Wide_Wide_Character'Val (234); 339 LC_E_Diaeresis 340 : constant Wide_Wide_Character := Wide_Wide_Character'Val (235); 341 LC_I_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (236); 342 LC_I_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (237); 343 LC_I_Circumflex 344 : constant Wide_Wide_Character := Wide_Wide_Character'Val (238); 345 LC_I_Diaeresis 346 : constant Wide_Wide_Character := Wide_Wide_Character'Val (239); 347 348 -- Wide_Wide_Character positions 240 (16#F0#) .. 255 (16#FF) 349 350 LC_Icelandic_Eth 351 : constant Wide_Wide_Character := Wide_Wide_Character'Val (240); 352 LC_N_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (241); 353 LC_O_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (242); 354 LC_O_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (243); 355 LC_O_Circumflex 356 : constant Wide_Wide_Character := Wide_Wide_Character'Val (244); 357 LC_O_Tilde : constant Wide_Wide_Character := Wide_Wide_Character'Val (245); 358 LC_O_Diaeresis 359 : constant Wide_Wide_Character := Wide_Wide_Character'Val (246); 360 Division_Sign 361 : constant Wide_Wide_Character := Wide_Wide_Character'Val (247); 362 LC_O_Oblique_Stroke 363 : constant Wide_Wide_Character := Wide_Wide_Character'Val (248); 364 LC_U_Grave : constant Wide_Wide_Character := Wide_Wide_Character'Val (249); 365 LC_U_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (250); 366 LC_U_Circumflex 367 : constant Wide_Wide_Character := Wide_Wide_Character'Val (251); 368 LC_U_Diaeresis 369 : constant Wide_Wide_Character := Wide_Wide_Character'Val (252); 370 LC_Y_Acute : constant Wide_Wide_Character := Wide_Wide_Character'Val (253); 371 LC_Icelandic_Thorn 372 : constant Wide_Wide_Character := Wide_Wide_Character'Val (254); 373 LC_Y_Diaeresis 374 : constant Wide_Wide_Character := Wide_Wide_Character'Val (255); 375 376end Ada.Characters.Wide_Wide_Latin_1; 377