Showing error 1823

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