001package org.hl7.fhir.r4.model.codesystems; 002 003/*- 004 * #%L 005 * org.hl7.fhir.r4 006 * %% 007 * Copyright (C) 2014 - 2019 Health Level 7 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023 024/* 025 Copyright (c) 2011+, HL7, Inc. 026 All rights reserved. 027 028 Redistribution and use in source and binary forms, with or without modification, 029 are permitted provided that the following conditions are met: 030 031 * Redistributions of source code must retain the above copyright notice, this 032 list of conditions and the following disclaimer. 033 * Redistributions in binary form must reproduce the above copyright notice, 034 this list of conditions and the following disclaimer in the documentation 035 and/or other materials provided with the distribution. 036 * Neither the name of HL7 nor the names of its contributors may be used to 037 endorse or promote products derived from this software without specific 038 prior written permission. 039 040 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 041 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 042 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 043 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 044 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 045 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 046 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 047 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 048 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 049 POSSIBILITY OF SUCH DAMAGE. 050 051*/ 052 053// Generated on Wed, Jan 30, 2019 16:19-0500 for FHIR v4.0.0 054 055 056import org.hl7.fhir.exceptions.FHIRException; 057 058public enum OperationOutcome { 059 060 /** 061 * null 062 */ 063 DELETEMULTIPLEMATCHES, 064 /** 065 * null 066 */ 067 MSGAUTHREQUIRED, 068 /** 069 * null 070 */ 071 MSGBADFORMAT, 072 /** 073 * null 074 */ 075 MSGBADSYNTAX, 076 /** 077 * null 078 */ 079 MSGCANTPARSECONTENT, 080 /** 081 * null 082 */ 083 MSGCANTPARSEROOT, 084 /** 085 * null 086 */ 087 MSGCREATED, 088 /** 089 * null 090 */ 091 MSGDATEFORMAT, 092 /** 093 * null 094 */ 095 MSGDELETED, 096 /** 097 * null 098 */ 099 MSGDELETEDDONE, 100 /** 101 * null 102 */ 103 MSGDELETEDID, 104 /** 105 * null 106 */ 107 MSGDUPLICATEID, 108 /** 109 * null 110 */ 111 MSGERRORPARSING, 112 /** 113 * null 114 */ 115 MSGIDINVALID, 116 /** 117 * null 118 */ 119 MSGIDTOOLONG, 120 /** 121 * null 122 */ 123 MSGINVALIDID, 124 /** 125 * null 126 */ 127 MSGJSONOBJECT, 128 /** 129 * null 130 */ 131 MSGLOCALFAIL, 132 /** 133 * null 134 */ 135 MSGNOEXIST, 136 /** 137 * null 138 */ 139 MSGNOMATCH, 140 /** 141 * null 142 */ 143 MSGNOMODULE, 144 /** 145 * null 146 */ 147 MSGNOSUMMARY, 148 /** 149 * null 150 */ 151 MSGOPNOTALLOWED, 152 /** 153 * null 154 */ 155 MSGPARAMCHAINED, 156 /** 157 * null 158 */ 159 MSGPARAMINVALID, 160 /** 161 * null 162 */ 163 MSGPARAMMODIFIERINVALID, 164 /** 165 * null 166 */ 167 MSGPARAMNOREPEAT, 168 /** 169 * null 170 */ 171 MSGPARAMUNKNOWN, 172 /** 173 * null 174 */ 175 MSGRESOURCEEXAMPLEPROTECTED, 176 /** 177 * null 178 */ 179 MSGRESOURCEIDFAIL, 180 /** 181 * null 182 */ 183 MSGRESOURCEIDMISMATCH, 184 /** 185 * null 186 */ 187 MSGRESOURCEIDMISSING, 188 /** 189 * null 190 */ 191 MSGRESOURCENOTALLOWED, 192 /** 193 * null 194 */ 195 MSGRESOURCEREQUIRED, 196 /** 197 * null 198 */ 199 MSGRESOURCETYPEMISMATCH, 200 /** 201 * null 202 */ 203 MSGSORTUNKNOWN, 204 /** 205 * null 206 */ 207 MSGTRANSACTIONDUPLICATEID, 208 /** 209 * null 210 */ 211 MSGTRANSACTIONMISSINGID, 212 /** 213 * null 214 */ 215 MSGUNHANDLEDNODETYPE, 216 /** 217 * null 218 */ 219 MSGUNKNOWNCONTENT, 220 /** 221 * null 222 */ 223 MSGUNKNOWNOPERATION, 224 /** 225 * null 226 */ 227 MSGUNKNOWNTYPE, 228 /** 229 * null 230 */ 231 MSGUPDATED, 232 /** 233 * null 234 */ 235 MSGVERSIONAWARE, 236 /** 237 * null 238 */ 239 MSGVERSIONAWARECONFLICT, 240 /** 241 * null 242 */ 243 MSGVERSIONAWAREURL, 244 /** 245 * null 246 */ 247 MSGWRONGNS, 248 /** 249 * null 250 */ 251 SEARCHMULTIPLE, 252 /** 253 * null 254 */ 255 SEARCHNONE, 256 /** 257 * null 258 */ 259 UPDATEMULTIPLEMATCHES, 260 /** 261 * added to help the parsers 262 */ 263 NULL; 264 public static OperationOutcome fromCode(String codeString) throws FHIRException { 265 if (codeString == null || "".equals(codeString)) 266 return null; 267 if ("DELETE_MULTIPLE_MATCHES".equals(codeString)) 268 return DELETEMULTIPLEMATCHES; 269 if ("MSG_AUTH_REQUIRED".equals(codeString)) 270 return MSGAUTHREQUIRED; 271 if ("MSG_BAD_FORMAT".equals(codeString)) 272 return MSGBADFORMAT; 273 if ("MSG_BAD_SYNTAX".equals(codeString)) 274 return MSGBADSYNTAX; 275 if ("MSG_CANT_PARSE_CONTENT".equals(codeString)) 276 return MSGCANTPARSECONTENT; 277 if ("MSG_CANT_PARSE_ROOT".equals(codeString)) 278 return MSGCANTPARSEROOT; 279 if ("MSG_CREATED".equals(codeString)) 280 return MSGCREATED; 281 if ("MSG_DATE_FORMAT".equals(codeString)) 282 return MSGDATEFORMAT; 283 if ("MSG_DELETED".equals(codeString)) 284 return MSGDELETED; 285 if ("MSG_DELETED_DONE".equals(codeString)) 286 return MSGDELETEDDONE; 287 if ("MSG_DELETED_ID".equals(codeString)) 288 return MSGDELETEDID; 289 if ("MSG_DUPLICATE_ID".equals(codeString)) 290 return MSGDUPLICATEID; 291 if ("MSG_ERROR_PARSING".equals(codeString)) 292 return MSGERRORPARSING; 293 if ("MSG_ID_INVALID".equals(codeString)) 294 return MSGIDINVALID; 295 if ("MSG_ID_TOO_LONG".equals(codeString)) 296 return MSGIDTOOLONG; 297 if ("MSG_INVALID_ID".equals(codeString)) 298 return MSGINVALIDID; 299 if ("MSG_JSON_OBJECT".equals(codeString)) 300 return MSGJSONOBJECT; 301 if ("MSG_LOCAL_FAIL".equals(codeString)) 302 return MSGLOCALFAIL; 303 if ("MSG_NO_EXIST".equals(codeString)) 304 return MSGNOEXIST; 305 if ("MSG_NO_MATCH".equals(codeString)) 306 return MSGNOMATCH; 307 if ("MSG_NO_MODULE".equals(codeString)) 308 return MSGNOMODULE; 309 if ("MSG_NO_SUMMARY".equals(codeString)) 310 return MSGNOSUMMARY; 311 if ("MSG_OP_NOT_ALLOWED".equals(codeString)) 312 return MSGOPNOTALLOWED; 313 if ("MSG_PARAM_CHAINED".equals(codeString)) 314 return MSGPARAMCHAINED; 315 if ("MSG_PARAM_INVALID".equals(codeString)) 316 return MSGPARAMINVALID; 317 if ("MSG_PARAM_MODIFIER_INVALID".equals(codeString)) 318 return MSGPARAMMODIFIERINVALID; 319 if ("MSG_PARAM_NO_REPEAT".equals(codeString)) 320 return MSGPARAMNOREPEAT; 321 if ("MSG_PARAM_UNKNOWN".equals(codeString)) 322 return MSGPARAMUNKNOWN; 323 if ("MSG_RESOURCE_EXAMPLE_PROTECTED".equals(codeString)) 324 return MSGRESOURCEEXAMPLEPROTECTED; 325 if ("MSG_RESOURCE_ID_FAIL".equals(codeString)) 326 return MSGRESOURCEIDFAIL; 327 if ("MSG_RESOURCE_ID_MISMATCH".equals(codeString)) 328 return MSGRESOURCEIDMISMATCH; 329 if ("MSG_RESOURCE_ID_MISSING".equals(codeString)) 330 return MSGRESOURCEIDMISSING; 331 if ("MSG_RESOURCE_NOT_ALLOWED".equals(codeString)) 332 return MSGRESOURCENOTALLOWED; 333 if ("MSG_RESOURCE_REQUIRED".equals(codeString)) 334 return MSGRESOURCEREQUIRED; 335 if ("MSG_RESOURCE_TYPE_MISMATCH".equals(codeString)) 336 return MSGRESOURCETYPEMISMATCH; 337 if ("MSG_SORT_UNKNOWN".equals(codeString)) 338 return MSGSORTUNKNOWN; 339 if ("MSG_TRANSACTION_DUPLICATE_ID".equals(codeString)) 340 return MSGTRANSACTIONDUPLICATEID; 341 if ("MSG_TRANSACTION_MISSING_ID".equals(codeString)) 342 return MSGTRANSACTIONMISSINGID; 343 if ("MSG_UNHANDLED_NODE_TYPE".equals(codeString)) 344 return MSGUNHANDLEDNODETYPE; 345 if ("MSG_UNKNOWN_CONTENT".equals(codeString)) 346 return MSGUNKNOWNCONTENT; 347 if ("MSG_UNKNOWN_OPERATION".equals(codeString)) 348 return MSGUNKNOWNOPERATION; 349 if ("MSG_UNKNOWN_TYPE".equals(codeString)) 350 return MSGUNKNOWNTYPE; 351 if ("MSG_UPDATED".equals(codeString)) 352 return MSGUPDATED; 353 if ("MSG_VERSION_AWARE".equals(codeString)) 354 return MSGVERSIONAWARE; 355 if ("MSG_VERSION_AWARE_CONFLICT".equals(codeString)) 356 return MSGVERSIONAWARECONFLICT; 357 if ("MSG_VERSION_AWARE_URL".equals(codeString)) 358 return MSGVERSIONAWAREURL; 359 if ("MSG_WRONG_NS".equals(codeString)) 360 return MSGWRONGNS; 361 if ("SEARCH_MULTIPLE".equals(codeString)) 362 return SEARCHMULTIPLE; 363 if ("SEARCH_NONE".equals(codeString)) 364 return SEARCHNONE; 365 if ("UPDATE_MULTIPLE_MATCHES".equals(codeString)) 366 return UPDATEMULTIPLEMATCHES; 367 throw new FHIRException("Unknown OperationOutcome code '"+codeString+"'"); 368 } 369 public String toCode() { 370 switch (this) { 371 case DELETEMULTIPLEMATCHES: return "DELETE_MULTIPLE_MATCHES"; 372 case MSGAUTHREQUIRED: return "MSG_AUTH_REQUIRED"; 373 case MSGBADFORMAT: return "MSG_BAD_FORMAT"; 374 case MSGBADSYNTAX: return "MSG_BAD_SYNTAX"; 375 case MSGCANTPARSECONTENT: return "MSG_CANT_PARSE_CONTENT"; 376 case MSGCANTPARSEROOT: return "MSG_CANT_PARSE_ROOT"; 377 case MSGCREATED: return "MSG_CREATED"; 378 case MSGDATEFORMAT: return "MSG_DATE_FORMAT"; 379 case MSGDELETED: return "MSG_DELETED"; 380 case MSGDELETEDDONE: return "MSG_DELETED_DONE"; 381 case MSGDELETEDID: return "MSG_DELETED_ID"; 382 case MSGDUPLICATEID: return "MSG_DUPLICATE_ID"; 383 case MSGERRORPARSING: return "MSG_ERROR_PARSING"; 384 case MSGIDINVALID: return "MSG_ID_INVALID"; 385 case MSGIDTOOLONG: return "MSG_ID_TOO_LONG"; 386 case MSGINVALIDID: return "MSG_INVALID_ID"; 387 case MSGJSONOBJECT: return "MSG_JSON_OBJECT"; 388 case MSGLOCALFAIL: return "MSG_LOCAL_FAIL"; 389 case MSGNOEXIST: return "MSG_NO_EXIST"; 390 case MSGNOMATCH: return "MSG_NO_MATCH"; 391 case MSGNOMODULE: return "MSG_NO_MODULE"; 392 case MSGNOSUMMARY: return "MSG_NO_SUMMARY"; 393 case MSGOPNOTALLOWED: return "MSG_OP_NOT_ALLOWED"; 394 case MSGPARAMCHAINED: return "MSG_PARAM_CHAINED"; 395 case MSGPARAMINVALID: return "MSG_PARAM_INVALID"; 396 case MSGPARAMMODIFIERINVALID: return "MSG_PARAM_MODIFIER_INVALID"; 397 case MSGPARAMNOREPEAT: return "MSG_PARAM_NO_REPEAT"; 398 case MSGPARAMUNKNOWN: return "MSG_PARAM_UNKNOWN"; 399 case MSGRESOURCEEXAMPLEPROTECTED: return "MSG_RESOURCE_EXAMPLE_PROTECTED"; 400 case MSGRESOURCEIDFAIL: return "MSG_RESOURCE_ID_FAIL"; 401 case MSGRESOURCEIDMISMATCH: return "MSG_RESOURCE_ID_MISMATCH"; 402 case MSGRESOURCEIDMISSING: return "MSG_RESOURCE_ID_MISSING"; 403 case MSGRESOURCENOTALLOWED: return "MSG_RESOURCE_NOT_ALLOWED"; 404 case MSGRESOURCEREQUIRED: return "MSG_RESOURCE_REQUIRED"; 405 case MSGRESOURCETYPEMISMATCH: return "MSG_RESOURCE_TYPE_MISMATCH"; 406 case MSGSORTUNKNOWN: return "MSG_SORT_UNKNOWN"; 407 case MSGTRANSACTIONDUPLICATEID: return "MSG_TRANSACTION_DUPLICATE_ID"; 408 case MSGTRANSACTIONMISSINGID: return "MSG_TRANSACTION_MISSING_ID"; 409 case MSGUNHANDLEDNODETYPE: return "MSG_UNHANDLED_NODE_TYPE"; 410 case MSGUNKNOWNCONTENT: return "MSG_UNKNOWN_CONTENT"; 411 case MSGUNKNOWNOPERATION: return "MSG_UNKNOWN_OPERATION"; 412 case MSGUNKNOWNTYPE: return "MSG_UNKNOWN_TYPE"; 413 case MSGUPDATED: return "MSG_UPDATED"; 414 case MSGVERSIONAWARE: return "MSG_VERSION_AWARE"; 415 case MSGVERSIONAWARECONFLICT: return "MSG_VERSION_AWARE_CONFLICT"; 416 case MSGVERSIONAWAREURL: return "MSG_VERSION_AWARE_URL"; 417 case MSGWRONGNS: return "MSG_WRONG_NS"; 418 case SEARCHMULTIPLE: return "SEARCH_MULTIPLE"; 419 case SEARCHNONE: return "SEARCH_NONE"; 420 case UPDATEMULTIPLEMATCHES: return "UPDATE_MULTIPLE_MATCHES"; 421 default: return "?"; 422 } 423 } 424 public String getSystem() { 425 return "http://terminology.hl7.org/CodeSystem/operation-outcome"; 426 } 427 public String getDefinition() { 428 switch (this) { 429 case DELETEMULTIPLEMATCHES: return ""; 430 case MSGAUTHREQUIRED: return ""; 431 case MSGBADFORMAT: return ""; 432 case MSGBADSYNTAX: return ""; 433 case MSGCANTPARSECONTENT: return ""; 434 case MSGCANTPARSEROOT: return ""; 435 case MSGCREATED: return ""; 436 case MSGDATEFORMAT: return ""; 437 case MSGDELETED: return ""; 438 case MSGDELETEDDONE: return ""; 439 case MSGDELETEDID: return ""; 440 case MSGDUPLICATEID: return ""; 441 case MSGERRORPARSING: return ""; 442 case MSGIDINVALID: return ""; 443 case MSGIDTOOLONG: return ""; 444 case MSGINVALIDID: return ""; 445 case MSGJSONOBJECT: return ""; 446 case MSGLOCALFAIL: return ""; 447 case MSGNOEXIST: return ""; 448 case MSGNOMATCH: return ""; 449 case MSGNOMODULE: return ""; 450 case MSGNOSUMMARY: return ""; 451 case MSGOPNOTALLOWED: return ""; 452 case MSGPARAMCHAINED: return ""; 453 case MSGPARAMINVALID: return ""; 454 case MSGPARAMMODIFIERINVALID: return ""; 455 case MSGPARAMNOREPEAT: return ""; 456 case MSGPARAMUNKNOWN: return ""; 457 case MSGRESOURCEEXAMPLEPROTECTED: return ""; 458 case MSGRESOURCEIDFAIL: return ""; 459 case MSGRESOURCEIDMISMATCH: return ""; 460 case MSGRESOURCEIDMISSING: return ""; 461 case MSGRESOURCENOTALLOWED: return ""; 462 case MSGRESOURCEREQUIRED: return ""; 463 case MSGRESOURCETYPEMISMATCH: return ""; 464 case MSGSORTUNKNOWN: return ""; 465 case MSGTRANSACTIONDUPLICATEID: return ""; 466 case MSGTRANSACTIONMISSINGID: return ""; 467 case MSGUNHANDLEDNODETYPE: return ""; 468 case MSGUNKNOWNCONTENT: return ""; 469 case MSGUNKNOWNOPERATION: return ""; 470 case MSGUNKNOWNTYPE: return ""; 471 case MSGUPDATED: return ""; 472 case MSGVERSIONAWARE: return ""; 473 case MSGVERSIONAWARECONFLICT: return ""; 474 case MSGVERSIONAWAREURL: return ""; 475 case MSGWRONGNS: return ""; 476 case SEARCHMULTIPLE: return ""; 477 case SEARCHNONE: return ""; 478 case UPDATEMULTIPLEMATCHES: return ""; 479 default: return "?"; 480 } 481 } 482 public String getDisplay() { 483 switch (this) { 484 case DELETEMULTIPLEMATCHES: return "Error: Multiple matches exist for the conditional delete"; 485 case MSGAUTHREQUIRED: return "You must authenticate before you can use this service"; 486 case MSGBADFORMAT: return "Bad Syntax: \"%s\" must be a %s'"; 487 case MSGBADSYNTAX: return "Bad Syntax in %s"; 488 case MSGCANTPARSECONTENT: return "Unable to parse feed (entry content type = \"%s\")"; 489 case MSGCANTPARSEROOT: return "Unable to parse feed (root element name = \"%s\")"; 490 case MSGCREATED: return "New resource created"; 491 case MSGDATEFORMAT: return "The Date value %s is not in the correct format (Xml Date Format required)"; 492 case MSGDELETED: return "This resource has been deleted"; 493 case MSGDELETEDDONE: return "Resource deleted"; 494 case MSGDELETEDID: return "The resource \"%s\" has been deleted"; 495 case MSGDUPLICATEID: return "Duplicate Id %s for resource type %s"; 496 case MSGERRORPARSING: return "Error parsing resource Xml (%s)"; 497 case MSGIDINVALID: return "Id \"%s\" has an invalid character \"%s\""; 498 case MSGIDTOOLONG: return "Id \"%s\" too long (length limit 36)"; 499 case MSGINVALIDID: return "Id not accepted"; 500 case MSGJSONOBJECT: return "Json Source for a resource should start with an object"; 501 case MSGLOCALFAIL: return "Unable to resolve local reference to resource %s"; 502 case MSGNOEXIST: return "Resource Id \"%s\" does not exist"; 503 case MSGNOMATCH: return "No Resource found matching the query \"%s\""; 504 case MSGNOMODULE: return "No module could be found to handle the request \"%s\""; 505 case MSGNOSUMMARY: return "No Summary for this resource"; 506 case MSGOPNOTALLOWED: return "Operation %s not allowed for resource %s (due to local configuration)"; 507 case MSGPARAMCHAINED: return "Unknown chained parameter name \"%s\""; 508 case MSGPARAMINVALID: return "Parameter \"%s\" content is invalid"; 509 case MSGPARAMMODIFIERINVALID: return "Parameter \"%s\" modifier is invalid"; 510 case MSGPARAMNOREPEAT: return "Parameter \"%s\" is not allowed to repeat"; 511 case MSGPARAMUNKNOWN: return "Parameter \"%s\" not understood"; 512 case MSGRESOURCEEXAMPLEPROTECTED: return "Resources with identity \"example\" cannot be deleted (for testing/training purposes)"; 513 case MSGRESOURCEIDFAIL: return "unable to allocate resource id"; 514 case MSGRESOURCEIDMISMATCH: return "Resource Id Mismatch"; 515 case MSGRESOURCEIDMISSING: return "Resource Id Missing"; 516 case MSGRESOURCENOTALLOWED: return "Not allowed to submit a resource for this operation"; 517 case MSGRESOURCEREQUIRED: return "A resource is required"; 518 case MSGRESOURCETYPEMISMATCH: return "Resource Type Mismatch"; 519 case MSGSORTUNKNOWN: return "Unknown sort parameter name \"%s\""; 520 case MSGTRANSACTIONDUPLICATEID: return "Duplicate Identifier in transaction: %s"; 521 case MSGTRANSACTIONMISSINGID: return "Missing Identifier in transaction - an entry.id must be provided"; 522 case MSGUNHANDLEDNODETYPE: return "Unhandled xml node type \"%s\""; 523 case MSGUNKNOWNCONTENT: return "Unknown Content (%s) at %s"; 524 case MSGUNKNOWNOPERATION: return "unknown FHIR http operation"; 525 case MSGUNKNOWNTYPE: return "Resource Type \"%s\" not recognised"; 526 case MSGUPDATED: return "existing resource updated"; 527 case MSGVERSIONAWARE: return "Version aware updates are required for this resource"; 528 case MSGVERSIONAWARECONFLICT: return "Update Conflict (server current version = \"%s\", client version referenced = \"%s\")"; 529 case MSGVERSIONAWAREURL: return "Version specific URL not recognised"; 530 case MSGWRONGNS: return "This does not appear to be a FHIR element or resource (wrong namespace \"%s\")"; 531 case SEARCHMULTIPLE: return "Error: Multiple matches exist for %s search parameters \"%s\""; 532 case SEARCHNONE: return "Error: no processable search found for %s search parameters \"%s\""; 533 case UPDATEMULTIPLEMATCHES: return "Error: Multiple matches exist for the conditional update"; 534 default: return "?"; 535 } 536 } 537 538 539} 540