author | sl |
Thu, 01 Jan 2015 23:35:49 +0100 | |
changeset 405 | 5715aefd2bcc |
parent 344 | 3145aadca3d2 |
permissions | -rw-r--r-- |
moel@328 | 1 |
/* |
moel@328 | 2 |
|
moel@344 | 3 |
This Source Code Form is subject to the terms of the Mozilla Public |
moel@344 | 4 |
License, v. 2.0. If a copy of the MPL was not distributed with this |
moel@344 | 5 |
file, You can obtain one at http://mozilla.org/MPL/2.0/. |
moel@328 | 6 |
|
moel@358 | 7 |
Copyright (C) 2011-2012 Michael Möller <mmoeller@openhardwaremonitor.org> |
moel@344 | 8 |
Copyright (C) 2011 Roland Reinl <roland-reinl@gmx.de> |
moel@344 | 9 |
|
moel@328 | 10 |
*/ |
moel@328 | 11 |
|
moel@328 | 12 |
namespace OpenHardwareMonitor.Hardware.HDD { |
moel@328 | 13 |
/// <summary> |
moel@328 | 14 |
/// Localization class for SMART attribute names. |
moel@328 | 15 |
/// </summary> |
moel@328 | 16 |
internal static class SmartNames { |
moel@328 | 17 |
|
moel@328 | 18 |
public static string AirflowTemperature { |
moel@328 | 19 |
get { return "Airflow Temperature"; } |
moel@328 | 20 |
} |
moel@328 | 21 |
|
moel@328 | 22 |
public static string Temperature { |
moel@328 | 23 |
get { return "Temperature"; } |
moel@328 | 24 |
} |
moel@328 | 25 |
|
moel@328 | 26 |
public static string RetiredBlockCount { |
moel@328 | 27 |
get { return "Retired Block Count"; } |
moel@328 | 28 |
} |
moel@328 | 29 |
|
moel@328 | 30 |
public static string ProgramFailCount { |
moel@328 | 31 |
get { return "Program Fail Count"; } |
moel@328 | 32 |
} |
moel@328 | 33 |
|
moel@328 | 34 |
public static string EraseFailCount { |
moel@328 | 35 |
get { return "Erase Fail Count"; } |
moel@328 | 36 |
} |
moel@328 | 37 |
|
moel@328 | 38 |
public static string UnexpectedPowerLossCount { |
moel@328 | 39 |
get { return "Unexpected Power Loss Count"; } |
moel@328 | 40 |
} |
moel@328 | 41 |
|
moel@328 | 42 |
public static string WearRangeDelta { |
moel@328 | 43 |
get { return "Wear Range Delta"; } |
moel@328 | 44 |
} |
moel@328 | 45 |
|
moel@328 | 46 |
public static string AlternativeProgramFailCount { |
moel@328 | 47 |
get { return "Alternative Program Fail Count"; } |
moel@328 | 48 |
} |
moel@328 | 49 |
|
moel@328 | 50 |
public static string AlternativeEraseFailCount { |
moel@328 | 51 |
get { return "Alternative Erase Fail Count"; } |
moel@328 | 52 |
} |
moel@328 | 53 |
|
moel@328 | 54 |
public static string UnrecoverableEcc { |
moel@328 | 55 |
get { return "Unrecoverable ECC"; } |
moel@328 | 56 |
} |
moel@328 | 57 |
|
moel@328 | 58 |
public static string ReallocationEventCount { |
moel@328 | 59 |
get { return "Reallocation Event Count"; } |
moel@328 | 60 |
} |
moel@328 | 61 |
|
moel@328 | 62 |
public static string RemainingLife { |
moel@328 | 63 |
get { return "Remaining Life"; } |
moel@328 | 64 |
} |
moel@328 | 65 |
|
moel@328 | 66 |
public static string AvailableReservedSpace { |
moel@328 | 67 |
get { return "Available Reserved Space"; } |
moel@328 | 68 |
} |
moel@328 | 69 |
|
moel@328 | 70 |
public static string CalibrationRetryCount { |
moel@328 | 71 |
get { return "Calibration Retry Count"; } |
moel@328 | 72 |
} |
moel@328 | 73 |
|
moel@328 | 74 |
public static string CommandTimeout { |
moel@328 | 75 |
get { return "Command Timeout"; } |
moel@328 | 76 |
} |
moel@328 | 77 |
|
moel@328 | 78 |
public static string CurrentPendingSectorCount { |
moel@328 | 79 |
get { return "Current Pending Sector Count"; } |
moel@328 | 80 |
} |
moel@328 | 81 |
|
moel@328 | 82 |
public static string DataAddressMarkErrors { |
moel@328 | 83 |
get { return "Data Address Mark errors"; } |
moel@328 | 84 |
} |
moel@328 | 85 |
|
moel@328 | 86 |
public static string DiskShift { |
moel@328 | 87 |
get { return "Disk Shift"; } |
moel@328 | 88 |
} |
moel@328 | 89 |
|
moel@328 | 90 |
public static string DriveTemperature { |
moel@328 | 91 |
get { return "Drive Temperature"; } |
moel@328 | 92 |
} |
moel@328 | 93 |
|
moel@328 | 94 |
public static string EmergencyRetractCycleCount { |
moel@328 | 95 |
get { return "Emergency Retract Cycle Count"; } |
moel@328 | 96 |
} |
moel@328 | 97 |
|
moel@328 | 98 |
public static string EndToEndError { |
moel@328 | 99 |
get { return "End-to-End error"; } |
moel@328 | 100 |
} |
moel@328 | 101 |
|
moel@328 | 102 |
public static string EnduranceRemaining { |
moel@328 | 103 |
get { return "Endurance Remaining"; } |
moel@328 | 104 |
} |
moel@328 | 105 |
|
moel@328 | 106 |
public static string FlyingHeight { |
moel@328 | 107 |
get { return "Flying Height"; } |
moel@328 | 108 |
} |
moel@328 | 109 |
|
moel@328 | 110 |
public static string FreeFallProtection { |
moel@328 | 111 |
get { return "Free Fall Protection"; } |
moel@328 | 112 |
} |
moel@328 | 113 |
|
moel@328 | 114 |
public static string GmrHeadAmplitude { |
moel@328 | 115 |
get { return "GMR Head Amplitude"; } |
moel@328 | 116 |
} |
moel@328 | 117 |
|
moel@328 | 118 |
public static string GSenseErrorRate { |
moel@328 | 119 |
get { return "G-sense Error Rate"; } |
moel@328 | 120 |
} |
moel@328 | 121 |
|
moel@328 | 122 |
public static string HardwareEccRecovered { |
moel@328 | 123 |
get { return "Hardware ECC Recovered"; } |
moel@328 | 124 |
} |
moel@328 | 125 |
|
moel@328 | 126 |
public static string HeadFlyingHours { |
moel@328 | 127 |
get { return "Head Flying Hours"; } |
moel@328 | 128 |
} |
moel@328 | 129 |
|
moel@328 | 130 |
public static string HeadStability { |
moel@328 | 131 |
get { return "Head Stability"; } |
moel@328 | 132 |
} |
moel@328 | 133 |
|
moel@328 | 134 |
public static string HighFlyWrites { |
moel@328 | 135 |
get { return "High Fly Writes"; } |
moel@328 | 136 |
} |
moel@328 | 137 |
|
moel@328 | 138 |
public static string InducedOpVibrationDetection { |
moel@328 | 139 |
get { return "Induced Op-Vibration Detection"; } |
moel@328 | 140 |
} |
moel@328 | 141 |
|
moel@328 | 142 |
public static string LoadedHours { |
moel@328 | 143 |
get { return "Loaded Hours"; } |
moel@328 | 144 |
} |
moel@328 | 145 |
|
moel@328 | 146 |
public static string LoadFriction { |
moel@328 | 147 |
get { return "Load Friction"; } |
moel@328 | 148 |
} |
moel@328 | 149 |
|
moel@328 | 150 |
public static string LoadInTime { |
moel@328 | 151 |
get { return "Load 'In'-time"; } |
moel@328 | 152 |
} |
moel@328 | 153 |
|
moel@328 | 154 |
public static string LoadUnloadCycleCount { |
moel@328 | 155 |
get { return "Load/Unload Cycle Count"; } |
moel@328 | 156 |
} |
moel@328 | 157 |
|
moel@328 | 158 |
public static string LoadUnloadCycleCountFujitsu { |
moel@328 | 159 |
get { return "Load/Unload Cycle Count (Fujitus)"; } |
moel@328 | 160 |
} |
moel@328 | 161 |
|
moel@328 | 162 |
public static string LoadUnloadRetryCount { |
moel@328 | 163 |
get { return "Load/Unload Retry Count"; } |
moel@328 | 164 |
} |
moel@328 | 165 |
|
moel@328 | 166 |
public static string MediaWearoutIndicator { |
moel@328 | 167 |
get { return "Media Wearout Indicator"; } |
moel@328 | 168 |
} |
moel@328 | 169 |
|
moel@328 | 170 |
public static string MultiZoneErrorRate { |
moel@328 | 171 |
get { return "Multi-Zone Error Rate"; } |
moel@328 | 172 |
} |
moel@328 | 173 |
|
moel@328 | 174 |
public static string OfflineSeekPerformance { |
moel@328 | 175 |
get { return "Offline Seek Performance"; } |
moel@328 | 176 |
} |
moel@328 | 177 |
|
moel@328 | 178 |
public static string PowerCycleCount { |
moel@328 | 179 |
get { return "Power Cycle Count"; } |
moel@328 | 180 |
} |
moel@328 | 181 |
|
moel@328 | 182 |
public static string PowerOffRetractCycle { |
moel@328 | 183 |
get { return "Power-Off Retract Cycle"; } |
moel@328 | 184 |
} |
moel@328 | 185 |
|
moel@328 | 186 |
public static string PowerOnHours { |
moel@328 | 187 |
get { return "Power-On Hours (POH)"; } |
moel@328 | 188 |
} |
moel@328 | 189 |
|
moel@328 | 190 |
public static string ReadChannelMargin { |
moel@328 | 191 |
get { return "Read Channel Margin"; } |
moel@328 | 192 |
} |
moel@328 | 193 |
|
moel@328 | 194 |
public static string ReadErrorRate { |
moel@328 | 195 |
get { return "Read Error Rate"; } |
moel@328 | 196 |
} |
moel@328 | 197 |
|
moel@328 | 198 |
public static string ReadErrorRetryRate { |
moel@328 | 199 |
get { return "Read Error Retry Rate"; } |
moel@328 | 200 |
} |
moel@328 | 201 |
|
moel@328 | 202 |
public static string ReallocatedSectorsCount { |
moel@328 | 203 |
get { return "Reallocated Sectors Count"; } |
moel@328 | 204 |
} |
moel@328 | 205 |
|
moel@328 | 206 |
public static string ReportedUncorrectableErrors { |
moel@328 | 207 |
get { return "Reported Uncorrectable Errors"; } |
moel@328 | 208 |
} |
moel@328 | 209 |
|
moel@328 | 210 |
public static string RunOutCancel { |
moel@328 | 211 |
get { return "Run Out Cancel"; } |
moel@328 | 212 |
} |
moel@328 | 213 |
|
moel@328 | 214 |
public static string SataDownshiftErrorCount { |
moel@328 | 215 |
get { return "SATA Downshift Error Count"; } |
moel@328 | 216 |
} |
moel@328 | 217 |
|
moel@328 | 218 |
public static string SeekErrorRate { |
moel@328 | 219 |
get { return "Seek Error Rate"; } |
moel@328 | 220 |
} |
moel@328 | 221 |
|
moel@328 | 222 |
public static string SeekTimePerformance { |
moel@328 | 223 |
get { return "Seek Time Performance"; } |
moel@328 | 224 |
} |
moel@328 | 225 |
|
moel@328 | 226 |
public static string ShockDuringWrite { |
moel@328 | 227 |
get { return "Shock During Write"; } |
moel@328 | 228 |
} |
moel@328 | 229 |
|
moel@328 | 230 |
public static string SoftEccCorrection { |
moel@328 | 231 |
get { return "Soft ECC Correction"; } |
moel@328 | 232 |
} |
moel@328 | 233 |
|
moel@328 | 234 |
public static string SoftReadErrorRate { |
moel@328 | 235 |
get { return "Soft Read Error Rate"; } |
moel@328 | 236 |
} |
moel@328 | 237 |
|
moel@328 | 238 |
public static string SpinBuzz { |
moel@328 | 239 |
get { return "Spin Buzz"; } |
moel@328 | 240 |
} |
moel@328 | 241 |
|
moel@328 | 242 |
public static string SpinHighCurrent { |
moel@328 | 243 |
get { return "Spin High Current"; } |
moel@328 | 244 |
} |
moel@328 | 245 |
|
moel@328 | 246 |
public static string SpinRetryCount { |
moel@328 | 247 |
get { return "Spin Retry Count"; } |
moel@328 | 248 |
} |
moel@328 | 249 |
|
moel@328 | 250 |
public static string SpinUpTime { |
moel@328 | 251 |
get { return "Spin-Up Time"; } |
moel@328 | 252 |
} |
moel@328 | 253 |
|
moel@328 | 254 |
public static string StartStopCount { |
moel@328 | 255 |
get { return "Start/Stop Count"; } |
moel@328 | 256 |
} |
moel@328 | 257 |
|
moel@328 | 258 |
public static string TaCounterDetected { |
moel@328 | 259 |
get { return "TA Counter Detected"; } |
moel@328 | 260 |
} |
moel@328 | 261 |
|
moel@328 | 262 |
public static string TemperatureDifferenceFrom100 { |
moel@328 | 263 |
get { return "Temperature Difference from 100"; } |
moel@328 | 264 |
} |
moel@328 | 265 |
|
moel@328 | 266 |
public static string ThermalAsperityRate { |
moel@328 | 267 |
get { return "Thermal Asperity Rate (TAR)"; } |
moel@328 | 268 |
} |
moel@328 | 269 |
|
moel@328 | 270 |
public static string ThroughputPerformance { |
moel@328 | 271 |
get { return "Throughput Performance"; } |
moel@328 | 272 |
} |
moel@328 | 273 |
|
moel@328 | 274 |
public static string TorqueAmplificationCount { |
moel@328 | 275 |
get { return "Torque Amplification Count"; } |
moel@328 | 276 |
} |
moel@328 | 277 |
|
moel@328 | 278 |
public static string TotalLbasRead { |
moel@328 | 279 |
get { return "Total LBAs Read"; } |
moel@328 | 280 |
} |
moel@328 | 281 |
|
moel@328 | 282 |
public static string TotalLbasWritten { |
moel@328 | 283 |
get { return "Total LBAs Written"; } |
moel@328 | 284 |
} |
moel@328 | 285 |
|
moel@328 | 286 |
public static string TransferErrorRate { |
moel@328 | 287 |
get { return "Transfer Error Rate"; } |
moel@328 | 288 |
} |
moel@328 | 289 |
|
moel@328 | 290 |
public static string UltraDmaCrcErrorCount { |
moel@328 | 291 |
get { return "UltraDMA CRC Error Count"; } |
moel@328 | 292 |
} |
moel@328 | 293 |
|
moel@328 | 294 |
public static string UncorrectableSectorCount { |
moel@328 | 295 |
get { return "Uncorrectable Sector Count"; } |
moel@328 | 296 |
} |
moel@328 | 297 |
|
moel@328 | 298 |
public static string Unknown { |
moel@328 | 299 |
get { return "Unknown"; } |
moel@328 | 300 |
} |
moel@328 | 301 |
|
moel@328 | 302 |
public static string VibrationDuringWrite { |
moel@328 | 303 |
get { return "Vibration During Write"; } |
moel@328 | 304 |
} |
moel@328 | 305 |
|
moel@328 | 306 |
public static string WriteErrorRate { |
moel@328 | 307 |
get { return "Write Error Rate"; } |
moel@328 | 308 |
} |
moel@328 | 309 |
|
moel@328 | 310 |
public static string RecalibrationRetries { |
moel@328 | 311 |
get { return "Recalibration Retries"; } |
moel@328 | 312 |
} |
moel@328 | 313 |
|
moel@328 | 314 |
public static string LoadCycleCount { |
moel@328 | 315 |
get { return "Load Cycle Count"; } |
moel@328 | 316 |
} |
moel@328 | 317 |
|
moel@328 | 318 |
public static string AlternativeGSenseErrorRate { |
moel@328 | 319 |
get { return "Alternative G-Sense Error Rate"; } |
moel@328 | 320 |
} |
moel@328 | 321 |
|
moel@328 | 322 |
public static string InitialBadBlockCount { |
moel@328 | 323 |
get { return "Initial Bad Block Count"; } |
moel@328 | 324 |
} |
moel@328 | 325 |
|
moel@328 | 326 |
public static string ProgramFailure { |
moel@328 | 327 |
get { return "Program Failure"; } |
moel@328 | 328 |
} |
moel@328 | 329 |
|
moel@328 | 330 |
public static string EraseFailure { |
moel@328 | 331 |
get { return "Erase Failure"; } |
moel@328 | 332 |
} |
moel@328 | 333 |
|
moel@328 | 334 |
public static string ReadFailure { |
moel@328 | 335 |
get { return "Read Failure"; } |
moel@328 | 336 |
} |
moel@328 | 337 |
|
moel@328 | 338 |
public static string SectorsRead { |
moel@328 | 339 |
get { return "Sectors Read"; } |
moel@328 | 340 |
} |
moel@328 | 341 |
|
moel@328 | 342 |
public static string SectorsWritten { |
moel@328 | 343 |
get { return "Sectors Written"; } |
moel@328 | 344 |
} |
moel@328 | 345 |
|
moel@328 | 346 |
public static string ReadCommands { |
moel@328 | 347 |
get { return "Read Commands"; } |
moel@328 | 348 |
} |
moel@328 | 349 |
|
moel@328 | 350 |
public static string WriteCommands { |
moel@328 | 351 |
get { return "Write Commands"; } |
moel@328 | 352 |
} |
moel@328 | 353 |
|
moel@328 | 354 |
public static string BitErrors { |
moel@328 | 355 |
get { return "Bit Errors"; } |
moel@328 | 356 |
} |
moel@328 | 357 |
|
moel@328 | 358 |
public static string CorrectedErrors { |
moel@328 | 359 |
get { return "Corrected Errors"; } |
moel@328 | 360 |
} |
moel@328 | 361 |
|
moel@328 | 362 |
public static string BadBlockFullFlag { |
moel@328 | 363 |
get { return "Bad Block Full Flag"; } |
moel@328 | 364 |
} |
moel@328 | 365 |
|
moel@328 | 366 |
public static string MaxCellCycles { |
moel@328 | 367 |
get { return "Max Cell Cycles"; } |
moel@328 | 368 |
} |
moel@328 | 369 |
|
moel@328 | 370 |
public static string MinErase { |
moel@328 | 371 |
get { return "Min Erase"; } |
moel@328 | 372 |
} |
moel@328 | 373 |
|
moel@328 | 374 |
public static string MaxErase { |
moel@328 | 375 |
get { return "Max Erase"; } |
moel@328 | 376 |
} |
moel@328 | 377 |
|
moel@328 | 378 |
public static string AverageEraseCount { |
moel@328 | 379 |
get { return "Average Erase Count"; } |
moel@328 | 380 |
} |
moel@328 | 381 |
|
moel@328 | 382 |
public static string UnknownUnique { |
moel@328 | 383 |
get { return "Unknown Unique"; } |
moel@328 | 384 |
} |
moel@328 | 385 |
|
moel@328 | 386 |
public static string SataErrorCountCrc { |
moel@328 | 387 |
get { return "SATA Error Count CRC"; } |
moel@328 | 388 |
} |
moel@328 | 389 |
|
moel@328 | 390 |
public static string SataErrorCountHandshake { |
moel@328 | 391 |
get { return "SATA Error Count Handshake"; } |
moel@328 | 392 |
} |
moel@328 | 393 |
|
moel@328 | 394 |
public static string UnsafeShutdownCount { |
moel@328 | 395 |
get { return "Unsafe Shutdown Count"; } |
moel@328 | 396 |
} |
moel@328 | 397 |
|
moel@328 | 398 |
public static string HostWrites { |
moel@328 | 399 |
get { return "Host Writes"; } |
moel@328 | 400 |
} |
moel@328 | 401 |
|
moel@328 | 402 |
public static string HostReads { |
moel@328 | 403 |
get { return "Host Reads"; } |
moel@328 | 404 |
} |
moel@328 | 405 |
|
moel@328 | 406 |
public static string MediaWearOutIndicator { |
moel@328 | 407 |
get { return "Media Wear Out Indicator"; } |
moel@328 | 408 |
} |
moel@328 | 409 |
|
moel@328 | 410 |
public static string ProgramFailCountChip { |
moel@328 | 411 |
get { return "Program Fail Count (Chip)"; } |
moel@328 | 412 |
} |
moel@328 | 413 |
|
moel@328 | 414 |
public static string EraseFailCountChip { |
moel@328 | 415 |
get { return "Erase Fail Count (Chip)"; } |
moel@328 | 416 |
} |
moel@328 | 417 |
|
moel@328 | 418 |
public static string WearLevelingCount { |
moel@328 | 419 |
get { return "Wear Leveling Count"; } |
moel@328 | 420 |
} |
moel@328 | 421 |
|
moel@328 | 422 |
public static string UsedReservedBlockCountChip { |
moel@328 | 423 |
get { return "Used Reserved Block Count (Chip)"; } |
moel@328 | 424 |
} |
moel@328 | 425 |
|
moel@328 | 426 |
public static string UsedReservedBlockCountTotal { |
moel@328 | 427 |
get { return "Used Reserved Block Count (Total)"; } |
moel@328 | 428 |
} |
moel@328 | 429 |
|
moel@328 | 430 |
public static string ProgramFailCountTotal { |
moel@328 | 431 |
get { return "Program Fail Count (Total)"; } |
moel@328 | 432 |
} |
moel@328 | 433 |
|
moel@328 | 434 |
public static string EraseFailCountTotal { |
moel@328 | 435 |
get { return "Erase Fail Count (Total)"; } |
moel@328 | 436 |
} |
moel@328 | 437 |
|
moel@328 | 438 |
public static string RuntimeBadBlockTotal { |
moel@328 | 439 |
get { return "Runtime Bad Block Total"; } |
moel@328 | 440 |
} |
moel@328 | 441 |
|
moel@328 | 442 |
public static string UncorrectableErrorCount { |
moel@328 | 443 |
get { return "Uncorrectable Error Count"; } |
moel@328 | 444 |
} |
moel@328 | 445 |
|
moel@328 | 446 |
public static string TemperatureExceedCount { |
moel@328 | 447 |
get { return "Temperature Exceed Count"; } |
moel@328 | 448 |
} |
moel@328 | 449 |
|
moel@328 | 450 |
public static string ECCRate { |
moel@328 | 451 |
get { return "ECC Rate"; } |
moel@328 | 452 |
} |
moel@328 | 453 |
|
moel@328 | 454 |
public static string OffLineUncorrectableErrorCount { |
moel@328 | 455 |
get { return "Off-Line Uncorrectable Error Count"; } |
moel@328 | 456 |
} |
moel@328 | 457 |
|
moel@328 | 458 |
public static string CRCErrorCount { |
moel@328 | 459 |
get { return "CRC Error Count"; } |
moel@328 | 460 |
} |
moel@328 | 461 |
|
moel@328 | 462 |
public static string SupercapStatus { |
moel@328 | 463 |
get { return "Supercap Status"; } |
moel@328 | 464 |
} |
moel@328 | 465 |
|
moel@328 | 466 |
public static string ExceptionModeStatus { |
moel@328 | 467 |
get { return "Exception Mode Status"; } |
moel@328 | 468 |
} |
moel@339 | 469 |
|
moel@339 | 470 |
public static string ControllerWritesToNAND { |
moel@339 | 471 |
get { return "Controller Writes to NAND"; } |
moel@339 | 472 |
} |
moel@339 | 473 |
|
moel@339 | 474 |
public static string HostWritesToController { |
moel@339 | 475 |
get { return "Host Writes to Controller"; } |
moel@339 | 476 |
} |
moel@339 | 477 |
|
moel@339 | 478 |
public static string RawReadErrorRate { |
moel@339 | 479 |
get { return "Raw Read Error Rate"; } |
moel@339 | 480 |
} |
moel@358 | 481 |
|
moel@358 | 482 |
public static string NewFailingBlockCount { |
moel@358 | 483 |
get { return "New Failing Block Count"; } |
moel@358 | 484 |
} |
moel@358 | 485 |
|
moel@358 | 486 |
public static string Non4kAlignedAccess { |
moel@358 | 487 |
get { return "Non-4k Aligned Access"; } |
moel@358 | 488 |
} |
moel@358 | 489 |
|
moel@358 | 490 |
public static string FactoryBadBlockCount { |
moel@358 | 491 |
get { return "Factory Bad Block Count"; } |
moel@358 | 492 |
} |
moel@328 | 493 |
} |
moel@328 | 494 |
} |