Showing error 1663

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