Showing error 1720

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/email_spec11_product40_safe.cil.c
Line in file: 616
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1extern int __VERIFIER_nondet_int(void);
   2/* Generated by CIL v. 1.3.7 */
   3/* print_CIL_Input is true */
   4
   5#line 2 "libacc.c"
   6struct JoinPoint {
   7   void **(*fp)(struct JoinPoint * ) ;
   8   void **args ;
   9   int argsCount ;
  10   char const   **argsType ;
  11   void *(*arg)(int  , struct JoinPoint * ) ;
  12   char const   *(*argType)(int  , struct JoinPoint * ) ;
  13   void **retValue ;
  14   char const   *retType ;
  15   char const   *funcName ;
  16   char const   *targetName ;
  17   char const   *fileName ;
  18   char const   *kind ;
  19   void *excep_return ;
  20};
  21#line 18 "libacc.c"
  22struct __UTAC__CFLOW_FUNC {
  23   int (*func)(int  , int  ) ;
  24   int val ;
  25   struct __UTAC__CFLOW_FUNC *next ;
  26};
  27#line 18 "libacc.c"
  28struct __UTAC__EXCEPTION {
  29   void *jumpbuf ;
  30   unsigned long long prtValue ;
  31   int pops ;
  32   struct __UTAC__CFLOW_FUNC *cflowfuncs ;
  33};
  34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
  35typedef unsigned long size_t;
  36#line 76 "libacc.c"
  37struct __ACC__ERR {
  38   void *v ;
  39   struct __ACC__ERR *next ;
  40};
  41#line 1 "DecryptAutoResponder_spec.o"
  42#pragma merger(0,"DecryptAutoResponder_spec.i","")
  43#line 4 "wsllib.h"
  44void __automaton_fail(void) ;
  45#line 688 "/usr/include/stdio.h"
  46extern int puts(char const   *__s ) ;
  47#line 8 "featureselect.h"
  48int __SELECTED_FEATURE_Base  ;
  49#line 11 "featureselect.h"
  50int __SELECTED_FEATURE_Keys  ;
  51#line 14 "featureselect.h"
  52int __SELECTED_FEATURE_Encrypt  ;
  53#line 17 "featureselect.h"
  54int __SELECTED_FEATURE_AutoResponder  ;
  55#line 20 "featureselect.h"
  56int __SELECTED_FEATURE_AddressBook  ;
  57#line 23 "featureselect.h"
  58int __SELECTED_FEATURE_Sign  ;
  59#line 26 "featureselect.h"
  60int __SELECTED_FEATURE_Forward  ;
  61#line 29 "featureselect.h"
  62int __SELECTED_FEATURE_Verify  ;
  63#line 32 "featureselect.h"
  64int __SELECTED_FEATURE_Decrypt  ;
  65#line 35 "featureselect.h"
  66int __GUIDSL_ROOT_PRODUCTION  ;
  67#line 37 "featureselect.h"
  68int __GUIDSL_NON_TERMINAL_main  ;
  69#line 9 "Email.h"
  70int isReadable(int msg ) ;
  71#line 11 "DecryptAutoResponder_spec.c"
  72__inline void __utac_acc__DecryptAutoResponder_spec__1(int client , int msg ) 
  73{ int tmp ;
  74
  75  {
  76  {
  77#line 13
  78  puts("before autoRespond\n");
  79#line 14
  80  tmp = isReadable(msg);
  81  }
  82#line 14
  83  if (tmp) {
  84
  85  } else {
  86    {
  87#line 15
  88    __automaton_fail();
  89    }
  90  }
  91#line 15
  92  return;
  93}
  94}
  95#line 1 "featureselect.o"
  96#pragma merger(0,"featureselect.i","")
  97#line 41 "featureselect.h"
  98int select_one(void) ;
  99#line 43
 100void select_features(void) ;
 101#line 45
 102void select_helpers(void) ;
 103#line 47
 104int valid_product(void) ;
 105#line 8 "featureselect.c"
 106int select_one(void) 
 107{ int retValue_acc ;
 108  int choice = __VERIFIER_nondet_int();
 109
 110  {
 111#line 84 "featureselect.c"
 112  retValue_acc = choice;
 113#line 86
 114  return (retValue_acc);
 115#line 93
 116  return (retValue_acc);
 117}
 118}
 119#line 14 "featureselect.c"
 120void select_features(void) 
 121{ 
 122
 123  {
 124#line 115 "featureselect.c"
 125  return;
 126}
 127}
 128#line 20 "featureselect.c"
 129void select_helpers(void) 
 130{ 
 131
 132  {
 133#line 133 "featureselect.c"
 134  return;
 135}
 136}
 137#line 25 "featureselect.c"
 138int valid_product(void) 
 139{ int retValue_acc ;
 140
 141  {
 142#line 151 "featureselect.c"
 143  retValue_acc = 1;
 144#line 153
 145  return (retValue_acc);
 146#line 160
 147  return (retValue_acc);
 148}
 149}
 150#line 1 "Client.o"
 151#pragma merger(0,"Client.i","")
 152#line 359 "/usr/include/stdio.h"
 153extern int printf(char const   * __restrict  __format  , ...) ;
 154#line 4 "ClientLib.h"
 155int initClient(void) ;
 156#line 14
 157int getClientAddressBookSize(int handle ) ;
 158#line 24
 159int getClientAddressBookAddress(int handle , int index ) ;
 160#line 29
 161int getClientAutoResponse(int handle ) ;
 162#line 35
 163void setClientPrivateKey(int handle , int value ) ;
 164#line 49
 165int getClientForwardReceiver(int handle ) ;
 166#line 53
 167int getClientId(int handle ) ;
 168#line 10 "EmailLib.h"
 169int getEmailFrom(int handle ) ;
 170#line 12
 171void setEmailFrom(int handle , int value ) ;
 172#line 14
 173int getEmailTo(int handle ) ;
 174#line 16
 175void setEmailTo(int handle , int value ) ;
 176#line 6 "Email.h"
 177void printMail(int msg ) ;
 178#line 12
 179int createEmail(int from , int to ) ;
 180#line 14 "Client.h"
 181void queue(int client , int msg ) ;
 182#line 17
 183int is_queue_empty(void) ;
 184#line 19
 185int get_queued_client(void) ;
 186#line 21
 187int get_queued_email(void) ;
 188#line 24
 189void mail(int client , int msg ) ;
 190#line 26
 191void outgoing(int client , int msg ) ;
 192#line 28
 193void deliver(int client , int msg ) ;
 194#line 30
 195void incoming(int client , int msg ) ;
 196#line 32
 197int createClient(char *name ) ;
 198#line 35
 199void sendEmail(int sender , int receiver ) ;
 200#line 40
 201int isKeyPairValid(int publicKey , int privateKey ) ;
 202#line 44
 203void generateKeyPair(int client , int seed ) ;
 204#line 45
 205void autoRespond(int client , int msg ) ;
 206#line 46
 207void sendToAddressBook(int client , int msg ) ;
 208#line 48
 209void forward(int client , int msg ) ;
 210#line 6 "Client.c"
 211int queue_empty  =    1;
 212#line 9 "Client.c"
 213int queued_message  ;
 214#line 12 "Client.c"
 215int queued_client  ;
 216#line 18 "Client.c"
 217void mail(int client , int msg ) 
 218{ int tmp ;
 219
 220  {
 221  {
 222#line 19
 223  puts("mail sent");
 224#line 20
 225  tmp = getEmailTo(msg);
 226#line 20
 227  incoming(tmp, msg);
 228  }
 229#line 735 "Client.c"
 230  return;
 231}
 232}
 233#line 27 "Client.c"
 234void outgoing__wrappee__AutoResponder(int client , int msg ) 
 235{ int tmp ;
 236
 237  {
 238  {
 239#line 28
 240  tmp = getClientId(client);
 241#line 28
 242  setEmailFrom(msg, tmp);
 243#line 29
 244  mail(client, msg);
 245  }
 246#line 757 "Client.c"
 247  return;
 248}
 249}
 250#line 36 "Client.c"
 251void outgoing(int client , int msg ) 
 252{ int size ;
 253  int tmp ;
 254  int receiver ;
 255  int tmp___0 ;
 256  int second ;
 257  int tmp___1 ;
 258  int tmp___2 ;
 259
 260  {
 261  {
 262#line 38
 263  tmp = getClientAddressBookSize(client);
 264#line 38
 265  size = tmp;
 266  }
 267#line 40
 268  if (size) {
 269    {
 270#line 41
 271    sendToAddressBook(client, msg);
 272#line 42
 273    puts("sending to alias in address book\n");
 274#line 43
 275    tmp___0 = getEmailTo(msg);
 276#line 43
 277    receiver = tmp___0;
 278#line 45
 279    puts("sending to second receipient\n");
 280#line 46
 281    tmp___1 = getClientAddressBookAddress(client, 1);
 282#line 46
 283    second = tmp___1;
 284#line 47
 285    setEmailTo(msg, second);
 286#line 48
 287    outgoing__wrappee__AutoResponder(client, msg);
 288#line 51
 289    tmp___2 = getClientAddressBookAddress(client, 0);
 290#line 51
 291    setEmailTo(msg, tmp___2);
 292#line 52
 293    outgoing__wrappee__AutoResponder(client, msg);
 294    }
 295  } else {
 296    {
 297#line 54
 298    outgoing__wrappee__AutoResponder(client, msg);
 299    }
 300  }
 301#line 807 "Client.c"
 302  return;
 303}
 304}
 305#line 63 "Client.c"
 306void deliver(int client , int msg ) 
 307{ 
 308
 309  {
 310  {
 311#line 64
 312  puts("mail delivered\n");
 313  }
 314#line 827 "Client.c"
 315  return;
 316}
 317}
 318#line 71 "Client.c"
 319void incoming__wrappee__Keys(int client , int msg ) 
 320{ 
 321
 322  {
 323  {
 324#line 72
 325  deliver(client, msg);
 326  }
 327#line 847 "Client.c"
 328  return;
 329}
 330}
 331#line 78 "Client.c"
 332void incoming__wrappee__AddressBook(int client , int msg ) 
 333{ int tmp ;
 334
 335  {
 336  {
 337#line 79
 338  incoming__wrappee__Keys(client, msg);
 339#line 80
 340  tmp = getClientAutoResponse(client);
 341  }
 342#line 80
 343  if (tmp) {
 344    {
 345#line 81
 346    autoRespond(client, msg);
 347    }
 348  } else {
 349
 350  }
 351#line 872 "Client.c"
 352  return;
 353}
 354}
 355#line 88 "Client.c"
 356void incoming(int client , int msg ) 
 357{ int fwreceiver ;
 358  int tmp ;
 359
 360  {
 361  {
 362#line 89
 363  incoming__wrappee__AddressBook(client, msg);
 364#line 90
 365  tmp = getClientForwardReceiver(client);
 366#line 90
 367  fwreceiver = tmp;
 368  }
 369#line 91
 370  if (fwreceiver) {
 371    {
 372#line 93
 373    setEmailTo(msg, fwreceiver);
 374#line 94
 375    forward(client, msg);
 376    }
 377  } else {
 378
 379  }
 380#line 903 "Client.c"
 381  return;
 382}
 383}
 384#line 100 "Client.c"
 385int createClient(char *name ) 
 386{ int retValue_acc ;
 387  int client ;
 388  int tmp ;
 389
 390  {
 391  {
 392#line 101
 393  tmp = initClient();
 394#line 101
 395  client = tmp;
 396#line 925 "Client.c"
 397  retValue_acc = client;
 398  }
 399#line 927
 400  return (retValue_acc);
 401#line 934
 402  return (retValue_acc);
 403}
 404}
 405#line 108 "Client.c"
 406void sendEmail(int sender , int receiver ) 
 407{ int email ;
 408  int tmp ;
 409
 410  {
 411  {
 412#line 109
 413  tmp = createEmail(0, receiver);
 414#line 109
 415  email = tmp;
 416#line 110
 417  outgoing(sender, email);
 418  }
 419#line 962 "Client.c"
 420  return;
 421}
 422}
 423#line 118 "Client.c"
 424void queue(int client , int msg ) 
 425{ 
 426
 427  {
 428#line 119
 429  queue_empty = 0;
 430#line 120
 431  queued_message = msg;
 432#line 121
 433  queued_client = client;
 434#line 986 "Client.c"
 435  return;
 436}
 437}
 438#line 127 "Client.c"
 439int is_queue_empty(void) 
 440{ int retValue_acc ;
 441
 442  {
 443#line 1004 "Client.c"
 444  retValue_acc = queue_empty;
 445#line 1006
 446  return (retValue_acc);
 447#line 1013
 448  return (retValue_acc);
 449}
 450}
 451#line 134 "Client.c"
 452int get_queued_client(void) 
 453{ int retValue_acc ;
 454
 455  {
 456#line 1035 "Client.c"
 457  retValue_acc = queued_client;
 458#line 1037
 459  return (retValue_acc);
 460#line 1044
 461  return (retValue_acc);
 462}
 463}
 464#line 141 "Client.c"
 465int get_queued_email(void) 
 466{ int retValue_acc ;
 467
 468  {
 469#line 1066 "Client.c"
 470  retValue_acc = queued_message;
 471#line 1068
 472  return (retValue_acc);
 473#line 1075
 474  return (retValue_acc);
 475}
 476}
 477#line 147 "Client.c"
 478int isKeyPairValid(int publicKey , int privateKey ) 
 479{ int retValue_acc ;
 480  char const   * __restrict  __cil_tmp4 ;
 481
 482  {
 483  {
 484#line 148
 485  __cil_tmp4 = (char const   * __restrict  )"keypair valid %d %d";
 486#line 148
 487  printf(__cil_tmp4, publicKey, privateKey);
 488  }
 489#line 149 "Client.c"
 490  if (! publicKey) {
 491#line 1100 "Client.c"
 492    retValue_acc = 0;
 493#line 1102
 494    return (retValue_acc);
 495  } else {
 496#line 149 "Client.c"
 497    if (! privateKey) {
 498#line 1100 "Client.c"
 499      retValue_acc = 0;
 500#line 1102
 501      return (retValue_acc);
 502    } else {
 503
 504    }
 505  }
 506#line 1107 "Client.c"
 507  retValue_acc = privateKey == publicKey;
 508#line 1109
 509  return (retValue_acc);
 510#line 1116
 511  return (retValue_acc);
 512}
 513}
 514#line 157 "Client.c"
 515void generateKeyPair(int client , int seed ) 
 516{ 
 517
 518  {
 519  {
 520#line 158
 521  setClientPrivateKey(client, seed);
 522  }
 523#line 1140 "Client.c"
 524  return;
 525}
 526}
 527#line 164 "Client.c"
 528void autoRespond(int client , int msg ) 
 529{ int __utac__ad__arg1 ;
 530  int __utac__ad__arg2 ;
 531  int sender ;
 532  int tmp ;
 533
 534  {
 535  {
 536#line 1267 "Client.c"
 537  __utac__ad__arg1 = client;
 538#line 1268
 539  __utac__ad__arg2 = msg;
 540#line 1269
 541  __utac_acc__DecryptAutoResponder_spec__1(__utac__ad__arg1, __utac__ad__arg2);
 542#line 165 "Client.c"
 543  puts("sending autoresponse\n");
 544#line 166
 545  tmp = getEmailFrom(msg);
 546#line 166
 547  sender = tmp;
 548#line 167
 549  setEmailTo(msg, sender);
 550#line 168
 551  queue(client, msg);
 552  }
 553#line 1292 "Client.c"
 554  return;
 555}
 556}
 557#line 173 "Client.c"
 558void sendToAddressBook(int client , int msg ) 
 559{ 
 560
 561  {
 562#line 1310 "Client.c"
 563  return;
 564}
 565}
 566#line 179 "Client.c"
 567void forward(int client , int msg ) 
 568{ 
 569
 570  {
 571  {
 572#line 180
 573  puts("Forwarding message.\n");
 574#line 181
 575  printMail(msg);
 576#line 182
 577  queue(client, msg);
 578  }
 579#line 1334 "Client.c"
 580  return;
 581}
 582}
 583#line 1 "Util.o"
 584#pragma merger(0,"Util.i","")
 585#line 1 "Util.h"
 586int prompt(char *msg ) ;
 587#line 9 "Util.c"
 588int prompt(char *msg ) 
 589{ int retValue_acc ;
 590  int retval ;
 591  char const   * __restrict  __cil_tmp4 ;
 592
 593  {
 594  {
 595#line 10
 596  __cil_tmp4 = (char const   * __restrict  )"%s\n";
 597#line 10
 598  printf(__cil_tmp4, msg);
 599#line 518 "Util.c"
 600  retValue_acc = retval;
 601  }
 602#line 520
 603  return (retValue_acc);
 604#line 527
 605  return (retValue_acc);
 606}
 607}
 608#line 1 "wsllib_check.o"
 609#pragma merger(0,"wsllib_check.i","")
 610#line 3 "wsllib_check.c"
 611void __automaton_fail(void) 
 612{ 
 613
 614  {
 615  goto ERROR;
 616  ERROR: ;
 617#line 53 "wsllib_check.c"
 618  return;
 619}
 620}
 621#line 1 "Email.o"
 622#pragma merger(0,"Email.i","")
 623#line 6 "EmailLib.h"
 624int getEmailId(int handle ) ;
 625#line 15 "Email.h"
 626int cloneEmail(int msg ) ;
 627#line 9 "Email.c"
 628void printMail(int msg ) 
 629{ int tmp ;
 630  int tmp___0 ;
 631  int tmp___1 ;
 632  int tmp___2 ;
 633  char const   * __restrict  __cil_tmp6 ;
 634  char const   * __restrict  __cil_tmp7 ;
 635  char const   * __restrict  __cil_tmp8 ;
 636  char const   * __restrict  __cil_tmp9 ;
 637
 638  {
 639  {
 640#line 10
 641  tmp = getEmailId(msg);
 642#line 10
 643  __cil_tmp6 = (char const   * __restrict  )"ID:\n  %i\n";
 644#line 10
 645  printf(__cil_tmp6, tmp);
 646#line 11
 647  tmp___0 = getEmailFrom(msg);
 648#line 11
 649  __cil_tmp7 = (char const   * __restrict  )"FROM:\n  %i\n";
 650#line 11
 651  printf(__cil_tmp7, tmp___0);
 652#line 12
 653  tmp___1 = getEmailTo(msg);
 654#line 12
 655  __cil_tmp8 = (char const   * __restrict  )"TO:\n  %i\n";
 656#line 12
 657  printf(__cil_tmp8, tmp___1);
 658#line 13
 659  tmp___2 = isReadable(msg);
 660#line 13
 661  __cil_tmp9 = (char const   * __restrict  )"IS_READABLE\n  %i\n";
 662#line 13
 663  printf(__cil_tmp9, tmp___2);
 664  }
 665#line 601 "Email.c"
 666  return;
 667}
 668}
 669#line 19 "Email.c"
 670int isReadable(int msg ) 
 671{ int retValue_acc ;
 672
 673  {
 674#line 619 "Email.c"
 675  retValue_acc = 1;
 676#line 621
 677  return (retValue_acc);
 678#line 628
 679  return (retValue_acc);
 680}
 681}
 682#line 24 "Email.c"
 683int cloneEmail(int msg ) 
 684{ int retValue_acc ;
 685
 686  {
 687#line 650 "Email.c"
 688  retValue_acc = msg;
 689#line 652
 690  return (retValue_acc);
 691#line 659
 692  return (retValue_acc);
 693}
 694}
 695#line 29 "Email.c"
 696int createEmail(int from , int to ) 
 697{ int retValue_acc ;
 698  int msg ;
 699
 700  {
 701  {
 702#line 30
 703  msg = 1;
 704#line 31
 705  setEmailFrom(msg, from);
 706#line 32
 707  setEmailTo(msg, to);
 708#line 689 "Email.c"
 709  retValue_acc = msg;
 710  }
 711#line 691
 712  return (retValue_acc);
 713#line 698
 714  return (retValue_acc);
 715}
 716}
 717#line 1 "libacc.o"
 718#pragma merger(0,"libacc.i","")
 719#line 73 "/usr/include/assert.h"
 720extern  __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const   *__assertion ,
 721                                                                      char const   *__file ,
 722                                                                      unsigned int __line ,
 723                                                                      char const   *__function ) ;
 724#line 471 "/usr/include/stdlib.h"
 725extern  __attribute__((__nothrow__)) void *malloc(size_t __size )  __attribute__((__malloc__)) ;
 726#line 488
 727extern  __attribute__((__nothrow__)) void free(void *__ptr ) ;
 728#line 32 "libacc.c"
 729void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int  ,
 730                                                                           int  ) ,
 731                                       int val ) 
 732{ struct __UTAC__EXCEPTION *excep ;
 733  struct __UTAC__CFLOW_FUNC *cf ;
 734  void *tmp ;
 735  unsigned long __cil_tmp7 ;
 736  unsigned long __cil_tmp8 ;
 737  unsigned long __cil_tmp9 ;
 738  unsigned long __cil_tmp10 ;
 739  unsigned long __cil_tmp11 ;
 740  unsigned long __cil_tmp12 ;
 741  unsigned long __cil_tmp13 ;
 742  unsigned long __cil_tmp14 ;
 743  int (**mem_15)(int  , int  ) ;
 744  int *mem_16 ;
 745  struct __UTAC__CFLOW_FUNC **mem_17 ;
 746  struct __UTAC__CFLOW_FUNC **mem_18 ;
 747  struct __UTAC__CFLOW_FUNC **mem_19 ;
 748
 749  {
 750  {
 751#line 33
 752  excep = (struct __UTAC__EXCEPTION *)exception;
 753#line 34
 754  tmp = malloc(24UL);
 755#line 34
 756  cf = (struct __UTAC__CFLOW_FUNC *)tmp;
 757#line 36
 758  mem_15 = (int (**)(int  , int  ))cf;
 759#line 36
 760  *mem_15 = cflow_func;
 761#line 37
 762  __cil_tmp7 = (unsigned long )cf;
 763#line 37
 764  __cil_tmp8 = __cil_tmp7 + 8;
 765#line 37
 766  mem_16 = (int *)__cil_tmp8;
 767#line 37
 768  *mem_16 = val;
 769#line 38
 770  __cil_tmp9 = (unsigned long )cf;
 771#line 38
 772  __cil_tmp10 = __cil_tmp9 + 16;
 773#line 38
 774  __cil_tmp11 = (unsigned long )excep;
 775#line 38
 776  __cil_tmp12 = __cil_tmp11 + 24;
 777#line 38
 778  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
 779#line 38
 780  mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
 781#line 38
 782  *mem_17 = *mem_18;
 783#line 39
 784  __cil_tmp13 = (unsigned long )excep;
 785#line 39
 786  __cil_tmp14 = __cil_tmp13 + 24;
 787#line 39
 788  mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
 789#line 39
 790  *mem_19 = cf;
 791  }
 792#line 654 "libacc.c"
 793  return;
 794}
 795}
 796#line 44 "libacc.c"
 797void __utac__exception__cf_handler_free(void *exception ) 
 798{ struct __UTAC__EXCEPTION *excep ;
 799  struct __UTAC__CFLOW_FUNC *cf ;
 800  struct __UTAC__CFLOW_FUNC *tmp ;
 801  unsigned long __cil_tmp5 ;
 802  unsigned long __cil_tmp6 ;
 803  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
 804  unsigned long __cil_tmp8 ;
 805  unsigned long __cil_tmp9 ;
 806  unsigned long __cil_tmp10 ;
 807  unsigned long __cil_tmp11 ;
 808  void *__cil_tmp12 ;
 809  unsigned long __cil_tmp13 ;
 810  unsigned long __cil_tmp14 ;
 811  struct __UTAC__CFLOW_FUNC **mem_15 ;
 812  struct __UTAC__CFLOW_FUNC **mem_16 ;
 813  struct __UTAC__CFLOW_FUNC **mem_17 ;
 814
 815  {
 816#line 45
 817  excep = (struct __UTAC__EXCEPTION *)exception;
 818#line 46
 819  __cil_tmp5 = (unsigned long )excep;
 820#line 46
 821  __cil_tmp6 = __cil_tmp5 + 24;
 822#line 46
 823  mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
 824#line 46
 825  cf = *mem_15;
 826  {
 827#line 49
 828  while (1) {
 829    while_0_continue: /* CIL Label */ ;
 830    {
 831#line 49
 832    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
 833#line 49
 834    __cil_tmp8 = (unsigned long )__cil_tmp7;
 835#line 49
 836    __cil_tmp9 = (unsigned long )cf;
 837#line 49
 838    if (__cil_tmp9 != __cil_tmp8) {
 839
 840    } else {
 841      goto while_0_break;
 842    }
 843    }
 844    {
 845#line 50
 846    tmp = cf;
 847#line 51
 848    __cil_tmp10 = (unsigned long )cf;
 849#line 51
 850    __cil_tmp11 = __cil_tmp10 + 16;
 851#line 51
 852    mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
 853#line 51
 854    cf = *mem_16;
 855#line 52
 856    __cil_tmp12 = (void *)tmp;
 857#line 52
 858    free(__cil_tmp12);
 859    }
 860  }
 861  while_0_break: /* CIL Label */ ;
 862  }
 863#line 55
 864  __cil_tmp13 = (unsigned long )excep;
 865#line 55
 866  __cil_tmp14 = __cil_tmp13 + 24;
 867#line 55
 868  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
 869#line 55
 870  *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
 871#line 694 "libacc.c"
 872  return;
 873}
 874}
 875#line 59 "libacc.c"
 876void __utac__exception__cf_handler_reset(void *exception ) 
 877{ struct __UTAC__EXCEPTION *excep ;
 878  struct __UTAC__CFLOW_FUNC *cf ;
 879  unsigned long __cil_tmp5 ;
 880  unsigned long __cil_tmp6 ;
 881  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
 882  unsigned long __cil_tmp8 ;
 883  unsigned long __cil_tmp9 ;
 884  int (*__cil_tmp10)(int  , int  ) ;
 885  unsigned long __cil_tmp11 ;
 886  unsigned long __cil_tmp12 ;
 887  int __cil_tmp13 ;
 888  unsigned long __cil_tmp14 ;
 889  unsigned long __cil_tmp15 ;
 890  struct __UTAC__CFLOW_FUNC **mem_16 ;
 891  int (**mem_17)(int  , int  ) ;
 892  int *mem_18 ;
 893  struct __UTAC__CFLOW_FUNC **mem_19 ;
 894
 895  {
 896#line 60
 897  excep = (struct __UTAC__EXCEPTION *)exception;
 898#line 61
 899  __cil_tmp5 = (unsigned long )excep;
 900#line 61
 901  __cil_tmp6 = __cil_tmp5 + 24;
 902#line 61
 903  mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
 904#line 61
 905  cf = *mem_16;
 906  {
 907#line 64
 908  while (1) {
 909    while_1_continue: /* CIL Label */ ;
 910    {
 911#line 64
 912    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
 913#line 64
 914    __cil_tmp8 = (unsigned long )__cil_tmp7;
 915#line 64
 916    __cil_tmp9 = (unsigned long )cf;
 917#line 64
 918    if (__cil_tmp9 != __cil_tmp8) {
 919
 920    } else {
 921      goto while_1_break;
 922    }
 923    }
 924    {
 925#line 65
 926    mem_17 = (int (**)(int  , int  ))cf;
 927#line 65
 928    __cil_tmp10 = *mem_17;
 929#line 65
 930    __cil_tmp11 = (unsigned long )cf;
 931#line 65
 932    __cil_tmp12 = __cil_tmp11 + 8;
 933#line 65
 934    mem_18 = (int *)__cil_tmp12;
 935#line 65
 936    __cil_tmp13 = *mem_18;
 937#line 65
 938    (*__cil_tmp10)(4, __cil_tmp13);
 939#line 66
 940    __cil_tmp14 = (unsigned long )cf;
 941#line 66
 942    __cil_tmp15 = __cil_tmp14 + 16;
 943#line 66
 944    mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
 945#line 66
 946    cf = *mem_19;
 947    }
 948  }
 949  while_1_break: /* CIL Label */ ;
 950  }
 951  {
 952#line 69
 953  __utac__exception__cf_handler_free(exception);
 954  }
 955#line 732 "libacc.c"
 956  return;
 957}
 958}
 959#line 80 "libacc.c"
 960void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
 961#line 80 "libacc.c"
 962static struct __ACC__ERR *head  =    (struct __ACC__ERR *)0;
 963#line 79 "libacc.c"
 964void *__utac__error_stack_mgt(void *env , int mode , int count ) 
 965{ void *retValue_acc ;
 966  struct __ACC__ERR *new ;
 967  void *tmp ;
 968  struct __ACC__ERR *temp ;
 969  struct __ACC__ERR *next ;
 970  void *excep ;
 971  unsigned long __cil_tmp10 ;
 972  unsigned long __cil_tmp11 ;
 973  unsigned long __cil_tmp12 ;
 974  unsigned long __cil_tmp13 ;
 975  void *__cil_tmp14 ;
 976  unsigned long __cil_tmp15 ;
 977  unsigned long __cil_tmp16 ;
 978  void *__cil_tmp17 ;
 979  void **mem_18 ;
 980  struct __ACC__ERR **mem_19 ;
 981  struct __ACC__ERR **mem_20 ;
 982  void **mem_21 ;
 983  struct __ACC__ERR **mem_22 ;
 984  void **mem_23 ;
 985  void **mem_24 ;
 986
 987  {
 988#line 82 "libacc.c"
 989  if (count == 0) {
 990#line 758 "libacc.c"
 991    return (retValue_acc);
 992  } else {
 993
 994  }
 995#line 86 "libacc.c"
 996  if (mode == 0) {
 997    {
 998#line 87
 999    tmp = malloc(16UL);
1000#line 87
1001    new = (struct __ACC__ERR *)tmp;
1002#line 88
1003    mem_18 = (void **)new;
1004#line 88
1005    *mem_18 = env;
1006#line 89
1007    __cil_tmp10 = (unsigned long )new;
1008#line 89
1009    __cil_tmp11 = __cil_tmp10 + 8;
1010#line 89
1011    mem_19 = (struct __ACC__ERR **)__cil_tmp11;
1012#line 89
1013    *mem_19 = head;
1014#line 90
1015    head = new;
1016#line 776 "libacc.c"
1017    retValue_acc = (void *)new;
1018    }
1019#line 778
1020    return (retValue_acc);
1021  } else {
1022
1023  }
1024#line 94 "libacc.c"
1025  if (mode == 1) {
1026#line 95
1027    temp = head;
1028    {
1029#line 98
1030    while (1) {
1031      while_2_continue: /* CIL Label */ ;
1032#line 98
1033      if (count > 1) {
1034
1035      } else {
1036        goto while_2_break;
1037      }
1038      {
1039#line 99
1040      __cil_tmp12 = (unsigned long )temp;
1041#line 99
1042      __cil_tmp13 = __cil_tmp12 + 8;
1043#line 99
1044      mem_20 = (struct __ACC__ERR **)__cil_tmp13;
1045#line 99
1046      next = *mem_20;
1047#line 100
1048      mem_21 = (void **)temp;
1049#line 100
1050      excep = *mem_21;
1051#line 101
1052      __cil_tmp14 = (void *)temp;
1053#line 101
1054      free(__cil_tmp14);
1055#line 102
1056      __utac__exception__cf_handler_reset(excep);
1057#line 103
1058      temp = next;
1059#line 104
1060      count = count - 1;
1061      }
1062    }
1063    while_2_break: /* CIL Label */ ;
1064    }
1065    {
1066#line 107
1067    __cil_tmp15 = (unsigned long )temp;
1068#line 107
1069    __cil_tmp16 = __cil_tmp15 + 8;
1070#line 107
1071    mem_22 = (struct __ACC__ERR **)__cil_tmp16;
1072#line 107
1073    head = *mem_22;
1074#line 108
1075    mem_23 = (void **)temp;
1076#line 108
1077    excep = *mem_23;
1078#line 109
1079    __cil_tmp17 = (void *)temp;
1080#line 109
1081    free(__cil_tmp17);
1082#line 110
1083    __utac__exception__cf_handler_reset(excep);
1084#line 820 "libacc.c"
1085    retValue_acc = excep;
1086    }
1087#line 822
1088    return (retValue_acc);
1089  } else {
1090
1091  }
1092#line 114
1093  if (mode == 2) {
1094#line 118 "libacc.c"
1095    if (head) {
1096#line 831
1097      mem_24 = (void **)head;
1098#line 831
1099      retValue_acc = *mem_24;
1100#line 833
1101      return (retValue_acc);
1102    } else {
1103#line 837 "libacc.c"
1104      retValue_acc = (void *)0;
1105#line 839
1106      return (retValue_acc);
1107    }
1108  } else {
1109
1110  }
1111#line 846 "libacc.c"
1112  return (retValue_acc);
1113}
1114}
1115#line 122 "libacc.c"
1116void *__utac__get_this_arg(int i , struct JoinPoint *this ) 
1117{ void *retValue_acc ;
1118  unsigned long __cil_tmp4 ;
1119  unsigned long __cil_tmp5 ;
1120  int __cil_tmp6 ;
1121  int __cil_tmp7 ;
1122  unsigned long __cil_tmp8 ;
1123  unsigned long __cil_tmp9 ;
1124  void **__cil_tmp10 ;
1125  void **__cil_tmp11 ;
1126  int *mem_12 ;
1127  void ***mem_13 ;
1128
1129  {
1130#line 123
1131  if (i > 0) {
1132    {
1133#line 123
1134    __cil_tmp4 = (unsigned long )this;
1135#line 123
1136    __cil_tmp5 = __cil_tmp4 + 16;
1137#line 123
1138    mem_12 = (int *)__cil_tmp5;
1139#line 123
1140    __cil_tmp6 = *mem_12;
1141#line 123
1142    if (i <= __cil_tmp6) {
1143
1144    } else {
1145      {
1146#line 123
1147      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1148                    123U, "__utac__get_this_arg");
1149      }
1150    }
1151    }
1152  } else {
1153    {
1154#line 123
1155    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1156                  123U, "__utac__get_this_arg");
1157    }
1158  }
1159#line 870 "libacc.c"
1160  __cil_tmp7 = i - 1;
1161#line 870
1162  __cil_tmp8 = (unsigned long )this;
1163#line 870
1164  __cil_tmp9 = __cil_tmp8 + 8;
1165#line 870
1166  mem_13 = (void ***)__cil_tmp9;
1167#line 870
1168  __cil_tmp10 = *mem_13;
1169#line 870
1170  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1171#line 870
1172  retValue_acc = *__cil_tmp11;
1173#line 872
1174  return (retValue_acc);
1175#line 879
1176  return (retValue_acc);
1177}
1178}
1179#line 129 "libacc.c"
1180char const   *__utac__get_this_argtype(int i , struct JoinPoint *this ) 
1181{ char const   *retValue_acc ;
1182  unsigned long __cil_tmp4 ;
1183  unsigned long __cil_tmp5 ;
1184  int __cil_tmp6 ;
1185  int __cil_tmp7 ;
1186  unsigned long __cil_tmp8 ;
1187  unsigned long __cil_tmp9 ;
1188  char const   **__cil_tmp10 ;
1189  char const   **__cil_tmp11 ;
1190  int *mem_12 ;
1191  char const   ***mem_13 ;
1192
1193  {
1194#line 131
1195  if (i > 0) {
1196    {
1197#line 131
1198    __cil_tmp4 = (unsigned long )this;
1199#line 131
1200    __cil_tmp5 = __cil_tmp4 + 16;
1201#line 131
1202    mem_12 = (int *)__cil_tmp5;
1203#line 131
1204    __cil_tmp6 = *mem_12;
1205#line 131
1206    if (i <= __cil_tmp6) {
1207
1208    } else {
1209      {
1210#line 131
1211      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1212                    131U, "__utac__get_this_argtype");
1213      }
1214    }
1215    }
1216  } else {
1217    {
1218#line 131
1219    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1220                  131U, "__utac__get_this_argtype");
1221    }
1222  }
1223#line 903 "libacc.c"
1224  __cil_tmp7 = i - 1;
1225#line 903
1226  __cil_tmp8 = (unsigned long )this;
1227#line 903
1228  __cil_tmp9 = __cil_tmp8 + 24;
1229#line 903
1230  mem_13 = (char const   ***)__cil_tmp9;
1231#line 903
1232  __cil_tmp10 = *mem_13;
1233#line 903
1234  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1235#line 903
1236  retValue_acc = *__cil_tmp11;
1237#line 905
1238  return (retValue_acc);
1239#line 912
1240  return (retValue_acc);
1241}
1242}
1243#line 1 "scenario.o"
1244#pragma merger(0,"scenario.i","")
1245#line 17 "scenario.c"
1246void bobKeyAdd(void) ;
1247#line 21
1248void rjhSetAutoRespond(void) ;
1249#line 25
1250void rjhDeletePrivateKey(void) ;
1251#line 29
1252void rjhKeyAdd(void) ;
1253#line 33
1254void chuckKeyAddRjh(void) ;
1255#line 37
1256void rjhEnableForwarding(void) ;
1257#line 41
1258void rjhKeyChange(void) ;
1259#line 45
1260void bobSetAddressBook(void) ;
1261#line 49
1262void chuckKeyAdd(void) ;
1263#line 53
1264void bobKeyChange(void) ;
1265#line 55
1266#line 62
1267void bobToRjh(void) ;
1268#line 1 "scenario.c"
1269void test(void) 
1270{ int op1 ;
1271  int op2 ;
1272  int op3 ;
1273  int op4 ;
1274  int op5 ;
1275  int op6 ;
1276  int op7 ;
1277  int op8 ;
1278  int op9 ;
1279  int op10 ;
1280  int op11 ;
1281  int splverifierCounter ;
1282  int tmp ;
1283  int tmp___0 ;
1284  int tmp___1 ;
1285  int tmp___2 ;
1286  int tmp___3 ;
1287  int tmp___4 ;
1288  int tmp___5 ;
1289  int tmp___6 ;
1290  int tmp___7 ;
1291  int tmp___8 ;
1292  int tmp___9 ;
1293
1294  {
1295#line 2
1296  op1 = 0;
1297#line 3
1298  op2 = 0;
1299#line 4
1300  op3 = 0;
1301#line 5
1302  op4 = 0;
1303#line 6
1304  op5 = 0;
1305#line 7
1306  op6 = 0;
1307#line 8
1308  op7 = 0;
1309#line 9
1310  op8 = 0;
1311#line 10
1312  op9 = 0;
1313#line 11
1314  op10 = 0;
1315#line 12
1316  op11 = 0;
1317#line 13
1318  splverifierCounter = 0;
1319  {
1320#line 14
1321  while (1) {
1322    while_3_continue: /* CIL Label */ ;
1323#line 14
1324    if (splverifierCounter < 4) {
1325
1326    } else {
1327      goto while_3_break;
1328    }
1329#line 15
1330    splverifierCounter = splverifierCounter + 1;
1331#line 16
1332    if (! op1) {
1333      {
1334#line 16
1335      tmp___9 = __VERIFIER_nondet_int();
1336      }
1337#line 16
1338      if (tmp___9) {
1339        {
1340#line 17
1341        bobKeyAdd();
1342#line 18
1343        op1 = 1;
1344        }
1345      } else {
1346        goto _L___8;
1347      }
1348    } else {
1349      _L___8: /* CIL Label */ 
1350#line 19
1351      if (! op2) {
1352        {
1353#line 19
1354        tmp___8 = __VERIFIER_nondet_int();
1355        }
1356#line 19
1357        if (tmp___8) {
1358          {
1359#line 21
1360          rjhSetAutoRespond();
1361#line 22
1362          op2 = 1;
1363          }
1364        } else {
1365          goto _L___7;
1366        }
1367      } else {
1368        _L___7: /* CIL Label */ 
1369#line 23
1370        if (! op3) {
1371          {
1372#line 23
1373          tmp___7 = __VERIFIER_nondet_int();
1374          }
1375#line 23
1376          if (tmp___7) {
1377            {
1378#line 25
1379            rjhDeletePrivateKey();
1380#line 26
1381            op3 = 1;
1382            }
1383          } else {
1384            goto _L___6;
1385          }
1386        } else {
1387          _L___6: /* CIL Label */ 
1388#line 27
1389          if (! op4) {
1390            {
1391#line 27
1392            tmp___6 = __VERIFIER_nondet_int();
1393            }
1394#line 27
1395            if (tmp___6) {
1396              {
1397#line 29
1398              rjhKeyAdd();
1399#line 30
1400              op4 = 1;
1401              }
1402            } else {
1403              goto _L___5;
1404            }
1405          } else {
1406            _L___5: /* CIL Label */ 
1407#line 31
1408            if (! op5) {
1409              {
1410#line 31
1411              tmp___5 = __VERIFIER_nondet_int();
1412              }
1413#line 31
1414              if (tmp___5) {
1415                {
1416#line 33
1417                chuckKeyAddRjh();
1418#line 34
1419                op5 = 1;
1420                }
1421              } else {
1422                goto _L___4;
1423              }
1424            } else {
1425              _L___4: /* CIL Label */ 
1426#line 35
1427              if (! op6) {
1428                {
1429#line 35
1430                tmp___4 = __VERIFIER_nondet_int();
1431                }
1432#line 35
1433                if (tmp___4) {
1434                  {
1435#line 37
1436                  rjhEnableForwarding();
1437#line 38
1438                  op6 = 1;
1439                  }
1440                } else {
1441                  goto _L___3;
1442                }
1443              } else {
1444                _L___3: /* CIL Label */ 
1445#line 39
1446                if (! op7) {
1447                  {
1448#line 39
1449                  tmp___3 = __VERIFIER_nondet_int();
1450                  }
1451#line 39
1452                  if (tmp___3) {
1453                    {
1454#line 41
1455                    rjhKeyChange();
1456#line 42
1457                    op7 = 1;
1458                    }
1459                  } else {
1460                    goto _L___2;
1461                  }
1462                } else {
1463                  _L___2: /* CIL Label */ 
1464#line 43
1465                  if (! op8) {
1466                    {
1467#line 43
1468                    tmp___2 = __VERIFIER_nondet_int();
1469                    }
1470#line 43
1471                    if (tmp___2) {
1472                      {
1473#line 45
1474                      bobSetAddressBook();
1475#line 46
1476                      op8 = 1;
1477                      }
1478                    } else {
1479                      goto _L___1;
1480                    }
1481                  } else {
1482                    _L___1: /* CIL Label */ 
1483#line 47
1484                    if (! op9) {
1485                      {
1486#line 47
1487                      tmp___1 = __VERIFIER_nondet_int();
1488                      }
1489#line 47
1490                      if (tmp___1) {
1491                        {
1492#line 49
1493                        chuckKeyAdd();
1494#line 50
1495                        op9 = 1;
1496                        }
1497                      } else {
1498                        goto _L___0;
1499                      }
1500                    } else {
1501                      _L___0: /* CIL Label */ 
1502#line 51
1503                      if (! op10) {
1504                        {
1505#line 51
1506                        tmp___0 = __VERIFIER_nondet_int();
1507                        }
1508#line 51
1509                        if (tmp___0) {
1510                          {
1511#line 53
1512                          bobKeyChange();
1513#line 54
1514                          op10 = 1;
1515                          }
1516                        } else {
1517                          goto _L;
1518                        }
1519                      } else {
1520                        _L: /* CIL Label */ 
1521#line 55
1522                        if (! op11) {
1523                          {
1524#line 55
1525                          tmp = __VERIFIER_nondet_int();
1526                          }
1527#line 55
1528                          if (tmp) {
1529                            {
1530#line 57
1531                            chuckKeyAdd();
1532#line 58
1533                            op11 = 1;
1534                            }
1535                          } else {
1536                            goto while_3_break;
1537                          }
1538                        } else {
1539                          goto while_3_break;
1540                        }
1541                      }
1542                    }
1543                  }
1544                }
1545              }
1546            }
1547          }
1548        }
1549      }
1550    }
1551  }
1552  while_3_break: /* CIL Label */ ;
1553  }
1554  {
1555#line 62
1556  bobToRjh();
1557  }
1558#line 171 "scenario.c"
1559  return;
1560}
1561}
1562#line 1 "ClientLib.o"
1563#pragma merger(0,"ClientLib.i","")
1564#line 6 "ClientLib.h"
1565char *getClientName(int handle ) ;
1566#line 8
1567void setClientName(int handle , char *value ) ;
1568#line 10
1569int getClientOutbuffer(int handle ) ;
1570#line 12
1571void setClientOutbuffer(int handle , int value ) ;
1572#line 16
1573void setClientAddressBookSize(int handle , int value ) ;
1574#line 18
1575int createClientAddressBookEntry(int handle ) ;
1576#line 20
1577int getClientAddressBookAlias(int handle , int index ) ;
1578#line 22
1579void setClientAddressBookAlias(int handle , int index , int value ) ;
1580#line 26
1581void setClientAddressBookAddress(int handle , int index , int value ) ;
1582#line 31
1583void setClientAutoResponse(int handle , int value ) ;
1584#line 33
1585int getClientPrivateKey(int handle ) ;
1586#line 37
1587int getClientKeyringSize(int handle ) ;
1588#line 39
1589int createClientKeyringEntry(int handle ) ;
1590#line 41
1591int getClientKeyringUser(int handle , int index ) ;
1592#line 43
1593void setClientKeyringUser(int handle , int index , int value ) ;
1594#line 45
1595int getClientKeyringPublicKey(int handle , int index ) ;
1596#line 47
1597void setClientKeyringPublicKey(int handle , int index , int value ) ;
1598#line 51
1599void setClientForwardReceiver(int handle , int value ) ;
1600#line 55
1601void setClientId(int handle , int value ) ;
1602#line 57
1603int findPublicKey(int handle , int userid ) ;
1604#line 59
1605int findClientAddressBookAlias(int handle , int userid ) ;
1606#line 5 "ClientLib.c"
1607int __ste_Client_counter  =    0;
1608#line 7 "ClientLib.c"
1609int initClient(void) 
1610{ int retValue_acc ;
1611
1612  {
1613#line 12 "ClientLib.c"
1614  if (__ste_Client_counter < 3) {
1615#line 684
1616    __ste_Client_counter = __ste_Client_counter + 1;
1617#line 684
1618    retValue_acc = __ste_Client_counter;
1619#line 686
1620    return (retValue_acc);
1621  } else {
1622#line 692 "ClientLib.c"
1623    retValue_acc = -1;
1624#line 694
1625    return (retValue_acc);
1626  }
1627#line 701 "ClientLib.c"
1628  return (retValue_acc);
1629}
1630}
1631#line 15 "ClientLib.c"
1632char *__ste_client_name0  =    (char *)0;
1633#line 17 "ClientLib.c"
1634char *__ste_client_name1  =    (char *)0;
1635#line 19 "ClientLib.c"
1636char *__ste_client_name2  =    (char *)0;
1637#line 22 "ClientLib.c"
1638char *getClientName(int handle ) 
1639{ char *retValue_acc ;
1640  void *__cil_tmp3 ;
1641
1642  {
1643#line 31 "ClientLib.c"
1644  if (handle == 1) {
1645#line 732
1646    retValue_acc = __ste_client_name0;
1647#line 734
1648    return (retValue_acc);
1649  } else {
1650#line 736
1651    if (handle == 2) {
1652#line 741
1653      retValue_acc = __ste_client_name1;
1654#line 743
1655      return (retValue_acc);
1656    } else {
1657#line 745
1658      if (handle == 3) {
1659#line 750
1660        retValue_acc = __ste_client_name2;
1661#line 752
1662        return (retValue_acc);
1663      } else {
1664#line 758 "ClientLib.c"
1665        __cil_tmp3 = (void *)0;
1666#line 758
1667        retValue_acc = (char *)__cil_tmp3;
1668#line 760
1669        return (retValue_acc);
1670      }
1671    }
1672  }
1673#line 767 "ClientLib.c"
1674  return (retValue_acc);
1675}
1676}
1677#line 34 "ClientLib.c"
1678void setClientName(int handle , char *value ) 
1679{ 
1680
1681  {
1682#line 42
1683  if (handle == 1) {
1684#line 36
1685    __ste_client_name0 = value;
1686  } else {
1687#line 37
1688    if (handle == 2) {
1689#line 38
1690      __ste_client_name1 = value;
1691    } else {
1692#line 39
1693      if (handle == 3) {
1694#line 40
1695        __ste_client_name2 = value;
1696      } else {
1697
1698      }
1699    }
1700  }
1701#line 802 "ClientLib.c"
1702  return;
1703}
1704}
1705#line 44 "ClientLib.c"
1706int __ste_client_outbuffer0  =    0;
1707#line 46 "ClientLib.c"
1708int __ste_client_outbuffer1  =    0;
1709#line 48 "ClientLib.c"
1710int __ste_client_outbuffer2  =    0;
1711#line 50 "ClientLib.c"
1712int __ste_client_outbuffer3  =    0;
1713#line 53 "ClientLib.c"
1714int getClientOutbuffer(int handle ) 
1715{ int retValue_acc ;
1716
1717  {
1718#line 62 "ClientLib.c"
1719  if (handle == 1) {
1720#line 831
1721    retValue_acc = __ste_client_outbuffer0;
1722#line 833
1723    return (retValue_acc);
1724  } else {
1725#line 835
1726    if (handle == 2) {
1727#line 840
1728      retValue_acc = __ste_client_outbuffer1;
1729#line 842
1730      return (retValue_acc);
1731    } else {
1732#line 844
1733      if (handle == 3) {
1734#line 849
1735        retValue_acc = __ste_client_outbuffer2;
1736#line 851
1737        return (retValue_acc);
1738      } else {
1739#line 857 "ClientLib.c"
1740        retValue_acc = 0;
1741#line 859
1742        return (retValue_acc);
1743      }
1744    }
1745  }
1746#line 866 "ClientLib.c"
1747  return (retValue_acc);
1748}
1749}
1750#line 65 "ClientLib.c"
1751void setClientOutbuffer(int handle , int value ) 
1752{ 
1753
1754  {
1755#line 73
1756  if (handle == 1) {
1757#line 67
1758    __ste_client_outbuffer0 = value;
1759  } else {
1760#line 68
1761    if (handle == 2) {
1762#line 69
1763      __ste_client_outbuffer1 = value;
1764    } else {
1765#line 70
1766      if (handle == 3) {
1767#line 71
1768        __ste_client_outbuffer2 = value;
1769      } else {
1770
1771      }
1772    }
1773  }
1774#line 901 "ClientLib.c"
1775  return;
1776}
1777}
1778#line 77 "ClientLib.c"
1779int __ste_ClientAddressBook_size0  =    0;
1780#line 79 "ClientLib.c"
1781int __ste_ClientAddressBook_size1  =    0;
1782#line 81 "ClientLib.c"
1783int __ste_ClientAddressBook_size2  =    0;
1784#line 84 "ClientLib.c"
1785int getClientAddressBookSize(int handle ) 
1786{ int retValue_acc ;
1787
1788  {
1789#line 93 "ClientLib.c"
1790  if (handle == 1) {
1791#line 928
1792    retValue_acc = __ste_ClientAddressBook_size0;
1793#line 930
1794    return (retValue_acc);
1795  } else {
1796#line 932
1797    if (handle == 2) {
1798#line 937
1799      retValue_acc = __ste_ClientAddressBook_size1;
1800#line 939
1801      return (retValue_acc);
1802    } else {
1803#line 941
1804      if (handle == 3) {
1805#line 946
1806        retValue_acc = __ste_ClientAddressBook_size2;
1807#line 948
1808        return (retValue_acc);
1809      } else {
1810#line 954 "ClientLib.c"
1811        retValue_acc = 0;
1812#line 956
1813        return (retValue_acc);
1814      }
1815    }
1816  }
1817#line 963 "ClientLib.c"
1818  return (retValue_acc);
1819}
1820}
1821#line 96 "ClientLib.c"
1822void setClientAddressBookSize(int handle , int value ) 
1823{ 
1824
1825  {
1826#line 104
1827  if (handle == 1) {
1828#line 98
1829    __ste_ClientAddressBook_size0 = value;
1830  } else {
1831#line 99
1832    if (handle == 2) {
1833#line 100
1834      __ste_ClientAddressBook_size1 = value;
1835    } else {
1836#line 101
1837      if (handle == 3) {
1838#line 102
1839        __ste_ClientAddressBook_size2 = value;
1840      } else {
1841
1842      }
1843    }
1844  }
1845#line 998 "ClientLib.c"
1846  return;
1847}
1848}
1849#line 106 "ClientLib.c"
1850int createClientAddressBookEntry(int handle ) 
1851{ int retValue_acc ;
1852  int size ;
1853  int tmp ;
1854  int __cil_tmp5 ;
1855
1856  {
1857  {
1858#line 107
1859  tmp = getClientAddressBookSize(handle);
1860#line 107
1861  size = tmp;
1862  }
1863#line 108 "ClientLib.c"
1864  if (size < 3) {
1865    {
1866#line 109 "ClientLib.c"
1867    __cil_tmp5 = size + 1;
1868#line 109
1869    setClientAddressBookSize(handle, __cil_tmp5);
1870#line 1025 "ClientLib.c"
1871    retValue_acc = size + 1;
1872    }
1873#line 1027
1874    return (retValue_acc);
1875  } else {
1876#line 1031 "ClientLib.c"
1877    retValue_acc = -1;
1878#line 1033
1879    return (retValue_acc);
1880  }
1881#line 1040 "ClientLib.c"
1882  return (retValue_acc);
1883}
1884}
1885#line 115 "ClientLib.c"
1886int __ste_Client_AddressBook0_Alias0  =    0;
1887#line 117 "ClientLib.c"
1888int __ste_Client_AddressBook0_Alias1  =    0;
1889#line 119 "ClientLib.c"
1890int __ste_Client_AddressBook0_Alias2  =    0;
1891#line 121 "ClientLib.c"
1892int __ste_Client_AddressBook1_Alias0  =    0;
1893#line 123 "ClientLib.c"
1894int __ste_Client_AddressBook1_Alias1  =    0;
1895#line 125 "ClientLib.c"
1896int __ste_Client_AddressBook1_Alias2  =    0;
1897#line 127 "ClientLib.c"
1898int __ste_Client_AddressBook2_Alias0  =    0;
1899#line 129 "ClientLib.c"
1900int __ste_Client_AddressBook2_Alias1  =    0;
1901#line 131 "ClientLib.c"
1902int __ste_Client_AddressBook2_Alias2  =    0;
1903#line 134 "ClientLib.c"
1904int getClientAddressBookAlias(int handle , int index ) 
1905{ int retValue_acc ;
1906
1907  {
1908#line 167
1909  if (handle == 1) {
1910#line 144 "ClientLib.c"
1911    if (index == 0) {
1912#line 1086
1913      retValue_acc = __ste_Client_AddressBook0_Alias0;
1914#line 1088
1915      return (retValue_acc);
1916    } else {
1917#line 1090
1918      if (index == 1) {
1919#line 1095
1920        retValue_acc = __ste_Client_AddressBook0_Alias1;
1921#line 1097
1922        return (retValue_acc);
1923      } else {
1924#line 1099
1925        if (index == 2) {
1926#line 1104
1927          retValue_acc = __ste_Client_AddressBook0_Alias2;
1928#line 1106
1929          return (retValue_acc);
1930        } else {
1931#line 1112
1932          retValue_acc = 0;
1933#line 1114
1934          return (retValue_acc);
1935        }
1936      }
1937    }
1938  } else {
1939#line 1116 "ClientLib.c"
1940    if (handle == 2) {
1941#line 154 "ClientLib.c"
1942      if (index == 0) {
1943#line 1124
1944        retValue_acc = __ste_Client_AddressBook1_Alias0;
1945#line 1126
1946        return (retValue_acc);
1947      } else {
1948#line 1128
1949        if (index == 1) {
1950#line 1133
1951          retValue_acc = __ste_Client_AddressBook1_Alias1;
1952#line 1135
1953          return (retValue_acc);
1954        } else {
1955#line 1137
1956          if (index == 2) {
1957#line 1142
1958            retValue_acc = __ste_Client_AddressBook1_Alias2;
1959#line 1144
1960            return (retValue_acc);
1961          } else {
1962#line 1150
1963            retValue_acc = 0;
1964#line 1152
1965            return (retValue_acc);
1966          }
1967        }
1968      }
1969    } else {
1970#line 1154 "ClientLib.c"
1971      if (handle == 3) {
1972#line 164 "ClientLib.c"
1973        if (index == 0) {
1974#line 1162
1975          retValue_acc = __ste_Client_AddressBook2_Alias0;
1976#line 1164
1977          return (retValue_acc);
1978        } else {
1979#line 1166
1980          if (index == 1) {
1981#line 1171
1982            retValue_acc = __ste_Client_AddressBook2_Alias1;
1983#line 1173
1984            return (retValue_acc);
1985          } else {
1986#line 1175
1987            if (index == 2) {
1988#line 1180
1989              retValue_acc = __ste_Client_AddressBook2_Alias2;
1990#line 1182
1991              return (retValue_acc);
1992            } else {
1993#line 1188
1994              retValue_acc = 0;
1995#line 1190
1996              return (retValue_acc);
1997            }
1998          }
1999        }
2000      } else {
2001#line 1196 "ClientLib.c"
2002        retValue_acc = 0;
2003#line 1198
2004        return (retValue_acc);
2005      }
2006    }
2007  }
2008#line 1205 "ClientLib.c"
2009  return (retValue_acc);
2010}
2011}
2012#line 171 "ClientLib.c"
2013int findClientAddressBookAlias(int handle , int userid ) 
2014{ int retValue_acc ;
2015
2016  {
2017#line 204
2018  if (handle == 1) {
2019#line 181 "ClientLib.c"
2020    if (userid == __ste_Client_AddressBook0_Alias0) {
2021#line 1233
2022      retValue_acc = 0;
2023#line 1235
2024      return (retValue_acc);
2025    } else {
2026#line 1237
2027      if (userid == __ste_Client_AddressBook0_Alias1) {
2028#line 1242
2029        retValue_acc = 1;
2030#line 1244
2031        return (retValue_acc);
2032      } else {
2033#line 1246
2034        if (userid == __ste_Client_AddressBook0_Alias2) {
2035#line 1251
2036          retValue_acc = 2;
2037#line 1253
2038          return (retValue_acc);
2039        } else {
2040#line 1259
2041          retValue_acc = -1;
2042#line 1261
2043          return (retValue_acc);
2044        }
2045      }
2046    }
2047  } else {
2048#line 1263 "ClientLib.c"
2049    if (handle == 2) {
2050#line 191 "ClientLib.c"
2051      if (userid == __ste_Client_AddressBook1_Alias0) {
2052#line 1271
2053        retValue_acc = 0;
2054#line 1273
2055        return (retValue_acc);
2056      } else {
2057#line 1275
2058        if (userid == __ste_Client_AddressBook1_Alias1) {
2059#line 1280
2060          retValue_acc = 1;
2061#line 1282
2062          return (retValue_acc);
2063        } else {
2064#line 1284
2065          if (userid == __ste_Client_AddressBook1_Alias2) {
2066#line 1289
2067            retValue_acc = 2;
2068#line 1291
2069            return (retValue_acc);
2070          } else {
2071#line 1297
2072            retValue_acc = -1;
2073#line 1299
2074            return (retValue_acc);
2075          }
2076        }
2077      }
2078    } else {
2079#line 1301 "ClientLib.c"
2080      if (handle == 3) {
2081#line 201 "ClientLib.c"
2082        if (userid == __ste_Client_AddressBook2_Alias0) {
2083#line 1309
2084          retValue_acc = 0;
2085#line 1311
2086          return (retValue_acc);
2087        } else {
2088#line 1313
2089          if (userid == __ste_Client_AddressBook2_Alias1) {
2090#line 1318
2091            retValue_acc = 1;
2092#line 1320
2093            return (retValue_acc);
2094          } else {
2095#line 1322
2096            if (userid == __ste_Client_AddressBook2_Alias2) {
2097#line 1327
2098              retValue_acc = 2;
2099#line 1329
2100              return (retValue_acc);
2101            } else {
2102#line 1335
2103              retValue_acc = -1;
2104#line 1337
2105              return (retValue_acc);
2106            }
2107          }
2108        }
2109      } else {
2110#line 1343 "ClientLib.c"
2111        retValue_acc = -1;
2112#line 1345
2113        return (retValue_acc);
2114      }
2115    }
2116  }
2117#line 1352 "ClientLib.c"
2118  return (retValue_acc);
2119}
2120}
2121#line 208 "ClientLib.c"
2122void setClientAddressBookAlias(int handle , int index , int value ) 
2123{ 
2124
2125  {
2126#line 234
2127  if (handle == 1) {
2128#line 217
2129    if (index == 0) {
2130#line 211
2131      __ste_Client_AddressBook0_Alias0 = value;
2132    } else {
2133#line 212
2134      if (index == 1) {
2135#line 213
2136        __ste_Client_AddressBook0_Alias1 = value;
2137      } else {
2138#line 214
2139        if (index == 2) {
2140#line 215
2141          __ste_Client_AddressBook0_Alias2 = value;
2142        } else {
2143
2144        }
2145      }
2146    }
2147  } else {
2148#line 216
2149    if (handle == 2) {
2150#line 225
2151      if (index == 0) {
2152#line 219
2153        __ste_Client_AddressBook1_Alias0 = value;
2154      } else {
2155#line 220
2156        if (index == 1) {
2157#line 221
2158          __ste_Client_AddressBook1_Alias1 = value;
2159        } else {
2160#line 222
2161          if (index == 2) {
2162#line 223
2163            __ste_Client_AddressBook1_Alias2 = value;
2164          } else {
2165
2166          }
2167        }
2168      }
2169    } else {
2170#line 224
2171      if (handle == 3) {
2172#line 233
2173        if (index == 0) {
2174#line 227
2175          __ste_Client_AddressBook2_Alias0 = value;
2176        } else {
2177#line 228
2178          if (index == 1) {
2179#line 229
2180            __ste_Client_AddressBook2_Alias1 = value;
2181          } else {
2182#line 230
2183            if (index == 2) {
2184#line 231
2185              __ste_Client_AddressBook2_Alias2 = value;
2186            } else {
2187
2188            }
2189          }
2190        }
2191      } else {
2192
2193      }
2194    }
2195  }
2196#line 1420 "ClientLib.c"
2197  return;
2198}
2199}
2200#line 236 "ClientLib.c"
2201int __ste_Client_AddressBook0_Address0  =    0;
2202#line 238 "ClientLib.c"
2203int __ste_Client_AddressBook0_Address1  =    0;
2204#line 240 "ClientLib.c"
2205int __ste_Client_AddressBook0_Address2  =    0;
2206#line 242 "ClientLib.c"
2207int __ste_Client_AddressBook1_Address0  =    0;
2208#line 244 "ClientLib.c"
2209int __ste_Client_AddressBook1_Address1  =    0;
2210#line 246 "ClientLib.c"
2211int __ste_Client_AddressBook1_Address2  =    0;
2212#line 248 "ClientLib.c"
2213int __ste_Client_AddressBook2_Address0  =    0;
2214#line 250 "ClientLib.c"
2215int __ste_Client_AddressBook2_Address1  =    0;
2216#line 252 "ClientLib.c"
2217int __ste_Client_AddressBook2_Address2  =    0;
2218#line 255 "ClientLib.c"
2219int getClientAddressBookAddress(int handle , int index ) 
2220{ int retValue_acc ;
2221
2222  {
2223#line 288
2224  if (handle == 1) {
2225#line 265 "ClientLib.c"
2226    if (index == 0) {
2227#line 1462
2228      retValue_acc = __ste_Client_AddressBook0_Address0;
2229#line 1464
2230      return (retValue_acc);
2231    } else {
2232#line 1466
2233      if (index == 1) {
2234#line 1471
2235        retValue_acc = __ste_Client_AddressBook0_Address1;
2236#line 1473
2237        return (retValue_acc);
2238      } else {
2239#line 1475
2240        if (index == 2) {
2241#line 1480
2242          retValue_acc = __ste_Client_AddressBook0_Address2;
2243#line 1482
2244          return (retValue_acc);
2245        } else {
2246#line 1488
2247          retValue_acc = 0;
2248#line 1490
2249          return (retValue_acc);
2250        }
2251      }
2252    }
2253  } else {
2254#line 1492 "ClientLib.c"
2255    if (handle == 2) {
2256#line 275 "ClientLib.c"
2257      if (index == 0) {
2258#line 1500
2259        retValue_acc = __ste_Client_AddressBook1_Address0;
2260#line 1502
2261        return (retValue_acc);
2262      } else {
2263#line 1504
2264        if (index == 1) {
2265#line 1509
2266          retValue_acc = __ste_Client_AddressBook1_Address1;
2267#line 1511
2268          return (retValue_acc);
2269        } else {
2270#line 1513
2271          if (index == 2) {
2272#line 1518
2273            retValue_acc = __ste_Client_AddressBook1_Address2;
2274#line 1520
2275            return (retValue_acc);
2276          } else {
2277#line 1526
2278            retValue_acc = 0;
2279#line 1528
2280            return (retValue_acc);
2281          }
2282        }
2283      }
2284    } else {
2285#line 1530 "ClientLib.c"
2286      if (handle == 3) {
2287#line 285 "ClientLib.c"
2288        if (index == 0) {
2289#line 1538
2290          retValue_acc = __ste_Client_AddressBook2_Address0;
2291#line 1540
2292          return (retValue_acc);
2293        } else {
2294#line 1542
2295          if (index == 1) {
2296#line 1547
2297            retValue_acc = __ste_Client_AddressBook2_Address1;
2298#line 1549
2299            return (retValue_acc);
2300          } else {
2301#line 1551
2302            if (index == 2) {
2303#line 1556
2304              retValue_acc = __ste_Client_AddressBook2_Address2;
2305#line 1558
2306              return (retValue_acc);
2307            } else {
2308#line 1564
2309              retValue_acc = 0;
2310#line 1566
2311              return (retValue_acc);
2312            }
2313          }
2314        }
2315      } else {
2316#line 1572 "ClientLib.c"
2317        retValue_acc = 0;
2318#line 1574
2319        return (retValue_acc);
2320      }
2321    }
2322  }
2323#line 1581 "ClientLib.c"
2324  return (retValue_acc);
2325}
2326}
2327#line 291 "ClientLib.c"
2328void setClientAddressBookAddress(int handle , int index , int value ) 
2329{ 
2330
2331  {
2332#line 317
2333  if (handle == 1) {
2334#line 300
2335    if (index == 0) {
2336#line 294
2337      __ste_Client_AddressBook0_Address0 = value;
2338    } else {
2339#line 295
2340      if (index == 1) {
2341#line 296
2342        __ste_Client_AddressBook0_Address1 = value;
2343      } else {
2344#line 297
2345        if (index == 2) {
2346#line 298
2347          __ste_Client_AddressBook0_Address2 = value;
2348        } else {
2349
2350        }
2351      }
2352    }
2353  } else {
2354#line 299
2355    if (handle == 2) {
2356#line 308
2357      if (index == 0) {
2358#line 302
2359        __ste_Client_AddressBook1_Address0 = value;
2360      } else {
2361#line 303
2362        if (index == 1) {
2363#line 304
2364          __ste_Client_AddressBook1_Address1 = value;
2365        } else {
2366#line 305
2367          if (index == 2) {
2368#line 306
2369            __ste_Client_AddressBook1_Address2 = value;
2370          } else {
2371
2372          }
2373        }
2374      }
2375    } else {
2376#line 307
2377      if (handle == 3) {
2378#line 316
2379        if (index == 0) {
2380#line 310
2381          __ste_Client_AddressBook2_Address0 = value;
2382        } else {
2383#line 311
2384          if (index == 1) {
2385#line 312
2386            __ste_Client_AddressBook2_Address1 = value;
2387          } else {
2388#line 313
2389            if (index == 2) {
2390#line 314
2391              __ste_Client_AddressBook2_Address2 = value;
2392            } else {
2393
2394            }
2395          }
2396        }
2397      } else {
2398
2399      }
2400    }
2401  }
2402#line 1649 "ClientLib.c"
2403  return;
2404}
2405}
2406#line 319 "ClientLib.c"
2407int __ste_client_autoResponse0  =    0;
2408#line 321 "ClientLib.c"
2409int __ste_client_autoResponse1  =    0;
2410#line 323 "ClientLib.c"
2411int __ste_client_autoResponse2  =    0;
2412#line 326 "ClientLib.c"
2413int getClientAutoResponse(int handle ) 
2414{ int retValue_acc ;
2415
2416  {
2417#line 335 "ClientLib.c"
2418  if (handle == 1) {
2419#line 1676
2420    retValue_acc = __ste_client_autoResponse0;
2421#line 1678
2422    return (retValue_acc);
2423  } else {
2424#line 1680
2425    if (handle == 2) {
2426#line 1685
2427      retValue_acc = __ste_client_autoResponse1;
2428#line 1687
2429      return (retValue_acc);
2430    } else {
2431#line 1689
2432      if (handle == 3) {
2433#line 1694
2434        retValue_acc = __ste_client_autoResponse2;
2435#line 1696
2436        return (retValue_acc);
2437      } else {
2438#line 1702 "ClientLib.c"
2439        retValue_acc = -1;
2440#line 1704
2441        return (retValue_acc);
2442      }
2443    }
2444  }
2445#line 1711 "ClientLib.c"
2446  return (retValue_acc);
2447}
2448}
2449#line 338 "ClientLib.c"
2450void setClientAutoResponse(int handle , int value ) 
2451{ 
2452
2453  {
2454#line 346
2455  if (handle == 1) {
2456#line 340
2457    __ste_client_autoResponse0 = value;
2458  } else {
2459#line 341
2460    if (handle == 2) {
2461#line 342
2462      __ste_client_autoResponse1 = value;
2463    } else {
2464#line 343
2465      if (handle == 3) {
2466#line 344
2467        __ste_client_autoResponse2 = value;
2468      } else {
2469
2470      }
2471    }
2472  }
2473#line 1746 "ClientLib.c"
2474  return;
2475}
2476}
2477#line 348 "ClientLib.c"
2478int __ste_client_privateKey0  =    0;
2479#line 350 "ClientLib.c"
2480int __ste_client_privateKey1  =    0;
2481#line 352 "ClientLib.c"
2482int __ste_client_privateKey2  =    0;
2483#line 355 "ClientLib.c"
2484int getClientPrivateKey(int handle ) 
2485{ int retValue_acc ;
2486
2487  {
2488#line 364 "ClientLib.c"
2489  if (handle == 1) {
2490#line 1773
2491    retValue_acc = __ste_client_privateKey0;
2492#line 1775
2493    return (retValue_acc);
2494  } else {
2495#line 1777
2496    if (handle == 2) {
2497#line 1782
2498      retValue_acc = __ste_client_privateKey1;
2499#line 1784
2500      return (retValue_acc);
2501    } else {
2502#line 1786
2503      if (handle == 3) {
2504#line 1791
2505        retValue_acc = __ste_client_privateKey2;
2506#line 1793
2507        return (retValue_acc);
2508      } else {
2509#line 1799 "ClientLib.c"
2510        retValue_acc = 0;
2511#line 1801
2512        return (retValue_acc);
2513      }
2514    }
2515  }
2516#line 1808 "ClientLib.c"
2517  return (retValue_acc);
2518}
2519}
2520#line 367 "ClientLib.c"
2521void setClientPrivateKey(int handle , int value ) 
2522{ 
2523
2524  {
2525#line 375
2526  if (handle == 1) {
2527#line 369
2528    __ste_client_privateKey0 = value;
2529  } else {
2530#line 370
2531    if (handle == 2) {
2532#line 371
2533      __ste_client_privateKey1 = value;
2534    } else {
2535#line 372
2536      if (handle == 3) {
2537#line 373
2538        __ste_client_privateKey2 = value;
2539      } else {
2540
2541      }
2542    }
2543  }
2544#line 1843 "ClientLib.c"
2545  return;
2546}
2547}
2548#line 377 "ClientLib.c"
2549int __ste_ClientKeyring_size0  =    0;
2550#line 379 "ClientLib.c"
2551int __ste_ClientKeyring_size1  =    0;
2552#line 381 "ClientLib.c"
2553int __ste_ClientKeyring_size2  =    0;
2554#line 384 "ClientLib.c"
2555int getClientKeyringSize(int handle ) 
2556{ int retValue_acc ;
2557
2558  {
2559#line 393 "ClientLib.c"
2560  if (handle == 1) {
2561#line 1870
2562    retValue_acc = __ste_ClientKeyring_size0;
2563#line 1872
2564    return (retValue_acc);
2565  } else {
2566#line 1874
2567    if (handle == 2) {
2568#line 1879
2569      retValue_acc = __ste_ClientKeyring_size1;
2570#line 1881
2571      return (retValue_acc);
2572    } else {
2573#line 1883
2574      if (handle == 3) {
2575#line 1888
2576        retValue_acc = __ste_ClientKeyring_size2;
2577#line 1890
2578        return (retValue_acc);
2579      } else {
2580#line 1896 "ClientLib.c"
2581        retValue_acc = 0;
2582#line 1898
2583        return (retValue_acc);
2584      }
2585    }
2586  }
2587#line 1905 "ClientLib.c"
2588  return (retValue_acc);
2589}
2590}
2591#line 396 "ClientLib.c"
2592void setClientKeyringSize(int handle , int value ) 
2593{ 
2594
2595  {
2596#line 404
2597  if (handle == 1) {
2598#line 398
2599    __ste_ClientKeyring_size0 = value;
2600  } else {
2601#line 399
2602    if (handle == 2) {
2603#line 400
2604      __ste_ClientKeyring_size1 = value;
2605    } else {
2606#line 401
2607      if (handle == 3) {
2608#line 402
2609        __ste_ClientKeyring_size2 = value;
2610      } else {
2611
2612      }
2613    }
2614  }
2615#line 1940 "ClientLib.c"
2616  return;
2617}
2618}
2619#line 406 "ClientLib.c"
2620int createClientKeyringEntry(int handle ) 
2621{ int retValue_acc ;
2622  int size ;
2623  int tmp ;
2624  int __cil_tmp5 ;
2625
2626  {
2627  {
2628#line 407
2629  tmp = getClientKeyringSize(handle);
2630#line 407
2631  size = tmp;
2632  }
2633#line 408 "ClientLib.c"
2634  if (size < 2) {
2635    {
2636#line 409 "ClientLib.c"
2637    __cil_tmp5 = size + 1;
2638#line 409
2639    setClientKeyringSize(handle, __cil_tmp5);
2640#line 1967 "ClientLib.c"
2641    retValue_acc = size + 1;
2642    }
2643#line 1969
2644    return (retValue_acc);
2645  } else {
2646#line 1973 "ClientLib.c"
2647    retValue_acc = -1;
2648#line 1975
2649    return (retValue_acc);
2650  }
2651#line 1982 "ClientLib.c"
2652  return (retValue_acc);
2653}
2654}
2655#line 414 "ClientLib.c"
2656int __ste_Client_Keyring0_User0  =    0;
2657#line 416 "ClientLib.c"
2658int __ste_Client_Keyring0_User1  =    0;
2659#line 418 "ClientLib.c"
2660int __ste_Client_Keyring0_User2  =    0;
2661#line 420 "ClientLib.c"
2662int __ste_Client_Keyring1_User0  =    0;
2663#line 422 "ClientLib.c"
2664int __ste_Client_Keyring1_User1  =    0;
2665#line 424 "ClientLib.c"
2666int __ste_Client_Keyring1_User2  =    0;
2667#line 426 "ClientLib.c"
2668int __ste_Client_Keyring2_User0  =    0;
2669#line 428 "ClientLib.c"
2670int __ste_Client_Keyring2_User1  =    0;
2671#line 430 "ClientLib.c"
2672int __ste_Client_Keyring2_User2  =    0;
2673#line 433 "ClientLib.c"
2674int getClientKeyringUser(int handle , int index ) 
2675{ int retValue_acc ;
2676
2677  {
2678#line 466
2679  if (handle == 1) {
2680#line 443 "ClientLib.c"
2681    if (index == 0) {
2682#line 2028
2683      retValue_acc = __ste_Client_Keyring0_User0;
2684#line 2030
2685      return (retValue_acc);
2686    } else {
2687#line 2032
2688      if (index == 1) {
2689#line 2037
2690        retValue_acc = __ste_Client_Keyring0_User1;
2691#line 2039
2692        return (retValue_acc);
2693      } else {
2694#line 2045
2695        retValue_acc = 0;
2696#line 2047
2697        return (retValue_acc);
2698      }
2699    }
2700  } else {
2701#line 2049 "ClientLib.c"
2702    if (handle == 2) {
2703#line 453 "ClientLib.c"
2704      if (index == 0) {
2705#line 2057
2706        retValue_acc = __ste_Client_Keyring1_User0;
2707#line 2059
2708        return (retValue_acc);
2709      } else {
2710#line 2061
2711        if (index == 1) {
2712#line 2066
2713          retValue_acc = __ste_Client_Keyring1_User1;
2714#line 2068
2715          return (retValue_acc);
2716        } else {
2717#line 2074
2718          retValue_acc = 0;
2719#line 2076
2720          return (retValue_acc);
2721        }
2722      }
2723    } else {
2724#line 2078 "ClientLib.c"
2725      if (handle == 3) {
2726#line 463 "ClientLib.c"
2727        if (index == 0) {
2728#line 2086
2729          retValue_acc = __ste_Client_Keyring2_User0;
2730#line 2088
2731          return (retValue_acc);
2732        } else {
2733#line 2090
2734          if (index == 1) {
2735#line 2095
2736            retValue_acc = __ste_Client_Keyring2_User1;
2737#line 2097
2738            return (retValue_acc);
2739          } else {
2740#line 2103
2741            retValue_acc = 0;
2742#line 2105
2743            return (retValue_acc);
2744          }
2745        }
2746      } else {
2747#line 2111 "ClientLib.c"
2748        retValue_acc = 0;
2749#line 2113
2750        return (retValue_acc);
2751      }
2752    }
2753  }
2754#line 2120 "ClientLib.c"
2755  return (retValue_acc);
2756}
2757}
2758#line 473 "ClientLib.c"
2759void setClientKeyringUser(int handle , int index , int value ) 
2760{ 
2761
2762  {
2763#line 499
2764  if (handle == 1) {
2765#line 482
2766    if (index == 0) {
2767#line 476
2768      __ste_Client_Keyring0_User0 = value;
2769    } else {
2770#line 477
2771      if (index == 1) {
2772#line 478
2773        __ste_Client_Keyring0_User1 = value;
2774      } else {
2775
2776      }
2777    }
2778  } else {
2779#line 479
2780    if (handle == 2) {
2781#line 490
2782      if (index == 0) {
2783#line 484
2784        __ste_Client_Keyring1_User0 = value;
2785      } else {
2786#line 485
2787        if (index == 1) {
2788#line 486
2789          __ste_Client_Keyring1_User1 = value;
2790        } else {
2791
2792        }
2793      }
2794    } else {
2795#line 487
2796      if (handle == 3) {
2797#line 498
2798        if (index == 0) {
2799#line 492
2800          __ste_Client_Keyring2_User0 = value;
2801        } else {
2802#line 493
2803          if (index == 1) {
2804#line 494
2805            __ste_Client_Keyring2_User1 = value;
2806          } else {
2807
2808          }
2809        }
2810      } else {
2811
2812      }
2813    }
2814  }
2815#line 2176 "ClientLib.c"
2816  return;
2817}
2818}
2819#line 501 "ClientLib.c"
2820int __ste_Client_Keyring0_PublicKey0  =    0;
2821#line 503 "ClientLib.c"
2822int __ste_Client_Keyring0_PublicKey1  =    0;
2823#line 505 "ClientLib.c"
2824int __ste_Client_Keyring0_PublicKey2  =    0;
2825#line 507 "ClientLib.c"
2826int __ste_Client_Keyring1_PublicKey0  =    0;
2827#line 509 "ClientLib.c"
2828int __ste_Client_Keyring1_PublicKey1  =    0;
2829#line 511 "ClientLib.c"
2830int __ste_Client_Keyring1_PublicKey2  =    0;
2831#line 513 "ClientLib.c"
2832int __ste_Client_Keyring2_PublicKey0  =    0;
2833#line 515 "ClientLib.c"
2834int __ste_Client_Keyring2_PublicKey1  =    0;
2835#line 517 "ClientLib.c"
2836int __ste_Client_Keyring2_PublicKey2  =    0;
2837#line 520 "ClientLib.c"
2838int getClientKeyringPublicKey(int handle , int index ) 
2839{ int retValue_acc ;
2840
2841  {
2842#line 553
2843  if (handle == 1) {
2844#line 530 "ClientLib.c"
2845    if (index == 0) {
2846#line 2218
2847      retValue_acc = __ste_Client_Keyring0_PublicKey0;
2848#line 2220
2849      return (retValue_acc);
2850    } else {
2851#line 2222
2852      if (index == 1) {
2853#line 2227
2854        retValue_acc = __ste_Client_Keyring0_PublicKey1;
2855#line 2229
2856        return (retValue_acc);
2857      } else {
2858#line 2235
2859        retValue_acc = 0;
2860#line 2237
2861        return (retValue_acc);
2862      }
2863    }
2864  } else {
2865#line 2239 "ClientLib.c"
2866    if (handle == 2) {
2867#line 540 "ClientLib.c"
2868      if (index == 0) {
2869#line 2247
2870        retValue_acc = __ste_Client_Keyring1_PublicKey0;
2871#line 2249
2872        return (retValue_acc);
2873      } else {
2874#line 2251
2875        if (index == 1) {
2876#line 2256
2877          retValue_acc = __ste_Client_Keyring1_PublicKey1;
2878#line 2258
2879          return (retValue_acc);
2880        } else {
2881#line 2264
2882          retValue_acc = 0;
2883#line 2266
2884          return (retValue_acc);
2885        }
2886      }
2887    } else {
2888#line 2268 "ClientLib.c"
2889      if (handle == 3) {
2890#line 550 "ClientLib.c"
2891        if (index == 0) {
2892#line 2276
2893          retValue_acc = __ste_Client_Keyring2_PublicKey0;
2894#line 2278
2895          return (retValue_acc);
2896        } else {
2897#line 2280
2898          if (index == 1) {
2899#line 2285
2900            retValue_acc = __ste_Client_Keyring2_PublicKey1;
2901#line 2287
2902            return (retValue_acc);
2903          } else {
2904#line 2293
2905            retValue_acc = 0;
2906#line 2295
2907            return (retValue_acc);
2908          }
2909        }
2910      } else {
2911#line 2301 "ClientLib.c"
2912        retValue_acc = 0;
2913#line 2303
2914        return (retValue_acc);
2915      }
2916    }
2917  }
2918#line 2310 "ClientLib.c"
2919  return (retValue_acc);
2920}
2921}
2922#line 557 "ClientLib.c"
2923int findPublicKey(int handle , int userid ) 
2924{ int retValue_acc ;
2925
2926  {
2927#line 591
2928  if (handle == 1) {
2929#line 568 "ClientLib.c"
2930    if (userid == __ste_Client_Keyring0_User0) {
2931#line 2338
2932      retValue_acc = __ste_Client_Keyring0_PublicKey0;
2933#line 2340
2934      return (retValue_acc);
2935    } else {
2936#line 2342
2937      if (userid == __ste_Client_Keyring0_User1) {
2938#line 2347
2939        retValue_acc = __ste_Client_Keyring0_PublicKey1;
2940#line 2349
2941        return (retValue_acc);
2942      } else {
2943#line 2355
2944        retValue_acc = 0;
2945#line 2357
2946        return (retValue_acc);
2947      }
2948    }
2949  } else {
2950#line 2359 "ClientLib.c"
2951    if (handle == 2) {
2952#line 578 "ClientLib.c"
2953      if (userid == __ste_Client_Keyring1_User0) {
2954#line 2367
2955        retValue_acc = __ste_Client_Keyring1_PublicKey0;
2956#line 2369
2957        return (retValue_acc);
2958      } else {
2959#line 2371
2960        if (userid == __ste_Client_Keyring1_User1) {
2961#line 2376
2962          retValue_acc = __ste_Client_Keyring1_PublicKey1;
2963#line 2378
2964          return (retValue_acc);
2965        } else {
2966#line 2384
2967          retValue_acc = 0;
2968#line 2386
2969          return (retValue_acc);
2970        }
2971      }
2972    } else {
2973#line 2388 "ClientLib.c"
2974      if (handle == 3) {
2975#line 588 "ClientLib.c"
2976        if (userid == __ste_Client_Keyring2_User0) {
2977#line 2396
2978          retValue_acc = __ste_Client_Keyring2_PublicKey0;
2979#line 2398
2980          return (retValue_acc);
2981        } else {
2982#line 2400
2983          if (userid == __ste_Client_Keyring2_User1) {
2984#line 2405
2985            retValue_acc = __ste_Client_Keyring2_PublicKey1;
2986#line 2407
2987            return (retValue_acc);
2988          } else {
2989#line 2413
2990            retValue_acc = 0;
2991#line 2415
2992            return (retValue_acc);
2993          }
2994        }
2995      } else {
2996#line 2421 "ClientLib.c"
2997        retValue_acc = 0;
2998#line 2423
2999        return (retValue_acc);
3000      }
3001    }
3002  }
3003#line 2430 "ClientLib.c"
3004  return (retValue_acc);
3005}
3006}
3007#line 595 "ClientLib.c"
3008void setClientKeyringPublicKey(int handle , int index , int value ) 
3009{ 
3010
3011  {
3012#line 621
3013  if (handle == 1) {
3014#line 604
3015    if (index == 0) {
3016#line 598
3017      __ste_Client_Keyring0_PublicKey0 = value;
3018    } else {
3019#line 599
3020      if (index == 1) {
3021#line 600
3022        __ste_Client_Keyring0_PublicKey1 = value;
3023      } else {
3024
3025      }
3026    }
3027  } else {
3028#line 601
3029    if (handle == 2) {
3030#line 612
3031      if (index == 0) {
3032#line 606
3033        __ste_Client_Keyring1_PublicKey0 = value;
3034      } else {
3035#line 607
3036        if (index == 1) {
3037#line 608
3038          __ste_Client_Keyring1_PublicKey1 = value;
3039        } else {
3040
3041        }
3042      }
3043    } else {
3044#line 609
3045      if (handle == 3) {
3046#line 620
3047        if (index == 0) {
3048#line 614
3049          __ste_Client_Keyring2_PublicKey0 = value;
3050        } else {
3051#line 615
3052          if (index == 1) {
3053#line 616
3054            __ste_Client_Keyring2_PublicKey1 = value;
3055          } else {
3056
3057          }
3058        }
3059      } else {
3060
3061      }
3062    }
3063  }
3064#line 2486 "ClientLib.c"
3065  return;
3066}
3067}
3068#line 623 "ClientLib.c"
3069int __ste_client_forwardReceiver0  =    0;
3070#line 625 "ClientLib.c"
3071int __ste_client_forwardReceiver1  =    0;
3072#line 627 "ClientLib.c"
3073int __ste_client_forwardReceiver2  =    0;
3074#line 629 "ClientLib.c"
3075int __ste_client_forwardReceiver3  =    0;
3076#line 631 "ClientLib.c"
3077int getClientForwardReceiver(int handle ) 
3078{ int retValue_acc ;
3079
3080  {
3081#line 640 "ClientLib.c"
3082  if (handle == 1) {
3083#line 2515
3084    retValue_acc = __ste_client_forwardReceiver0;
3085#line 2517
3086    return (retValue_acc);
3087  } else {
3088#line 2519
3089    if (handle == 2) {
3090#line 2524
3091      retValue_acc = __ste_client_forwardReceiver1;
3092#line 2526
3093      return (retValue_acc);
3094    } else {
3095#line 2528
3096      if (handle == 3) {
3097#line 2533
3098        retValue_acc = __ste_client_forwardReceiver2;
3099#line 2535
3100        return (retValue_acc);
3101      } else {
3102#line 2541 "ClientLib.c"
3103        retValue_acc = 0;
3104#line 2543
3105        return (retValue_acc);
3106      }
3107    }
3108  }
3109#line 2550 "ClientLib.c"
3110  return (retValue_acc);
3111}
3112}
3113#line 643 "ClientLib.c"
3114void setClientForwardReceiver(int handle , int value ) 
3115{ 
3116
3117  {
3118#line 651
3119  if (handle == 1) {
3120#line 645
3121    __ste_client_forwardReceiver0 = value;
3122  } else {
3123#line 646
3124    if (handle == 2) {
3125#line 647
3126      __ste_client_forwardReceiver1 = value;
3127    } else {
3128#line 648
3129      if (handle == 3) {
3130#line 649
3131        __ste_client_forwardReceiver2 = value;
3132      } else {
3133
3134      }
3135    }
3136  }
3137#line 2585 "ClientLib.c"
3138  return;
3139}
3140}
3141#line 653 "ClientLib.c"
3142int __ste_client_idCounter0  =    0;
3143#line 655 "ClientLib.c"
3144int __ste_client_idCounter1  =    0;
3145#line 657 "ClientLib.c"
3146int __ste_client_idCounter2  =    0;
3147#line 660 "ClientLib.c"
3148int getClientId(int handle ) 
3149{ int retValue_acc ;
3150
3151  {
3152#line 669 "ClientLib.c"
3153  if (handle == 1) {
3154#line 2612
3155    retValue_acc = __ste_client_idCounter0;
3156#line 2614
3157    return (retValue_acc);
3158  } else {
3159#line 2616
3160    if (handle == 2) {
3161#line 2621
3162      retValue_acc = __ste_client_idCounter1;
3163#line 2623
3164      return (retValue_acc);
3165    } else {
3166#line 2625
3167      if (handle == 3) {
3168#line 2630
3169        retValue_acc = __ste_client_idCounter2;
3170#line 2632
3171        return (retValue_acc);
3172      } else {
3173#line 2638 "ClientLib.c"
3174        retValue_acc = 0;
3175#line 2640
3176        return (retValue_acc);
3177      }
3178    }
3179  }
3180#line 2647 "ClientLib.c"
3181  return (retValue_acc);
3182}
3183}
3184#line 672 "ClientLib.c"
3185void setClientId(int handle , int value ) 
3186{ 
3187
3188  {
3189#line 680
3190  if (handle == 1) {
3191#line 674
3192    __ste_client_idCounter0 = value;
3193  } else {
3194#line 675
3195    if (handle == 2) {
3196#line 676
3197      __ste_client_idCounter1 = value;
3198    } else {
3199#line 677
3200      if (handle == 3) {
3201#line 678
3202        __ste_client_idCounter2 = value;
3203      } else {
3204
3205      }
3206    }
3207  }
3208#line 2682 "ClientLib.c"
3209  return;
3210}
3211}
3212#line 1 "EmailLib.o"
3213#pragma merger(0,"EmailLib.i","")
3214#line 4 "EmailLib.h"
3215int initEmail(void) ;
3216#line 8
3217void setEmailId(int handle , int value ) ;
3218#line 18
3219char *getEmailSubject(int handle ) ;
3220#line 20
3221void setEmailSubject(int handle , char *value ) ;
3222#line 22
3223char *getEmailBody(int handle ) ;
3224#line 24
3225void setEmailBody(int handle , char *value ) ;
3226#line 26
3227int isEncrypted(int handle ) ;
3228#line 28
3229void setEmailIsEncrypted(int handle , int value ) ;
3230#line 30
3231int getEmailEncryptionKey(int handle ) ;
3232#line 32
3233void setEmailEncryptionKey(int handle , int value ) ;
3234#line 34
3235int isSigned(int handle ) ;
3236#line 36
3237void setEmailIsSigned(int handle , int value ) ;
3238#line 38
3239int getEmailSignKey(int handle ) ;
3240#line 40
3241void setEmailSignKey(int handle , int value ) ;
3242#line 42
3243int isVerified(int handle ) ;
3244#line 44
3245void setEmailIsSignatureVerified(int handle , int value ) ;
3246#line 5 "EmailLib.c"
3247int __ste_Email_counter  =    0;
3248#line 7 "EmailLib.c"
3249int initEmail(void) 
3250{ int retValue_acc ;
3251
3252  {
3253#line 12 "EmailLib.c"
3254  if (__ste_Email_counter < 2) {
3255#line 670
3256    __ste_Email_counter = __ste_Email_counter + 1;
3257#line 670
3258    retValue_acc = __ste_Email_counter;
3259#line 672
3260    return (retValue_acc);
3261  } else {
3262#line 678 "EmailLib.c"
3263    retValue_acc = -1;
3264#line 680
3265    return (retValue_acc);
3266  }
3267#line 687 "EmailLib.c"
3268  return (retValue_acc);
3269}
3270}
3271#line 15 "EmailLib.c"
3272int __ste_email_id0  =    0;
3273#line 17 "EmailLib.c"
3274int __ste_email_id1  =    0;
3275#line 19 "EmailLib.c"
3276int getEmailId(int handle ) 
3277{ int retValue_acc ;
3278
3279  {
3280#line 26 "EmailLib.c"
3281  if (handle == 1) {
3282#line 716
3283    retValue_acc = __ste_email_id0;
3284#line 718
3285    return (retValue_acc);
3286  } else {
3287#line 720
3288    if (handle == 2) {
3289#line 725
3290      retValue_acc = __ste_email_id1;
3291#line 727
3292      return (retValue_acc);
3293    } else {
3294#line 733 "EmailLib.c"
3295      retValue_acc = 0;
3296#line 735
3297      return (retValue_acc);
3298    }
3299  }
3300#line 742 "EmailLib.c"
3301  return (retValue_acc);
3302}
3303}
3304#line 29 "EmailLib.c"
3305void setEmailId(int handle , int value ) 
3306{ 
3307
3308  {
3309#line 35
3310  if (handle == 1) {
3311#line 31
3312    __ste_email_id0 = value;
3313  } else {
3314#line 32
3315    if (handle == 2) {
3316#line 33
3317      __ste_email_id1 = value;
3318    } else {
3319
3320    }
3321  }
3322#line 773 "EmailLib.c"
3323  return;
3324}
3325}
3326#line 37 "EmailLib.c"
3327int __ste_email_from0  =    0;
3328#line 39 "EmailLib.c"
3329int __ste_email_from1  =    0;
3330#line 41 "EmailLib.c"
3331int getEmailFrom(int handle ) 
3332{ int retValue_acc ;
3333
3334  {
3335#line 48 "EmailLib.c"
3336  if (handle == 1) {
3337#line 798
3338    retValue_acc = __ste_email_from0;
3339#line 800
3340    return (retValue_acc);
3341  } else {
3342#line 802
3343    if (handle == 2) {
3344#line 807
3345      retValue_acc = __ste_email_from1;
3346#line 809
3347      return (retValue_acc);
3348    } else {
3349#line 815 "EmailLib.c"
3350      retValue_acc = 0;
3351#line 817
3352      return (retValue_acc);
3353    }
3354  }
3355#line 824 "EmailLib.c"
3356  return (retValue_acc);
3357}
3358}
3359#line 51 "EmailLib.c"
3360void setEmailFrom(int handle , int value ) 
3361{ 
3362
3363  {
3364#line 57
3365  if (handle == 1) {
3366#line 53
3367    __ste_email_from0 = value;
3368  } else {
3369#line 54
3370    if (handle == 2) {
3371#line 55
3372      __ste_email_from1 = value;
3373    } else {
3374
3375    }
3376  }
3377#line 855 "EmailLib.c"
3378  return;
3379}
3380}
3381#line 59 "EmailLib.c"
3382int __ste_email_to0  =    0;
3383#line 61 "EmailLib.c"
3384int __ste_email_to1  =    0;
3385#line 63 "EmailLib.c"
3386int getEmailTo(int handle ) 
3387{ int retValue_acc ;
3388
3389  {
3390#line 70 "EmailLib.c"
3391  if (handle == 1) {
3392#line 880
3393    retValue_acc = __ste_email_to0;
3394#line 882
3395    return (retValue_acc);
3396  } else {
3397#line 884
3398    if (handle == 2) {
3399#line 889
3400      retValue_acc = __ste_email_to1;
3401#line 891
3402      return (retValue_acc);
3403    } else {
3404#line 897 "EmailLib.c"
3405      retValue_acc = 0;
3406#line 899
3407      return (retValue_acc);
3408    }
3409  }
3410#line 906 "EmailLib.c"
3411  return (retValue_acc);
3412}
3413}
3414#line 73 "EmailLib.c"
3415void setEmailTo(int handle , int value ) 
3416{ 
3417
3418  {
3419#line 79
3420  if (handle == 1) {
3421#line 75
3422    __ste_email_to0 = value;
3423  } else {
3424#line 76
3425    if (handle == 2) {
3426#line 77
3427      __ste_email_to1 = value;
3428    } else {
3429
3430    }
3431  }
3432#line 937 "EmailLib.c"
3433  return;
3434}
3435}
3436#line 81 "EmailLib.c"
3437char *__ste_email_subject0  ;
3438#line 83 "EmailLib.c"
3439char *__ste_email_subject1  ;
3440#line 85 "EmailLib.c"
3441char *getEmailSubject(int handle ) 
3442{ char *retValue_acc ;
3443  void *__cil_tmp3 ;
3444
3445  {
3446#line 92 "EmailLib.c"
3447  if (handle == 1) {
3448#line 962
3449    retValue_acc = __ste_email_subject0;
3450#line 964
3451    return (retValue_acc);
3452  } else {
3453#line 966
3454    if (handle == 2) {
3455#line 971
3456      retValue_acc = __ste_email_subject1;
3457#line 973
3458      return (retValue_acc);
3459    } else {
3460#line 979 "EmailLib.c"
3461      __cil_tmp3 = (void *)0;
3462#line 979
3463      retValue_acc = (char *)__cil_tmp3;
3464#line 981
3465      return (retValue_acc);
3466    }
3467  }
3468#line 988 "EmailLib.c"
3469  return (retValue_acc);
3470}
3471}
3472#line 95 "EmailLib.c"
3473void setEmailSubject(int handle , char *value ) 
3474{ 
3475
3476  {
3477#line 101
3478  if (handle == 1) {
3479#line 97
3480    __ste_email_subject0 = value;
3481  } else {
3482#line 98
3483    if (handle == 2) {
3484#line 99
3485      __ste_email_subject1 = value;
3486    } else {
3487
3488    }
3489  }
3490#line 1019 "EmailLib.c"
3491  return;
3492}
3493}
3494#line 103 "EmailLib.c"
3495char *__ste_email_body0  =    (char *)0;
3496#line 105 "EmailLib.c"
3497char *__ste_email_body1  =    (char *)0;
3498#line 107 "EmailLib.c"
3499char *getEmailBody(int handle ) 
3500{ char *retValue_acc ;
3501  void *__cil_tmp3 ;
3502
3503  {
3504#line 114 "EmailLib.c"
3505  if (handle == 1) {
3506#line 1044
3507    retValue_acc = __ste_email_body0;
3508#line 1046
3509    return (retValue_acc);
3510  } else {
3511#line 1048
3512    if (handle == 2) {
3513#line 1053
3514      retValue_acc = __ste_email_body1;
3515#line 1055
3516      return (retValue_acc);
3517    } else {
3518#line 1061 "EmailLib.c"
3519      __cil_tmp3 = (void *)0;
3520#line 1061
3521      retValue_acc = (char *)__cil_tmp3;
3522#line 1063
3523      return (retValue_acc);
3524    }
3525  }
3526#line 1070 "EmailLib.c"
3527  return (retValue_acc);
3528}
3529}
3530#line 117 "EmailLib.c"
3531void setEmailBody(int handle , char *value ) 
3532{ 
3533
3534  {
3535#line 123
3536  if (handle == 1) {
3537#line 119
3538    __ste_email_body0 = value;
3539  } else {
3540#line 120
3541    if (handle == 2) {
3542#line 121
3543      __ste_email_body1 = value;
3544    } else {
3545
3546    }
3547  }
3548#line 1101 "EmailLib.c"
3549  return;
3550}
3551}
3552#line 125 "EmailLib.c"
3553int __ste_email_isEncrypted0  =    0;
3554#line 127 "EmailLib.c"
3555int __ste_email_isEncrypted1  =    0;
3556#line 129 "EmailLib.c"
3557int isEncrypted(int handle ) 
3558{ int retValue_acc ;
3559
3560  {
3561#line 136 "EmailLib.c"
3562  if (handle == 1) {
3563#line 1126
3564    retValue_acc = __ste_email_isEncrypted0;
3565#line 1128
3566    return (retValue_acc);
3567  } else {
3568#line 1130
3569    if (handle == 2) {
3570#line 1135
3571      retValue_acc = __ste_email_isEncrypted1;
3572#line 1137
3573      return (retValue_acc);
3574    } else {
3575#line 1143 "EmailLib.c"
3576      retValue_acc = 0;
3577#line 1145
3578      return (retValue_acc);
3579    }
3580  }
3581#line 1152 "EmailLib.c"
3582  return (retValue_acc);
3583}
3584}
3585#line 139 "EmailLib.c"
3586void setEmailIsEncrypted(int handle , int value ) 
3587{ 
3588
3589  {
3590#line 145
3591  if (handle == 1) {
3592#line 141
3593    __ste_email_isEncrypted0 = value;
3594  } else {
3595#line 142
3596    if (handle == 2) {
3597#line 143
3598      __ste_email_isEncrypted1 = value;
3599    } else {
3600
3601    }
3602  }
3603#line 1183 "EmailLib.c"
3604  return;
3605}
3606}
3607#line 147 "EmailLib.c"
3608int __ste_email_encryptionKey0  =    0;
3609#line 149 "EmailLib.c"
3610int __ste_email_encryptionKey1  =    0;
3611#line 151 "EmailLib.c"
3612int getEmailEncryptionKey(int handle ) 
3613{ int retValue_acc ;
3614
3615  {
3616#line 158 "EmailLib.c"
3617  if (handle == 1) {
3618#line 1208
3619    retValue_acc = __ste_email_encryptionKey0;
3620#line 1210
3621    return (retValue_acc);
3622  } else {
3623#line 1212
3624    if (handle == 2) {
3625#line 1217
3626      retValue_acc = __ste_email_encryptionKey1;
3627#line 1219
3628      return (retValue_acc);
3629    } else {
3630#line 1225 "EmailLib.c"
3631      retValue_acc = 0;
3632#line 1227
3633      return (retValue_acc);
3634    }
3635  }
3636#line 1234 "EmailLib.c"
3637  return (retValue_acc);
3638}
3639}
3640#line 161 "EmailLib.c"
3641void setEmailEncryptionKey(int handle , int value ) 
3642{ 
3643
3644  {
3645#line 167
3646  if (handle == 1) {
3647#line 163
3648    __ste_email_encryptionKey0 = value;
3649  } else {
3650#line 164
3651    if (handle == 2) {
3652#line 165
3653      __ste_email_encryptionKey1 = value;
3654    } else {
3655
3656    }
3657  }
3658#line 1265 "EmailLib.c"
3659  return;
3660}
3661}
3662#line 169 "EmailLib.c"
3663int __ste_email_isSigned0  =    0;
3664#line 171 "EmailLib.c"
3665int __ste_email_isSigned1  =    0;
3666#line 173 "EmailLib.c"
3667int isSigned(int handle ) 
3668{ int retValue_acc ;
3669
3670  {
3671#line 180 "EmailLib.c"
3672  if (handle == 1) {
3673#line 1290
3674    retValue_acc = __ste_email_isSigned0;
3675#line 1292
3676    return (retValue_acc);
3677  } else {
3678#line 1294
3679    if (handle == 2) {
3680#line 1299
3681      retValue_acc = __ste_email_isSigned1;
3682#line 1301
3683      return (retValue_acc);
3684    } else {
3685#line 1307 "EmailLib.c"
3686      retValue_acc = 0;
3687#line 1309
3688      return (retValue_acc);
3689    }
3690  }
3691#line 1316 "EmailLib.c"
3692  return (retValue_acc);
3693}
3694}
3695#line 183 "EmailLib.c"
3696void setEmailIsSigned(int handle , int value ) 
3697{ 
3698
3699  {
3700#line 189
3701  if (handle == 1) {
3702#line 185
3703    __ste_email_isSigned0 = value;
3704  } else {
3705#line 186
3706    if (handle == 2) {
3707#line 187
3708      __ste_email_isSigned1 = value;
3709    } else {
3710
3711    }
3712  }
3713#line 1347 "EmailLib.c"
3714  return;
3715}
3716}
3717#line 191 "EmailLib.c"
3718int __ste_email_signKey0  =    0;
3719#line 193 "EmailLib.c"
3720int __ste_email_signKey1  =    0;
3721#line 195 "EmailLib.c"
3722int getEmailSignKey(int handle ) 
3723{ int retValue_acc ;
3724
3725  {
3726#line 202 "EmailLib.c"
3727  if (handle == 1) {
3728#line 1372
3729    retValue_acc = __ste_email_signKey0;
3730#line 1374
3731    return (retValue_acc);
3732  } else {
3733#line 1376
3734    if (handle == 2) {
3735#line 1381
3736      retValue_acc = __ste_email_signKey1;
3737#line 1383
3738      return (retValue_acc);
3739    } else {
3740#line 1389 "EmailLib.c"
3741      retValue_acc = 0;
3742#line 1391
3743      return (retValue_acc);
3744    }
3745  }
3746#line 1398 "EmailLib.c"
3747  return (retValue_acc);
3748}
3749}
3750#line 205 "EmailLib.c"
3751void setEmailSignKey(int handle , int value ) 
3752{ 
3753
3754  {
3755#line 211
3756  if (handle == 1) {
3757#line 207
3758    __ste_email_signKey0 = value;
3759  } else {
3760#line 208
3761    if (handle == 2) {
3762#line 209
3763      __ste_email_signKey1 = value;
3764    } else {
3765
3766    }
3767  }
3768#line 1429 "EmailLib.c"
3769  return;
3770}
3771}
3772#line 213 "EmailLib.c"
3773int __ste_email_isSignatureVerified0  ;
3774#line 215 "EmailLib.c"
3775int __ste_email_isSignatureVerified1  ;
3776#line 217 "EmailLib.c"
3777int isVerified(int handle ) 
3778{ int retValue_acc ;
3779
3780  {
3781#line 224 "EmailLib.c"
3782  if (handle == 1) {
3783#line 1454
3784    retValue_acc = __ste_email_isSignatureVerified0;
3785#line 1456
3786    return (retValue_acc);
3787  } else {
3788#line 1458
3789    if (handle == 2) {
3790#line 1463
3791      retValue_acc = __ste_email_isSignatureVerified1;
3792#line 1465
3793      return (retValue_acc);
3794    } else {
3795#line 1471 "EmailLib.c"
3796      retValue_acc = 0;
3797#line 1473
3798      return (retValue_acc);
3799    }
3800  }
3801#line 1480 "EmailLib.c"
3802  return (retValue_acc);
3803}
3804}
3805#line 227 "EmailLib.c"
3806void setEmailIsSignatureVerified(int handle , int value ) 
3807{ 
3808
3809  {
3810#line 233
3811  if (handle == 1) {
3812#line 229
3813    __ste_email_isSignatureVerified0 = value;
3814  } else {
3815#line 230
3816    if (handle == 2) {
3817#line 231
3818      __ste_email_isSignatureVerified1 = value;
3819    } else {
3820
3821    }
3822  }
3823#line 1511 "EmailLib.c"
3824  return;
3825}
3826}
3827#line 1 "Test.o"
3828#pragma merger(0,"Test.i","")
3829#line 2 "Test.h"
3830int bob  ;
3831#line 5 "Test.h"
3832int rjh  ;
3833#line 8 "Test.h"
3834int chuck  ;
3835#line 11
3836void setup_bob(int bob___0 ) ;
3837#line 14
3838void setup_rjh(int rjh___0 ) ;
3839#line 17
3840void setup_chuck(int chuck___0 ) ;
3841#line 26
3842void rjhToBob(void) ;
3843#line 32
3844void setup(void) ;
3845#line 35
3846int main(void) ;
3847#line 39
3848void bobKeyAddChuck(void) ;
3849#line 45
3850void rjhKeyAddChuck(void) ;
3851#line 18 "Test.c"
3852void setup_bob__wrappee__Base(int bob___0 ) 
3853{ 
3854
3855  {
3856  {
3857#line 19
3858  setClientId(bob___0, bob___0);
3859  }
3860#line 1334 "Test.c"
3861  return;
3862}
3863}
3864#line 23 "Test.c"
3865void setup_bob(int bob___0 ) 
3866{ 
3867
3868  {
3869  {
3870#line 24
3871  setup_bob__wrappee__Base(bob___0);
3872#line 25
3873  setClientPrivateKey(bob___0, 123);
3874  }
3875#line 1356 "Test.c"
3876  return;
3877}
3878}
3879#line 33 "Test.c"
3880void setup_rjh__wrappee__Base(int rjh___0 ) 
3881{ 
3882
3883  {
3884  {
3885#line 34
3886  setClientId(rjh___0, rjh___0);
3887  }
3888#line 1376 "Test.c"
3889  return;
3890}
3891}
3892#line 40 "Test.c"
3893void setup_rjh(int rjh___0 ) 
3894{ 
3895
3896  {
3897  {
3898#line 42
3899  setup_rjh__wrappee__Base(rjh___0);
3900#line 43
3901  setClientPrivateKey(rjh___0, 456);
3902  }
3903#line 1398 "Test.c"
3904  return;
3905}
3906}
3907#line 50 "Test.c"
3908void setup_chuck__wrappee__Base(int chuck___0 ) 
3909{ 
3910
3911  {
3912  {
3913#line 51
3914  setClientId(chuck___0, chuck___0);
3915  }
3916#line 1418 "Test.c"
3917  return;
3918}
3919}
3920#line 57 "Test.c"
3921void setup_chuck(int chuck___0 ) 
3922{ 
3923
3924  {
3925  {
3926#line 58
3927  setup_chuck__wrappee__Base(chuck___0);
3928#line 59
3929  setClientPrivateKey(chuck___0, 789);
3930  }
3931#line 1440 "Test.c"
3932  return;
3933}
3934}
3935#line 69 "Test.c"
3936void bobToRjh(void) 
3937{ int tmp ;
3938  int tmp___0 ;
3939  int tmp___1 ;
3940
3941  {
3942  {
3943#line 71
3944  puts("Please enter a subject and a message body.\n");
3945#line 72
3946  sendEmail(bob, rjh);
3947#line 73
3948  tmp___1 = is_queue_empty();
3949  }
3950#line 73
3951  if (tmp___1) {
3952
3953  } else {
3954    {
3955#line 74
3956    tmp = get_queued_email();
3957#line 74
3958    tmp___0 = get_queued_client();
3959#line 74
3960    outgoing(tmp___0, tmp);
3961    }
3962  }
3963#line 1467 "Test.c"
3964  return;
3965}
3966}
3967#line 81 "Test.c"
3968void rjhToBob(void) 
3969{ 
3970
3971  {
3972  {
3973#line 83
3974  puts("Please enter a subject and a message body.\n");
3975#line 84
3976  sendEmail(rjh, bob);
3977  }
3978#line 1489 "Test.c"
3979  return;
3980}
3981}
3982#line 88 "Test.c"
3983#line 95 "Test.c"
3984void setup(void) 
3985{ char const   * __restrict  __cil_tmp1 ;
3986  char const   * __restrict  __cil_tmp2 ;
3987  char const   * __restrict  __cil_tmp3 ;
3988
3989  {
3990  {
3991#line 96
3992  bob = 1;
3993#line 97
3994  setup_bob(bob);
3995#line 98
3996  __cil_tmp1 = (char const   * __restrict  )"bob: %d\n";
3997#line 98
3998  printf(__cil_tmp1, bob);
3999#line 100
4000  rjh = 2;
4001#line 101
4002  setup_rjh(rjh);
4003#line 102
4004  __cil_tmp2 = (char const   * __restrict  )"rjh: %d\n";
4005#line 102
4006  printf(__cil_tmp2, rjh);
4007#line 104
4008  chuck = 3;
4009#line 105
4010  setup_chuck(chuck);
4011#line 106
4012  __cil_tmp3 = (char const   * __restrict  )"chuck: %d\n";
4013#line 106
4014  printf(__cil_tmp3, chuck);
4015  }
4016#line 1560 "Test.c"
4017  return;
4018}
4019}
4020#line 112 "Test.c"
4021int main(void) 
4022{ int retValue_acc ;
4023  int tmp ;
4024
4025  {
4026  {
4027#line 113
4028  select_helpers();
4029#line 114
4030  select_features();
4031#line 115
4032  tmp = valid_product();
4033  }
4034#line 115
4035  if (tmp) {
4036    {
4037#line 116
4038    setup();
4039#line 117
4040    test();
4041    }
4042  } else {
4043
4044  }
4045#line 1591 "Test.c"
4046  return (retValue_acc);
4047}
4048}
4049#line 125 "Test.c"
4050void bobKeyAdd(void) 
4051{ int tmp ;
4052  int tmp___0 ;
4053  char const   * __restrict  __cil_tmp3 ;
4054  char const   * __restrict  __cil_tmp4 ;
4055
4056  {
4057  {
4058#line 126
4059  createClientKeyringEntry(bob);
4060#line 127
4061  setClientKeyringUser(bob, 0, 2);
4062#line 128
4063  setClientKeyringPublicKey(bob, 0, 456);
4064#line 129
4065  puts("bob added rjhs key");
4066#line 130
4067  tmp = getClientKeyringUser(bob, 0);
4068#line 130
4069  __cil_tmp3 = (char const   * __restrict  )"%d\n";
4070#line 130
4071  printf(__cil_tmp3, tmp);
4072#line 131
4073  tmp___0 = getClientKeyringPublicKey(bob, 0);
4074#line 131
4075  __cil_tmp4 = (char const   * __restrict  )"%d\n";
4076#line 131
4077  printf(__cil_tmp4, tmp___0);
4078  }
4079#line 1625 "Test.c"
4080  return;
4081}
4082}
4083#line 137 "Test.c"
4084void rjhKeyAdd(void) 
4085{ 
4086
4087  {
4088  {
4089#line 138
4090  createClientKeyringEntry(rjh);
4091#line 139
4092  setClientKeyringUser(rjh, 0, 1);
4093#line 140
4094  setClientKeyringPublicKey(rjh, 0, 123);
4095  }
4096#line 1649 "Test.c"
4097  return;
4098}
4099}
4100#line 146 "Test.c"
4101void rjhKeyAddChuck(void) 
4102{ 
4103
4104  {
4105  {
4106#line 147
4107  createClientKeyringEntry(rjh);
4108#line 148
4109  setClientKeyringUser(rjh, 0, 3);
4110#line 149
4111  setClientKeyringPublicKey(rjh, 0, 789);
4112  }
4113#line 1673 "Test.c"
4114  return;
4115}
4116}
4117#line 156 "Test.c"
4118void bobKeyAddChuck(void) 
4119{ 
4120
4121  {
4122  {
4123#line 157
4124  createClientKeyringEntry(bob);
4125#line 158
4126  setClientKeyringUser(bob, 1, 3);
4127#line 159
4128  setClientKeyringPublicKey(bob, 1, 789);
4129  }
4130#line 1697 "Test.c"
4131  return;
4132}
4133}
4134#line 165 "Test.c"
4135void chuckKeyAdd(void) 
4136{ 
4137
4138  {
4139  {
4140#line 166
4141  createClientKeyringEntry(chuck);
4142#line 167
4143  setClientKeyringUser(chuck, 0, 1);
4144#line 168
4145  setClientKeyringPublicKey(chuck, 0, 123);
4146  }
4147#line 1721 "Test.c"
4148  return;
4149}
4150}
4151#line 174 "Test.c"
4152void chuckKeyAddRjh(void) 
4153{ 
4154
4155  {
4156  {
4157#line 175
4158  createClientKeyringEntry(chuck);
4159#line 176
4160  setClientKeyringUser(chuck, 0, 2);
4161#line 177
4162  setClientKeyringPublicKey(chuck, 0, 456);
4163  }
4164#line 1745 "Test.c"
4165  return;
4166}
4167}
4168#line 183 "Test.c"
4169void rjhDeletePrivateKey(void) 
4170{ 
4171
4172  {
4173  {
4174#line 184
4175  setClientPrivateKey(rjh, 0);
4176  }
4177#line 1765 "Test.c"
4178  return;
4179}
4180}
4181#line 190 "Test.c"
4182void bobKeyChange(void) 
4183{ 
4184
4185  {
4186  {
4187#line 191
4188  generateKeyPair(bob, 777);
4189  }
4190#line 1785 "Test.c"
4191  return;
4192}
4193}
4194#line 197 "Test.c"
4195void rjhKeyChange(void) 
4196{ 
4197
4198  {
4199  {
4200#line 198
4201  generateKeyPair(rjh, 666);
4202  }
4203#line 1805 "Test.c"
4204  return;
4205}
4206}
4207#line 204 "Test.c"
4208void rjhSetAutoRespond(void) 
4209{ 
4210
4211  {
4212  {
4213#line 205
4214  setClientAutoResponse(rjh, 1);
4215  }
4216#line 1825 "Test.c"
4217  return;
4218}
4219}
4220#line 210 "Test.c"
4221void bobSetAddressBook(void) 
4222{ 
4223
4224  {
4225  {
4226#line 211
4227  setClientAddressBookSize(bob, 1);
4228#line 212
4229  setClientAddressBookAlias(bob, 0, rjh);
4230#line 213
4231  setClientAddressBookAddress(bob, 0, rjh);
4232#line 214
4233  setClientAddressBookAddress(bob, 1, chuck);
4234  }
4235#line 1851 "Test.c"
4236  return;
4237}
4238}
4239#line 220 "Test.c"
4240void rjhEnableForwarding(void) 
4241{ 
4242
4243  {
4244  {
4245#line 221
4246  setClientForwardReceiver(rjh, chuck);
4247  }
4248#line 1871 "Test.c"
4249  return;
4250}
4251}